From 3566668d97d3844d4d4b95c0058a0f5cb9e5db07 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 09 十二月 2024 17:33:12 +0800
Subject: [PATCH] add: 供应商子账号2

---
 src/main/java/com/mzl/flower/web/login/SupplierLoginController.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 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..903da7e 100644
--- a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
+++ b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java
@@ -11,7 +11,11 @@
 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 +33,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 +64,14 @@
     @Autowired
     private TokenStore tokenStore;
 
+    @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";
@@ -80,6 +93,28 @@
         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 (supplierDTO != null && supplierDTO.getIsEnabled() == false) {
+                throw new ValidationException("用户已禁用,请联系管理员");
+            }
         }
         String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId());
         if (StringUtils.isNotBlank(tokenCache))  {
@@ -124,6 +159,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