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(new Date().getTime() - accessData.getUpdateTime().getTime() > OUT_EXPRESS_TIME) {
|
|
accessData.setAccessToken(UUID.randomUUID().toString());
|
accessData.setUpdateTime(new Date());
|
|
update(accessData);
|
|
}
|
return Msg.ok().put("accessToken",accessData.getAccessToken());
|
}
|
}
|