From 8cde7ee1143bae70eb68d2b75f572d5b4dbadf98 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 12 十月 2023 17:47:00 +0800
Subject: [PATCH] zjh 2023/10/12--1

---
 ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
index 3ff7c18..171dd14 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
@@ -2,16 +2,24 @@
 
 import javax.annotation.Resource;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.constant.CacheConstants;
+import com.ltkj.common.core.domain.entity.SysDept;
+import com.ltkj.common.exception.CustomException;
 import com.ltkj.common.exception.user.CaptchaException;
 import com.ltkj.common.exception.user.CaptchaExpireException;
+import com.ltkj.common.exception.user.SecretKeyException;
 import com.ltkj.common.utils.*;
 import com.ltkj.common.utils.sign.RsaUtils;
 import com.ltkj.framework.config.JwtUtils;
 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.service.ISysDeptService;
 import com.ltkj.system.service.ISysMenuService;
 import com.ltkj.system.service.SysParametersDisposeService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +41,7 @@
 import com.ltkj.framework.security.context.AuthenticationContextHolder;
 import com.ltkj.system.service.ISysUserService;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,13 +69,22 @@
 
     @Resource
     private ISysMenuService menuService;
-
+    @Resource
+    private IDictHospService hospService;
+    @Autowired
+    private ISysDeptService deptService;
     @Autowired
     private SysParametersDisposeService parametersDisposeService;
 
     // 鏄惁鍏佽璐︽埛澶氱粓绔悓鏃剁櫥褰曪紙true鍏佽 false涓嶅厑璁革級
     @Value("${token.soloLogin}")
     private boolean soloLogin;
+
+    @Value("${token.secret_key}")
+    private String secret;
+
+    @Value("${token.secret_key_login}")
+    private boolean secretKeyLogin;
 
 
     /**
@@ -116,6 +134,41 @@
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         recordLoginInfo(Long.valueOf(loginUser.getUserId()));
 
+        //鏍¢獙鍟嗗杩囨湡鍚�
+        if (secretKeyLogin)
+        {
+            Long userId =loginUser.getUser().getUserId();
+            SysUser user = userService.getById(userId);
+            if(null !=user && null !=user.getDeptId()){
+//                loginUser.getUser().setOrgId(user.getOrgId());
+                if(!SecurityUtils.isAdmin(user.getUserId())){
+                    SysDept sysDept = deptService.getById(user.getDeptId());
+                    if (null != sysDept) {
+                        DictHosp dictHosp = hospService.getById(sysDept.getHospId());
+                        if(null !=dictHosp && dictHosp.getSecretKey() !=null && dictHosp.getExpirationTime() !=null){
+                            if (!SecurityUtils.matchesMallMerchantSecretKey(secret,dictHosp.getHospAreaId(),dictHosp.getAreaid(),
+                                    dictHosp.getExpirationTime(),dictHosp.getSecretKey())) {
+                                throw new SecretKeyException("鍟嗗宸茶繃鏈熻缁垂浣跨敤");
+                            }
+                            long between = DateUtil.between(new Date(), DateUtil.endOfDay(dictHosp.getExpirationTime()), DateUnit.DAY);
+                            if(between<=30){
+                                loginUser.setMessage("杩樻湁 "+between+" 澶╁埌鏈� 璇锋敞鎰忕画璐�! 浠ュ厤褰卞搷姝e父浣跨敤!");
+                            }else {
+                                loginUser.setMessage(null);
+                            }
+
+                        }else {
+                            throw new SecretKeyException("璇风即璐逛娇鐢�");
+                        }
+                    }
+                }
+
+            }else {
+                throw new CustomException("璇风粦瀹氬晢瀹�");
+            }
+
+        }
+
 //       闄愬埗璐︽埛涓嶅厑璁稿缁堢鐧诲綍
         if (!soloLogin) {
             // 濡傛灉鐢ㄦ埛涓嶅厑璁稿缁堢鍚屾椂鐧诲綍锛屾竻闄ょ紦瀛樹俊鎭�

--
Gitblit v1.8.0