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 index 87dfce3..7a69c03 100644 --- 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 @@ -11,6 +11,11 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class SysLoginParam { + + /** + * 登录的医疗机构 + */ + private String loginYLJG; /** * 默认仪器 */ 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 8ecb8e8..696951e 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,14 +106,14 @@ public class SysUser extends BaseEntity private String snid; private String signCert; private String sn_pin; - private String loginYLJG; + private SysLoginParam sysLoginParam; - public String getLoginYLJG() { - return loginYLJG; + public SysLoginParam getSysLoginParam() { + return sysLoginParam; } - public void setLoginYLJG(String loginYLJG) { - this.loginYLJG = loginYLJG; + public void setSysLoginParam(SysLoginParam sysLoginParam) { + this.sysLoginParam = sysLoginParam; } public String getVshisuser() { diff --git a/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/TokenService.java similarity index 97% rename from lis-system/src/main/java/com/czlis/system/web/service/TokenService.java rename to lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/TokenService.java index 1ac7c89..8dda4fd 100644 --- a/lis-system/src/main/java/com/czlis/system/web/service/TokenService.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/TokenService.java @@ -1,8 +1,7 @@ -package com.czlis.system.web.service; +package com.czlis.interfaceCommon.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; @@ -15,8 +14,6 @@ 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; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; 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 index 6e0845c..4dc6680 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LoginConfigParamUtil.java @@ -1,20 +1,43 @@ package com.czlis.interfaceCommon.utils; + import com.czlis.common.core.domain.entity.SysLoginParam; +import com.czlis.common.core.domain.model.LoginUser; +import com.czlis.common.utils.SecurityUtils; +import com.czlis.interfaceCommon.service.TokenService; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Component; /** - * 登录自定义配置类 + * 登录自定义配置工具类 */ @Component public class LoginConfigParamUtil { + @Autowired + private TokenService tokenService; + + /** + * 获取登录之后,该回话产生的登录信息 + * @return + */ public SysLoginParam getLoginConfigParam() { - SysLoginParam loginConfigParam = new SysLoginParam(); - loginConfigParam.setYq(""); - return loginConfigParam; + return SecurityUtils.getLoginUser().getSysLoginParam(); + } + + /** + * 设置登录的自定义信息 + * @param sysLoginParam + */ + public void setLoginConfigParam(SysLoginParam sysLoginParam) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + loginUser.setSysLoginParam(sysLoginParam); + tokenService.refreshToken(loginUser); } + + } diff --git a/lis-system/src/main/java/com/czlis/system/security/filter/JwtAuthenticationTokenFilter.java b/lis-system/src/main/java/com/czlis/system/security/filter/JwtAuthenticationTokenFilter.java index eac56f2..44f3596 100644 --- a/lis-system/src/main/java/com/czlis/system/security/filter/JwtAuthenticationTokenFilter.java +++ b/lis-system/src/main/java/com/czlis/system/security/filter/JwtAuthenticationTokenFilter.java @@ -3,7 +3,7 @@ package com.czlis.system.security.filter; import com.czlis.common.core.domain.model.LoginUser; import com.czlis.common.utils.SecurityUtils; import com.czlis.common.utils.StringUtils; -import com.czlis.system.web.service.TokenService; +import com.czlis.interfaceCommon.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; diff --git a/lis-system/src/main/java/com/czlis/system/security/handle/LogoutSuccessHandlerImpl.java b/lis-system/src/main/java/com/czlis/system/security/handle/LogoutSuccessHandlerImpl.java index 8921aa0..1202910 100644 --- a/lis-system/src/main/java/com/czlis/system/security/handle/LogoutSuccessHandlerImpl.java +++ b/lis-system/src/main/java/com/czlis/system/security/handle/LogoutSuccessHandlerImpl.java @@ -9,7 +9,7 @@ import com.czlis.common.utils.ServletUtils; import com.czlis.common.utils.StringUtils; import com.czlis.common.asyncmanager.AsyncManager; import com.czlis.system.manager.factory.AsyncFactory; -import com.czlis.system.web.service.TokenService; +import com.czlis.interfaceCommon.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.core.Authentication; 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 7f4a49c..45fa0fc 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 @@ -10,7 +10,7 @@ import com.czlis.common.utils.SecurityUtils; import com.czlis.system.service.ISysMenuService; import com.czlis.system.web.service.SysLoginService; import com.czlis.system.web.service.SysPermissionService; -import com.czlis.system.web.service.TokenService; +import com.czlis.interfaceCommon.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -49,8 +49,9 @@ public class SysLoginController { public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); // 生成令牌 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), - loginBody.getUuid(),loginBody.getLoginParam().getLoginYLJG()); +// String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), +// loginBody.getUuid(),loginBody.getLoginParam().getLoginYLJG()); + String token = loginService.login(loginBody); ajax.put(Constants.TOKEN, token); return ajax; } diff --git a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysProfileController.java b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysProfileController.java index 92e4a94..f42511c 100644 --- a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysProfileController.java +++ b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysProfileController.java @@ -12,7 +12,7 @@ import com.czlis.common.utils.StringUtils; import com.czlis.common.utils.file.FileUploadUtils; import com.czlis.common.utils.file.MimeTypeUtils; import com.czlis.system.service.ISysUserService; -import com.czlis.system.web.service.TokenService; +import com.czlis.interfaceCommon.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; diff --git a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysRoleController.java b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysRoleController.java index 8176101..093539c 100644 --- a/lis-system/src/main/java/com/czlis/system/web/controller/system/SysRoleController.java +++ b/lis-system/src/main/java/com/czlis/system/web/controller/system/SysRoleController.java @@ -16,7 +16,7 @@ import com.czlis.system.service.ISysDeptService; import com.czlis.system.service.ISysRoleService; import com.czlis.system.service.ISysUserService; import com.czlis.system.web.service.SysPermissionService; -import com.czlis.system.web.service.TokenService; +import com.czlis.interfaceCommon.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; 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 eafec00..4eade82 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 @@ -3,7 +3,9 @@ package com.czlis.system.web.service; import com.czlis.common.constant.CacheConstants; import com.czlis.common.constant.Constants; import com.czlis.common.constant.UserConstants; +import com.czlis.common.core.domain.entity.SysLoginParam; import com.czlis.common.core.domain.entity.SysUser; +import com.czlis.common.core.domain.model.LoginBody; import com.czlis.common.core.domain.model.LoginUser; import com.czlis.common.core.redis.RedisCache; import com.czlis.common.exception.ServiceException; @@ -13,12 +15,14 @@ import com.czlis.common.utils.MessageUtils; import com.czlis.common.utils.StringUtils; import com.czlis.common.utils.ip.IpUtils; import com.czlis.common.asyncmanager.AsyncManager; +import com.czlis.interfaceCommon.service.TokenService; import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.system.manager.factory.AsyncFactory; import com.czlis.system.mapper.SysUserMapper; import com.czlis.system.security.context.AuthenticationContextHolder; import com.czlis.system.service.ISysConfigService; import com.czlis.system.service.ISysUserService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; @@ -35,6 +39,7 @@ import java.util.Random; * @author admin */ @Component +@Slf4j public class SysLoginService { @Autowired private TokenService tokenService; @@ -57,14 +62,22 @@ public class SysLoginService { /** * 登录验证 - * - * @param username 用户名 - * @param password 密码 - * @param code 验证码 - * @param uuid 唯一标识 * @return 结果 */ - public String login(String username, String password, String code, String uuid,String loginYLJG) { + public String login(LoginBody loginBody) { + String username = loginBody.getUsername(); //登录用户名 + String password = loginBody.getPassword(); //登录密码 + String code = ""; + String uuid = ""; + String loginYLJG = ""; + try{ + code = loginBody.getCode(); + uuid = loginBody.getUuid(); + loginYLJG = loginBody.getLoginParam().getLoginYLJG(); //登录的医疗机构 + }catch (Exception e){ + e.printStackTrace(); + log.error("获取登录信息失败:",e); + } // 验证码校验 validateCaptcha(username, code, uuid); // 登录前置校验 @@ -90,9 +103,11 @@ public class SysLoginService { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); recordLoginInfo(loginUser.getUserId()); + //设置登录的参数到缓存 + SysLoginParam sysLoginParam = new SysLoginParam(); + sysLoginParam.setLoginYLJG(loginYLJG); + loginUser.setSysLoginParam(sysLoginParam); // 生成token - SysUser user = loginUser.getUser(); - user.setLoginYLJG(loginYLJG); //设置登录的医疗机构 return tokenService.createToken(loginUser); } @@ -167,7 +182,7 @@ public class SysLoginService { } /** - * 登录验证 + * 单点登录验证 * * @param username 用户名 * @param password 密码 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 5a3fac2..2320256 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 @@ -33,8 +33,6 @@ public class UserDetailsServiceImpl implements UserDetailsService { private SysPasswordService passwordService; @Autowired private SysPermissionService permissionService; - @Autowired - private LoginConfigParamUtil loginConfigParamUtil; @Override @@ -51,15 +49,12 @@ public class UserDetailsServiceImpl implements UserDetailsService { throw new ServiceException(MessageUtils.message("user.blocked")); } - //登录系统,携带的用户自定义参数 - SysLoginParam sysLoginParam = loginConfigParamUtil.getLoginConfigParam(); - passwordService.validate(user); - return createLoginUser(user,sysLoginParam); + return createLoginUser(user); } - public UserDetails createLoginUser(SysUser user, SysLoginParam sysLoginParam) { + public UserDetails createLoginUser(SysUser user) { return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); } } diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkController.java index 3e1483e..19a26b0 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkController.java @@ -2,9 +2,11 @@ package com.czlis.liswork.controller.work; import com.czlis.common.core.controller.BaseController; import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.SysLoginParam; import com.czlis.common.core.domain.entity.lis.LabPat; import com.czlis.common.core.domain.entity.lis.LabResult; import com.czlis.common.core.page.TableDataInfo; +import com.czlis.interfaceCommon.utils.LoginConfigParamUtil; import com.czlis.liswork.mapper.LisWorkMapper; import com.czlis.liswork.service.LabPatService; import com.czlis.liswork.service.LabResultService; @@ -34,6 +36,8 @@ public class LisWorkController extends BaseController { private LabPatService labPatService; @Autowired private LabResultService labResultService; + @Autowired + LoginConfigParamUtil loginConfigParamUtil; /** * 可操作仪器查询 * @@ -42,6 +46,10 @@ public class LisWorkController extends BaseController { @ApiOperation("可操作仪器查询") @GetMapping("/instrdlist") public Result getInstrdList() { + //初始化参数试试 +// SysLoginParam loginConfigParam = loginConfigParamUtil.getLoginConfigParam(); +// loginConfigParam.setYq("BC5300"); +// loginConfigParamUtil.setLoginConfigParam(loginConfigParam); return lisWorkService.getInstrdList(getUserId()); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java index 1f9d2a1..08674e2 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java @@ -9,6 +9,7 @@ import com.czlis.common.utils.MessageUtils; import com.czlis.common.utils.SecurityUtils; import com.czlis.common.utils.StringUtils; import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.interfaceCommon.utils.LoginConfigParamUtil; import com.czlis.liswork.mapper.LisWorkMapper; @@ -30,6 +31,9 @@ public class LisWorkServiceImpl implements LisWorkService { CommonUtil commonUtil; @Autowired private InstrMapper instrMapper; + @Autowired + LoginConfigParamUtil loginConfigParamUtil; + @Override public Result getXmInfo(String yq) { List xmInfoList =commonUtil.getXmInfoList(yq); @@ -42,6 +46,7 @@ public class LisWorkServiceImpl implements LisWorkService { } @Override public Result getInstrdList(Long userId) { + List> comUsrpowerList = lisWorkMapper.getInstrdList(String.valueOf(userId)); return new Result("0","获取仪器列表成功!",comUsrpowerList); }