mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	【代码修复】MALL:修复订单项取消时,分销未取消所有推广员的推广记录问题
This commit is contained in:
		| @@ -50,10 +50,9 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> { | ||||
|                 .eq(BrokerageRecordDO::getStatus, status)); | ||||
|     } | ||||
|  | ||||
|     default BrokerageRecordDO selectByBizTypeAndBizIdAndUserId(Integer bizType, String bizId, Long userId) { | ||||
|         return selectOne(BrokerageRecordDO::getBizType, bizType, | ||||
|                 BrokerageRecordDO::getBizId, bizId, | ||||
|                 BrokerageRecordDO::getUserId, userId); | ||||
|     default List<BrokerageRecordDO> selectListByBizTypeAndBizId(Integer bizType, String bizId) { | ||||
|         return selectList(BrokerageRecordDO::getBizType, bizType, | ||||
|                 BrokerageRecordDO::getBizId, bizId); | ||||
|     } | ||||
|  | ||||
|     default List<UserBrokerageSummaryRespBO> selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(Collection<Long> userIds, | ||||
|   | ||||
| @@ -78,11 +78,10 @@ public interface BrokerageRecordService { | ||||
|     /** | ||||
|      * 取消佣金:将佣金记录,状态修改为已失效 | ||||
|      * | ||||
|      * @param userId  会员编号 | ||||
|      * @param bizType 业务类型 | ||||
|      * @param bizId   业务编号 | ||||
|      */ | ||||
|     void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId); | ||||
|     void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId); | ||||
|  | ||||
|     /** | ||||
|      * 解冻佣金:将待结算的佣金记录,状态修改为已结算 | ||||
|   | ||||
| @@ -107,27 +107,29 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId) { | ||||
|         BrokerageRecordDO record = brokerageRecordMapper.selectByBizTypeAndBizIdAndUserId(bizType.getType(), bizId, userId); | ||||
|         if (record == null) { | ||||
|             log.error("[cancelBrokerage][userId({})][bizId({}) 更新为已失效失败:记录不存在]", userId, bizId); | ||||
|     public void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId) { | ||||
|         List<BrokerageRecordDO> records = brokerageRecordMapper.selectListByBizTypeAndBizId(bizType.getType(), bizId); | ||||
|         if (CollUtil.isEmpty(records)) { | ||||
|             log.error("[cancelBrokerage][bizId({}) bizType({}) 更新为已失效失败:记录不存在]", bizId, bizType); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // 1. 更新佣金记录为已失效 | ||||
|         BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus()); | ||||
|         int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj); | ||||
|         if (updateRows == 0) { | ||||
|             log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId()); | ||||
|             return; | ||||
|         } | ||||
|         records.forEach(record -> { | ||||
|             // 1. 更新佣金记录为已失效 | ||||
|             BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus()); | ||||
|             int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj); | ||||
|             if (updateRows == 0) { | ||||
|                 log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId()); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|         // 2. 更新用户的佣金 | ||||
|         if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { | ||||
|             brokerageUserService.updateUserFrozenPrice(userId, -record.getPrice()); | ||||
|         } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { | ||||
|             brokerageUserService.updateUserPrice(userId, -record.getPrice()); | ||||
|         } | ||||
|             // 2. 更新用户的佣金 | ||||
|             if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { | ||||
|                 brokerageUserService.updateUserFrozenPrice(record.getUserId(), -record.getPrice()); | ||||
|             } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { | ||||
|                 brokerageUserService.updateUserPrice(record.getUserId(), -record.getPrice()); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -9,9 +9,6 @@ import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokera | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | ||||
| import jakarta.validation.constraints.NotNull; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 分销用户 Service 接口 | ||||
|  * | ||||
| @@ -27,14 +24,6 @@ public interface BrokerageUserService { | ||||
|      */ | ||||
|     BrokerageUserDO getBrokerageUser(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 获得分销用户列表 | ||||
|      * | ||||
|      * @param ids 编号 | ||||
|      * @return 分销用户列表 | ||||
|      */ | ||||
|     List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids); | ||||
|  | ||||
|     /** | ||||
|      * 获得分销用户分页 | ||||
|      * | ||||
|   | ||||
| @@ -60,11 +60,6 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||||
|         return brokerageUserMapper.selectById(id); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids) { | ||||
|         return brokerageUserMapper.selectBatchIds(ids); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { | ||||
|         List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel()); | ||||
| @@ -130,6 +125,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||||
|  | ||||
|     @Override | ||||
|     public BrokerageUserDO getOrCreateBrokerageUser(Long id) { | ||||
|         // TODO @芋艿:这块优化下;统一到注册时处理; | ||||
|         BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id); | ||||
|         // 特殊:人人分销的情况下,如果分销人为空则创建分销人 | ||||
|         if (brokerageUser == null && ObjUtil.equal(BrokerageEnabledConditionEnum.ALL.getCondition(), | ||||
|   | ||||
| @@ -83,7 +83,7 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { | ||||
|         if (order.getBrokerageUserId() == null) { | ||||
|             return; | ||||
|         } | ||||
|         cancelBrokerage(order.getBrokerageUserId(), orderItem.getId()); | ||||
|         brokerageRecordService.cancelBrokerage(BrokerageRecordBizTypeEnum.ORDER, String.valueOf(orderItem.getId())); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -111,8 +111,4 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { | ||||
|         brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList); | ||||
|     } | ||||
|  | ||||
|     protected void cancelBrokerage(Long userId, Long orderItemId) { | ||||
|         brokerageRecordService.cancelBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, String.valueOf(orderItemId)); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV