From fad73d860dce9ea18a4a6d45d9bf35d6b066a008 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 09 十二月 2024 13:40:37 +0800
Subject: [PATCH] add: 供应商子账号

---
 src/main/java/com/mzl/flower/web/login/SupplierLoginController.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 49 insertions(+), 6 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 44e0d1d..903da7e 100644
--- a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
+++ b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
@@ -12,8 +12,10 @@
 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;
@@ -65,6 +67,11 @@
     @Autowired
     private SupplierMapper supplierMapper;
 
+    @Autowired
+    private SupplierSubMapper supplierSubMapper;
+
+
+
     public static final String SMS_CODE_KEY = "SMS-CODE-KEY";
 
     public static final String TOKEN_KEY = "TOKEN-KEY";
@@ -87,9 +94,27 @@
         if(user == null){
             throw new ValidationException("用户不存在");
         }
-        SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId());
-        if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
-            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))  {
@@ -134,9 +159,27 @@
         if(user == null){
             throw new ValidationException("用户不存在");
         }
-        SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId());
-        if (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
-            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))  {

--
Gitblit v1.9.3