package com.estate.expert.admin.service.impl;
|
|
import com.estate.expert.admin.domain.session.UserSession;
|
import com.estate.expert.admin.domain.session.UserSessionRepository;
|
import com.estate.expert.admin.enums.BizResultCode;
|
import com.estate.expert.admin.service.UserSessionService;
|
import com.estate.expert.common.domain.Session;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
|
/**
|
* 用户会话服务实现
|
* @author ligf
|
* @date 2023-09-02
|
**/
|
@Service
|
public class UserSessionServiceImpl implements UserSessionService {
|
/**
|
* 用户会话仓库
|
*/
|
|
@Resource
|
private UserSessionRepository userSessionRepository;
|
|
/**
|
* 触碰会话
|
* @param token 会话token
|
* @return 会话
|
*/
|
@Override
|
public Session touchSession(String token) {
|
LocalDateTime now = LocalDateTime.now();
|
//查询数据库验证token的有效性
|
UserSession userSession = userSessionRepository.findByTokenOrderByIdDesc(token).orElse(null);
|
BizResultCode.SESSION_INVALID.check(userSession == null);
|
Session session = new Session();//convertToSession(userSession);
|
session.setToken(token);
|
|
var user = userSession.getUser();
|
session.setUser(user);
|
session.setUserId(user.getId());
|
session.setClientCode(userSession.getClientCode());
|
session.setLastAccessTime(userSession.getLastAccessTime());
|
// sessionCacheService.cache(token, session);
|
return session;
|
}
|
}
|