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