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,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 |