Commit 4b43304c765190a0cae4fc6285e3ec5b69abb8c3
1 parent
f36a6c5d
trade: 优化分销用户绑定用户编号、绑定时间字段名称
Showing
11 changed files
with
25 additions
and
24 deletions
sql/mysql/brokerage.sql
| @@ -24,8 +24,8 @@ create table trade_config | @@ -24,8 +24,8 @@ create table trade_config | ||
| 24 | create table trade_brokerage_user | 24 | create table trade_brokerage_user |
| 25 | ( | 25 | ( |
| 26 | id bigint auto_increment comment '用户编号' primary key, | 26 | id bigint auto_increment comment '用户编号' primary key, |
| 27 | - brokerage_user_id bigint null comment '推广员编号', | ||
| 28 | - brokerage_bind_time datetime null comment '推广员绑定时间', | 27 | + bind_user_id bigint null comment '推广员编号', |
| 28 | + bind_user_time datetime null comment '推广员绑定时间', | ||
| 29 | brokerage_enabled bit default 1 not null comment '是否成为推广员', | 29 | brokerage_enabled bit default 1 not null comment '是否成为推广员', |
| 30 | brokerage_time datetime null comment '成为分销员时间', | 30 | brokerage_time datetime null comment '成为分销员时间', |
| 31 | brokerage_price int default 0 not null comment '可用佣金', | 31 | brokerage_price int default 0 not null comment '可用佣金', |
| @@ -38,7 +38,7 @@ create table trade_brokerage_user | @@ -38,7 +38,7 @@ create table trade_brokerage_user | ||
| 38 | tenant_id bigint default 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 (brokerage_user_id) comment '推广员编号'; | 41 | +create index idx_invite_user_id on trade_brokerage_user (bind_user_id) comment '推广员编号'; |
| 42 | create index idx_agent on trade_brokerage_user (brokerage_enabled) comment '是否成为推广员'; | 42 | create index idx_agent on trade_brokerage_user (brokerage_enabled) comment '是否成为推广员'; |
| 43 | 43 | ||
| 44 | 44 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/BrokerageUserController.java
| @@ -94,7 +94,7 @@ public class BrokerageUserController { | @@ -94,7 +94,7 @@ public class BrokerageUserController { | ||
| 94 | // 合计推广用户数量 | 94 | // 合计推广用户数量 |
| 95 | Map<Long, Long> brokerageUserCountMap = convertMap(userIds, | 95 | Map<Long, Long> brokerageUserCountMap = convertMap(userIds, |
| 96 | userId -> userId, | 96 | userId -> userId, |
| 97 | - userId -> brokerageUserService.getCountByBrokerageUserId(userId)); | 97 | + userId -> brokerageUserService.getCountByBindUserId(userId)); |
| 98 | 98 | ||
| 99 | // todo 合计提现 | 99 | // todo 合计提现 |
| 100 | 100 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/vo/BrokerageUserBaseVO.java
| @@ -18,11 +18,11 @@ public class BrokerageUserBaseVO { | @@ -18,11 +18,11 @@ public class BrokerageUserBaseVO { | ||
| 18 | 18 | ||
| 19 | @Schema(description = "推广员编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4587") | 19 | @Schema(description = "推广员编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4587") |
| 20 | @NotNull(message = "推广员编号不能为空") | 20 | @NotNull(message = "推广员编号不能为空") |
| 21 | - private Long brokerageUserId; | 21 | + private Long bindUserId; |
| 22 | 22 | ||
| 23 | @Schema(description = "推广员绑定时间") | 23 | @Schema(description = "推广员绑定时间") |
| 24 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 24 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 25 | - private LocalDateTime brokerageBindTime; | 25 | + private LocalDateTime bindUserTime; |
| 26 | 26 | ||
| 27 | @Schema(description = "推广资格", requiredMode = Schema.RequiredMode.REQUIRED) | 27 | @Schema(description = "推广资格", requiredMode = Schema.RequiredMode.REQUIRED) |
| 28 | @NotNull(message = "推广资格不能为空") | 28 | @NotNull(message = "推广资格不能为空") |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/vo/BrokerageUserPageReqVO.java
| @@ -18,7 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -18,7 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 18 | public class BrokerageUserPageReqVO extends PageParam { | 18 | public class BrokerageUserPageReqVO extends PageParam { |
| 19 | 19 | ||
| 20 | @Schema(description = "推广员编号", example = "4587") | 20 | @Schema(description = "推广员编号", example = "4587") |
| 21 | - private Long brokerageUserId; | 21 | + private Long bindUserId; |
| 22 | 22 | ||
| 23 | @Schema(description = "推广资格") | 23 | @Schema(description = "推广资格") |
| 24 | private Boolean brokerageEnabled; | 24 | private Boolean brokerageEnabled; |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/user/BrokerageUserDO.java
| @@ -26,21 +26,22 @@ public class BrokerageUserDO extends BaseDO { | @@ -26,21 +26,22 @@ public class BrokerageUserDO extends BaseDO { | ||
| 26 | 26 | ||
| 27 | /** | 27 | /** |
| 28 | * 用户编号 | 28 | * 用户编号 |
| 29 | + * <p> | ||
| 30 | + * 对应 MemberUserDO 的 id 字段 | ||
| 29 | */ | 31 | */ |
| 30 | @TableId | 32 | @TableId |
| 31 | private Long id; | 33 | private Long id; |
| 32 | 34 | ||
| 33 | - // TODO @疯狂:貌似改成 bindUserId,更明确? | ||
| 34 | /** | 35 | /** |
| 35 | * 推广员编号 | 36 | * 推广员编号 |
| 36 | - * | 37 | + * <p> |
| 37 | * 关联 MemberUserDO 的 id 字段 | 38 | * 关联 MemberUserDO 的 id 字段 |
| 38 | */ | 39 | */ |
| 39 | - private Long brokerageUserId; | 40 | + private Long bindUserId; |
| 40 | /** | 41 | /** |
| 41 | * 推广员绑定时间 | 42 | * 推广员绑定时间 |
| 42 | */ | 43 | */ |
| 43 | - private LocalDateTime brokerageBindTime; | 44 | + private LocalDateTime bindUserTime; |
| 44 | 45 | ||
| 45 | /** | 46 | /** |
| 46 | * 推广资格 | 47 | * 推广资格 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/user/BrokerageUserMapper.java
| @@ -19,7 +19,7 @@ public interface BrokerageUserMapper extends BaseMapperX<BrokerageUserDO> { | @@ -19,7 +19,7 @@ public interface BrokerageUserMapper extends BaseMapperX<BrokerageUserDO> { | ||
| 19 | 19 | ||
| 20 | default PageResult<BrokerageUserDO> selectPage(BrokerageUserPageReqVO reqVO) { | 20 | default PageResult<BrokerageUserDO> selectPage(BrokerageUserPageReqVO reqVO) { |
| 21 | return selectPage(reqVO, new LambdaQueryWrapperX<BrokerageUserDO>() | 21 | return selectPage(reqVO, new LambdaQueryWrapperX<BrokerageUserDO>() |
| 22 | - .eqIfPresent(BrokerageUserDO::getBrokerageUserId, reqVO.getBrokerageUserId()) | 22 | + .eqIfPresent(BrokerageUserDO::getBindUserId, reqVO.getBindUserId()) |
| 23 | .eqIfPresent(BrokerageUserDO::getBrokerageEnabled, reqVO.getBrokerageEnabled()) | 23 | .eqIfPresent(BrokerageUserDO::getBrokerageEnabled, reqVO.getBrokerageEnabled()) |
| 24 | .betweenIfPresent(BrokerageUserDO::getCreateTime, reqVO.getCreateTime()) | 24 | .betweenIfPresent(BrokerageUserDO::getCreateTime, reqVO.getCreateTime()) |
| 25 | .orderByDesc(BrokerageUserDO::getId)); | 25 | .orderByDesc(BrokerageUserDO::getId)); |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/record/BrokerageRecordServiceImpl.java
| @@ -75,10 +75,10 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | @@ -75,10 +75,10 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | ||
| 75 | addBrokerage(firstUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageFirstPercent(), BrokerageAddReqBO::getFirstBrokeragePrice, bizType); | 75 | addBrokerage(firstUser, list, memberConfig.getBrokerageFrozenDays(), memberConfig.getBrokerageFirstPercent(), BrokerageAddReqBO::getFirstBrokeragePrice, bizType); |
| 76 | 76 | ||
| 77 | // 2.1 获得二级推广员 | 77 | // 2.1 获得二级推广员 |
| 78 | - if (firstUser.getBrokerageUserId() == null) { | 78 | + if (firstUser.getBindUserId() == null) { |
| 79 | return; | 79 | return; |
| 80 | } | 80 | } |
| 81 | - BrokerageUserDO secondUser = brokerageUserService.getBrokerageUser(firstUser.getBrokerageUserId()); | 81 | + BrokerageUserDO secondUser = brokerageUserService.getBrokerageUser(firstUser.getBindUserId()); |
| 82 | if (secondUser == null || !BooleanUtil.isTrue(secondUser.getBrokerageEnabled())) { | 82 | if (secondUser == null || !BooleanUtil.isTrue(secondUser.getBrokerageEnabled())) { |
| 83 | return; | 83 | return; |
| 84 | } | 84 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserService.java
| @@ -89,8 +89,8 @@ public interface BrokerageUserService { | @@ -89,8 +89,8 @@ public interface BrokerageUserService { | ||
| 89 | /** | 89 | /** |
| 90 | * 获得推广用户数量(一级) | 90 | * 获得推广用户数量(一级) |
| 91 | * | 91 | * |
| 92 | - * @param brokerageUserId 推广员编号 | 92 | + * @param bindUserId 绑定的推广员编号 |
| 93 | * @return 推广用户数量 | 93 | * @return 推广用户数量 |
| 94 | */ | 94 | */ |
| 95 | - Long getCountByBrokerageUserId(Long brokerageUserId); | 95 | + Long getCountByBindUserId(Long bindUserId); |
| 96 | } | 96 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserServiceImpl.java
| @@ -68,7 +68,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | @@ -68,7 +68,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||
| 68 | public BrokerageUserDO getBindBrokerageUser(Long id) { | 68 | public BrokerageUserDO getBindBrokerageUser(Long id) { |
| 69 | return Optional.ofNullable(id) | 69 | return Optional.ofNullable(id) |
| 70 | .map(this::getBrokerageUser) | 70 | .map(this::getBrokerageUser) |
| 71 | - .map(BrokerageUserDO::getBrokerageUserId) | 71 | + .map(BrokerageUserDO::getBindUserId) |
| 72 | .map(this::getBrokerageUser) | 72 | .map(this::getBrokerageUser) |
| 73 | .orElse(null); | 73 | .orElse(null); |
| 74 | } | 74 | } |
| @@ -101,8 +101,8 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | @@ -101,8 +101,8 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | @Override | 103 | @Override |
| 104 | - public Long getCountByBrokerageUserId(Long brokerageUserId) { | ||
| 105 | - return brokerageUserMapper.selectCount(BrokerageUserDO::getBrokerageUserId, brokerageUserId); | 104 | + public Long getCountByBindUserId(Long bindUserId) { |
| 105 | + return brokerageUserMapper.selectCount(BrokerageUserDO::getBindUserId, bindUserId); | ||
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | } | 108 | } |
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/brokerage/user/BrokerageUserServiceImplTest.java
| @@ -37,20 +37,20 @@ public class BrokerageUserServiceImplTest extends BaseDbUnitTest { | @@ -37,20 +37,20 @@ public class BrokerageUserServiceImplTest extends BaseDbUnitTest { | ||
| 37 | public void testGetBrokerageUserPage() { | 37 | public void testGetBrokerageUserPage() { |
| 38 | // mock 数据 | 38 | // mock 数据 |
| 39 | BrokerageUserDO dbBrokerageUser = randomPojo(BrokerageUserDO.class, o -> { // 等会查询到 | 39 | BrokerageUserDO dbBrokerageUser = randomPojo(BrokerageUserDO.class, o -> { // 等会查询到 |
| 40 | - o.setBrokerageUserId(null); | 40 | + o.setBindUserId(null); |
| 41 | o.setBrokerageEnabled(null); | 41 | o.setBrokerageEnabled(null); |
| 42 | o.setCreateTime(null); | 42 | o.setCreateTime(null); |
| 43 | }); | 43 | }); |
| 44 | brokerageUserMapper.insert(dbBrokerageUser); | 44 | brokerageUserMapper.insert(dbBrokerageUser); |
| 45 | // 测试 brokerageUserId 不匹配 | 45 | // 测试 brokerageUserId 不匹配 |
| 46 | - brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setBrokerageUserId(null))); | 46 | + brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setBindUserId(null))); |
| 47 | // 测试 brokerageEnabled 不匹配 | 47 | // 测试 brokerageEnabled 不匹配 |
| 48 | brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setBrokerageEnabled(null))); | 48 | brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setBrokerageEnabled(null))); |
| 49 | // 测试 createTime 不匹配 | 49 | // 测试 createTime 不匹配 |
| 50 | brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setCreateTime(null))); | 50 | brokerageUserMapper.insert(cloneIgnoreId(dbBrokerageUser, o -> o.setCreateTime(null))); |
| 51 | // 准备参数 | 51 | // 准备参数 |
| 52 | BrokerageUserPageReqVO reqVO = new BrokerageUserPageReqVO(); | 52 | BrokerageUserPageReqVO reqVO = new BrokerageUserPageReqVO(); |
| 53 | - reqVO.setBrokerageUserId(null); | 53 | + reqVO.setBindUserId(null); |
| 54 | reqVO.setBrokerageEnabled(null); | 54 | reqVO.setBrokerageEnabled(null); |
| 55 | reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); | 55 | reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); |
| 56 | 56 |
yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql
| @@ -129,8 +129,8 @@ CREATE TABLE IF NOT EXISTS "trade_after_sale_log" ( | @@ -129,8 +129,8 @@ CREATE TABLE IF NOT EXISTS "trade_after_sale_log" ( | ||
| 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, | 131 | "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 132 | - "brokerage_user_id" bigint NOT NULL, | ||
| 133 | - "brokerage_bind_time" varchar, | 132 | + "bind_user_id" bigint NOT NULL, |
| 133 | + "bind_user_time" varchar, | ||
| 134 | "brokerage_enabled" bit NOT NULL, | 134 | "brokerage_enabled" bit NOT NULL, |
| 135 | "brokerage_time" varchar, | 135 | "brokerage_time" varchar, |
| 136 | "brokerage_price" int NOT NULL, | 136 | "brokerage_price" int NOT NULL, |