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,19 +23,19 @@ create table trade_config
23 -- 增加分销用户扩展表 23 -- 增加分销用户扩展表
24 create table trade_brokerage_user 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 ) comment '分销用户'; 39 ) comment '分销用户';
40 40
41 create index idx_invite_user_id on trade_brokerage_user (bind_user_id) comment '推广员编号'; 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,6 +77,6 @@ public interface ErrorCodeConstants {
77 77
78 // ========== 分销用户 模块 1011007000 ========== 78 // ========== 分销用户 模块 1011007000 ==========
79 ErrorCode BROKERAGE_USER_NOT_EXISTS = new ErrorCode(1011007000, "分销用户不存在"); 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,10 +34,10 @@ public class BrokerageUserBaseVO {
34 34
35 @Schema(description = "可用佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "11089") 35 @Schema(description = "可用佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "11089")
36 @NotNull(message = "可用佣金不能为空") 36 @NotNull(message = "可用佣金不能为空")
37 - private Integer brokeragePrice; 37 + private Integer price;
38 38
39 @Schema(description = "冻结佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "30916") 39 @Schema(description = "冻结佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "30916")
40 @NotNull(message = "冻结佣金不能为空") 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,8 +34,8 @@ public class AppBrokerageUserController {
34 @PreAuthenticated 34 @PreAuthenticated
35 public CommonResult<AppBrokerageUserRespVO> getBrokerageUser() { 35 public CommonResult<AppBrokerageUserRespVO> getBrokerageUser() {
36 AppBrokerageUserRespVO respVO = new AppBrokerageUserRespVO() 36 AppBrokerageUserRespVO respVO = new AppBrokerageUserRespVO()
37 - .setBrokeragePrice(2000)  
38 - .setFrozenBrokeragePrice(3000); 37 + .setPrice(2000)
  38 + .setFrozenPrice(3000);
39 return success(respVO); 39 return success(respVO);
40 } 40 }
41 41
@@ -45,10 +45,10 @@ public class AppBrokerageUserController { @@ -45,10 +45,10 @@ public class AppBrokerageUserController {
45 @PreAuthenticated 45 @PreAuthenticated
46 public CommonResult<AppBrokerageUserMySummaryRespVO> getBrokerageUserSummary() { 46 public CommonResult<AppBrokerageUserMySummaryRespVO> getBrokerageUserSummary() {
47 AppBrokerageUserMySummaryRespVO respVO = new AppBrokerageUserMySummaryRespVO() 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 .setFirstBrokerageUserCount(166) 52 .setFirstBrokerageUserCount(166)
53 .setSecondBrokerageUserCount(233); 53 .setSecondBrokerageUserCount(233);
54 return success(respVO); 54 return success(respVO);
@@ -81,16 +81,16 @@ public class AppBrokerageUserController { @@ -81,16 +81,16 @@ public class AppBrokerageUserController {
81 public CommonResult<PageResult<AppBrokerageUserRankByPriceRespVO>> getBrokerageUserChildSummaryPageByPrice(AppBrokerageUserRankPageReqVO pageReqVO) { 81 public CommonResult<PageResult<AppBrokerageUserRankByPriceRespVO>> getBrokerageUserChildSummaryPageByPrice(AppBrokerageUserRankPageReqVO pageReqVO) {
82 AppBrokerageUserRankByPriceRespVO vo1 = new AppBrokerageUserRankByPriceRespVO() 82 AppBrokerageUserRankByPriceRespVO vo1 = new AppBrokerageUserRankByPriceRespVO()
83 .setId(1L).setNickname("芋1**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 AppBrokerageUserRankByPriceRespVO vo2 = new AppBrokerageUserRankByPriceRespVO() 85 AppBrokerageUserRankByPriceRespVO vo2 = new AppBrokerageUserRankByPriceRespVO()
86 .setId(2L).setNickname("芋2**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 AppBrokerageUserRankByPriceRespVO vo3 = new AppBrokerageUserRankByPriceRespVO() 88 AppBrokerageUserRankByPriceRespVO vo3 = new AppBrokerageUserRankByPriceRespVO()
89 .setId(3L).setNickname("芋3**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 AppBrokerageUserRankByPriceRespVO vo4 = new AppBrokerageUserRankByPriceRespVO() 91 AppBrokerageUserRankByPriceRespVO vo4 = new AppBrokerageUserRankByPriceRespVO()
92 .setId(3L).setNickname("芋3**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 return success(new PageResult<>(asList(vo1, vo2, vo3, vo4), 10L)); 94 return success(new PageResult<>(asList(vo1, vo2, vo3, vo4), 10L));
95 } 95 }
96 96
@@ -102,11 +102,11 @@ public class AppBrokerageUserController { @@ -102,11 +102,11 @@ public class AppBrokerageUserController {
102 AppBrokerageUserChildSummaryPageReqVO pageReqVO) { 102 AppBrokerageUserChildSummaryPageReqVO pageReqVO) {
103 AppBrokerageUserChildSummaryRespVO vo1 = new AppBrokerageUserChildSummaryRespVO() 103 AppBrokerageUserChildSummaryRespVO vo1 = new AppBrokerageUserChildSummaryRespVO()
104 .setId(1L).setNickname("芋1**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 .setBrokerageTime(LocalDateTime.now()); 106 .setBrokerageTime(LocalDateTime.now());
107 AppBrokerageUserChildSummaryRespVO vo2 = new AppBrokerageUserChildSummaryRespVO() 107 AppBrokerageUserChildSummaryRespVO vo2 = new AppBrokerageUserChildSummaryRespVO()
108 .setId(1L).setNickname("芋2**艿").setAvatar("http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg") 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 .setBrokerageTime(LocalDateTime.now()); 110 .setBrokerageTime(LocalDateTime.now());
111 return success(new PageResult<>(asList(vo1, vo2), 10L)); 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,7 +19,7 @@ public class AppBrokerageUserChildSummaryRespVO {
19 private String avatar; 19 private String avatar;
20 20
21 @Schema(description = "佣金金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 21 @Schema(description = "佣金金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
22 - private Integer brokeragePrice; 22 + private Integer price;
23 23
24 @Schema(description = "分销订单数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") 24 @Schema(description = "分销订单数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20")
25 private Integer brokerageOrderCount; 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,16 +8,16 @@ import lombok.Data;
8 public class AppBrokerageUserMySummaryRespVO { 8 public class AppBrokerageUserMySummaryRespVO {
9 9
10 @Schema(description = "昨天的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 10 @Schema(description = "昨天的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
11 - private Integer yesterdayBrokeragePrice; 11 + private Integer yesterdayPrice;
12 12
13 @Schema(description = "提现的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 13 @Schema(description = "提现的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
14 - private Integer withdrawBrokeragePrice; 14 + private Integer withdrawPrice;
15 15
16 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408") 16 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408")
17 - private Integer brokeragePrice; 17 + private Integer price;
18 18
19 @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234") 19 @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234")
20 - private Integer frozenBrokeragePrice; 20 + private Integer frozenPrice;
21 21
22 @Schema(description = "分销用户数量(一级)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 22 @Schema(description = "分销用户数量(一级)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
23 private Integer firstBrokerageUserCount; 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,6 +17,6 @@ public class AppBrokerageUserRankByPriceRespVO {
17 private String avatar; 17 private String avatar;
18 18
19 @Schema(description = "佣金金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 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,9 +8,9 @@ import lombok.Data;
8 public class AppBrokerageUserRespVO { 8 public class AppBrokerageUserRespVO {
9 9
10 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408") 10 @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408")
11 - private Integer brokeragePrice; 11 + private Integer price;
12 12
13 @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234") 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,7 +43,7 @@ public interface BrokerageRecordConvert {
43 .setBizType(bizType.getType()) 43 .setBizType(bizType.getType())
44 .setBizId(bizId) 44 .setBizId(bizId)
45 .setPrice(brokerage) 45 .setPrice(brokerage)
46 - .setTotalPrice(user.getBrokeragePrice()) 46 + .setTotalPrice(user.getPrice())
47 .setTitle(title) 47 .setTitle(title)
48 .setDescription(StrUtil.format(bizType.getDescription(), String.valueOf(brokerage / 100.0))) 48 .setDescription(StrUtil.format(bizType.getDescription(), String.valueOf(brokerage / 100.0)))
49 .setStatus(status) 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,7 +278,7 @@ public interface TradeOrderConvert {
278 default BrokerageAddReqBO convert(TradeOrderItemDO item, ProductSkuRespDTO sku) { 278 default BrokerageAddReqBO convert(TradeOrderItemDO item, ProductSkuRespDTO sku) {
279 return new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())) 279 return new BrokerageAddReqBO().setBizId(String.valueOf(item.getId()))
280 .setBasePrice(item.getPayPrice() * item.getCount()) 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,7 +8,6 @@ import lombok.*;
8 8
9 import java.time.LocalDateTime; 9 import java.time.LocalDateTime;
10 10
11 -// TODO @疯狂:因为独立了表,是不是可以把字段的 brokerage 去掉了哈?  
12 /** 11 /**
13 * 分销用户 DO 12 * 分销用户 DO
14 * 13 *
@@ -55,10 +54,10 @@ public class BrokerageUserDO extends BaseDO { @@ -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,10 +31,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
31 * @param id 用户编号 31 * @param id 用户编号
32 * @param incrCount 增加佣金(正数) 32 * @param incrCount 增加佣金(正数)
33 */ 33 */
34 - default void updateBrokeragePriceIncr(Long id, Integer incrCount) { 34 + default void updatePriceIncr(Long id, Integer incrCount) {
35 Assert.isTrue(incrCount > 0); 35 Assert.isTrue(incrCount > 0);
36 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>() 36 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
37 - .setSql(" brokerage_price = brokerage_price + " + incrCount) 37 + .setSql(" price = price + " + incrCount)
38 .eq(BrokerageUserDO::getId, id); 38 .eq(BrokerageUserDO::getId, id);
39 update(null, lambdaUpdateWrapper); 39 update(null, lambdaUpdateWrapper);
40 } 40 }
@@ -46,10 +46,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; { @@ -46,10 +46,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
46 * @param id 用户编号 46 * @param id 用户编号
47 * @param incrCount 增加佣金(负数) 47 * @param incrCount 增加佣金(负数)
48 */ 48 */
49 - default void updateBrokeragePriceDecr(Long id, Integer incrCount) { 49 + default void updatePriceDecr(Long id, Integer incrCount) {
50 Assert.isTrue(incrCount < 0); 50 Assert.isTrue(incrCount < 0);
51 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>() 51 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
52 - .setSql(" brokerage_price = brokerage_price + " + incrCount) // 负数,所以使用 + 号 52 + .setSql(" price = price + " + incrCount) // 负数,所以使用 + 号
53 .eq(BrokerageUserDO::getId, id); 53 .eq(BrokerageUserDO::getId, id);
54 update(null, lambdaUpdateWrapper); 54 update(null, lambdaUpdateWrapper);
55 } 55 }
@@ -60,10 +60,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; { @@ -60,10 +60,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
60 * @param id 用户编号 60 * @param id 用户编号
61 * @param incrCount 增加冻结佣金(正数) 61 * @param incrCount 增加冻结佣金(正数)
62 */ 62 */
63 - default void updateFrozenBrokeragePriceIncr(Long id, Integer incrCount) { 63 + default void updateFrozenPriceIncr(Long id, Integer incrCount) {
64 Assert.isTrue(incrCount > 0); 64 Assert.isTrue(incrCount > 0);
65 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>() 65 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
66 - .setSql(" frozen_brokerage_price = frozen_brokerage_price + " + incrCount) 66 + .setSql(" frozen_price = frozen_price + " + incrCount)
67 .eq(BrokerageUserDO::getId, id); 67 .eq(BrokerageUserDO::getId, id);
68 update(null, lambdaUpdateWrapper); 68 update(null, lambdaUpdateWrapper);
69 } 69 }
@@ -75,10 +75,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; { @@ -75,10 +75,10 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
75 * @param id 用户编号 75 * @param id 用户编号
76 * @param incrCount 减少冻结佣金(负数) 76 * @param incrCount 减少冻结佣金(负数)
77 */ 77 */
78 - default void updateFrozenBrokeragePriceDecr(Long id, Integer incrCount) { 78 + default void updateFrozenPriceDecr(Long id, Integer incrCount) {
79 Assert.isTrue(incrCount < 0); 79 Assert.isTrue(incrCount < 0);
80 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>() 80 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>()
81 - .setSql(" frozen_brokerage_price = frozen_brokerage_price + " + incrCount) // 负数,所以使用 + 号 81 + .setSql(" frozen_price = frozen_price + " + incrCount) // 负数,所以使用 + 号
82 .eq(BrokerageUserDO::getId, id); 82 .eq(BrokerageUserDO::getId, id);
83 update(null, lambdaUpdateWrapper); 83 update(null, lambdaUpdateWrapper);
84 } 84 }
@@ -90,13 +90,13 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; { @@ -90,13 +90,13 @@ public interface BrokerageUserMapper extends BaseMapperX&lt;BrokerageUserDO&gt; {
90 * @param incrCount 减少冻结佣金(负数) 90 * @param incrCount 减少冻结佣金(负数)
91 * @return 更新条数 91 * @return 更新条数
92 */ 92 */
93 - default int updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, Integer incrCount) { 93 + default int updateFrozenPriceDecrAndPriceIncr(Long id, Integer incrCount) {
94 Assert.isTrue(incrCount < 0); 94 Assert.isTrue(incrCount < 0);
95 LambdaUpdateWrapper<BrokerageUserDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<BrokerageUserDO>() 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 .eq(BrokerageUserDO::getId, id) 98 .eq(BrokerageUserDO::getId, id)
99 - .ge(BrokerageUserDO::getFrozenBrokeragePrice, -incrCount); // cas 逻辑 99 + .ge(BrokerageUserDO::getFrozenPrice, -incrCount); // cas 逻辑
100 return update(null, lambdaUpdateWrapper); 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,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,7 +72,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
72 return; 72 return;
73 } 73 }
74 // 1.2 计算一级分佣 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 // 2.1 获得二级推广员 77 // 2.1 获得二级推广员
78 if (firstUser.getBindUserId() == null) { 78 if (firstUser.getBindUserId() == null) {
@@ -83,7 +83,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -83,7 +83,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
83 return; 83 return;
84 } 84 }
85 // 2.2 计算二级分佣 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 @Override 89 @Override
@@ -105,24 +105,24 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -105,24 +105,24 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
105 105
106 // 2. 更新用户的佣金 106 // 2. 更新用户的佣金
107 if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { 107 if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) {
108 - brokerageUserService.updateUserFrozenBrokeragePrice(userId, -record.getPrice()); 108 + brokerageUserService.updateUserFrozenPrice(userId, -record.getPrice());
109 } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { 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 * @return 佣金 120 * @return 佣金
121 */ 121 */
122 - int calculateBrokeragePrice(Integer basePrice, Integer percent, Integer fixedBrokeragePrice) { 122 + int calculatePrice(Integer basePrice, Integer percent, Integer fixedPrice) {
123 // 1. 优先使用固定佣金 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 // 2. 根据比例计算佣金 127 // 2. 根据比例计算佣金
128 if (basePrice != null && basePrice > 0 && percent != null && percent > 0) { 128 if (basePrice != null && basePrice > 0 && percent != null && percent > 0) {
@@ -134,15 +134,15 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -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 private void addBrokerage(BrokerageUserDO user, List<BrokerageAddReqBO> list, Integer brokerageFrozenDays, 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 BrokerageRecordBizTypeEnum bizType) { 146 BrokerageRecordBizTypeEnum bizType) {
147 // 1.1 处理冻结时间 147 // 1.1 处理冻结时间
148 LocalDateTime unfreezeTime = null; 148 LocalDateTime unfreezeTime = null;
@@ -153,7 +153,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -153,7 +153,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
153 int totalBrokerage = 0; 153 int totalBrokerage = 0;
154 List<BrokerageRecordDO> records = new ArrayList<>(); 154 List<BrokerageRecordDO> records = new ArrayList<>();
155 for (BrokerageAddReqBO item : list) { 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 if (brokeragePerItem <= 0) { 157 if (brokeragePerItem <= 0) {
158 continue; 158 continue;
159 } 159 }
@@ -169,9 +169,9 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -169,9 +169,9 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
169 169
170 // 2. 更新用户佣金 170 // 2. 更新用户佣金
171 if (brokerageFrozenDays != null && brokerageFrozenDays > 0) { // 更新用户冻结佣金 171 if (brokerageFrozenDays != null && brokerageFrozenDays > 0) { // 更新用户冻结佣金
172 - brokerageUserService.updateUserFrozenBrokeragePrice(user.getId(), totalBrokerage); 172 + brokerageUserService.updateUserFrozenPrice(user.getId(), totalBrokerage);
173 } else { // 更新用户可用佣金 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,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 log.info("[unfreezeRecord][record({}) 更新为已结算成功]", record.getId()); 222 log.info("[unfreezeRecord][record({}) 更新为已结算成功]", record.getId());
223 return true; 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,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,8 +14,8 @@ import java.util.List;
14 import java.util.Optional; 14 import java.util.Optional;
15 15
16 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 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 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.BROKERAGE_USER_NOT_EXISTS; 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 * 分销用户 Service 实现类 21 * 分销用户 Service 实现类
@@ -74,29 +74,29 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { @@ -74,29 +74,29 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
74 } 74 }
75 75
76 @Override 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 @Override 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 @Override 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 if (updateRows == 0) { 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,38 +79,38 @@ public class BrokerageRecordServiceImplTest extends BaseDbUnitTest {
79 } 79 }
80 80
81 @Test 81 @Test
82 - public void testCalculateBrokeragePrice_useFixedBrokeragePrice() { 82 + public void testCalculatePrice_useFixedPrice() {
83 // mock 数据 83 // mock 数据
84 Integer payPrice = randomInteger(); 84 Integer payPrice = randomInteger();
85 Integer percent = randomInt(1, 101); 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 @Test 93 @Test
94 - public void testCalculateBrokeragePrice_usePercent() { 94 + public void testCalculatePrice_usePercent() {
95 // mock 数据 95 // mock 数据
96 Integer payPrice = randomInteger(); 96 Integer payPrice = randomInteger();
97 Integer percent = randomInt(1, 101); 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 assertEquals(brokerage, NumberUtil.div(NumberUtil.mul(payPrice, percent), 100, 0, RoundingMode.DOWN).intValue()); 103 assertEquals(brokerage, NumberUtil.div(NumberUtil.mul(payPrice, percent), 100, 0, RoundingMode.DOWN).intValue());
104 } 104 }
105 105
106 @Test 106 @Test
107 - public void testCalculateBrokeragePrice_equalsZero() { 107 + public void testCalculatePrice_equalsZero() {
108 // mock 数据 108 // mock 数据
109 Integer payPrice = null; 109 Integer payPrice = null;
110 Integer percent = null; 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 assertEquals(brokerage, 0); 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,19 +128,19 @@ CREATE TABLE IF NOT EXISTS &quot;trade_after_sale_log&quot; (
128 128
129 CREATE TABLE IF NOT EXISTS "trade_brokerage_user" 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 PRIMARY KEY ("id") 144 PRIMARY KEY ("id")
145 ) COMMENT '分销用户'; 145 ) COMMENT '分销用户';
146 CREATE TABLE IF NOT EXISTS "trade_brokerage_record" 146 CREATE TABLE IF NOT EXISTS "trade_brokerage_record"