Commit 6ef36d5ca6277d9ad64a824e9af8ec6aefd71a70

Authored by owen
1 parent 1ead3685

trade: 增加分销 API

yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.api.brokerage;
  2 +
  3 +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
  4 +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageBindModeEnum;
  5 +
  6 +/**
  7 + * 分销 API 接口
  8 + *
  9 + * @author owen
  10 + */
  11 +public interface BrokerageApi {
  12 +
  13 + /**
  14 + * 获得分销用户
  15 + *
  16 + * @param userId 用户编号
  17 + * @return 分销用户信息
  18 + */
  19 + BrokerageUserDTO getBrokerageUser(Long userId);
  20 +
  21 + /**
  22 + * 绑定推广员
  23 + *
  24 + * @param userId 用户编号
  25 + * @param bindUserId 推广员编号
  26 + * @param bindMode 绑定模式 {@link BrokerageBindModeEnum}
  27 + * @return 是否绑定
  28 + */
  29 + boolean bindUser(Long userId, Long bindUserId, Integer bindMode);
  30 +}
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/dto/BrokerageUserDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.api.brokerage.dto;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.time.LocalDateTime;
  6 +
  7 +/**
  8 + * 分销用户 DTO
  9 + *
  10 + * @author owen
  11 + */
  12 +@Data
  13 +public class BrokerageUserDTO {
  14 +
  15 + /**
  16 + * 用户编号
  17 + * <p>
  18 + * 对应 MemberUserDO 的 id 字段
  19 + */
  20 + private Long id;
  21 +
  22 + /**
  23 + * 推广员编号
  24 + * <p>
  25 + * 关联 MemberUserDO 的 id 字段
  26 + */
  27 + private Long bindUserId;
  28 + /**
  29 + * 推广员绑定时间
  30 + */
  31 + private LocalDateTime bindUserTime;
  32 +
  33 + /**
  34 + * 推广资格
  35 + */
  36 + private Boolean brokerageEnabled;
  37 + /**
  38 + * 成为分销员时间
  39 + */
  40 + private LocalDateTime brokerageTime;
  41 +
  42 + /**
  43 + * 可用佣金
  44 + */
  45 + private Integer price;
  46 + /**
  47 + * 冻结佣金
  48 + */
  49 + private Integer frozenPrice;
  50 +
  51 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.api.brokerage;
  2 +
  3 +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
  4 +import cn.iocoder.yudao.module.trade.convert.brokerage.user.BrokerageUserConvert;
  5 +import cn.iocoder.yudao.module.trade.service.brokerage.user.BrokerageUserService;
  6 +import org.springframework.stereotype.Service;
  7 +import org.springframework.validation.annotation.Validated;
  8 +
  9 +import javax.annotation.Resource;
  10 +
  11 +/**
  12 + * 分销 API 接口实现类
  13 + *
  14 + * @author owen
  15 + */
  16 +@Service
  17 +@Validated
  18 +public class BrokerageApiImpl implements BrokerageApi {
  19 +
  20 + @Resource
  21 + private BrokerageUserService brokerageUserService;
  22 +
  23 + public BrokerageUserDTO getBrokerageUser(Long userId) {
  24 + return BrokerageUserConvert.INSTANCE.convertDTO(brokerageUserService.getBrokerageUser(userId));
  25 + }
  26 +
  27 + @Override
  28 + public boolean bindUser(Long userId, Long bindUserId, Integer bindMode) {
  29 + // todo 待实现
  30 + return false;
  31 + }
  32 +
  33 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/BrokerageUserConvert.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.trade.convert.brokerage.user; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.trade.convert.brokerage.user;
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
  6 +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
6 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.BrokerageUserRespVO; 7 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.BrokerageUserRespVO;
7 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.BrokerageUserDO; 8 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.BrokerageUserDO;
8 import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; 9 import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO;
@@ -58,4 +59,6 @@ public interface BrokerageUserConvert { @@ -58,4 +59,6 @@ public interface BrokerageUserConvert {
58 } 59 }
59 return result; 60 return result;
60 } 61 }
  62 +
  63 + BrokerageUserDTO convertDTO(BrokerageUserDO brokerageUser);
61 } 64 }
yudao-module-member/yudao-module-member-biz/pom.xml
@@ -33,6 +33,11 @@ @@ -33,6 +33,11 @@
33 <artifactId>yudao-module-infra-api</artifactId> 33 <artifactId>yudao-module-infra-api</artifactId>
34 <version>${revision}</version> 34 <version>${revision}</version>
35 </dependency> 35 </dependency>
  36 + <dependency>
  37 + <groupId>cn.iocoder.boot</groupId>
  38 + <artifactId>yudao-module-trade-api</artifactId>
  39 + <version>${revision}</version>
  40 + </dependency>
36 41
37 <!-- 业务组件 --> 42 <!-- 业务组件 -->
38 <dependency> 43 <dependency>
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java
@@ -8,6 +8,8 @@ import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; @@ -8,6 +8,8 @@ import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
8 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; 8 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
9 import cn.iocoder.yudao.module.member.service.level.MemberLevelService; 9 import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
10 import cn.iocoder.yudao.module.member.service.user.MemberUserService; 10 import cn.iocoder.yudao.module.member.service.user.MemberUserService;
  11 +import cn.iocoder.yudao.module.trade.api.brokerage.BrokerageApi;
  12 +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
11 import io.swagger.v3.oas.annotations.Operation; 13 import io.swagger.v3.oas.annotations.Operation;
12 import io.swagger.v3.oas.annotations.tags.Tag; 14 import io.swagger.v3.oas.annotations.tags.Tag;
13 import lombok.extern.slf4j.Slf4j; 15 import lombok.extern.slf4j.Slf4j;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
16 18
17 import javax.annotation.Resource; 19 import javax.annotation.Resource;
18 import javax.validation.Valid; 20 import javax.validation.Valid;
  21 +import java.util.Optional;
19 22
20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 23 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
21 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 24 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@@ -33,14 +36,18 @@ public class AppMemberUserController { @@ -33,14 +36,18 @@ public class AppMemberUserController {
33 @Resource 36 @Resource
34 private MemberLevelService levelService; 37 private MemberLevelService levelService;
35 38
  39 + @Resource
  40 + private BrokerageApi brokerageApi;
  41 +
36 @GetMapping("/get") 42 @GetMapping("/get")
37 @Operation(summary = "获得基本信息") 43 @Operation(summary = "获得基本信息")
38 @PreAuthenticated 44 @PreAuthenticated
39 public CommonResult<AppMemberUserInfoRespVO> getUserInfo() { 45 public CommonResult<AppMemberUserInfoRespVO> getUserInfo() {
40 MemberUserDO user = userService.getUser(getLoginUserId()); 46 MemberUserDO user = userService.getUser(getLoginUserId());
41 MemberLevelDO level = levelService.getLevel(user.getLevelId()); 47 MemberLevelDO level = levelService.getLevel(user.getLevelId());
  48 + BrokerageUserDTO brokerageUser = brokerageApi.getBrokerageUser(user.getId());
42 return success(MemberUserConvert.INSTANCE.convert(user, level) 49 return success(MemberUserConvert.INSTANCE.convert(user, level)
43 - .setBrokerageEnabled(true) // TODO @疯狂:这里我先写死,后面改成 db 返回; 50 + .setBrokerageEnabled(Optional.ofNullable(brokerageUser).map(BrokerageUserDTO::getBrokerageEnabled).orElse(false))
44 ); 51 );
45 } 52 }
46 53