增加临时参数列表

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
@NoArgsConstructor
public class SysLoginParam {
/**
* 登录的医疗机构
*/
private String loginYLJG;
/**
* 默认仪器
*/

View File

@ -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() {

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.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;

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

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.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;

View File

@ -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;

View File

@ -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 密码

View File

@ -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));
}
}

View File

@ -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());
}

View File

@ -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<XmInfo> xmInfoList =commonUtil.getXmInfoList(yq);
@ -42,6 +46,7 @@ public class LisWorkServiceImpl implements LisWorkService {
}
@Override
public Result getInstrdList(Long userId) {
List<Map<String,Object>> comUsrpowerList = lisWorkMapper.getInstrdList(String.valueOf(userId));
return new Result("0","获取仪器列表成功!",comUsrpowerList);
}