From dba27f21bc05c999ace46fe15be6e4c824ed9104 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 13 十二月 2024 18:40:09 +0800
Subject: [PATCH] zjh202412013

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