From 9332e9355deafb17d3940f28f368db8484e5f4fc Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 24 Sep 2025 18:17:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/SysLoginParam.java | 18 ++++++++ .../common/core/domain/entity/SysUser.java | 19 ++++++++- .../common/core/domain/model/LoginBody.java | 41 +++++-------------- .../common/core/domain/model/LoginParam.java | 12 ++++++ .../common/core/domain/model/LoginUser.java | 19 +++++++++ .../utils/LoginConfigParamUtil.java | 20 +++++++++ .../controller/system/SysLoginController.java | 2 +- .../system/web/service/SysLoginService.java | 4 +- .../system/web/service/TokenService.java | 5 ++- .../web/service/UserDetailsServiceImpl.java | 14 +++++-- 10 files changed, 116 insertions(+), 38 deletions(-) create mode 100644 lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java create mode 100644 lis-common/src/main/java/com/czlis/common/core/domain/model/LoginParam.java create mode 100644 lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java new file mode 100644 index 0000000..87dfce3 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java @@ -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; +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysUser.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysUser.java index 2f4744e..8ecb8e8 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysUser.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysUser.java @@ -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(); } } diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginBody.java b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginBody.java index ceb869c..8b5d74e 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginBody.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginBody.java @@ -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; - } } diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginParam.java b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginParam.java new file mode 100644 index 0000000..4b6d178 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginParam.java @@ -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; +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginUser.java b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginUser.java index 23a59ff..2de5b1b 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginUser.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/model/LoginUser.java @@ -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 permissions,SysLoginParam sysLoginParam) { + this.userId = userId; + this.deptId = deptId; + this.user = user; + this.permissions = permissions; + this.sysLoginParam = sysLoginParam; + } + public Long getUserId() { return userId; } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java new file mode 100644 index 0000000..6e0845c --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java @@ -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; + } + + +} diff --git a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysLoginController.java b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysLoginController.java index 048213d..7f4a49c 100644 --- a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysLoginController.java +++ b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysLoginController.java @@ -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; } diff --git a/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java b/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java index d7cf20d..eafec00 100644 --- a/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java +++ b/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java @@ -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); } diff --git a/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java b/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java index c7132f4..1ac7c89 100644 --- a/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java +++ b/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java @@ -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}") diff --git a/lis-system/src/main/java/com/czlis/system/web/service/UserDetailsServiceImpl.java b/lis-system/src/main/java/com/czlis/system/web/service/UserDetailsServiceImpl.java index 755e833..5a3fac2 100644 --- a/lis-system/src/main/java/com/czlis/system/web/service/UserDetailsServiceImpl.java +++ b/lis-system/src/main/java/com/czlis/system/web/service/UserDetailsServiceImpl.java @@ -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)); } }