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