mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	trade: 分销业务后台功能:推广用户列表
This commit is contained in:
		| @@ -0,0 +1,39 @@ | ||||
| package cn.iocoder.yudao.module.trade.enums.brokerage; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Getter; | ||||
|  | ||||
| import java.util.Arrays; | ||||
|  | ||||
| /** | ||||
|  * 分销用户类型枚举 | ||||
|  * | ||||
|  * @author owen | ||||
|  */ | ||||
| @AllArgsConstructor | ||||
| @Getter | ||||
| public enum BrokerageUserTypeEnum implements IntArrayValuable { | ||||
|  | ||||
|     ALL(0, "全部"), | ||||
|     FIRST(1, "一级推广人"), | ||||
|     SECOND(2, "二级推广人"), | ||||
|     ; | ||||
|  | ||||
|     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BrokerageUserTypeEnum::getType).toArray(); | ||||
|  | ||||
|     /** | ||||
|      * 类型 | ||||
|      */ | ||||
|     private final Integer type; | ||||
|     /** | ||||
|      * 名字 | ||||
|      */ | ||||
|     private final String name; | ||||
|  | ||||
|     @Override | ||||
|     public int[] array() { | ||||
|         return ARRAYS; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,6 +1,8 @@ | ||||
| package cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
| import cn.iocoder.yudao.framework.common.validation.InEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageUserTypeEnum; | ||||
| import io.swagger.v3.oas.annotations.media.Schema; | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| @@ -27,4 +29,11 @@ public class BrokerageUserPageReqVO extends PageParam { | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     private LocalDateTime[] createTime; | ||||
|  | ||||
|     @Schema(description = "用户类型") | ||||
|     @InEnum(value = BrokerageUserTypeEnum.class, message = "用户类型必须是 {value}") | ||||
|     private Integer userType; | ||||
|  | ||||
|     @Schema(description = "绑定时间") | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     private LocalDateTime[] bindUserTime; | ||||
| } | ||||
|   | ||||
| @@ -1,11 +1,14 @@ | ||||
| package cn.iocoder.yudao.module.trade.dal.mysql.brokerage.user; | ||||
|  | ||||
| import cn.hutool.core.lang.Assert; | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||
| import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.BrokerageUserPageReqVO; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.BrokerageUserDO; | ||||
| import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageUserTypeEnum; | ||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
| import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||||
| import org.apache.ibatis.annotations.Mapper; | ||||
|  | ||||
| @@ -19,12 +22,32 @@ public interface BrokerageUserMapper extends BaseMapperX<BrokerageUserDO> { | ||||
|  | ||||
|     default PageResult<BrokerageUserDO> selectPage(BrokerageUserPageReqVO reqVO) { | ||||
|         return selectPage(reqVO, new LambdaQueryWrapperX<BrokerageUserDO>() | ||||
|                 .eqIfPresent(BrokerageUserDO::getBindUserId, reqVO.getBindUserId()) | ||||
|                 .eqIfPresent(BrokerageUserDO::getBrokerageEnabled, reqVO.getBrokerageEnabled()) | ||||
|                 .betweenIfPresent(BrokerageUserDO::getCreateTime, reqVO.getCreateTime()) | ||||
|                 .betweenIfPresent(BrokerageUserDO::getBindUserTime, reqVO.getBindUserTime()) | ||||
|                 .and(reqVO.getBindUserId() != null, w -> buildBindUserCondition(reqVO, w)) | ||||
|                 .orderByDesc(BrokerageUserDO::getId)); | ||||
|     } | ||||
|  | ||||
|     static void buildBindUserCondition(BrokerageUserPageReqVO reqVO, LambdaQueryWrapper<BrokerageUserDO> wrapper) { | ||||
|         if (BrokerageUserTypeEnum.FIRST.getType().equals(reqVO.getUserType())) { | ||||
|             buildFirstBindUserCondition(reqVO.getBindUserId(), wrapper); | ||||
|         } else if (BrokerageUserTypeEnum.SECOND.getType().equals(reqVO.getUserType())) { | ||||
|             buildSecondBindUserCondition(reqVO.getBindUserId(), wrapper); | ||||
|         } else { | ||||
|             buildFirstBindUserCondition(reqVO.getBindUserId(), wrapper); | ||||
|             buildSecondBindUserCondition(reqVO.getBindUserId(), wrapper.or()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static void buildFirstBindUserCondition(Long bindUserId, LambdaQueryWrapper<BrokerageUserDO> wrapper) { | ||||
|         wrapper.eq(BrokerageUserDO::getBindUserId, bindUserId); | ||||
|     } | ||||
|  | ||||
|     static void buildSecondBindUserCondition(Long bindUserId, LambdaQueryWrapper<BrokerageUserDO> w) { | ||||
|         w.inSql(BrokerageUserDO::getBindUserId, StrUtil.format("SELECT id FROM trade_brokerage_user WHERE bind_user_id = {}", bindUserId)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 更新用户可用佣金(增加) | ||||
|      * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 owen
					owen