mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	trade: 分销业务后台功能:推广用户列表
This commit is contained in:
		@@ -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