添加一体机登录接口

This commit is contained in:
chenshaohua
2026-05-12 13:07:58 +08:00
parent 0648e1f70c
commit aed2093175
6 changed files with 175 additions and 2 deletions

View File

@@ -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

View File

@@ -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分钟自动刷新缓存
*