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,10 +50,9 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> { | ||
| 50 | .eq(BrokerageRecordDO::getStatus, status)); | 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 | default List<UserBrokerageSummaryRespBO> selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(Collection<Long> userIds, | 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,11 +78,10 @@ public interface BrokerageRecordService { | ||
| 78 | /** | 78 | /** |
| 79 | * 取消佣金:将佣金记录,状态修改为已失效 | 79 | * 取消佣金:将佣金记录,状态修改为已失效 |
| 80 | * | 80 | * |
| 81 | - * @param userId 会员编号 | ||
| 82 | * @param bizType 业务类型 | 81 | * @param bizType 业务类型 |
| 83 | * @param bizId 业务编号 | 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,27 +107,29 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { | ||
| 107 | 107 | ||
| 108 | @Override | 108 | @Override |
| 109 | @Transactional(rollbackFor = Exception.class) | 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 | return; | 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 +9,6 @@ import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokera | ||
| 9 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | 9 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; |
| 10 | import jakarta.validation.constraints.NotNull; | 10 | import jakarta.validation.constraints.NotNull; |
| 11 | 11 | ||
| 12 | -import java.util.Collection; | ||
| 13 | -import java.util.List; | ||
| 14 | - | ||
| 15 | /** | 12 | /** |
| 16 | * 分销用户 Service 接口 | 13 | * 分销用户 Service 接口 |
| 17 | * | 14 | * |
| @@ -28,14 +25,6 @@ public interface BrokerageUserService { | @@ -28,14 +25,6 @@ public interface BrokerageUserService { | ||
| 28 | BrokerageUserDO getBrokerageUser(Long id); | 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 | * @param pageReqVO 分页查询 | 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,11 +61,6 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | @Override | 63 | @Override |
| 64 | - public List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids) { | ||
| 65 | - return brokerageUserMapper.selectBatchIds(ids); | ||
| 66 | - } | ||
| 67 | - | ||
| 68 | - @Override | ||
| 69 | public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { | 64 | public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { |
| 70 | List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel()); | 65 | List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel()); |
| 71 | // 有”绑定用户编号“查询条件时,没有查到下级会员,直接返回空 | 66 | // 有”绑定用户编号“查询条件时,没有查到下级会员,直接返回空 |
| @@ -130,6 +125,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | @@ -130,6 +125,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { | ||
| 130 | 125 | ||
| 131 | @Override | 126 | @Override |
| 132 | public BrokerageUserDO getOrCreateBrokerageUser(Long id) { | 127 | public BrokerageUserDO getOrCreateBrokerageUser(Long id) { |
| 128 | + // TODO @芋艿:这块优化下;统一到注册时处理; | ||
| 133 | BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id); | 129 | BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id); |
| 134 | // 特殊:人人分销的情况下,如果分销人为空则创建分销人 | 130 | // 特殊:人人分销的情况下,如果分销人为空则创建分销人 |
| 135 | if (brokerageUser == null && ObjUtil.equal(BrokerageEnabledConditionEnum.ALL.getCondition(), | 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,7 +83,7 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { | ||
| 83 | if (order.getBrokerageUserId() == null) { | 83 | if (order.getBrokerageUserId() == null) { |
| 84 | return; | 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,8 +111,4 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler { | ||
| 111 | brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList); | 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 | } |