Commit 6ef36d5ca6277d9ad64a824e9af8ec6aefd71a70
1 parent
1ead3685
trade: 增加分销 API
Showing
6 changed files
with
130 additions
and
1 deletions
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 | 3 | import cn.hutool.core.map.MapUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 6 | +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO; | |
| 6 | 7 | import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.BrokerageUserRespVO; |
| 7 | 8 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.BrokerageUserDO; |
| 8 | 9 | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; |
| ... | ... | @@ -58,4 +59,6 @@ public interface BrokerageUserConvert { |
| 58 | 59 | } |
| 59 | 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 | 33 | <artifactId>yudao-module-infra-api</artifactId> |
| 34 | 34 | <version>${revision}</version> |
| 35 | 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 | 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 | 8 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| 9 | 9 | import cn.iocoder.yudao.module.member.service.level.MemberLevelService; |
| 10 | 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 | 13 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | 14 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 13 | 15 | import lombok.extern.slf4j.Slf4j; |
| ... | ... | @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*; |
| 16 | 18 | |
| 17 | 19 | import javax.annotation.Resource; |
| 18 | 20 | import javax.validation.Valid; |
| 21 | +import java.util.Optional; | |
| 19 | 22 | |
| 20 | 23 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 21 | 24 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| ... | ... | @@ -33,14 +36,18 @@ public class AppMemberUserController { |
| 33 | 36 | @Resource |
| 34 | 37 | private MemberLevelService levelService; |
| 35 | 38 | |
| 39 | + @Resource | |
| 40 | + private BrokerageApi brokerageApi; | |
| 41 | + | |
| 36 | 42 | @GetMapping("/get") |
| 37 | 43 | @Operation(summary = "获得基本信息") |
| 38 | 44 | @PreAuthenticated |
| 39 | 45 | public CommonResult<AppMemberUserInfoRespVO> getUserInfo() { |
| 40 | 46 | MemberUserDO user = userService.getUser(getLoginUserId()); |
| 41 | 47 | MemberLevelDO level = levelService.getLevel(user.getLevelId()); |
| 48 | + BrokerageUserDTO brokerageUser = brokerageApi.getBrokerageUser(user.getId()); | |
| 42 | 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 | ... | ... |