Van333
2022-12-29 d8f66b834134f6b755fd3fb93bb91b56f9d31f6f
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package api.service;
 
import api.bean.AccessEntity;
import api.dao.AccessDao;
import api.result.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Date;
import java.util.UUID;
 
/**
 * @program: wog
 * @description:
 * @author: YSS
 * @create: 2020-09-25 14:34
 **/
@Service
public class AccessService {
 
    private static final Long OUT_EXPRESS_TIME = (long)7 * 1000 * 60 * 60 * 24;
 
    @Autowired
    private AccessDao accessDao;
 
    public void update(AccessEntity accessEntity) {
        accessDao.update(accessEntity);
    }
 
    public AccessEntity selectAccessEntityByKey(String accessKey) {
        return accessDao.selectAccessEntityByKey(accessKey);
    }
 
    public Long getUserId(String accessToken) {
        return accessDao.selectUserIdByToken(accessToken);
    }
 
    public Long getRoleId(Long userId) {
        return accessDao.selectRoleIdByUserId(userId);
    }
 
    public Msg getAccessToken(AccessEntity accessEntity) {
 
        AccessEntity accessData = selectAccessEntityByKey(accessEntity.getAccessKey());
 
        if(null == accessData) {
            return Msg.error("user no exist");
        }
 
        if(!accessData.getAccessSercet().equals(accessEntity.getAccessSercet())) {
            return Msg.error("secret mistake");
        }
 
        if(System.currentTimeMillis() - accessData.getUpdateTime().getTime() > OUT_EXPRESS_TIME) {
 
            accessData.setAccessToken(UUID.randomUUID().toString());
            accessData.setUpdateTime(new Date());
 
            update(accessData);
 
        }
        return Msg.ok().put("accessToken",accessData.getAccessToken());
    }
 
 
    public String getYs7AccountId(String accessKey) {
 
        String ys7AccountId
                = accessDao.selectYs7AccountIdByAccessToken(accessKey);
 
        return ys7AccountId;
    }
 
    public void setYs7Token(String ys7AccessToken,String accessToken){
        accessDao.setYs7Token(ys7AccessToken,accessToken);
    }
}