增加临时参数列表

This commit is contained in:
jiangs 2025-09-26 10:28:26 +08:00
parent 9332e9355d
commit 24470a6a3f
13 changed files with 85 additions and 36 deletions

View File

@ -11,6 +11,11 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class SysLoginParam { public class SysLoginParam {
/**
* 登录的医疗机构
*/
private String loginYLJG;
/** /**
* 默认仪器 * 默认仪器
*/ */

View File

@ -106,14 +106,14 @@ 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; private SysLoginParam sysLoginParam;
public String getLoginYLJG() { public SysLoginParam getSysLoginParam() {
return loginYLJG; return sysLoginParam;
} }
public void setLoginYLJG(String loginYLJG) { public void setSysLoginParam(SysLoginParam sysLoginParam) {
this.loginYLJG = loginYLJG; this.sysLoginParam = sysLoginParam;
} }
public String getVshisuser() { public String getVshisuser() {

View File

@ -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.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;
@ -15,8 +14,6 @@ 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 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.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,20 +1,43 @@
package com.czlis.interfaceCommon.utils; package com.czlis.interfaceCommon.utils;
import com.czlis.common.core.domain.entity.SysLoginParam; 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; import org.springframework.stereotype.Component;
/** /**
* 登录自定义配置类 * 登录自定义配置工具类
*/ */
@Component @Component
public class LoginConfigParamUtil { public class LoginConfigParamUtil {
@Autowired
private TokenService tokenService;
/**
* 获取登录之后,该回话产生的登录信息
* @return
*/
public SysLoginParam getLoginConfigParam() { public SysLoginParam getLoginConfigParam() {
SysLoginParam loginConfigParam = new SysLoginParam(); return SecurityUtils.getLoginUser().getSysLoginParam();
loginConfigParam.setYq(""); }
return loginConfigParam;
/**
* 设置登录的自定义信息
* @param sysLoginParam
*/
public void setLoginConfigParam(SysLoginParam sysLoginParam) {
LoginUser loginUser = SecurityUtils.getLoginUser();
loginUser.setSysLoginParam(sysLoginParam);
tokenService.refreshToken(loginUser);
} }
} }

View File

@ -3,7 +3,7 @@ package com.czlis.system.security.filter;
import com.czlis.common.core.domain.model.LoginUser; import com.czlis.common.core.domain.model.LoginUser;
import com.czlis.common.utils.SecurityUtils; import com.czlis.common.utils.SecurityUtils;
import com.czlis.common.utils.StringUtils; 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.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;

View File

@ -9,7 +9,7 @@ import com.czlis.common.utils.ServletUtils;
import com.czlis.common.utils.StringUtils; import com.czlis.common.utils.StringUtils;
import com.czlis.common.asyncmanager.AsyncManager; import com.czlis.common.asyncmanager.AsyncManager;
import com.czlis.system.manager.factory.AsyncFactory; 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.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;

View File

@ -10,7 +10,7 @@ import com.czlis.common.utils.SecurityUtils;
import com.czlis.system.service.ISysMenuService; import com.czlis.system.service.ISysMenuService;
import com.czlis.system.web.service.SysLoginService; import com.czlis.system.web.service.SysLoginService;
import com.czlis.system.web.service.SysPermissionService; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -49,8 +49,9 @@ public class SysLoginController {
public AjaxResult login(@RequestBody LoginBody loginBody) { public AjaxResult login(@RequestBody LoginBody loginBody) {
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.getLoginParam().getLoginYLJG()); // loginBody.getUuid(),loginBody.getLoginParam().getLoginYLJG());
String token = loginService.login(loginBody);
ajax.put(Constants.TOKEN, token); ajax.put(Constants.TOKEN, token);
return ajax; return ajax;
} }

View File

@ -12,7 +12,7 @@ import com.czlis.common.utils.StringUtils;
import com.czlis.common.utils.file.FileUploadUtils; import com.czlis.common.utils.file.FileUploadUtils;
import com.czlis.common.utils.file.MimeTypeUtils; import com.czlis.common.utils.file.MimeTypeUtils;
import com.czlis.system.service.ISysUserService; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;

View File

@ -16,7 +16,7 @@ import com.czlis.system.service.ISysDeptService;
import com.czlis.system.service.ISysRoleService; import com.czlis.system.service.ISysRoleService;
import com.czlis.system.service.ISysUserService; import com.czlis.system.service.ISysUserService;
import com.czlis.system.web.service.SysPermissionService; 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.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;

View File

@ -3,7 +3,9 @@ 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.constant.UserConstants; 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.entity.SysUser;
import com.czlis.common.core.domain.model.LoginBody;
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.exception.ServiceException; 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.StringUtils;
import com.czlis.common.utils.ip.IpUtils; import com.czlis.common.utils.ip.IpUtils;
import com.czlis.common.asyncmanager.AsyncManager; import com.czlis.common.asyncmanager.AsyncManager;
import com.czlis.interfaceCommon.service.TokenService;
import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.system.manager.factory.AsyncFactory; import com.czlis.system.manager.factory.AsyncFactory;
import com.czlis.system.mapper.SysUserMapper; import com.czlis.system.mapper.SysUserMapper;
import com.czlis.system.security.context.AuthenticationContextHolder; import com.czlis.system.security.context.AuthenticationContextHolder;
import com.czlis.system.service.ISysConfigService; import com.czlis.system.service.ISysConfigService;
import com.czlis.system.service.ISysUserService; import com.czlis.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
@ -35,6 +39,7 @@ import java.util.Random;
* @author admin * @author admin
*/ */
@Component @Component
@Slf4j
public class SysLoginService { public class SysLoginService {
@Autowired @Autowired
private TokenService tokenService; private TokenService tokenService;
@ -57,14 +62,22 @@ public class SysLoginService {
/** /**
* 登录验证 * 登录验证
*
* @param username 用户名
* @param password 密码
* @param code 验证码
* @param uuid 唯一标识
* @return 结果 * @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); 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"))); AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal(); LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId()); recordLoginInfo(loginUser.getUserId());
//设置登录的参数到缓存
SysLoginParam sysLoginParam = new SysLoginParam();
sysLoginParam.setLoginYLJG(loginYLJG);
loginUser.setSysLoginParam(sysLoginParam);
// 生成token // 生成token
SysUser user = loginUser.getUser();
user.setLoginYLJG(loginYLJG); //设置登录的医疗机构
return tokenService.createToken(loginUser); return tokenService.createToken(loginUser);
} }
@ -167,7 +182,7 @@ public class SysLoginService {
} }
/** /**
* 登录验证 * 单点登录验证
* *
* @param username 用户名 * @param username 用户名
* @param password 密码 * @param password 密码

View File

@ -33,8 +33,6 @@ public class UserDetailsServiceImpl implements UserDetailsService {
private SysPasswordService passwordService; private SysPasswordService passwordService;
@Autowired @Autowired
private SysPermissionService permissionService; private SysPermissionService permissionService;
@Autowired
private LoginConfigParamUtil loginConfigParamUtil;
@Override @Override
@ -51,15 +49,12 @@ 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,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)); return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
} }
} }

View File

@ -2,9 +2,11 @@ package com.czlis.liswork.controller.work;
import com.czlis.common.core.controller.BaseController; import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.Result; 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.LabPat;
import com.czlis.common.core.domain.entity.lis.LabResult; import com.czlis.common.core.domain.entity.lis.LabResult;
import com.czlis.common.core.page.TableDataInfo; import com.czlis.common.core.page.TableDataInfo;
import com.czlis.interfaceCommon.utils.LoginConfigParamUtil;
import com.czlis.liswork.mapper.LisWorkMapper; import com.czlis.liswork.mapper.LisWorkMapper;
import com.czlis.liswork.service.LabPatService; import com.czlis.liswork.service.LabPatService;
import com.czlis.liswork.service.LabResultService; import com.czlis.liswork.service.LabResultService;
@ -34,6 +36,8 @@ public class LisWorkController extends BaseController {
private LabPatService labPatService; private LabPatService labPatService;
@Autowired @Autowired
private LabResultService labResultService; private LabResultService labResultService;
@Autowired
LoginConfigParamUtil loginConfigParamUtil;
/** /**
* 可操作仪器查询 * 可操作仪器查询
* *
@ -42,6 +46,10 @@ public class LisWorkController extends BaseController {
@ApiOperation("可操作仪器查询") @ApiOperation("可操作仪器查询")
@GetMapping("/instrdlist") @GetMapping("/instrdlist")
public Result getInstrdList() { public Result getInstrdList() {
//初始化参数试试
// SysLoginParam loginConfigParam = loginConfigParamUtil.getLoginConfigParam();
// loginConfigParam.setYq("BC5300");
// loginConfigParamUtil.setLoginConfigParam(loginConfigParam);
return lisWorkService.getInstrdList(getUserId()); return lisWorkService.getInstrdList(getUserId());
} }

View File

@ -9,6 +9,7 @@ import com.czlis.common.utils.MessageUtils;
import com.czlis.common.utils.SecurityUtils; import com.czlis.common.utils.SecurityUtils;
import com.czlis.common.utils.StringUtils; import com.czlis.common.utils.StringUtils;
import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.interfaceCommon.utils.LoginConfigParamUtil;
import com.czlis.liswork.mapper.LisWorkMapper; import com.czlis.liswork.mapper.LisWorkMapper;
@ -30,6 +31,9 @@ public class LisWorkServiceImpl implements LisWorkService {
CommonUtil commonUtil; CommonUtil commonUtil;
@Autowired @Autowired
private InstrMapper instrMapper; private InstrMapper instrMapper;
@Autowired
LoginConfigParamUtil loginConfigParamUtil;
@Override @Override
public Result getXmInfo(String yq) { public Result getXmInfo(String yq) {
List<XmInfo> xmInfoList =commonUtil.getXmInfoList(yq); List<XmInfo> xmInfoList =commonUtil.getXmInfoList(yq);
@ -42,6 +46,7 @@ public class LisWorkServiceImpl implements LisWorkService {
} }
@Override @Override
public Result getInstrdList(Long userId) { public Result getInstrdList(Long userId) {
List<Map<String,Object>> comUsrpowerList = lisWorkMapper.getInstrdList(String.valueOf(userId)); List<Map<String,Object>> comUsrpowerList = lisWorkMapper.getInstrdList(String.valueOf(userId));
return new Result("0","获取仪器列表成功!",comUsrpowerList); return new Result("0","获取仪器列表成功!",comUsrpowerList);
} }