登录用户缓存

This commit is contained in:
jiangs 2025-09-24 18:17:10 +08:00
parent f633442e3a
commit 9332e9355d
10 changed files with 116 additions and 38 deletions

View File

@ -0,0 +1,18 @@
package com.czlis.common.core.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 登录配置类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysLoginParam {
/**
* 默认仪器
*/
private String yq;
}

View File

@ -106,6 +106,15 @@ public class SysUser extends BaseEntity
private String snid;
private String signCert;
private String sn_pin;
private String loginYLJG;
public String getLoginYLJG() {
return loginYLJG;
}
public void setLoginYLJG(String loginYLJG) {
this.loginYLJG = loginYLJG;
}
public String getVshisuser() {
return vshisuser;
@ -401,6 +410,14 @@ public class SysUser extends BaseEntity
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("dept", getDept())
.toString();
.append("vshisuser",getVshisuser())
.append("vshisuser1",getVshisuser1())
.append("vshisuser2",getVshisuser1())
.append("yljg",getYljg())
.append("sn",getSn())
.append("snid",getSnid())
.append("signCert",getSignCert())
.append("sn_pin",getSn_pin())
.toString();
}
}

View File

@ -1,10 +1,17 @@
package com.czlis.common.core.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 用户登录对象
*
* @author admin
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginBody {
/**
* 用户名
@ -26,35 +33,9 @@ public class LoginBody {
*/
private String uuid;
public String getUsername() {
return username;
}
/**
* 登录医疗机构
*/
private LoginParam loginParam;
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
}

View File

@ -0,0 +1,12 @@
package com.czlis.common.core.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginParam {
private String loginYLJG;
}

View File

@ -1,6 +1,7 @@
package com.czlis.common.core.domain.model;
import com.alibaba.fastjson2.annotation.JSONField;
import com.czlis.common.core.domain.entity.SysLoginParam;
import com.czlis.common.core.domain.entity.SysUser;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
@ -71,6 +72,16 @@ public class LoginUser implements UserDetails {
*/
private SysUser user;
public SysLoginParam getSysLoginParam() {
return sysLoginParam;
}
public void setSysLoginParam(SysLoginParam sysLoginParam) {
this.sysLoginParam = sysLoginParam;
}
private SysLoginParam sysLoginParam;
public LoginUser() {
}
@ -86,6 +97,14 @@ public class LoginUser implements UserDetails {
this.permissions = permissions;
}
public LoginUser(Long userId, Long deptId, SysUser user, Set<String> permissions,SysLoginParam sysLoginParam) {
this.userId = userId;
this.deptId = deptId;
this.user = user;
this.permissions = permissions;
this.sysLoginParam = sysLoginParam;
}
public Long getUserId() {
return userId;
}

View File

@ -0,0 +1,20 @@
package com.czlis.interfaceCommon.utils;
import com.czlis.common.core.domain.entity.SysLoginParam;
import org.springframework.stereotype.Component;
/**
* 登录自定义配置类
*/
@Component
public class LoginConfigParamUtil {
public SysLoginParam getLoginConfigParam() {
SysLoginParam loginConfigParam = new SysLoginParam();
loginConfigParam.setYq("");
return loginConfigParam;
}
}

View File

@ -50,7 +50,7 @@ public class SysLoginController {
AjaxResult ajax = AjaxResult.success();
// 生成令牌
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
loginBody.getUuid());
loginBody.getUuid(),loginBody.getLoginParam().getLoginYLJG());
ajax.put(Constants.TOKEN, token);
return ajax;
}

View File

@ -64,7 +64,7 @@ public class SysLoginService {
* @param uuid 唯一标识
* @return 结果
*/
public String login(String username, String password, String code, String uuid) {
public String login(String username, String password, String code, String uuid,String loginYLJG) {
// 验证码校验
validateCaptcha(username, code, uuid);
// 登录前置校验
@ -91,6 +91,8 @@ public class SysLoginService {
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
// 生成token
SysUser user = loginUser.getUser();
user.setLoginYLJG(loginYLJG); //设置登录的医疗机构
return tokenService.createToken(loginUser);
}

View File

@ -2,6 +2,7 @@ package com.czlis.system.web.service;
import com.czlis.common.constant.CacheConstants;
import com.czlis.common.constant.Constants;
import com.czlis.common.core.domain.entity.SysUser;
import com.czlis.common.core.domain.model.LoginUser;
import com.czlis.common.core.redis.RedisCache;
import com.czlis.common.utils.ServletUtils;
@ -13,6 +14,7 @@ import eu.bitwalker.useragentutils.UserAgent;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,8 +32,9 @@ import java.util.concurrent.TimeUnit;
* @author admin
*/
@Component
@Slf4j
public class TokenService {
private static final Logger log = LoggerFactory.getLogger(TokenService.class);
//private static final Logger log = LoggerFactory.getLogger(TokenService.class);
// 令牌自定义标识
@Value("${token.header}")

View File

@ -1,11 +1,13 @@
package com.czlis.system.web.service;
import com.czlis.common.core.domain.entity.SysLoginParam;
import com.czlis.common.core.domain.entity.SysUser;
import com.czlis.common.core.domain.model.LoginUser;
import com.czlis.common.enums.UserStatus;
import com.czlis.common.exception.ServiceException;
import com.czlis.common.utils.MessageUtils;
import com.czlis.common.utils.StringUtils;
import com.czlis.interfaceCommon.utils.LoginConfigParamUtil;
import com.czlis.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
@ -27,12 +29,13 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private ISysUserService userService;
@Autowired
private SysPasswordService passwordService;
@Autowired
private SysPermissionService permissionService;
@Autowired
private LoginConfigParamUtil loginConfigParamUtil;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
@ -48,12 +51,15 @@ public class UserDetailsServiceImpl implements UserDetailsService {
throw new ServiceException(MessageUtils.message("user.blocked"));
}
//登录系统,携带的用户自定义参数
SysLoginParam sysLoginParam = loginConfigParamUtil.getLoginConfigParam();
passwordService.validate(user);
return createLoginUser(user);
return createLoginUser(user,sysLoginParam);
}
public UserDetails createLoginUser(SysUser user) {
public UserDetails createLoginUser(SysUser user, SysLoginParam sysLoginParam) {
return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
}
}