From fc868e56b1e8199d2c4267fae74c44cfa62a777f Mon Sep 17 00:00:00 2001 From: zjh <zjh@888> Date: 星期三, 31 一月 2024 09:13:51 +0800 Subject: [PATCH] zjh 本地 2024/01/31 -1 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java | 70 +++++++++++++++++++++++++++++++--- 1 files changed, 63 insertions(+), 7 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java index 6f1125e..21165b2 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java @@ -3,11 +3,20 @@ import java.awt.peer.LabelPeer; import java.util.*; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.annotation.RepeatSubmit; +import com.ltkj.common.core.domain.entity.SysDept; import com.ltkj.common.core.domain.entity.SysRole; +import com.ltkj.common.core.redis.RedisCache; +import com.ltkj.common.exception.CustomException; +import com.ltkj.common.exception.user.SecretKeyException; import com.ltkj.common.utils.StringUtils; +import com.ltkj.framework.config.UserHoder; +import com.ltkj.hosp.domain.DictHosp; import com.ltkj.hosp.domain.TjCustomer; +import com.ltkj.hosp.service.IDictHospService; import com.ltkj.hosp.service.ITjCustomerService; import com.ltkj.system.domain.SysPost; import com.ltkj.system.domain.SysRoleMenu; @@ -17,6 +26,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import com.ltkj.common.constant.Constants; import com.ltkj.common.core.domain.AjaxResult; @@ -41,13 +51,10 @@ public class SysLoginController { @Autowired private SysLoginService loginService; - @Autowired private ISysMenuService menuService; - @Autowired private SysPermissionService permissionService; - @Resource private ITjCustomerService customerService; @Resource @@ -56,6 +63,17 @@ private ISysRoleMenuService roleMenuService; @Autowired private ISysConfigService configService; + @Resource + private IDictHospService hospService; + @Autowired + private ISysDeptService deptService; + @Value("${token.secret_key}") + private String secret; + + @Value("${token.secret_key_login}") + private boolean secretKeyLogin; + @Autowired + private RedisCache redisCache; /** * 鐧诲綍鏂规硶 @@ -71,9 +89,9 @@ // 鐢熸垚浠ょ墝 String token; if (loginBody.getMobile()) { - token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getType(),loginBody.getCode(),loginBody.getUuid()); + token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getType(), loginBody.getCode(), loginBody.getUuid()); } else { - token = loginService.Cuslogin(loginBody.getUsername(), loginBody.getPassword(), loginBody.getType(),loginBody.getCode(),loginBody.getUuid()); + token = loginService.Cuslogin(loginBody.getUsername(), loginBody.getPassword(), loginBody.getType(), loginBody.getCode(), loginBody.getUuid()); } if (null == token) { return success("璇ヨ处鍙锋鍦ㄤ娇鐢ㄤ腑"); @@ -90,13 +108,49 @@ @GetMapping("getInfo") public AjaxResult getInfo() { AjaxResult ajax = success(); - SysUser user = Objects.requireNonNull(SecurityUtils.getLoginUser()).getUser(); + SysUser user = UserHoder.getLoginUser().getUser(); if (null != user.getUserId()) { + if (secretKeyLogin) { + if (null != user.getDeptId()) { + SysDept sysDept = deptService.getById(user.getDeptId()); + if (null != sysDept) { + DictHosp dictHosp = hospService.getById(sysDept.getHospId()); + if (null != dictHosp) { + user.setHospName(dictHosp.getHospAreaName()); + user.setHospId(dictHosp.getHospAreaId()); + } + if (!SecurityUtils.isAdmin(user.getUserId())) { + if (null != dictHosp && dictHosp.getSecretKey() != null && dictHosp.getExpirationTime() != null) { + if (!SecurityUtils.matchesMallMerchantSecretKey(secret, dictHosp.getHospAreaId(), dictHosp.getHospAreaName(), + dictHosp.getExpirationTime(), dictHosp.getSecretKey())) { + + String userIdKey = Constants.LOGIN_USERID_KEY + user.getUserId(); + String userKey = redisCache.getCacheObject(userIdKey); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(userKey)) { + redisCache.deleteObject(userIdKey); + redisCache.deleteObject(userKey); + } + throw new SecretKeyException("鍟嗗宸茶繃鏈熻缁垂浣跨敤"); + } + long between = DateUtil.between(new Date(), DateUtil.endOfDay(dictHosp.getExpirationTime()), DateUnit.DAY); + if (between <= 30) { + UserHoder.getLoginUser().setMessage("杩樻湁 " + between + " 澶╁埌鏈� 璇锋敞鎰忕画璐�! 浠ュ厤褰卞搷姝e父浣跨敤!"); + } + } else { + throw new SecretKeyException("璇风即璐逛娇鐢�"); + } + } + } + + } + } Set<String> roles = permissionService.getRolePermission(user); Set<String> permissions = permissionService.getMenuPermission(user); ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); + ajax.put("securitMessage", UserHoder.getLoginUser().getMessage()); + ajax.put("hospName", UserHoder.getLoginUser().getHospName()); } else { Set<String> roles = new HashSet<>(); LambdaQueryWrapper<SysRole> wq = new LambdaQueryWrapper<>(); @@ -115,7 +169,9 @@ ajax.put("user", user1); ajax.put("roles", roles); ajax.put("permissions", permissions); - ajax.put("post",null); + ajax.put("post", null); + ajax.put("securitMessage", null); + ajax.put("hospName", UserHoder.getLoginUser().getHospName()); } return ajax; } -- Gitblit v1.8.0