【代码修复】MALL:修复订单项取消时,分销未取消所有推广员的推广记录问题

This commit is contained in:
YunaiV 2024-07-22 18:12:44 +08:00
parent 4959479ac6
commit cf6f3eaa41
6 changed files with 25 additions and 44 deletions

View File

@ -50,10 +50,9 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> {
.eq(BrokerageRecordDO::getStatus, status)); .eq(BrokerageRecordDO::getStatus, status));
} }
default BrokerageRecordDO selectByBizTypeAndBizIdAndUserId(Integer bizType, String bizId, Long userId) { default List<BrokerageRecordDO> selectListByBizTypeAndBizId(Integer bizType, String bizId) {
return selectOne(BrokerageRecordDO::getBizType, bizType, return selectList(BrokerageRecordDO::getBizType, bizType,
BrokerageRecordDO::getBizId, bizId, BrokerageRecordDO::getBizId, bizId);
BrokerageRecordDO::getUserId, userId);
} }
default List<UserBrokerageSummaryRespBO> selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(Collection<Long> userIds, default List<UserBrokerageSummaryRespBO> selectCountAndSumPriceByUserIdInAndBizTypeAndStatus(Collection<Long> userIds,

View File

@ -78,11 +78,10 @@ public interface BrokerageRecordService {
/** /**
* 取消佣金将佣金记录状态修改为已失效 * 取消佣金将佣金记录状态修改为已失效
* *
* @param userId 会员编号
* @param bizType 业务类型 * @param bizType 业务类型
* @param bizId 业务编号 * @param bizId 业务编号
*/ */
void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId); void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId);
/** /**
* 解冻佣金将待结算的佣金记录状态修改为已结算 * 解冻佣金将待结算的佣金记录状态修改为已结算

View File

@ -107,27 +107,29 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void cancelBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId) { public void cancelBrokerage(BrokerageRecordBizTypeEnum bizType, String bizId) {
BrokerageRecordDO record = brokerageRecordMapper.selectByBizTypeAndBizIdAndUserId(bizType.getType(), bizId, userId); List<BrokerageRecordDO> records = brokerageRecordMapper.selectListByBizTypeAndBizId(bizType.getType(), bizId);
if (record == null) { if (CollUtil.isEmpty(records)) {
log.error("[cancelBrokerage][userId({})][bizId({}) 更新为已失效失败:记录不存在]", userId, bizId); log.error("[cancelBrokerage][bizId({}) bizType({}) 更新为已失效失败:记录不存在]", bizId, bizType);
return; return;
} }
// 1. 更新佣金记录为已失效 records.forEach(record -> {
BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus()); // 1. 更新佣金记录为已失效
int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj); BrokerageRecordDO updateObj = new BrokerageRecordDO().setStatus(BrokerageRecordStatusEnum.CANCEL.getStatus());
if (updateRows == 0) { int updateRows = brokerageRecordMapper.updateByIdAndStatus(record.getId(), record.getStatus(), updateObj);
log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId()); if (updateRows == 0) {
return; log.error("[cancelBrokerage][record({}) 更新为已失效失败]", record.getId());
} return;
}
// 2. 更新用户的佣金 // 2. 更新用户的佣金
if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) { if (BrokerageRecordStatusEnum.WAIT_SETTLEMENT.getStatus().equals(record.getStatus())) {
brokerageUserService.updateUserFrozenPrice(userId, -record.getPrice()); brokerageUserService.updateUserFrozenPrice(record.getUserId(), -record.getPrice());
} else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) { } else if (BrokerageRecordStatusEnum.SETTLEMENT.getStatus().equals(record.getStatus())) {
brokerageUserService.updateUserPrice(userId, -record.getPrice()); brokerageUserService.updateUserPrice(record.getUserId(), -record.getPrice());
} }
});
} }
/** /**

View File

@ -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 cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;
/** /**
* 分销用户 Service 接口 * 分销用户 Service 接口
* *
@ -27,14 +24,6 @@ public interface BrokerageUserService {
*/ */
BrokerageUserDO getBrokerageUser(Long id); BrokerageUserDO getBrokerageUser(Long id);
/**
* 获得分销用户列表
*
* @param ids 编号
* @return 分销用户列表
*/
List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids);
/** /**
* 获得分销用户分页 * 获得分销用户分页
* *

View File

@ -60,11 +60,6 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
return brokerageUserMapper.selectById(id); return brokerageUserMapper.selectById(id);
} }
@Override
public List<BrokerageUserDO> getBrokerageUserList(Collection<Long> ids) {
return brokerageUserMapper.selectBatchIds(ids);
}
@Override @Override
public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { public PageResult<BrokerageUserDO> getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) {
List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel()); List<Long> childIds = getChildUserIdsByLevel(pageReqVO.getBindUserId(), pageReqVO.getLevel());
@ -130,6 +125,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService {
@Override @Override
public BrokerageUserDO getOrCreateBrokerageUser(Long id) { public BrokerageUserDO getOrCreateBrokerageUser(Long id) {
// TODO @芋艿这块优化下统一到注册时处理
BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id); BrokerageUserDO brokerageUser = brokerageUserMapper.selectById(id);
// 特殊人人分销的情况下如果分销人为空则创建分销人 // 特殊人人分销的情况下如果分销人为空则创建分销人
if (brokerageUser == null && ObjUtil.equal(BrokerageEnabledConditionEnum.ALL.getCondition(), if (brokerageUser == null && ObjUtil.equal(BrokerageEnabledConditionEnum.ALL.getCondition(),

View File

@ -83,7 +83,7 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler {
if (order.getBrokerageUserId() == null) { if (order.getBrokerageUserId() == null) {
return; 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); brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList);
} }
protected void cancelBrokerage(Long userId, Long orderItemId) {
brokerageRecordService.cancelBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, String.valueOf(orderItemId));
}
} }