Commit 1ead3685958846d86afe620f547932bececdc094

Authored by owen
1 parent 4b43304c

trade: 优化分销用户佣金字段名称

Showing 18 changed files with 124 additions and 125 deletions
sql/mysql/brokerage.sql
... ... @@ -23,19 +23,19 @@ create table trade_config
23 23 -- 增加分销用户扩展表
24 24 create table trade_brokerage_user
25 25 (
26   - id bigint auto_increment comment '用户编号' primary key,
27   - bind_user_id bigint null comment '推广员编号',
28   - bind_user_time datetime null comment '推广员绑定时间',
29   - brokerage_enabled bit default 1 not null comment '是否成为推广员',
30   - brokerage_time datetime null comment '成为分销员时间',
31   - brokerage_price int default 0 not null comment '可用佣金',
32   - frozen_brokerage_price int default 0 not null comment '冻结佣金',
33   - creator varchar(64) collate utf8mb4_unicode_ci default '' null comment '创建者',
34   - create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间',
35   - updater varchar(64) collate utf8mb4_unicode_ci default '' null comment '更新者',
36   - update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
37   - deleted bit default b'0' not null comment '是否删除',
38   - tenant_id bigint default 0 not null comment '租户编号'
  26 + id bigint auto_increment comment '用户编号' primary key,
  27 + bind_user_id bigint null comment '推广员编号',
  28 + bind_user_time datetime null comment '推广员绑定时间',
  29 + brokerage_enabled bit default 1 not null comment '是否成为推广员',
  30 + brokerage_time datetime null comment '成为分销员时间',
  31 + price int default 0 not null comment '可用佣金',
  32 + frozen_price int default 0 not null comment '冻结佣金',
  33 + creator varchar(64) collate utf8mb4_unicode_ci default '' null comment '创建者',
  34 + create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间',
  35 + updater varchar(64) collate utf8mb4_unicode_ci default '' null comment '更新者',
  36 + update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
  37 + deleted bit default b'0' not null comment '是否删除',
  38 + tenant_id bigint default 0 not null comment '租户编号'
39 39 ) comment '分销用户';
40 40  
41 41 create index idx_invite_user_id on trade_brokerage_user (bind_user_id) comment '推广员编号';
... ...
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java
... ... @@ -77,6 +77,6 @@ public interface ErrorCodeConstants {
77 77  
78 78 // ========== 分销用户 模块 1011007000 ==========
79 79 ErrorCode BROKERAGE_USER_NOT_EXISTS = new ErrorCode(1011007000, "分销用户不存在");
80   - ErrorCode USER_FROZEN_BROKERAGE_PRICE_NOT_ENOUGH = new ErrorCode(1011007001, "用户冻结佣金({})数量不足");
  80 + ErrorCode BROKERAGE_USER_FROZEN_PRICE_NOT_ENOUGH = new ErrorCode(1011007001, "用户冻结佣金({})数量不足");
81 81  
82 82 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/vo/BrokerageUserBaseVO.java
... ... @@ -34,10 +34,10 @@ public class BrokerageUserBaseVO {
34 34  
35 35 @Schema(description = "可用佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "11089")
36 36 @NotNull(message = "可用佣金不能为空")
37   - private Integer brokeragePrice;
  37 + private Integer price;
38 38  
39 39 @Schema(description = "冻结佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "30916")
40 40 @NotNull(message = "冻结佣金不能为空")
41   - private Integer frozenBrokeragePrice;
  41 + private Integer frozenPrice;
42 42  
43 43 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java
... ... @@ -34,8 +34,8 @@ public class AppBrokerageUserController {
34 34 @PreAuthenticated
35 35 public CommonResult<AppBrokerageUserRespVO> getBrokerageUser() {
36 36 AppBrokerageUserRespVO respVO = new AppBrokerageUserRespVO()
37   - .setBrokeragePrice(2000)
38   - .setFrozenBrokeragePrice(3000);
  37 + .setPrice(2000)
  38 + .setFrozenPrice(3000);
39 39 return success(respVO);
40 40 }
41 41  
... ... @@ -45,10 +45,10 @@ public class AppBrokerageUserController {
45 45 @PreAuthenticated
46 46 public CommonResult<AppBrokerageUserMySummaryRespVO> getBrokerageUserSummary() {
47 47 AppBrokerageUserMySummaryRespVO respVO = new AppBrokerageUserMySummaryRespVO()
48   - .setYesterdayBrokeragePrice(1)
49   - .setBrokeragePrice(2)
50   - .setFrozenBrokeragePrice(3)
51   - .setWithdrawBrokeragePrice(4)
  48 + .setYesterdayPrice(1)
  49 + .setPrice(2)
  50 + .setFrozenPrice(3)
  51 + .setWithdrawPrice(4)
52 52 .setFirstBrokerageUserCount(166)
53 53 .setSecondBrokerageUserCount(233);
54 54 return success(respVO);
... ... @@ -81,16 +81,16 @@ public class AppBrokerageUserController {
81 81 public CommonResult<PageResult<AppBrokerageUserRankByPriceRespVO>> getBrokerageUserChildSummaryPageByPrice(AppBrokerageUserRankPageReqVO pageReqVO) {
82 82 AppBrokerageUserRankByPriceRespVO vo1 = new AppBrokerageUserRankByPriceRespVO()
83 83 .setId(1L).setNickname("芋1**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
84   - .setBrokeragePrice(10);
  84 + .setPrice(10);
85 85 AppBrokerageUserRankByPriceRespVO vo2 = new AppBrokerageUserRankByPriceRespVO()
86 86 .setId(2L).setNickname("芋2**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
87   - .setBrokeragePrice(6);
  87 + .setPrice(6);
88 88 AppBrokerageUserRankByPriceRespVO vo3 = new AppBrokerageUserRankByPriceRespVO()
89 89 .setId(3L).setNickname("芋3**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
90   - .setBrokeragePrice(4);
  90 + .setPrice(4);
91 91 AppBrokerageUserRankByPriceRespVO vo4 = new AppBrokerageUserRankByPriceRespVO()
92 92 .setId(3L).setNickname("芋3**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
93   - .setBrokeragePrice(4);
  93 + .setPrice(4);
94 94 return success(new PageResult<>(asList(vo1, vo2, vo3, vo4), 10L));
95 95 }
96 96  
... ... @@ -102,11 +102,11 @@ public class AppBrokerageUserController {
102 102 AppBrokerageUserChildSummaryPageReqVO pageReqVO) {
103 103 AppBrokerageUserChildSummaryRespVO vo1 = new AppBrokerageUserChildSummaryRespVO()
104 104 .setId(1L).setNickname("芋1**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
105   - .setBrokeragePrice(10).setBrokeragePrice(20).setBrokerageOrderCount(30)
  105 + .setPrice(10).setPrice(20).setBrokerageOrderCount(30)
106 106 .setBrokerageTime(LocalDateTime.now());
107 107 AppBrokerageUserChildSummaryRespVO vo2 = new AppBrokerageUserChildSummaryRespVO()
108 108 .setId(1L).setNickname("芋2**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg")
109   - .setBrokeragePrice(20).setBrokeragePrice(30).setBrokerageOrderCount(40)
  109 + .setPrice(20).setPrice(30).setBrokerageOrderCount(40)
110 110 .setBrokerageTime(LocalDateTime.now());
111 111 return success(new PageResult<>(asList(vo1, vo2), 10L));
112 112 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/user/AppBrokerageUserChildSummaryRespVO.java
... ... @@ -19,7 +19,7 @@ public class AppBrokerageUserChildSummaryRespVO {
19 19 private String avatar;
20 20  
21 21 @Schema(description = "佣金金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
22   - private Integer brokeragePrice;
  22 + private Integer price;
23 23  
24 24 @Schema(description = "分销订单数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20")
25 25 private Integer brokerageOrderCount;
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/user/AppBrokerageUserMySummaryRespVO.java
... ... @@ -8,16 +8,16 @@ import lombok.Data;
8 8 public class AppBrokerageUserMySummaryRespVO {
9 9  
10 10 @Schema(description = "昨天的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
11   - private Integer yesterdayBrokeragePrice;
  11 + private Integer yesterdayPrice;
12 12  
13 13 @Schema(description = "提现的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
14   - private Integer withdrawBrokeragePrice;
  14 + private Integer withdrawPrice;
15 15  
16 16 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408")
17   - private Integer brokeragePrice;
  17 + private Integer price;
18 18  
19 19 @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234")
20   - private Integer frozenBrokeragePrice;
  20 + private Integer frozenPrice;
21 21  
22 22 @Schema(description = "分销用户数量(一级)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
23 23 private Integer firstBrokerageUserCount;
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/user/AppBrokerageUserRankByPriceRespVO.java
... ... @@ -17,6 +17,6 @@ public class AppBrokerageUserRankByPriceRespVO {
17 17 private String avatar;
18 18  
19 19 @Schema(description = "佣金金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
20   - private Integer brokeragePrice;
  20 + private Integer price;
21 21  
22 22 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/user/AppBrokerageUserRespVO.java
... ... @@ -8,9 +8,9 @@ import lombok.Data;
8 8 public class AppBrokerageUserRespVO {
9 9  
10 10 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408")
11   - private Integer brokeragePrice;
  11 + private Integer price;
12 12  
13 13 @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234")
14   - private Integer frozenBrokeragePrice;
  14 + private Integer frozenPrice;
15 15  
16 16 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/record/BrokerageRecordConvert.java
... ... @@ -43,7 +43,7 @@ public interface BrokerageRecordConvert {
43 43 .setBizType(bizType.getType())
44 44 .setBizId(bizId)
45 45 .setPrice(brokerage)
46   - .setTotalPrice(user.getBrokeragePrice())
  46 + .setTotalPrice(user.getPrice())
47 47 .setTitle(title)
48 48 .setDescription(StrUtil.format(bizType.getDescription(), String.valueOf(brokerage / 100.0)))
49 49 .setStatus(status)
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
... ... @@ -278,7 +278,7 @@ public interface TradeOrderConvert {
278 278 default BrokerageAddReqBO convert(TradeOrderItemDO item, ProductSkuRespDTO sku) {
279 279 return new BrokerageAddReqBO().setBizId(String.valueOf(item.getId()))
280 280 .setBasePrice(item.getPayPrice() * item.getCount())
281   - .setFirstBrokeragePrice(sku.getSubCommissionFirstPrice())
282   - .setSecondBrokeragePrice(sku.getSubCommissionSecondPrice());
  281 + .setFirstFixedPrice(sku.getSubCommissionFirstPrice())
  282 + .setSecondFixedPrice(sku.getSubCommissionSecondPrice());
283 283 }
284 284 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/user/BrokerageUserDO.java
... ... @@ -8,7 +8,6 @@ import lombok.*;
8 8  
9 9 import java.time.LocalDateTime;
10 10  
11   -// TODO @疯狂:因为独立了表,是不是可以把字段的 brokerage 去掉了哈?
12 11 /**
13 12 * 分销用户 DO
14 13 *
... ... @@ -55,10 +54,10 @@ public class BrokerageUserDO extends BaseDO {
55 54 /**
56 55 * 可用佣金
57 56 */
58   - private Integer brokeragePrice;
  57 + private Integer price;
59 58 /**
60 59 * 冻结佣金
61 60 */
62   - private Integer frozenBrokeragePrice;
  61 + private Integer frozenPrice;
63 62  
64 63 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/user/BrokerageUserMapper.java
... ... @@ -31,10 +31,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
31 31 * @param id 用户编号
32 32 * @param incrCount 增加佣金(正数)
33 33 */
34   - default void updateBrokeragePriceIncr(Long id, Integer incrCount) {
  34 + default void updatePriceIncr(Long id, Integer incrCount) {
35 35 Assert.isTrue(incrCount > 0);
36 36 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
37   - .setSql(" brokerage_price = brokerage_price + " + incrCount)
  37 + .setSql(" price = price + " + incrCount)
38 38 .eq(BrokerageUserDO::getId, id);
39 39 update(null, lambdaUpdateWrapper);
40 40 }
... ... @@ -46,10 +46,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
46 46 * @param id 用户编号
47 47 * @param incrCount 增加佣金(负数)
48 48 */
49   - default void updateBrokeragePriceDecr(Long id, Integer incrCount) {
  49 + default void updatePriceDecr(Long id, Integer incrCount) {
50 50 Assert.isTrue(incrCount < 0);
51 51 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
52   - .setSql(" brokerage_price = brokerage_price + " + incrCount) // 负数,所以使用 + 号
  52 + .setSql(" price = price + " + incrCount) // 负数,所以使用 + 号
53 53 .eq(BrokerageUserDO::getId, id);
54 54 update(null, lambdaUpdateWrapper);
55 55 }
... ... @@ -60,10 +60,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
60 60 * @param id 用户编号
61 61 * @param incrCount 增加冻结佣金(正数)
62 62 */
63   - default void updateFrozenBrokeragePriceIncr(Long id, Integer incrCount) {
  63 + default void updateFrozenPriceIncr(Long id, Integer incrCount) {
64 64 Assert.isTrue(incrCount > 0);
65 65 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
66   - .setSql(" frozen_brokerage_price = frozen_brokerage_price + " + incrCount)
  66 + .setSql(" frozen_price = frozen_price + " + incrCount)
67 67 .eq(BrokerageUserDO::getId, id);
68 68 update(null, lambdaUpdateWrapper);
69 69 }
... ... @@ -75,10 +75,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
75 75 * @param id 用户编号
76 76 * @param incrCount 减少冻结佣金(负数)
77 77 */
78   - default void updateFrozenBrokeragePriceDecr(Long id, Integer incrCount) {
  78 + default void updateFrozenPriceDecr(Long id, Integer incrCount) {
79 79 Assert.isTrue(incrCount < 0);
80 80 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
81   - .setSql(" frozen_brokerage_price = frozen_brokerage_price + " + incrCount) // 负数,所以使用 + 号
  81 + .setSql(" frozen_price = frozen_price + " + incrCount) // 负数,所以使用 + 号
82 82 .eq(BrokerageUserDO::getId, id);
83 83 update(null, lambdaUpdateWrapper);
84 84 }
... ... @@ -90,13 +90,13 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
90 90 * @param incrCount 减少冻结佣金(负数)
91 91 * @return 更新条数
92 92 */
93   - default int updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, Integer incrCount) {
  93 + default int updateFrozenPriceDecrAndPriceIncr(Long id, Integer incrCount) {
94 94 Assert.isTrue(incrCount < 0);
95 95 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
96   - .setSql(" frozen_brokerage_price = frozen_brokerage_price + " + incrCount + // 负数,所以使用 + 号
97   - ", brokerage_price = brokerage_price + " + -incrCount) // 负数,所以使用 - 号
  96 + .setSql(" frozen_price = frozen_price + " + incrCount + // 负数,所以使用 + 号
  97 + ", price = price + " + -incrCount) // 负数,所以使用 - 号
98 98 .eq(BrokerageUserDO::getId, id)
99   - .ge(BrokerageUserDO::getFrozenBrokeragePrice, -incrCount); // cas 逻辑
  99 + .ge(BrokerageUserDO::getFrozenPrice, -incrCount); // cas 逻辑
100 100 return update(null, lambdaUpdateWrapper);
101 101 }
102 102  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/bo/BrokerageAddReqBO.java
... ... @@ -28,10 +28,10 @@ public class BrokerageAddReqBO {
28 28 /**
29 29 * 一级佣金(固定)
30 30 */
31   - private Integer firstBrokeragePrice;
  31 + private Integer firstFixedPrice;
32 32 /**
33 33 * 二级佣金(固定)
34 34 */
35   - private Integer secondBrokeragePrice;
  35 + private Integer secondFixedPrice;
36 36  
37 37 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/record/BrokerageRecordServiceImpl.java
... ... @@ -72,7 +72,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
72 72 return;
73 73 }
74 74 // 1.2 计算一级分佣
75   - addBrokerage(firstUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageFirstPercent(), BrokerageAddReqBO::getFirstBrokeragePrice, bizType);
  75 + addBrokerage(firstUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageFirstPercent(), BrokerageAddReqBO::getFirstFixedPrice, bizType);
76 76  
77 77 // 2.1 获得二级推广员
78 78 if (firstUser.getBindUserId() == null) {
... ... @@ -83,7 +83,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
83 83 return;
84 84 }
85 85 // 2.2 计算二级分佣
86   - addBrokerage(secondUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageSecondPercent(), BrokerageAddReqBO::getSecondBrokeragePrice, bizType);
  86 + addBrokerage(secondUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageSecondPercent(), BrokerageAddReqBO::getSecondFixedPrice, bizType);
87 87 }
88 88  
89 89 @Override
... ... @@ -105,24 +105,24 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
105 105  
106 106 // 2. 更新用户的佣金
107 107 if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) {
108   - brokerageUserService.updateUserFrozenBrokeragePrice(userId, -record.getPrice());
  108 + brokerageUserService.updateUserFrozenPrice(userId, -record.getPrice());
109 109 } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) {
110   - brokerageUserService.updateUserBrokeragePrice(userId, -record.getPrice());
  110 + brokerageUserService.updateUserPrice(userId, -record.getPrice());
111 111 }
112 112 }
113 113  
114 114 /**
115 115 * 计算佣金
116 116 *
117   - * @param basePrice 佣金基数
118   - * @param percent 佣金比例
119   - * @param fixedBrokeragePrice 固定佣金
  117 + * @param basePrice 佣金基数
  118 + * @param percent 佣金比例
  119 + * @param fixedPrice 固定佣金
120 120 * @return 佣金
121 121 */
122   - int calculateBrokeragePrice(Integer basePrice, Integer percent, Integer fixedBrokeragePrice) {
  122 + int calculatePrice(Integer basePrice, Integer percent, Integer fixedPrice) {
123 123 // 1. 优先使用固定佣金
124   - if (fixedBrokeragePrice != null && fixedBrokeragePrice > 0) {
125   - return ObjectUtil.defaultIfNull(fixedBrokeragePrice, 0);
  124 + if (fixedPrice != null && fixedPrice > 0) {
  125 + return ObjectUtil.defaultIfNull(fixedPrice, 0);
126 126 }
127 127 // 2. 根据比例计算佣金
128 128 if (basePrice != null && basePrice > 0 && percent != null && percent > 0) {
... ... @@ -134,15 +134,15 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
134 134 /**
135 135 * 增加用户佣金
136 136 *
137   - * @param user 用户
138   - * @param list 佣金增加参数列表
139   - * @param brokerageFrozenDays 冻结天数
140   - * @param brokeragePercent 佣金比例
141   - * @param FixedBrokeragePriceFun 固定佣金
142   - * @param bizType 业务类型
  137 + * @param user 用户
  138 + * @param list 佣金增加参数列表
  139 + * @param brokerageFrozenDays 冻结天数
  140 + * @param brokeragePercent 佣金比例
  141 + * @param fixedPriceFun 固定佣金
  142 + * @param bizType 业务类型
143 143 */
144 144 private void addBrokerage(BrokerageUserDO user, List<BrokerageAddReqBO> list, Integer brokerageFrozenDays,
145   - Integer brokeragePercent, Function<BrokerageAddReqBO, Integer> FixedBrokeragePriceFun,
  145 + Integer brokeragePercent, Function<BrokerageAddReqBO, Integer> fixedPriceFun,
146 146 BrokerageRecordBizTypeEnum bizType) {
147 147 // 1.1 处理冻结时间
148 148 LocalDateTime unfreezeTime = null;
... ... @@ -153,7 +153,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
153 153 int totalBrokerage = 0;
154 154 List<BrokerageRecordDO> records = new ArrayList<>();
155 155 for (BrokerageAddReqBO item : list) {
156   - int brokeragePerItem = calculateBrokeragePrice(item.getBasePrice(), brokeragePercent, FixedBrokeragePriceFun.apply(item));
  156 + int brokeragePerItem = calculatePrice(item.getBasePrice(), brokeragePercent, fixedPriceFun.apply(item));
157 157 if (brokeragePerItem <= 0) {
158 158 continue;
159 159 }
... ... @@ -169,9 +169,9 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
169 169  
170 170 // 2. 更新用户佣金
171 171 if (brokerageFrozenDays != null && brokerageFrozenDays > 0) { // 更新用户冻结佣金
172   - brokerageUserService.updateUserFrozenBrokeragePrice(user.getId(), totalBrokerage);
  172 + brokerageUserService.updateUserFrozenPrice(user.getId(), totalBrokerage);
173 173 } else { // 更新用户可用佣金
174   - brokerageUserService.updateUserBrokeragePrice(user.getId(), totalBrokerage);
  174 + brokerageUserService.updateUserPrice(user.getId(), totalBrokerage);
175 175 }
176 176 }
177 177  
... ... @@ -218,7 +218,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
218 218 }
219 219  
220 220 // 更新用户冻结佣金
221   - brokerageUserService.updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(record.getUserId(), -record.getPrice());
  221 + brokerageUserService.updateFrozenPriceDecrAndPriceIncr(record.getUserId(), -record.getPrice());
222 222 log.info("[unfreezeRecord][record({}) 更新为已结算成功]", record.getId());
223 223 return true;
224 224 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserService.java
... ... @@ -65,26 +65,26 @@ public interface BrokerageUserService {
65 65 /**
66 66 * 更新用户佣金
67 67 *
68   - * @param id 用户编号
69   - * @param brokeragePrice 用户可用佣金
  68 + * @param id 用户编号
  69 + * @param price 用户可用佣金
70 70 */
71   - void updateUserBrokeragePrice(Long id, Integer brokeragePrice);
  71 + void updateUserPrice(Long id, Integer price);
72 72  
73 73 /**
74 74 * 更新用户冻结佣金
75 75 *
76   - * @param id 用户编号
77   - * @param frozenBrokeragePrice 用户冻结佣金
  76 + * @param id 用户编号
  77 + * @param frozenPrice 用户冻结佣金
78 78 */
79   - void updateUserFrozenBrokeragePrice(Long id, Integer frozenBrokeragePrice);
  79 + void updateUserFrozenPrice(Long id, Integer frozenPrice);
80 80  
81 81 /**
82 82 * 更新用户冻结佣金(减少), 更新用户佣金(增加)
83 83 *
84   - * @param id 用户编号
85   - * @param frozenBrokeragePrice 减少冻结佣金(负数)
  84 + * @param id 用户编号
  85 + * @param frozenPrice 减少冻结佣金(负数)
86 86 */
87   - void updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, Integer frozenBrokeragePrice);
  87 + void updateFrozenPriceDecrAndPriceIncr(Long id, Integer frozenPrice);
88 88  
89 89 /**
90 90 * 获得推广用户数量(一级)
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserServiceImpl.java
... ... @@ -14,8 +14,8 @@ import java.util.List;
14 14 import java.util.Optional;
15 15  
16 16 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  17 +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.BROKERAGE_USER_FROZEN_PRICE_NOT_ENOUGH;
17 18 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.BROKERAGE_USER_NOT_EXISTS;
18   -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.USER_FROZEN_BROKERAGE_PRICE_NOT_ENOUGH;
19 19  
20 20 /**
21 21 * 分销用户 Service 实现类
... ... @@ -74,29 +74,29 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
74 74 }
75 75  
76 76 @Override
77   - public void updateUserBrokeragePrice(Long id, Integer brokeragePrice) {
78   - if (brokeragePrice > 0) {
79   - brokerageUserMapper.updateBrokeragePriceIncr(id, brokeragePrice);
80   - } else if (brokeragePrice < 0) {
81   - brokerageUserMapper.updateBrokeragePriceDecr(id, brokeragePrice);
  77 + public void updateUserPrice(Long id, Integer price) {
  78 + if (price > 0) {
  79 + brokerageUserMapper.updatePriceIncr(id, price);
  80 + } else if (price < 0) {
  81 + brokerageUserMapper.updatePriceDecr(id, price);
82 82 }
83 83 }
84 84  
85 85 @Override
86   - public void updateUserFrozenBrokeragePrice(Long id, Integer frozenBrokeragePrice) {
87   - if (frozenBrokeragePrice > 0) {
88   - brokerageUserMapper.updateFrozenBrokeragePriceIncr(id, frozenBrokeragePrice);
89   - } else if (frozenBrokeragePrice < 0) {
90   - brokerageUserMapper.updateFrozenBrokeragePriceDecr(id, frozenBrokeragePrice);
  86 + public void updateUserFrozenPrice(Long id, Integer frozenPrice) {
  87 + if (frozenPrice > 0) {
  88 + brokerageUserMapper.updateFrozenPriceIncr(id, frozenPrice);
  89 + } else if (frozenPrice < 0) {
  90 + brokerageUserMapper.updateFrozenPriceDecr(id, frozenPrice);
91 91 }
92 92 }
93 93  
94 94 @Override
95   - public void updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, Integer frozenBrokeragePrice) {
96   - Assert.isTrue(frozenBrokeragePrice < 0);
97   - int updateRows = brokerageUserMapper.updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(id, frozenBrokeragePrice);
  95 + public void updateFrozenPriceDecrAndPriceIncr(Long id, Integer frozenPrice) {
  96 + Assert.isTrue(frozenPrice < 0);
  97 + int updateRows = brokerageUserMapper.updateFrozenPriceDecrAndPriceIncr(id, frozenPrice);
98 98 if (updateRows == 0) {
99   - throw exception(USER_FROZEN_BROKERAGE_PRICE_NOT_ENOUGH);
  99 + throw exception(BROKERAGE_USER_FROZEN_PRICE_NOT_ENOUGH);
100 100 }
101 101 }
102 102  
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/brokerage/record/BrokerageRecordServiceImplTest.java
... ... @@ -79,38 +79,38 @@ public class BrokerageRecordServiceImplTest extends BaseDbUnitTest {
79 79 }
80 80  
81 81 @Test
82   - public void testCalculateBrokeragePrice_useFixedBrokeragePrice() {
  82 + public void testCalculatePrice_useFixedPrice() {
83 83 // mock 数据
84 84 Integer payPrice = randomInteger();
85 85 Integer percent = randomInt(1, 101);
86   - Integer fixedBrokeragePrice = randomInt();
  86 + Integer fixedPrice = randomInt();
87 87 // 调用
88   - int brokerage = brokerageRecordService.calculateBrokeragePrice(payPrice, percent, fixedBrokeragePrice);
  88 + int brokerage = brokerageRecordService.calculatePrice(payPrice, percent, fixedPrice);
89 89 // 断言
90   - assertEquals(brokerage, fixedBrokeragePrice);
  90 + assertEquals(brokerage, fixedPrice);
91 91 }
92 92  
93 93 @Test
94   - public void testCalculateBrokeragePrice_usePercent() {
  94 + public void testCalculatePrice_usePercent() {
95 95 // mock 数据
96 96 Integer payPrice = randomInteger();
97 97 Integer percent = randomInt(1, 101);
98   - Integer skuBrokeragePrice = randomEle(new Integer[]{0, null});
99   - System.out.println("skuBrokeragePrice=" + skuBrokeragePrice);
  98 + Integer fixedPrice = randomEle(new Integer[]{0, null});
  99 + System.out.println("fixedPrice=" + fixedPrice);
100 100 // 调用
101   - int brokerage = brokerageRecordService.calculateBrokeragePrice(payPrice, percent, skuBrokeragePrice);
  101 + int brokerage = brokerageRecordService.calculatePrice(payPrice, percent, fixedPrice);
102 102 // 断言
103 103 assertEquals(brokerage, NumberUtil.div(NumberUtil.mul(payPrice, percent), 100, 0, RoundingMode.DOWN).intValue());
104 104 }
105 105  
106 106 @Test
107   - public void testCalculateBrokeragePrice_equalsZero() {
  107 + public void testCalculatePrice_equalsZero() {
108 108 // mock 数据
109 109 Integer payPrice = null;
110 110 Integer percent = null;
111   - Integer skuBrokeragePrice = null;
  111 + Integer fixedPrice = null;
112 112 // 调用
113   - int brokerage = brokerageRecordService.calculateBrokeragePrice(payPrice, percent, skuBrokeragePrice);
  113 + int brokerage = brokerageRecordService.calculatePrice(payPrice, percent, fixedPrice);
114 114 // 断言
115 115 assertEquals(brokerage, 0);
116 116 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql
... ... @@ -128,19 +128,19 @@ CREATE TABLE IF NOT EXISTS &quot;trade_after_sale_log&quot; (
128 128  
129 129 CREATE TABLE IF NOT EXISTS "trade_brokerage_user"
130 130 (
131   - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
132   - "bind_user_id" bigint NOT NULL,
133   - "bind_user_time" varchar,
134   - "brokerage_enabled" bit NOT NULL,
135   - "brokerage_time" varchar,
136   - "brokerage_price" int NOT NULL,
137   - "frozen_brokerage_price" int NOT NULL,
138   - "creator" varchar DEFAULT '',
139   - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
140   - "updater" varchar DEFAULT '',
141   - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
142   - "deleted" bit NOT NULL DEFAULT FALSE,
143   - "tenant_id" bigint NOT NULL DEFAULT '0',
  131 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  132 + "bind_user_id" bigint NOT NULL,
  133 + "bind_user_time" varchar,
  134 + "brokerage_enabled" bit NOT NULL,
  135 + "brokerage_time" varchar,
  136 + "price" int NOT NULL,
  137 + "frozen_price" int NOT NULL,
  138 + "creator" varchar DEFAULT '',
  139 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  140 + "updater" varchar DEFAULT '',
  141 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  142 + "deleted" bit NOT NULL DEFAULT FALSE,
  143 + "tenant_id" bigint NOT NULL DEFAULT '0',
144 144 PRIMARY KEY ("id")
145 145 ) COMMENT '分销用户';
146 146 CREATE TABLE IF NOT EXISTS "trade_brokerage_record"
... ...