From 2c5a0e133b64bb0a46b1419c48e9b62a4779e268 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期一, 09 十二月 2024 16:13:17 +0800 Subject: [PATCH] add: 供应商子账号 --- src/main/java/com/mzl/flower/service/BaseService.java | 19 +++++++-- src/main/java/com/mzl/flower/service/supplier/SupplierService.java | 16 ++++++++ src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java | 23 +++++++---- src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java | 7 +++ src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java | 8 ++++ src/main/java/com/mzl/flower/service/system/UserService.java | 14 +++++++ src/main/java/com/mzl/flower/dto/request/supplier/SupplierSubDTO.java | 3 + 7 files changed, 78 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/request/supplier/SupplierSubDTO.java b/src/main/java/com/mzl/flower/dto/request/supplier/SupplierSubDTO.java index e054150..1f02a61 100644 --- a/src/main/java/com/mzl/flower/dto/request/supplier/SupplierSubDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/supplier/SupplierSubDTO.java @@ -26,4 +26,7 @@ @ApiModelProperty("验证码") private String smsCode; + @ApiModelProperty("验证码类型,小程序不传") + private String type; + } diff --git a/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java b/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java index c3cdf51..2a6a781 100644 --- a/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java @@ -5,6 +5,7 @@ import com.mzl.flower.dto.response.partner.PartnerDTO; import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.dto.response.system.MenuTreeDTO; +import com.mzl.flower.entity.supplier.SupplierSub; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -56,4 +57,11 @@ @ApiModelProperty(value = "是否总仓权限") private Boolean mainWarehouse; + + @ApiModelProperty(value = "是否是子供应商") + public Boolean isSubSupplier; + + @ApiModelProperty(value = "子供应商信息") + private SupplierSub supplierSub; + } diff --git a/src/main/java/com/mzl/flower/service/BaseService.java b/src/main/java/com/mzl/flower/service/BaseService.java index ecfcb6a..def7248 100644 --- a/src/main/java/com/mzl/flower/service/BaseService.java +++ b/src/main/java/com/mzl/flower/service/BaseService.java @@ -18,11 +18,13 @@ import com.mzl.flower.entity.payment.OrderItemSales; import com.mzl.flower.entity.payment.OrderSalesItem; import com.mzl.flower.entity.supplier.Supplier; +import com.mzl.flower.entity.supplier.SupplierSub; import com.mzl.flower.mapper.customer.CustomerMapper; import com.mzl.flower.mapper.flower.FlowerCategoryMapper; import com.mzl.flower.mapper.member.MemberMapper; import com.mzl.flower.mapper.partner.PartnerMapper; import com.mzl.flower.mapper.supplier.SupplierMapper; +import com.mzl.flower.mapper.supplier.SupplierSubMapper; import com.mzl.flower.mapper.system.UserMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +33,7 @@ import org.springframework.security.oauth2.common.OAuth2RefreshToken; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -53,6 +56,9 @@ @Autowired protected SupplierMapper supplierMapper; + + @Autowired + protected SupplierSubMapper supplierSubMapper; @Autowired protected PartnerMapper partnerMapper; @@ -552,14 +558,19 @@ return p; } - public Supplier getCurrentSupplier(){ + public Supplier getCurrentSupplier() { String userId = SecurityUtils.getUserId(); Supplier s = supplierMapper.selectOne(new QueryWrapper<Supplier>() .eq("user_id", userId)); - if(s == null){ - throw new ValidationException("供应商信息未认证,请到个人中心进行认证"); + if (s == null) { + SupplierSub sub = supplierSubMapper.getCurrentSupplier(SecurityUtils.getUserId()); + if (!ObjectUtils.isEmpty(sub)) { + s = supplierMapper.selectById(sub.getSupplierId()); + return s; + } else { + throw new ValidationException("供应商信息未认证,请到个人中心进行认证"); + } } - return s; } diff --git a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java index 0a4582e..39e482a 100644 --- a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java +++ b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java @@ -10,7 +10,9 @@ import com.mzl.flower.dto.request.supplier.*; import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.entity.supplier.Supplier; +import com.mzl.flower.entity.supplier.SupplierSub; import com.mzl.flower.mapper.supplier.SupplierMapper; +import com.mzl.flower.mapper.supplier.SupplierSubMapper; import com.mzl.flower.service.BaseService; import com.mzl.flower.utils.DateUtils; import org.apache.commons.lang3.StringUtils; @@ -21,6 +23,7 @@ import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -35,6 +38,9 @@ private final static String SUPPLIER_STATUS_REJECT = "R"; // 审核拒绝 private final SupplierMapper supplierMapper; + + @Resource + private SupplierSubMapper supplierSubMapper; @Resource private BaseService baseService; @@ -162,6 +168,16 @@ throw new ValidationException("当前登录用户不是供应商账号"); } SupplierDTO dto = supplierMapper.getCurrentSupplier(SecurityUtils.getUserId()); + //如果是空 查询子账号的供应商ID + if (ObjectUtils.isEmpty(dto)) { + SupplierSub sub = supplierSubMapper.getCurrentSupplier(SecurityUtils.getUserId()); + if (!ObjectUtils.isEmpty(sub)) { + dto = supplierMapper.findSupplierDetail(sub.getSupplierId()); + } + } + if(ObjectUtils.isEmpty(dto)){ + throw new ValidationException("供应商信息不存在"); + } return dto; } 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 dcead67..e4b4d21 100644 --- a/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java +++ b/src/main/java/com/mzl/flower/service/supplier/SupplierSubService.java @@ -51,14 +51,16 @@ public void addOrUpdateSupplier(SupplierSubDTO dto) { - if(StringUtils.isEmpty(dto.getSmsCode())){ - throw new ValidationException("手机验证码为空"); - } - String smsCode = dto.getSmsCode(); - //从缓存中获取验证码 - String smsCacheCode = stringCacheClient.get(SMS_CODE_KEY + SEPARATOR + Constants.USER_TYPE.supplier.name() + SEPARATOR + dto.getPhone()); - if (!org.apache.commons.lang3.StringUtils.equals(smsCode, smsCacheCode)) { - throw new ValidationException("手机验证码不正确"); + if (StringUtils.isEmpty(dto.getType())) { + if (StringUtils.isEmpty(dto.getSmsCode())) { + throw new ValidationException("手机验证码为空"); + } + String smsCode = dto.getSmsCode(); + //从缓存中获取验证码 + String smsCacheCode = stringCacheClient.get(SMS_CODE_KEY + SEPARATOR + Constants.USER_TYPE.supplier.name() + SEPARATOR + dto.getPhone()); + if (!org.apache.commons.lang3.StringUtils.equals(smsCode, smsCacheCode)) { + throw new ValidationException("手机验证码不正确"); + } } SupplierSub supplierSub; @@ -81,6 +83,7 @@ supplierSub = new SupplierSub(); BeanUtils.copyProperties(dto, supplierSub, "id"); + supplierSub.setSupplierId(supplierDTO.getId()); supplierSub.create(SecurityUtils.getUserId()); supplierSub.setIsEnabled(true); @@ -227,4 +230,8 @@ } return supplierSubMapper.getSubSupplier(String.valueOf(supplierDTO.getId())); } + + public SupplierSub getById(Long id) { + return supplierSubMapper.selectById(id); + } } diff --git a/src/main/java/com/mzl/flower/service/system/UserService.java b/src/main/java/com/mzl/flower/service/system/UserService.java index e5286b5..47b50b4 100644 --- a/src/main/java/com/mzl/flower/service/system/UserService.java +++ b/src/main/java/com/mzl/flower/service/system/UserService.java @@ -14,9 +14,11 @@ import com.mzl.flower.dto.response.system.UserDetailsDTO; import com.mzl.flower.dto.response.system.UserListDTO; import com.mzl.flower.entity.point.CustomerPoint; +import com.mzl.flower.entity.supplier.SupplierSub; import com.mzl.flower.entity.system.*; import com.mzl.flower.enums.TrueOrFalseEnum; import com.mzl.flower.mapper.point.CustomerPointMapper; +import com.mzl.flower.mapper.supplier.SupplierSubMapper; import com.mzl.flower.mapper.system.*; import com.mzl.flower.service.customer.CustomerService; import com.mzl.flower.service.partner.PartnerService; @@ -32,6 +34,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import javax.validation.constraints.NotBlank; import java.util.ArrayList; @@ -82,6 +85,9 @@ private CustomerPointMapper customerPointMapper; @Autowired private StationService stationService; + + @Autowired + private SupplierSubMapper supplierSubMapper; public User findUserByOpenId(String openId, String sessionKey, String unionId @@ -209,6 +215,14 @@ } }else if(Constants.USER_TYPE.supplier.name().equals(user.getType())){ result.setSupplierDTO(supplierService.getCurrentSupplier()); + SupplierSub sub = supplierSubMapper.getCurrentSupplier(SecurityUtils.getUserId()); + if (!ObjectUtils.isEmpty(sub)) { + result.setIsSubSupplier(true); + result.setSupplierSub(sub); + } else { + result.setIsSubSupplier(false); + result.setSupplierSub(null); + } }else if(Constants.USER_TYPE.partner.name().equals(user.getType())){ result.setPartnerDTO(partnerService.getCurrentPartner()); }else if (Constants.USER_TYPE.admin.name().equals(user.getType())){ 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 a4d59d9..5dde042 100644 --- a/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java +++ b/src/main/java/com/mzl/flower/web/supplier/SupplierSubController.java @@ -67,4 +67,11 @@ public ResponseEntity<ReturnDataDTO<List<SupplierSub>>> getSubSupplier() { return returnData(R.SUCCESS.getCode(), supplierSubService.getSubSupplier()); } + + @GetMapping("/getById") + @ApiOperation(value = "通过ID查询子账号", notes = "通过ID查询子账号") + public ResponseEntity<ReturnDataDTO<SupplierSub>> getById(@NotNull(message = "id不能为空") Long id) { + SupplierSub supplierSub = supplierSubService.getById(id); + return returnData(R.SUCCESS.getCode(), supplierSub); + } } -- Gitblit v1.9.3