|
@@ -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));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新用户可用佣金(增加)
|
|
|
*
|