Commit 8cfb738db35cb5b7a72b640d939a102df0cbc008

Authored by YunaiV
1 parent 581f9d41

code review:分销逻辑

yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java
@@ -100,6 +100,7 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> { @@ -100,6 +100,7 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
100 return betweenIfPresent(column, val1, val2); 100 return betweenIfPresent(column, val1, val2);
101 } 101 }
102 102
  103 + // TODO @疯狂:这个是 mysql 独有的,不好做成通用的哈。如果多层级,有没可能先查询一个层级,再查询一个层级;形成 set 后,直接去 in?
103 public LambdaQueryWrapperX<T> findInSetIfPresent(SFunction<T, ?> column, Object val) { 104 public LambdaQueryWrapperX<T> findInSetIfPresent(SFunction<T, ?> column, Object val) {
104 if (val != null) { 105 if (val != null) {
105 return (LambdaQueryWrapperX<T>) super.apply("FIND_IN_SET({0}, " + columnToString(column) + ")", val); 106 return (LambdaQueryWrapperX<T>) super.apply("FIND_IN_SET({0}, " + columnToString(column) + ")", val);
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/record/vo/BrokerageRecordPageReqVO.java
@@ -30,7 +30,7 @@ public class BrokerageRecordPageReqVO extends PageParam { @@ -30,7 +30,7 @@ public class BrokerageRecordPageReqVO extends PageParam {
30 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 30 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
31 private LocalDateTime[] createTime; 31 private LocalDateTime[] createTime;
32 32
33 - @Schema(description = "用户类型") 33 + @Schema(description = "用户类型", example = "1")
34 private Integer sourceUserLevel; 34 private Integer sourceUserLevel;
35 35
36 } 36 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/vo/BrokerageUserPageReqVO.java
@@ -20,17 +20,18 @@ public class BrokerageUserPageReqVO extends PageParam { @@ -20,17 +20,18 @@ public class BrokerageUserPageReqVO extends PageParam {
20 @Schema(description = "推广员编号", example = "4587") 20 @Schema(description = "推广员编号", example = "4587")
21 private Long bindUserId; 21 private Long bindUserId;
22 22
23 - @Schema(description = "推广资格") 23 + @Schema(description = "推广资格", example = "true")
24 private Boolean brokerageEnabled; 24 private Boolean brokerageEnabled;
25 25
26 @Schema(description = "创建时间") 26 @Schema(description = "创建时间")
27 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 27 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
28 private LocalDateTime[] createTime; 28 private LocalDateTime[] createTime;
29 29
30 - @Schema(description = "用户等级") 30 + @Schema(description = "用户等级", example = "1") // 注意,这了不是用户的会员等级,而是过滤推广的层级
31 private Integer level; 31 private Integer level;
32 32
33 @Schema(description = "绑定时间") 33 @Schema(description = "绑定时间")
34 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 34 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
35 private LocalDateTime[] bindUserTime; 35 private LocalDateTime[] bindUserTime;
  36 +
36 } 37 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
@@ -299,6 +299,7 @@ public interface TradeOrderConvert { @@ -299,6 +299,7 @@ public interface TradeOrderConvert {
299 @Mapping(target = "userId", source = "userId"), 299 @Mapping(target = "userId", source = "userId"),
300 @Mapping(target = "payPrice", source = "tradeOrderDO.payPrice"), 300 @Mapping(target = "payPrice", source = "tradeOrderDO.payPrice"),
301 }) 301 })
302 - TradeAfterOrderCreateReqBO convert(Long userId, AppTradeOrderCreateReqVO createReqVO, TradeOrderDO tradeOrderDO, TradeOrderItemDO orderItem); 302 + TradeAfterOrderCreateReqBO convert(Long userId, AppTradeOrderCreateReqVO createReqVO,
  303 + TradeOrderDO tradeOrderDO, TradeOrderItemDO orderItem);
303 304
304 } 305 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/record/BrokerageRecordMapper.java
@@ -56,4 +56,5 @@ public interface BrokerageRecordMapper extends BaseMapperX&lt;BrokerageRecordDO&gt; { @@ -56,4 +56,5 @@ public interface BrokerageRecordMapper extends BaseMapperX&lt;BrokerageRecordDO&gt; {
56 UserBrokerageSummaryBO selectCountAndSumPriceByUserIdAndBizTypeAndStatus(@Param("userId") Long userId, 56 UserBrokerageSummaryBO selectCountAndSumPriceByUserIdAndBizTypeAndStatus(@Param("userId") Long userId,
57 @Param("bizType") Integer bizType, 57 @Param("bizType") Integer bizType,
58 @Param("status") Integer status); 58 @Param("status") Integer status);
  59 +
59 } 60 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserService.java
@@ -112,7 +112,6 @@ public interface BrokerageUserService { @@ -112,7 +112,6 @@ public interface BrokerageUserService {
112 return bindBrokerageUser(userId, bindUserId, isNewUser); 112 return bindBrokerageUser(userId, bindUserId, isNewUser);
113 } 113 }
114 114
115 -  
116 /** 115 /**
117 * 【会员】绑定推广员 116 * 【会员】绑定推广员
118 * 117 *
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserServiceImpl.java
@@ -67,6 +67,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { @@ -67,6 +67,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
67 } 67 }
68 68
69 // 绑定关系未发生变化 69 // 绑定关系未发生变化
  70 + // TODO @疯狂:这个放到“情况一”之前,貌似也没关系?
70 if (Objects.equals(brokerageUser.getBindUserId(), bindUserId)) { 71 if (Objects.equals(brokerageUser.getBindUserId(), bindUserId)) {
71 return; 72 return;
72 } 73 }
@@ -250,6 +251,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { @@ -250,6 +251,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
250 } 251 }
251 } 252 }
252 253
  254 + // TODO @芋艿:这个层级,要微信讨论下;
253 private List<Integer> buildUserQueryLevels(Long bindUserId, Integer level) { 255 private List<Integer> buildUserQueryLevels(Long bindUserId, Integer level) {
254 List<Integer> levels = new ArrayList<>(2); 256 List<Integer> levels = new ArrayList<>(2);
255 257