From ae1471f378f399f76518539ec8992e64a3673436 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 08 一月 2025 15:26:06 +0800
Subject: [PATCH] 1.订单提交:订单最小金额配置

---
 src/main/java/com/mzl/flower/web/login/SupplierLoginController.java |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
index 0147a61..e48d848 100644
--- a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
+++ b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
@@ -5,13 +5,18 @@
 import com.mzl.flower.base.R;
 import com.mzl.flower.base.ReturnDataDTO;
 import com.mzl.flower.base.cache.StringCacheClient;
+import com.mzl.flower.config.GlobalSupplierVariables;
 import com.mzl.flower.config.exception.BaseException;
 import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.config.security.token.PhoneAuthenticationToken;
 import com.mzl.flower.config.security.token.SupAuthenticationToken;
 import com.mzl.flower.constant.Constants;
 import com.mzl.flower.dto.request.UserLoginDTO;
+import com.mzl.flower.dto.response.supplier.SupplierDTO;
+import com.mzl.flower.entity.supplier.SupplierSub;
 import com.mzl.flower.entity.system.User;
+import com.mzl.flower.mapper.supplier.SupplierMapper;
+import com.mzl.flower.mapper.supplier.SupplierSubMapper;
 import com.mzl.flower.service.login.LoginService;
 import com.mzl.flower.service.system.UserService;
 import io.swagger.annotations.Api;
@@ -29,6 +34,7 @@
 import org.springframework.security.oauth2.common.OAuth2RefreshToken;
 import org.springframework.security.oauth2.provider.token.TokenStore;
 import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -59,6 +65,17 @@
     @Autowired
     private TokenStore tokenStore;
 
+    @Autowired
+    private SupplierMapper supplierMapper;
+
+    @Autowired
+    private SupplierSubMapper supplierSubMapper;
+
+    @Autowired
+    private GlobalSupplierVariables globalSupplierVariables;
+
+
+
     public static final String SMS_CODE_KEY = "SMS-CODE-KEY";
 
     public static final String TOKEN_KEY = "TOKEN-KEY";
@@ -80,6 +97,31 @@
         User user = userService.findByTel(username, Constants.USER_TYPE.supplier.name());
         if(user == null){
             throw new ValidationException("用户不存在");
+        }
+        // 子账号校验:1.不存在->放行。
+        // 2.存在->校验是否已经禁用。
+        // 3.存在且未禁用->校验父级账号是否禁用。
+        // 4.父级禁用->提示
+        // 5.父级未禁用->保存子账号token并返回
+        SupplierSub supplierSub = supplierSubMapper.getCurrentSupplier(user.getId());
+        if (supplierSub != null) {
+            if (supplierSub.getIsEnabled() == false) {
+                throw new ValidationException("子账号已禁用");
+            }else{
+                //这里拿父级供应商ID查询用户ID再校验
+                SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(String.valueOf( supplierSub.getSupplierId()));
+                if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
+                    throw new ValidationException("账号用户已禁用,请联系管理员");
+                }
+            }
+        }else {
+            SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId());
+            if (!ObjectUtils.isEmpty(supplierDTO)) {
+                globalSupplierVariables.removeSupplier(String.valueOf(supplierDTO.getId()));
+            }
+            if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
+                throw new ValidationException("用户已禁用,请联系管理员");
+            }
         }
         String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId());
         if (StringUtils.isNotBlank(tokenCache))  {
@@ -124,6 +166,28 @@
         if(user == null){
             throw new ValidationException("用户不存在");
         }
+        // 子账号校验:1.不存在->放行。
+        // 2.存在->校验是否已经禁用。
+        // 3.存在且未禁用->校验父级账号是否禁用。
+        // 4.父级禁用->提示
+        // 5.父级未禁用->保存子账号token并返回
+        SupplierSub supplierSub = supplierSubMapper.getCurrentSupplier(user.getId());
+        if (supplierSub != null) {
+            if (supplierSub.getIsEnabled() == false) {
+                throw new ValidationException("子账号已禁用,请联系父级账号");
+            } else {
+                //这里拿父级供应商ID查询用户ID再校验
+                SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(String.valueOf(supplierSub.getSupplierId()));
+                if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
+                    throw new ValidationException("父级账号用户已禁用,请联系管理员");
+                }
+            }
+        } else {
+            SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId());
+            if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
+                throw new ValidationException("用户已禁用,请联系管理员");
+            }
+        }
         String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId());
         if (StringUtils.isNotBlank(tokenCache))  {
             //强制删除token,下线

--
Gitblit v1.9.3