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/service/supplier/SupplierSubService.java | 10 ++++
src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java | 12 +++++
src/main/java/com/mzl/flower/mapper/supplier/SupplierSubMapper.java | 8 ++++
src/main/java/com/mzl/flower/web/login/SupplierLoginController.java | 55 ++++++++++++++++++++++++---
4 files changed, 77 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/mzl/flower/mapper/supplier/SupplierSubMapper.java b/src/main/java/com/mzl/flower/mapper/supplier/SupplierSubMapper.java
index c281252..04a829e 100644
--- a/src/main/java/com/mzl/flower/mapper/supplier/SupplierSubMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/supplier/SupplierSubMapper.java
@@ -6,6 +6,7 @@
import com.mzl.flower.dto.response.supplier.SupplierSubVO;
import com.mzl.flower.entity.supplier.SupplierSub;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -13,4 +14,11 @@
@Repository
public interface SupplierSubMapper extends BaseMapper<SupplierSub> {
List<SupplierSubVO> querySupplierSub(@Param("dto") QuerySupplierSubDTO dto, Page page);
+
+
+ @Select("select * from t_supplier_sub_info where deleted = '0' and user_id = #{id}")
+ SupplierSub getCurrentSupplier(String id);
+
+ @Select("select * from t_supplier_sub_info where deleted = '0' and supplier_id = #{supplierId}")
+ List<SupplierSub> getSubSupplier(String supplierId);
}
diff --git a/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java b/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java
index 2a439d2..dcead67 100644
--- a/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java
+++ b/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java
@@ -162,7 +162,7 @@
}
- public Page<SupplierDTO> querySupplier(QuerySupplierSubDTO dto, Page page) {
+ public Page<SupplierSubVO> querySupplier(QuerySupplierSubDTO dto, Page page) {
List<SupplierSubVO> list = supplierSubMapper.querySupplierSub(dto, page);
page.setRecords(list);
return page;
@@ -219,4 +219,12 @@
supplierSubMapper.deleteById(id);
}
}
+
+ public List<SupplierSub> getSubSupplier() {
+ SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(SecurityUtils.getUserId());
+ if(ObjectUtils.isEmpty(supplierDTO)){
+ throw new ValidationException("供应商信息不存在");
+ }
+ return supplierSubMapper.getSubSupplier(String.valueOf(supplierDTO.getId()));
+ }
}
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)) {
diff --git a/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java b/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java
index 783f5e5..a4d59d9 100644
--- a/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java
+++ b/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java
@@ -5,6 +5,9 @@
import com.mzl.flower.base.R;
import com.mzl.flower.base.ReturnDataDTO;
import com.mzl.flower.dto.request.supplier.*;
+import com.mzl.flower.dto.response.payment.DeliveryOrderItemListDTO;
+import com.mzl.flower.dto.response.supplier.SupplierSubVO;
+import com.mzl.flower.entity.supplier.SupplierSub;
import com.mzl.flower.service.supplier.SupplierSubService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -14,6 +17,7 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
+import java.util.List;
@RestController
@RequestMapping("/api/supplierSub")
@@ -39,7 +43,7 @@
@GetMapping("/page")
@ApiOperation(value = "运营端-供应商子账号分页查询", notes = "运营端-供应商子账号分页查询")
- public ResponseEntity<ReturnDataDTO<Page<SupplierSubDTO>>> querySupplier(QuerySupplierSubDTO dto, Page page) {
+ public ResponseEntity<ReturnDataDTO<Page<SupplierSubVO>>> querySupplier(QuerySupplierSubDTO dto, Page page) {
return returnData(R.SUCCESS.getCode(), supplierSubService.querySupplier(dto, page));
}
@@ -57,4 +61,10 @@
supplierSubService.delete(id);
return returnData(R.SUCCESS.getCode(), null);
}
+
+ @GetMapping("/sub/all")
+ @ApiOperation(value = "获取当前用户下子账号信息", notes = "获取当前用户下子账号信息")
+ public ResponseEntity<ReturnDataDTO<List<SupplierSub>>> getSubSupplier() {
+ return returnData(R.SUCCESS.getCode(), supplierSubService.getSubSupplier());
+ }
}
--
Gitblit v1.9.3