mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	Review代码修改
This commit is contained in:
		| @ -1,7 +1,6 @@ | |||||||
| package cn.iocoder.yudao.module.promotion.controller.app.coupon; | package cn.iocoder.yudao.module.promotion.controller.app.coupon; | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.map.MapUtil; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | ||||||
| @ -50,9 +49,7 @@ public class AppCouponController { | |||||||
|         CouponTemplateDO couponTemplate = couponTemplateService.getCouponTemplate(reqVO.getTemplateId()); |         CouponTemplateDO couponTemplate = couponTemplateService.getCouponTemplate(reqVO.getTemplateId()); | ||||||
|         boolean canTakeAgain = true; |         boolean canTakeAgain = true; | ||||||
|         if (couponTemplate.getTakeLimitCount() != null && couponTemplate.getTakeLimitCount() > 0) { |         if (couponTemplate.getTakeLimitCount() != null && couponTemplate.getTakeLimitCount() > 0) { | ||||||
|             // TODO @疯狂:要不要搞个 getTakeCount 方法? |             Integer takeCount = couponService.getTakeCount(reqVO.getTemplateId(), userId); | ||||||
|             Integer takeCount = MapUtil.getInt(couponService.getTakeCountMapByTemplateIds( |  | ||||||
|                     Collections.singleton(reqVO.getTemplateId()), userId), reqVO.getTemplateId(), 0); |  | ||||||
|             canTakeAgain = takeCount < couponTemplate.getTakeLimitCount(); |             canTakeAgain = takeCount < couponTemplate.getTakeLimitCount(); | ||||||
|         } |         } | ||||||
|         return success(canTakeAgain); |         return success(canTakeAgain); | ||||||
|  | |||||||
| @ -8,10 +8,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO; | |||||||
| import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum; | import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum; | ||||||
| import cn.iocoder.yudao.module.promotion.service.coupon.bo.CouponTakeCountBO; | import cn.iocoder.yudao.module.promotion.service.coupon.bo.CouponTakeCountBO; | ||||||
|  |  | ||||||
| import java.util.Collection; | import java.util.*; | ||||||
| import java.util.List; |  | ||||||
| import java.util.Map; |  | ||||||
| import java.util.Set; |  | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | ||||||
|  |  | ||||||
| @ -129,6 +126,21 @@ public interface CouponService { | |||||||
|         takeCoupon(templateId, CollUtil.newHashSet(userId), CouponTakeTypeEnum.REGISTER); |         takeCoupon(templateId, CollUtil.newHashSet(userId), CouponTakeTypeEnum.REGISTER); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取会员领取指定优惠券的数量 | ||||||
|  |      * | ||||||
|  |      * @param templateId 优惠券模板编号 | ||||||
|  |      * @param userId     用户编号 | ||||||
|  |      * @return 领取优惠券的数量 | ||||||
|  |      */ | ||||||
|  |     default Integer getTakeCount(Long templateId, Long userId) { | ||||||
|  |         return CollUtil.emptyIfNull(getTakeCountListByTemplateIds(Collections.singleton(templateId), userId)) | ||||||
|  |                 .stream() | ||||||
|  |                 .findFirst() | ||||||
|  |                 .map(CouponTakeCountBO::getCount) | ||||||
|  |                 .orElse(0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 统计会员领取优惠券的数量 |      * 统计会员领取优惠券的数量 | ||||||
|      * |      * | ||||||
|  | |||||||
| @ -5,11 +5,13 @@ import cn.hutool.core.util.ObjUtil; | |||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.BrokerageUserRespVO; | import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.BrokerageUserRespVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserMySummaryRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserMySummaryRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | ||||||
| import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryRespBO; |  | ||||||
| import cn.iocoder.yudao.module.trade.service.brokerage.bo.BrokerageWithdrawSummaryRespBO; | import cn.iocoder.yudao.module.trade.service.brokerage.bo.BrokerageWithdrawSummaryRespBO; | ||||||
|  | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryRespBO; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
| import org.mapstruct.MappingTarget; | import org.mapstruct.MappingTarget; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
| @ -85,4 +87,11 @@ public interface BrokerageUserConvert { | |||||||
|                 .ifPresent(user -> respVO.setBrokeragePrice(user.getBrokeragePrice()).setFrozenPrice(user.getFrozenPrice())); |                 .ifPresent(user -> respVO.setBrokeragePrice(user.getBrokeragePrice()).setFrozenPrice(user.getFrozenPrice())); | ||||||
|         return respVO; |         return respVO; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     default void copyTo(IPage<AppBrokerageUserChildSummaryRespVO> pageResult, Map<Long, MemberUserRespDTO> userMap) { | ||||||
|  |         for (AppBrokerageUserChildSummaryRespVO vo : pageResult.getRecords()) { | ||||||
|  |             Optional.ofNullable(userMap.get(vo.getId())).ifPresent(user -> | ||||||
|  |                     vo.setNickname(user.getNickname()).setAvatar(user.getAvatar())); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -2,10 +2,10 @@ package cn.iocoder.yudao.module.trade.dal.mysql.brokerage; | |||||||
|  |  | ||||||
| import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.SortingField; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.BrokerageUserPageReqVO; | import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.BrokerageUserPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryPageReqVO; |  | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | ||||||
| @ -139,8 +139,11 @@ public interface BrokerageUserMapper extends BaseMapperX<BrokerageUserDO> { | |||||||
|                                                                                   @Param("endTime") LocalDateTime endTime); |                                                                                   @Param("endTime") LocalDateTime endTime); | ||||||
|  |  | ||||||
|     IPage<AppBrokerageUserChildSummaryRespVO> selectSummaryPageByUserId(Page<?> page, |     IPage<AppBrokerageUserChildSummaryRespVO> selectSummaryPageByUserId(Page<?> page, | ||||||
|                                                                         @Param("param") AppBrokerageUserChildSummaryPageReqVO param, |                                                                         @Param("ids") List<Long> ids, | ||||||
|                                                                         @Param("userId") Long userId); |                                                                         @Param("bizType") Integer bizType, | ||||||
|  |                                                                         @Param("status") Integer status, | ||||||
|  |                                                                         @Param("bindUserIds") List<Long> bindUserIds, | ||||||
|  |                                                                         @Param("sortingField") SortingField sortingField); | ||||||
|  |  | ||||||
|     default List<BrokerageUserDO> selectListByBindUserId(Long bindUserId) { |     default List<BrokerageUserDO> selectListByBindUserId(Long bindUserId) { | ||||||
|         return selectList(BrokerageUserDO::getBindUserId, bindUserId); |         return selectList(BrokerageUserDO::getBindUserId, bindUserId); | ||||||
|  | |||||||
| @ -232,7 +232,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 激动单条佣金记录 |      * 解冻单条佣金记录 | ||||||
|      * |      * | ||||||
|      * @param record 佣金记录 |      * @param record 佣金记录 | ||||||
|      * @return 解冻是否成功 |      * @return 解冻是否成功 | ||||||
| @ -258,9 +258,9 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | |||||||
|     @Override |     @Override | ||||||
|     public List<UserBrokerageSummaryRespBO> getUserBrokerageSummaryListByUserId(Collection<Long> userIds, |     public List<UserBrokerageSummaryRespBO> getUserBrokerageSummaryListByUserId(Collection<Long> userIds, | ||||||
|                                                                                 Integer bizType, Integer status) { |                                                                                 Integer bizType, Integer status) { | ||||||
|          if (CollUtil.isEmpty(userIds)) { |         if (CollUtil.isEmpty(userIds)) { | ||||||
|              return Collections.emptyList(); |             return Collections.emptyList(); | ||||||
|          } |         } | ||||||
|         return brokerageRecordMapper.selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(userIds, bizType, status); |         return brokerageRecordMapper.selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(userIds, bizType, status); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; | |||||||
| import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||||
| import cn.hutool.core.util.ArrayUtil; | import cn.hutool.core.util.ArrayUtil; | ||||||
| import cn.hutool.core.util.BooleanUtil; | import cn.hutool.core.util.BooleanUtil; | ||||||
|  | import cn.hutool.core.util.StrUtil; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; | import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; | import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; | ||||||
| @ -14,11 +15,14 @@ import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokera | |||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankPageReqVO; | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageUserConvert; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.config.TradeConfigDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.config.TradeConfigDO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.BrokerageUserMapper; | import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.BrokerageUserMapper; | ||||||
| import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageBindModeEnum; | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageBindModeEnum; | ||||||
| import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageEnabledConditionEnum; | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageEnabledConditionEnum; | ||||||
|  | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; | ||||||
|  | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum; | ||||||
| import cn.iocoder.yudao.module.trade.service.config.TradeConfigService; | import cn.iocoder.yudao.module.trade.service.config.TradeConfigService; | ||||||
| import com.baomidou.mybatisplus.core.metadata.IPage; | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| @ -221,7 +225,21 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public PageResult<AppBrokerageUserChildSummaryRespVO> getBrokerageUserChildSummaryPage(AppBrokerageUserChildSummaryPageReqVO pageReqVO, Long userId) { |     public PageResult<AppBrokerageUserChildSummaryRespVO> getBrokerageUserChildSummaryPage(AppBrokerageUserChildSummaryPageReqVO pageReqVO, Long userId) { | ||||||
|         IPage<AppBrokerageUserChildSummaryRespVO> pageResult = brokerageUserMapper.selectSummaryPageByUserId(MyBatisUtils.buildPage(pageReqVO), pageReqVO, userId); |         // 1.1 根据昵称过滤用户 | ||||||
|  |         List<Long> ids = StrUtil.isBlank(pageReqVO.getNickname()) | ||||||
|  |                 ? Collections.emptyList() | ||||||
|  |                 : convertList(memberUserApi.getUserListByNickname(pageReqVO.getNickname()), MemberUserRespDTO::getId); | ||||||
|  |         // 1.2 生成推广员编号列表 | ||||||
|  |         List<Long> bindUserIds = buildBindUserIdsByLevel(userId, pageReqVO.getLevel()); | ||||||
|  |         // 2. 分页查询 | ||||||
|  |         IPage<AppBrokerageUserChildSummaryRespVO> pageResult = brokerageUserMapper.selectSummaryPageByUserId( | ||||||
|  |                 MyBatisUtils.buildPage(pageReqVO), ids, BrokerageRecordBizTypeEnum.ORDER.getType(), | ||||||
|  |                 BrokerageRecordStatusEnum.SETTLEMENT.getStatus(), bindUserIds, pageReqVO.getSortingField() | ||||||
|  |         ); | ||||||
|  |         // 3. 拼接数据并返回 | ||||||
|  |         List<Long> userIds = convertList(pageResult.getRecords(), AppBrokerageUserChildSummaryRespVO::getId); | ||||||
|  |         Map<Long, MemberUserRespDTO> userMap = memberUserApi.getUserMap(userIds); | ||||||
|  |         BrokerageUserConvert.INSTANCE.copyTo(pageResult, userMap); | ||||||
|         return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); |         return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -253,9 +271,9 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 判断是否为新用户 |      * 判断是否为新用户 | ||||||
|      * |      * <p> | ||||||
|      * 标准:注册时间在 30 秒内的,都算新用户 |      * 标准:注册时间在 30 秒内的,都算新用户 | ||||||
|      * |      * <p> | ||||||
|      * 疑问:为什么通过这样的方式实现? |      * 疑问:为什么通过这样的方式实现? | ||||||
|      * 回答:因为注册在 member 模块,希望它和 trade 模块解耦,所以只能用这种约定的逻辑。 |      * 回答:因为注册在 member 模块,希望它和 trade 模块解耦,所以只能用这种约定的逻辑。 | ||||||
|      * |      * | ||||||
|  | |||||||
| @ -5,7 +5,6 @@ import cn.hutool.core.lang.Assert; | |||||||
| import cn.hutool.core.map.MapUtil; | import cn.hutool.core.map.MapUtil; | ||||||
| import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||||
| import cn.hutool.core.util.RandomUtil; | import cn.hutool.core.util.RandomUtil; | ||||||
| import cn.hutool.core.util.StrUtil; |  | ||||||
| import cn.hutool.extra.spring.SpringUtil; | import cn.hutool.extra.spring.SpringUtil; | ||||||
| import cn.iocoder.yudao.framework.common.core.KeyValue; | import cn.iocoder.yudao.framework.common.core.KeyValue; | ||||||
| import cn.iocoder.yudao.framework.common.enums.TerminalEnum; | import cn.iocoder.yudao.framework.common.enums.TerminalEnum; | ||||||
| @ -667,7 +666,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | |||||||
|      * 如果金额全部被退款,则取消订单 |      * 如果金额全部被退款,则取消订单 | ||||||
|      * 如果还有未被退款的金额,则无需取消订单 |      * 如果还有未被退款的金额,则无需取消订单 | ||||||
|      * |      * | ||||||
|      * @param order           订单 |      * @param order       订单 | ||||||
|      * @param refundPrice 退款金额 |      * @param refundPrice 退款金额 | ||||||
|      */ |      */ | ||||||
|     @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL_AFTER_SALE) |     @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL_AFTER_SALE) | ||||||
| @ -774,11 +773,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateOrderItemWhenAfterSaleCreate(Long id, Long afterSaleId) { |     public void updateOrderItemWhenAfterSaleCreate(Long id, Long afterSaleId) { | ||||||
|         // TODO @疯狂:这个可以直接在接口上,写 @Null 参数校验; |  | ||||||
|         if (afterSaleId == null) { |  | ||||||
|             throw new IllegalArgumentException(StrUtil.format("id({}) 退款发起,售后单编号不能为空", id)); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // 更新订单项 |         // 更新订单项 | ||||||
|         updateOrderItemAfterSaleStatus(id, TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), |         updateOrderItemAfterSaleStatus(id, TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), | ||||||
|                 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), afterSaleId); |                 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), afterSaleId); | ||||||
| @ -787,11 +781,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | |||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void updateOrderItemWhenAfterSaleSuccess(Long id, Integer refundPrice) { |     public void updateOrderItemWhenAfterSaleSuccess(Long id, Integer refundPrice) { | ||||||
|         // TODO @疯狂:这个可以直接在接口上,写 @Null 参数校验; |  | ||||||
|         if (refundPrice == null) { |  | ||||||
|             throw new IllegalArgumentException(StrUtil.format("id({}) 退款成功,退款金额不能为空", id)); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // 1. 更新订单项 |         // 1. 更新订单项 | ||||||
|         updateOrderItemAfterSaleStatus(id, TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), |         updateOrderItemAfterSaleStatus(id, TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), | ||||||
|                 TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(), null); |                 TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(), null); | ||||||
| @ -821,8 +810,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | |||||||
|         addUserPoint(order.getUserId(), orderItem.getUsePoint(), MemberPointBizTypeEnum.AFTER_SALE_REFUND_USED, orderItem.getAfterSaleId()); |         addUserPoint(order.getUserId(), orderItem.getUsePoint(), MemberPointBizTypeEnum.AFTER_SALE_REFUND_USED, orderItem.getAfterSaleId()); | ||||||
|  |  | ||||||
|         // 5. 回滚经验:扣减用户经验 |         // 5. 回滚经验:扣减用户经验 | ||||||
|         // TODO @疯狂:orderRefundPrice 是不是改成 refundPrice?应该只退这个售后对应的经验 |         getSelf().reduceUserExperienceAsync(order.getUserId(), refundPrice, orderItem.getAfterSaleId()); | ||||||
|         getSelf().reduceUserExperienceAsync(order.getUserId(), orderRefundPrice, orderItem.getAfterSaleId()); |  | ||||||
|  |  | ||||||
|         // 6. 回滚佣金:更新分佣记录为已失效 |         // 6. 回滚佣金:更新分佣记录为已失效 | ||||||
|         getSelf().cancelBrokerageAsync(order.getUserId(), id); |         getSelf().cancelBrokerageAsync(order.getUserId(), id); | ||||||
|  | |||||||
| @ -4,37 +4,38 @@ | |||||||
|  |  | ||||||
|     <select id="selectSummaryPageByUserId" |     <select id="selectSummaryPageByUserId" | ||||||
|             resultType="cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO"> |             resultType="cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserChildSummaryRespVO"> | ||||||
|         SELECT bu.id, bu.bind_user_time AS brokerageTime, u.nickname, u.avatar, |         SELECT bu.id, bu.bind_user_time AS brokerageTime, | ||||||
|         <!-- TODO @疯狂:biz_type、status 可以通过参数传入哇? --> |  | ||||||
|         (SELECT SUM(price) FROM trade_brokerage_record r |         (SELECT SUM(price) FROM trade_brokerage_record r | ||||||
|             WHERE r.user_id = u.id AND biz_type = 1 AND r.status = 1 AND r.deleted = FALSE) AS brokeragePrice, |         WHERE r.user_id = bu.id AND biz_type = #{bizType} AND r.status = #{status} AND r.deleted = FALSE) AS brokeragePrice, | ||||||
|         (SELECT COUNT(1) FROM trade_brokerage_record r |         (SELECT COUNT(1) FROM trade_brokerage_record r | ||||||
|             WHERE r.user_id = u.id AND biz_type = 1 AND r.status = 1 AND r.deleted = FALSE) AS brokerageOrderCount, |         WHERE r.user_id = bu.id AND biz_type = #{bizType} AND r.status = #{status} AND r.deleted = FALSE) AS brokerageOrderCount, | ||||||
|         (SELECT COUNT(1) FROM trade_brokerage_user c |         (SELECT COUNT(1) FROM trade_brokerage_user c | ||||||
|             WHERE c.bind_user_id = u.id AND c.deleted = FALSE) AS brokerageUserCount |         WHERE c.bind_user_id = bu.id AND c.deleted = FALSE) AS brokerageUserCount | ||||||
|         FROM member_user AS u |         FROM trade_brokerage_user AS bu | ||||||
|         JOIN trade_brokerage_user AS bu ON bu.id = u.id |         <where> | ||||||
|        <!-- TODO @疯狂:1)bind_user_id 是不是可以先改成内存查询出 userId 的集合,然后去 in 哈?2)nickname 是不是可以基于查询出来的 userId 对应的 nickname 在内存里过滤,主要是避免和 member_user 链表 --> |             bu.deleted = false | ||||||
|        <where> |             <if test="ids != null and ids.size() > 0"> | ||||||
|             <if test="param.nickname != null and param.nickname != ''"> |                 and bu.id in | ||||||
|                 AND u.nickname LIKE concat('', #{param.nickname}, '') |                 <foreach collection="ids" open="(" item="id" separator="," close=")"> | ||||||
|  |                     #{id} | ||||||
|  |                 </foreach> | ||||||
|             </if> |             </if> | ||||||
|             <if test="param.level == 1"> |             <if test="bindUserIds != null and bindUserIds.size() > 0"> | ||||||
|                 AND bu.bind_user_id = #{userId} |                 and bu.bind_user_id in | ||||||
|             </if> |                 <foreach collection="bindUserIds" open="(" item="bindUserId" separator="," close=")"> | ||||||
|             <if test="param.level == 2"> |                     #{bindUserId} | ||||||
|                 AND bu.bind_user_id IN (SELECT id FROM trade_brokerage_user c WHERE c.bind_user_id = #{userId}) |                 </foreach> | ||||||
|             </if> |             </if> | ||||||
|         </where> |         </where> | ||||||
|         <choose> |         <choose> | ||||||
|             <when test="param.sortingField.field == 'userCount'"> |             <when test="sortingField.field == 'userCount'"> | ||||||
|                 ORDER BY brokerageUserCount ${param.sortingField.order} |                 ORDER BY brokerageUserCount ${sortingField.order} | ||||||
|             </when> |             </when> | ||||||
|             <when test="param.sortingField.field == 'orderCount'"> |             <when test="sortingField.field == 'orderCount'"> | ||||||
|                 ORDER BY brokerageOrderCount ${param.sortingField.order} |                 ORDER BY brokerageOrderCount ${sortingField.order} | ||||||
|             </when> |             </when> | ||||||
|             <when test="param.sortingField.field == 'price'"> |             <when test="sortingField.field == 'price'"> | ||||||
|                 ORDER BY brokeragePrice ${param.sortingField.order} |                 ORDER BY brokeragePrice ${sortingField.order} | ||||||
|             </when> |             </when> | ||||||
|             <otherwise> |             <otherwise> | ||||||
|                 ORDER BY bu.bind_user_time DESC |                 ORDER BY bu.bind_user_time DESC | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 owen
					owen