“mitao”
2026-03-05 885ffebd0a9346730316a88b0bc5396899d03844
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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;
    }
}