Commit 8cfb738db35cb5b7a72b640d939a102df0cbc008
1 parent
581f9d41
code review:分销逻辑
Showing
7 changed files
with
10 additions
and
5 deletions
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<BrokerageRecordDO> { | @@ -56,4 +56,5 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> { | ||
| 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 |