添加一体机登录接口
This commit is contained in:
@@ -4,6 +4,7 @@ import javax.annotation.Resource;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.ruoyi.cms.domain.IDCardInfo;
|
||||
import com.ruoyi.cms.domain.vo.WechatAuthVO;
|
||||
import com.ruoyi.cms.mapper.CompanyMapper;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
@@ -195,8 +196,8 @@ public class SysLoginService
|
||||
recordLoginInfo(appUser);
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(appUser.getName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
recordLoginInfo(appUser);
|
||||
// 生成token //tokenSiteService.createToken(loginSiteUser) 有时间
|
||||
return tokenSiteService.noExpireCreateToken(loginSiteUser);
|
||||
// 生成token //tokenSiteService.createToken(loginSiteUser) 有时间//noExpireCreateToken
|
||||
return tokenSiteService.createTokenHourTwo(loginSiteUser);
|
||||
}
|
||||
|
||||
//单点登录
|
||||
@@ -740,6 +741,36 @@ public class SysLoginService
|
||||
return getAjax(appUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 一体机扫描身份证
|
||||
* @param info
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult idCardScan(IDCardInfo info){
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(StringUtil.toUpperCaseIgnoreBlank(info.getIdNO()));
|
||||
if(appUser==null){
|
||||
appUser=new AppUser();
|
||||
appUser.setName(info.getName());
|
||||
appUser.setSex(DictUtils.getDictValue("app_sex",info.getSex()));
|
||||
appUser.setNation(DictUtils.getDictValue("nation",info.getNation()));
|
||||
appUser.setAddress(info.getAddress());
|
||||
appUser.setBirthDate(info.getBirthDate());
|
||||
appUser.setIdCard(info.getIdNO());
|
||||
try {
|
||||
appUserService.insertAppUser(appUser);
|
||||
}catch (Exception e){
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
ajax.put("isNewUser", true);
|
||||
}else{
|
||||
ajax.put("isNewUser", false);
|
||||
}
|
||||
String token=loginUserIdApp(appUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
return ajax;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ajax
|
||||
* @param appUser
|
||||
|
||||
@@ -147,6 +147,32 @@ public class TokenSiteService
|
||||
return createToken(claims);
|
||||
}
|
||||
|
||||
/**
|
||||
* 超时时间为2个小时
|
||||
* @param LoginSiteUser
|
||||
* @return
|
||||
*/
|
||||
public String createTokenHourTwo(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
String token = IdUtils.fastUUID();
|
||||
LoginSiteUser.setToken(token);
|
||||
setUserAgent(LoginSiteUser);
|
||||
|
||||
//redis存2个小时
|
||||
String userKey = getTokenKey(token, String.valueOf(LoginSiteUser.getUserId()));
|
||||
redisCache.setCacheObject(userKey, LoginSiteUser, 2, TimeUnit.HOURS);
|
||||
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put(Constants.APP_LOGIN_USER_KEY, token);
|
||||
claims.put(Constants.APP_LOGIN_USER_ID, LoginSiteUser.getUserId());
|
||||
// 当前时间 + 120 分钟
|
||||
long currentTimeMillis = System.currentTimeMillis();
|
||||
long expireTimeMillis = currentTimeMillis + ((long) expireTime * 3 * 60 * 1000); // 12分钟 = 1800000 毫秒
|
||||
long expireTimeSeconds = expireTimeMillis / 1000; // 转换为秒(时间戳)
|
||||
claims.put(Constants.EXP, expireTimeSeconds);
|
||||
return createToken(claims);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user