Commit 166b1b31c0b20c3016fa2bebce376fdef96ea142

Authored by owen
1 parent 5808f77a

trade: 分销用户管理

Showing 11 changed files with 163 additions and 41 deletions
sql/mysql/brokerage.sql
@@ -24,7 +24,7 @@ create table trade_config @@ -24,7 +24,7 @@ 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 not null comment '推广员编号', 27 + brokerage_user_id bigint null comment '推广员编号',
28 brokerage_bind_time datetime null comment '推广员绑定时间', 28 brokerage_bind_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 '成为分销员时间',
@@ -185,12 +185,15 @@ SELECT @parentId := LAST_INSERT_ID(); @@ -185,12 +185,15 @@ SELECT @parentId := LAST_INSERT_ID();
185 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) 185 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
186 VALUES ('分销用户查询', 'trade:brokerage-user:query', 3, 1, @parentId, '', '', '', 0); 186 VALUES ('分销用户查询', 'trade:brokerage-user:query', 3, 1, @parentId, '', '', '', 0);
187 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) 187 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
188 -VALUES ('分销用户修改推广员', 'trade:brokerage-user:update-brokerage-user', 3, 2, @parentId, '', '', '', 0); 188 +VALUES ('分销用户推广人查询', 'trade:brokerage-user:user-query', 3, 2, @parentId, '', '', '', 0);
189 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) 189 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
190 -VALUES ('分销用户清除推广员', 'trade:brokerage-user:clear-brokerage-user', 3, 3, @parentId, '', '', '', 0); 190 +VALUES ('分销用户推广订单查询', 'trade:brokerage-user:order-query', 3, 3, @parentId, '', '', '', 0);
191 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) 191 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
192 VALUES ('分销用户修改推广资格', 'trade:brokerage-user:update-brokerage-enable', 3, 4, @parentId, '', '', '', 0); 192 VALUES ('分销用户修改推广资格', 'trade:brokerage-user:update-brokerage-enable', 3, 4, @parentId, '', '', '', 0);
193 - 193 +INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
  194 +VALUES ('分销用户修改推广员', 'trade:brokerage-user:update-brokerage-user', 3, 5, @parentId, '', '', '', 0);
  195 +INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
  196 +VALUES ('分销用户清除推广员', 'trade:brokerage-user:clear-brokerage-user', 3, 6, @parentId, '', '', '', 0);
194 197
195 -- 增加菜单:佣金记录 198 -- 增加菜单:佣金记录
196 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status, component_name) 199 INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status, component_name)
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/TradeBrokerageUserController.java
@@ -2,9 +2,15 @@ package cn.iocoder.yudao.module.trade.controller.admin.brokerage.user; @@ -2,9 +2,15 @@ package cn.iocoder.yudao.module.trade.controller.admin.brokerage.user;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
  6 +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
5 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.*; 7 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.*;
6 import cn.iocoder.yudao.module.trade.convert.brokerage.user.TradeBrokerageUserConvert; 8 import cn.iocoder.yudao.module.trade.convert.brokerage.user.TradeBrokerageUserConvert;
7 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.TradeBrokerageUserDO; 9 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.TradeBrokerageUserDO;
  10 +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum;
  11 +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum;
  12 +import cn.iocoder.yudao.module.trade.service.brokerage.record.TradeBrokerageRecordService;
  13 +import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.UserBrokerageSummaryBO;
8 import cn.iocoder.yudao.module.trade.service.brokerage.user.TradeBrokerageUserService; 14 import cn.iocoder.yudao.module.trade.service.brokerage.user.TradeBrokerageUserService;
9 import io.swagger.v3.oas.annotations.Operation; 15 import io.swagger.v3.oas.annotations.Operation;
10 import io.swagger.v3.oas.annotations.Parameter; 16 import io.swagger.v3.oas.annotations.Parameter;
@@ -15,8 +21,12 @@ import org.springframework.web.bind.annotation.*; @@ -15,8 +21,12 @@ import org.springframework.web.bind.annotation.*;
15 21
16 import javax.annotation.Resource; 22 import javax.annotation.Resource;
17 import javax.validation.Valid; 23 import javax.validation.Valid;
  24 +import java.util.Map;
  25 +import java.util.Set;
18 26
19 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 27 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  28 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  29 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
20 30
21 @Tag(name = "管理后台 - 分销用户") 31 @Tag(name = "管理后台 - 分销用户")
22 @RestController 32 @RestController
@@ -26,6 +36,11 @@ public class TradeBrokerageUserController { @@ -26,6 +36,11 @@ public class TradeBrokerageUserController {
26 36
27 @Resource 37 @Resource
28 private TradeBrokerageUserService brokerageUserService; 38 private TradeBrokerageUserService brokerageUserService;
  39 + @Resource
  40 + private TradeBrokerageRecordService brokerageRecordService;
  41 +
  42 + @Resource
  43 + private MemberUserApi memberUserApi;
29 44
30 @PutMapping("/update-brokerage-user") 45 @PutMapping("/update-brokerage-user")
31 @Operation(summary = "修改推广员") 46 @Operation(summary = "修改推广员")
@@ -64,8 +79,26 @@ public class TradeBrokerageUserController { @@ -64,8 +79,26 @@ public class TradeBrokerageUserController {
64 @Operation(summary = "获得分销用户分页") 79 @Operation(summary = "获得分销用户分页")
65 @PreAuthorize("@ss.hasPermission('trade:brokerage-user:query')") 80 @PreAuthorize("@ss.hasPermission('trade:brokerage-user:query')")
66 public CommonResult<PageResult<TradeBrokerageUserRespVO>> getBrokerageUserPage(@Valid TradeBrokerageUserPageReqVO pageVO) { 81 public CommonResult<PageResult<TradeBrokerageUserRespVO>> getBrokerageUserPage(@Valid TradeBrokerageUserPageReqVO pageVO) {
  82 + // 分页查询
67 PageResult<TradeBrokerageUserDO> pageResult = brokerageUserService.getBrokerageUserPage(pageVO); 83 PageResult<TradeBrokerageUserDO> pageResult = brokerageUserService.getBrokerageUserPage(pageVO);
68 - return success(TradeBrokerageUserConvert.INSTANCE.convertPage(pageResult)); 84 +
  85 + // 涉及到的用户
  86 + Set<Long> userIds = convertSet(pageResult.getList(), TradeBrokerageUserDO::getId);
  87 + // 查询用户信息
  88 + Map<Long, MemberUserRespDTO> userMap = memberUserApi.getUserMap(userIds);
  89 + // 合计分佣订单
  90 + Map<Long, UserBrokerageSummaryBO> userOrderSummaryMap = convertMap(userIds,
  91 + userId -> userId,
  92 + userId -> brokerageRecordService.summaryByUserIdAndBizTypeAndStatus(userId,
  93 + BrokerageRecordBizTypeEnum.ORDER.getType(), BrokerageRecordStatusEnum.SETTLEMENT.getStatus()));
  94 + // 合计推广用户数量
  95 + Map<Long, Long> brokerageUserCountMap = convertMap(userIds,
  96 + userId -> userId,
  97 + userId -> brokerageUserService.getCountByBrokerageUserId(userId));
  98 +
  99 + // todo 合计提现
  100 +
  101 + return success(TradeBrokerageUserConvert.INSTANCE.convertPage(pageResult, userMap, brokerageUserCountMap, userOrderSummaryMap));
69 } 102 }
70 103
71 } 104 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/user/vo/TradeBrokerageUserRespVO.java
@@ -19,4 +19,30 @@ public class TradeBrokerageUserRespVO extends TradeBrokerageUserBaseVO { @@ -19,4 +19,30 @@ public class TradeBrokerageUserRespVO extends TradeBrokerageUserBaseVO {
19 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 19 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
20 private LocalDateTime createTime; 20 private LocalDateTime createTime;
21 21
  22 +
  23 + // ========== 用户信息 ==========
  24 +
  25 + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png")
  26 + private String avatar;
  27 + @Schema(description = "用户昵称", example = "李四")
  28 + private String nickname;
  29 +
  30 +
  31 + // ========== 推广信息 ==========
  32 +
  33 + @Schema(description = "推广用户数量(一级)", example = "20019")
  34 + private Integer brokerageUserCount;
  35 + @Schema(description = "推广订单数量", example = "20019")
  36 + private Integer brokerageOrderCount;
  37 + @Schema(description = "推广订单金额", example = "20019")
  38 + private Integer brokerageOrderPrice;
  39 +
  40 +
  41 + // ========== 提现信息 ==========
  42 +
  43 + @Schema(description = "已提现金额", example = "20019")
  44 + private Integer withdrawPrice;
  45 + @Schema(description = "已提现次数", example = "20019")
  46 + private Integer withdrawCount;
  47 +
22 } 48 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/TradeBrokerageUserConvert.java
1 package cn.iocoder.yudao.module.trade.convert.brokerage.user; 1 package cn.iocoder.yudao.module.trade.convert.brokerage.user;
2 2
  3 +import cn.hutool.core.map.MapUtil;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
4 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.TradeBrokerageUserRespVO; 6 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.TradeBrokerageUserRespVO;
5 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.TradeBrokerageUserDO; 7 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.TradeBrokerageUserDO;
  8 +import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.UserBrokerageSummaryBO;
6 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
7 import org.mapstruct.factory.Mappers; 10 import org.mapstruct.factory.Mappers;
8 11
9 import java.util.List; 12 import java.util.List;
  13 +import java.util.Map;
  14 +import java.util.Optional;
10 15
11 /** 16 /**
12 * 分销用户 Convert 17 * 分销用户 Convert
@@ -24,4 +29,33 @@ public interface TradeBrokerageUserConvert { @@ -24,4 +29,33 @@ public interface TradeBrokerageUserConvert {
24 29
25 PageResult<TradeBrokerageUserRespVO> convertPage(PageResult<TradeBrokerageUserDO> page); 30 PageResult<TradeBrokerageUserRespVO> convertPage(PageResult<TradeBrokerageUserDO> page);
26 31
  32 + default PageResult<TradeBrokerageUserRespVO> convertPage(PageResult<TradeBrokerageUserDO> pageResult,
  33 + Map<Long, MemberUserRespDTO> userMap,
  34 + Map<Long, Long> brokerageUserCountMap,
  35 + Map<Long, UserBrokerageSummaryBO> userOrderSummaryMap) {
  36 + PageResult<TradeBrokerageUserRespVO> result = convertPage(pageResult);
  37 + for (TradeBrokerageUserRespVO vo : result.getList()) {
  38 + // 用户信息
  39 + Optional.ofNullable(userMap.get(vo.getId()))
  40 + .ifPresent(user -> {
  41 + vo.setNickname(user.getNickname());
  42 + vo.setAvatar(user.getAvatar());
  43 + });
  44 +
  45 + // 推广用户数量(一级)
  46 + vo.setBrokerageUserCount(MapUtil.getInt(brokerageUserCountMap, vo.getId(), 0));
  47 +
  48 + Optional<UserBrokerageSummaryBO> orderSummaryOptional = Optional.ofNullable(userOrderSummaryMap.get(vo.getId()));
  49 + // 推广订单数量
  50 + vo.setBrokerageOrderCount(orderSummaryOptional.map(UserBrokerageSummaryBO::getCount).orElse(0));
  51 + // 推广订单金额
  52 + vo.setBrokerageOrderPrice(orderSummaryOptional.map(UserBrokerageSummaryBO::getPrice).orElse(0));
  53 +
  54 + // todo 已提现次数
  55 + vo.setWithdrawCount(0);
  56 + // todo 已提现金额
  57 + vo.setWithdrawPrice(0);
  58 + }
  59 + return result;
  60 + }
27 } 61 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/record/TradeBrokerageRecordMapper.java
@@ -5,8 +5,11 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -5,8 +5,11 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.record.vo.TradeBrokerageRecordPageReqVO; 6 import cn.iocoder.yudao.module.trade.controller.admin.brokerage.record.vo.TradeBrokerageRecordPageReqVO;
7 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.record.TradeBrokerageRecordDO; 7 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.record.TradeBrokerageRecordDO;
  8 +import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.UserBrokerageSummaryBO;
8 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
9 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
  11 +import org.apache.ibatis.annotations.Param;
  12 +import org.apache.ibatis.annotations.Select;
10 13
11 import java.time.LocalDateTime; 14 import java.time.LocalDateTime;
12 import java.util.List; 15 import java.util.List;
@@ -46,4 +49,8 @@ public interface TradeBrokerageRecordMapper extends BaseMapperX&lt;TradeBrokerageRe @@ -46,4 +49,8 @@ public interface TradeBrokerageRecordMapper extends BaseMapperX&lt;TradeBrokerageRe
46 TradeBrokerageRecordDO::getBizId, bizId); 49 TradeBrokerageRecordDO::getBizId, bizId);
47 } 50 }
48 51
  52 + @Select("select count(1), sum(price) from trade_brokerage_record where user_id = #{userId} and biz_type = #{bizType} and status = #{status}")
  53 + UserBrokerageSummaryBO selectCountAndSumPriceByUserIdAndBizTypeAndStatus(@Param("userId") Long userId,
  54 + @Param("bizType") Integer bizType,
  55 + @Param("status") Integer status);
49 } 56 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/record/TradeBrokerageRecordService.java
1 package cn.iocoder.yudao.module.trade.service.brokerage.record; 1 package cn.iocoder.yudao.module.trade.service.brokerage.record;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.record.vo.TradeBrokerageRecordPageReqVO;
4 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.record.TradeBrokerageRecordDO; 5 import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.record.TradeBrokerageRecordDO;
5 import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.BrokerageAddReqBO; 6 import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.BrokerageAddReqBO;
6 -import cn.iocoder.yudao.module.trade.controller.admin.brokerage.record.vo.TradeBrokerageRecordPageReqVO; 7 +import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.UserBrokerageSummaryBO;
7 8
8 import java.util.List; 9 import java.util.List;
9 10
@@ -44,7 +45,7 @@ public interface TradeBrokerageRecordService { @@ -44,7 +45,7 @@ public interface TradeBrokerageRecordService {
44 * 取消佣金:将佣金记录,状态修改为已失效 45 * 取消佣金:将佣金记录,状态修改为已失效
45 * 46 *
46 * @param userId 会员编号 47 * @param userId 会员编号
47 - * @param bizId 业务编号 48 + * @param bizId 业务编号
48 */ 49 */
49 void cancelBrokerage(Long userId, String bizId); 50 void cancelBrokerage(Long userId, String bizId);
50 51
@@ -55,4 +56,13 @@ public interface TradeBrokerageRecordService { @@ -55,4 +56,13 @@ public interface TradeBrokerageRecordService {
55 */ 56 */
56 int unfreezeRecord(); 57 int unfreezeRecord();
57 58
  59 + /**
  60 + * 汇总用户佣金
  61 + *
  62 + * @param userId 用户编号
  63 + * @param bizType 业务类型
  64 + * @param status 佣金状态
  65 + * @return 用户佣金汇总
  66 + */
  67 + UserBrokerageSummaryBO summaryByUserIdAndBizTypeAndStatus(Long userId, Integer bizType, Integer status);
58 } 68 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/record/TradeBrokerageRecordServiceImpl.java
@@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.record.TradeBrokerageRe @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.record.TradeBrokerageRe
15 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; 15 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum;
16 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum; 16 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum;
17 import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.BrokerageAddReqBO; 17 import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.BrokerageAddReqBO;
  18 +import cn.iocoder.yudao.module.trade.service.brokerage.record.bo.UserBrokerageSummaryBO;
18 import cn.iocoder.yudao.module.trade.service.brokerage.user.TradeBrokerageUserService; 19 import cn.iocoder.yudao.module.trade.service.brokerage.user.TradeBrokerageUserService;
19 import cn.iocoder.yudao.module.trade.service.config.TradeConfigService; 20 import cn.iocoder.yudao.module.trade.service.config.TradeConfigService;
20 import lombok.extern.slf4j.Slf4j; 21 import lombok.extern.slf4j.Slf4j;
@@ -203,6 +204,12 @@ public class TradeBrokerageRecordServiceImpl implements TradeBrokerageRecordServ @@ -203,6 +204,12 @@ public class TradeBrokerageRecordServiceImpl implements TradeBrokerageRecordServ
203 return count; 204 return count;
204 } 205 }
205 206
  207 + @Override
  208 + public UserBrokerageSummaryBO summaryByUserIdAndBizTypeAndStatus(Long userId, Integer bizType, Integer status) {
  209 + UserBrokerageSummaryBO summaryBO = tradeBrokerageRecordMapper.selectCountAndSumPriceByUserIdAndBizTypeAndStatus(userId, bizType, status);
  210 + return summaryBO == null ? new UserBrokerageSummaryBO(0, 0) : summaryBO;
  211 + }
  212 +
206 @Transactional(rollbackFor = Exception.class) 213 @Transactional(rollbackFor = Exception.class)
207 public boolean unfreezeRecord(TradeBrokerageRecordDO record) { 214 public boolean unfreezeRecord(TradeBrokerageRecordDO record) {
208 // 更新记录状态 215 // 更新记录状态
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/record/bo/UserBrokerageSummaryBO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.service.brokerage.record.bo;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +
  7 +/**
  8 + * 用户佣金合计 BO
  9 + *
  10 + * @author owen
  11 + */
  12 +@Data
  13 +@NoArgsConstructor
  14 +@AllArgsConstructor
  15 +public class UserBrokerageSummaryBO {
  16 + /**
  17 + * 佣金数量
  18 + */
  19 + private Integer count;
  20 + /**
  21 + * 佣金总额
  22 + */
  23 + private Integer price;
  24 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/TradeBrokerageUserService.java
@@ -88,4 +88,11 @@ public interface TradeBrokerageUserService { @@ -88,4 +88,11 @@ public interface TradeBrokerageUserService {
88 */ 88 */
89 void updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, int frozenBrokeragePrice); 89 void updateFrozenBrokeragePriceDecrAndBrokeragePriceIncr(Long id, int frozenBrokeragePrice);
90 90
  91 + /**
  92 + * 获得推广用户数量(一级)
  93 + *
  94 + * @param brokerageUserId 推广员编号
  95 + * @return 推广用户数量
  96 + */
  97 + Long getCountByBrokerageUserId(Long brokerageUserId);
91 } 98 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/user/TradeBrokerageUserServiceImpl.java
@@ -109,4 +109,9 @@ public class TradeBrokerageUserServiceImpl implements TradeBrokerageUserService @@ -109,4 +109,9 @@ public class TradeBrokerageUserServiceImpl implements TradeBrokerageUserService
109 } 109 }
110 } 110 }
111 111
  112 + @Override
  113 + public Long getCountByBrokerageUserId(Long brokerageUserId) {
  114 + return brokerageUserMapper.selectCount(TradeBrokerageUserDO::getBrokerageUserId, brokerageUserId);
  115 + }
  116 +
112 } 117 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
@@ -136,38 +136,4 @@ public class MemberUserDO extends TenantBaseDO { @@ -136,38 +136,4 @@ public class MemberUserDO extends TenantBaseDO {
136 */ 136 */
137 private Long groupId; 137 private Long groupId;
138 138
139 - // TODO @疯狂:看看要不要删除掉哈  
140 - // ========== 分销相关 ==========  
141 -  
142 - /**  
143 - * 推广员编号  
144 - */  
145 - @TableField(exist = false) // TODO 芋艿:避免报错  
146 - private Long brokerageUserId;  
147 - /**  
148 - * 推广员绑定时间  
149 - */  
150 - @TableField(exist = false) // TODO 芋艿:避免报错  
151 - private LocalDateTime brokerageBindTime;  
152 - /**  
153 - * 是否成为推广员  
154 - */  
155 - @TableField(exist = false) // TODO 芋艿:避免报错  
156 - private Boolean brokerageEnabled;  
157 - /**  
158 - * 成为分销员时间  
159 - */  
160 - @TableField(exist = false) // TODO 芋艿:避免报错  
161 - private LocalDateTime brokerageTime;  
162 - /**  
163 - * 可用佣金  
164 - */  
165 - @TableField(exist = false) // TODO 芋艿:避免报错  
166 - private Integer brokeragePrice;  
167 - /**  
168 - * 冻结佣金  
169 - */  
170 - @TableField(exist = false) // TODO 芋艿:避免报错  
171 - private Integer frozenBrokeragePrice;  
172 -  
173 } 139 }