Commit cf6f3eaa414be82345e354408ef72185485db377
1 parent
4959479a
【代码修复】MALL:修复订单项取消时,分销未取消所有推广员的推广记录问题
Showing
6 changed files
with
25 additions
and
44 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageRecordMapper.java
| ... | ... | @@ -50,10 +50,9 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> { |
| 50 | 50 | .eq(BrokerageRecordDO::getStatus, status)); |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | - default BrokerageRecordDO selectByBizTypeAndBizIdAndUserId(Integer bizType, String bizId, Long userId) { | |
| 54 | - return selectOne(BrokerageRecordDO::getBizType, bizType, | |
| 55 | - BrokerageRecordDO::getBizId, bizId, | |
| 56 | - BrokerageRecordDO::getUserId, userId); | |
| 53 | + default List<BrokerageRecordDO> selectListByBizTypeAndBizId(Integer bizType, String bizId) { | |
| 54 | + return selectList(BrokerageRecordDO::getBizType, bizType, | |
| 55 | + BrokerageRecordDO::getBizId, bizId); | |
| 57 | 56 | } |
| 58 | 57 | |
| 59 | 58 | default List<UserBrokerageSummaryRespBO> selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(Collection<Long> userIds, | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordService.java
| ... | ... | @@ -78,11 +78,10 @@ public interface BrokerageRecordService { |
| 78 | 78 | /** |
| 79 | 79 | * 取消佣金:将佣金记录,状态修改为已失效 |
| 80 | 80 | * |
| 81 | - * @param userId 会员编号 | |
| 82 | 81 | * @param bizType 业务类型 |
| 83 | 82 | * @param bizId 业务编号 |
| 84 | 83 | */ |
| 85 | - void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId); | |
| 84 | + void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId); | |
| 86 | 85 | |
| 87 | 86 | /** |
| 88 | 87 | * 解冻佣金:将待结算的佣金记录,状态修改为已结算 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordServiceImpl.java
| ... | ... | @@ -107,27 +107,29 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { |
| 107 | 107 | |
| 108 | 108 | @Override |
| 109 | 109 | @Transactional(rollbackFor = Exception.class) |
| 110 | - public void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId) { | |
| 111 | - BrokerageRecordDO record = brokerageRecordMapper.selectByBizTypeAndBizIdAndUserId(bizType.getType(), bizId, userId); | |
| 112 | - if (record == null) { | |
| 113 | - log.error("[cancelBrokerage][userId({})][bizId({}) 更新为已失效失败:记录不存在]", userId, bizId); | |
| 110 | + public void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId) { | |
| 111 | + List<BrokerageRecordDO> records = brokerageRecordMapper.selectListByBizTypeAndBizId(bizType.getType(), bizId); | |
| 112 | + if (CollUtil.isEmpty(records)) { | |
| 113 | + log.error("[cancelBrokerage][bizId({}) bizType({}) 更新为已失效失败:记录不存在]", bizId, bizType); | |
| 114 | 114 | return; |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | - // 1. 更新佣金记录为已失效 | |
| 118 | - BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus()); | |
| 119 | - int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj); | |
| 120 | - if (updateRows == 0) { | |
| 121 | - log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId()); | |
| 122 | - return; | |
| 123 | - } | |
| 117 | + records.forEach(record -> { | |
| 118 | + // 1. 更新佣金记录为已失效 | |
| 119 | + BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus()); | |
| 120 | + int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj); | |
| 121 | + if (updateRows == 0) { | |
| 122 | + log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId()); | |
| 123 | + return; | |
| 124 | + } | |
| 124 | 125 | |
| 125 | - // 2. 更新用户的佣金 | |
| 126 | - if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { | |
| 127 | - brokerageUserService.updateUserFrozenPrice(userId, -record.getPrice()); | |
| 128 | - } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { | |
| 129 | - brokerageUserService.updateUserPrice(userId, -record.getPrice()); | |
| 130 | - } | |
| 126 | + // 2. 更新用户的佣金 | |
| 127 | + if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { | |
| 128 | + brokerageUserService.updateUserFrozenPrice(record.getUserId(), -record.getPrice()); | |
| 129 | + } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { | |
| 130 | + brokerageUserService.updateUserPrice(record.getUserId(), -record.getPrice()); | |
| 131 | + } | |
| 132 | + }); | |
| 131 | 133 | } |
| 132 | 134 | |
| 133 | 135 | /** | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserService.java
| ... | ... | @@ -9,9 +9,6 @@ import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokera |
| 9 | 9 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; |
| 10 | 10 | import jakarta.validation.constraints.NotNull; |
| 11 | 11 | |
| 12 | -import java.util.Collection; | |
| 13 | -import java.util.List; | |
| 14 | - | |
| 15 | 12 | /** |
| 16 | 13 | * 分销用户 Service 接口 |
| 17 | 14 | * |
| ... | ... | @@ -28,14 +25,6 @@ public interface BrokerageUserService { |
| 28 | 25 | BrokerageUserDO getBrokerageUser(Long id); |
| 29 | 26 | |
| 30 | 27 | /** |
| 31 | - * 获得分销用户列表 | |
| 32 | - * | |
| 33 | - * @param ids 编号 | |
| 34 | - * @return 分销用户列表 | |
| 35 | - */ | |
| 36 | - List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids); | |
| 37 | - | |
| 38 | - /** | |
| 39 | 28 | * 获得分销用户分页 |
| 40 | 29 | * |
| 41 | 30 | * @param pageReqVO 分页查询 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserServiceImpl.java
| ... | ... | @@ -61,11 +61,6 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | 63 | @Override |
| 64 | - public List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids) { | |
| 65 | - return brokerageUserMapper.selectBatchIds(ids); | |
| 66 | - } | |
| 67 | - | |
| 68 | - @Override | |
| 69 | 64 | public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { |
| 70 | 65 | List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel()); |
| 71 | 66 | // 有”绑定用户编号“查询条件时,没有查到下级会员,直接返回空 |
| ... | ... | @@ -130,6 +125,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { |
| 130 | 125 | |
| 131 | 126 | @Override |
| 132 | 127 | public BrokerageUserDO getOrCreateBrokerageUser(Long id) { |
| 128 | + // TODO @芋艿:这块优化下;统一到注册时处理; | |
| 133 | 129 | BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id); |
| 134 | 130 | // 特殊:人人分销的情况下,如果分销人为空则创建分销人 |
| 135 | 131 | if (brokerageUser == null && ObjUtil.equal(BrokerageEnabledConditionEnum.ALL.getCondition(), | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeBrokerageOrderHandler.java
| ... | ... | @@ -83,7 +83,7 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { |
| 83 | 83 | if (order.getBrokerageUserId() == null) { |
| 84 | 84 | return; |
| 85 | 85 | } |
| 86 | - cancelBrokerage(order.getBrokerageUserId(), orderItem.getId()); | |
| 86 | + brokerageRecordService.cancelBrokerage(BrokerageRecordBizTypeEnum.ORDER, String.valueOf(orderItem.getId())); | |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | /** |
| ... | ... | @@ -111,8 +111,4 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { |
| 111 | 111 | brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList); |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | - protected void cancelBrokerage(Long userId, Long orderItemId) { | |
| 115 | - brokerageRecordService.cancelBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, String.valueOf(orderItemId)); | |
| 116 | - } | |
| 117 | - | |
| 118 | 114 | } | ... | ... |