登录用户缓存

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 snid;
private String signCert; private String signCert;
private String sn_pin; private String sn_pin;
private String loginYLJG;
public String getLoginYLJG() {
return loginYLJG;
}
public void setLoginYLJG(String loginYLJG) {
this.loginYLJG = loginYLJG;
}
public String getVshisuser() { public String getVshisuser() {
return vshisuser; return vshisuser;
@ -401,6 +410,14 @@ public class SysUser extends BaseEntity
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.append("dept", getDept()) .append("dept", getDept())
.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(); .toString();
} }
} }

View File

@ -1,10 +1,17 @@
package com.czlis.common.core.domain.model; package com.czlis.common.core.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
* 用户登录对象 * 用户登录对象
* *
* @author admin * @author admin
*/ */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginBody { public class LoginBody {
/** /**
* 用户名 * 用户名
@ -26,35 +33,9 @@ public class LoginBody {
*/ */
private String uuid; 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; package com.czlis.common.core.domain.model;
import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.annotation.JSONField;
import com.czlis.common.core.domain.entity.SysLoginParam;
import com.czlis.common.core.domain.entity.SysUser; import com.czlis.common.core.domain.entity.SysUser;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
@ -71,6 +72,16 @@ public class LoginUser implements UserDetails {
*/ */
private SysUser user; private SysUser user;
public SysLoginParam getSysLoginParam() {
return sysLoginParam;
}
public void setSysLoginParam(SysLoginParam sysLoginParam) {
this.sysLoginParam = sysLoginParam;
}
private SysLoginParam sysLoginParam;
public LoginUser() { public LoginUser() {
} }
@ -86,6 +97,14 @@ public class LoginUser implements UserDetails {
this.permissions = permissions; 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() { public Long getUserId() {
return userId; 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(); AjaxResult ajax = AjaxResult.success();
// 生成令牌 // 生成令牌
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
loginBody.getUuid()); loginBody.getUuid(),loginBody.getLoginParam().getLoginYLJG());
ajax.put(Constants.TOKEN, token); ajax.put(Constants.TOKEN, token);
return ajax; return ajax;
} }

View File

@ -64,7 +64,7 @@ public class SysLoginService {
* @param uuid 唯一标识 * @param uuid 唯一标识
* @return 结果 * @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); validateCaptcha(username, code, uuid);
// 登录前置校验 // 登录前置校验
@ -91,6 +91,8 @@ public class SysLoginService {
LoginUser loginUser = (LoginUser) authentication.getPrincipal(); LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId()); recordLoginInfo(loginUser.getUserId());
// 生成token // 生成token
SysUser user = loginUser.getUser();
user.setLoginYLJG(loginYLJG); //设置登录的医疗机构
return tokenService.createToken(loginUser); 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.CacheConstants;
import com.czlis.common.constant.Constants; 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.domain.model.LoginUser;
import com.czlis.common.core.redis.RedisCache; import com.czlis.common.core.redis.RedisCache;
import com.czlis.common.utils.ServletUtils; import com.czlis.common.utils.ServletUtils;
@ -13,6 +14,7 @@ import eu.bitwalker.useragentutils.UserAgent;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -30,8 +32,9 @@ import java.util.concurrent.TimeUnit;
* @author admin * @author admin
*/ */
@Component @Component
@Slf4j
public class TokenService { public class TokenService {
private static final Logger log = LoggerFactory.getLogger(TokenService.class); //private static final Logger log = LoggerFactory.getLogger(TokenService.class);
// 令牌自定义标识 // 令牌自定义标识
@Value("${token.header}") @Value("${token.header}")

View File

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