3
0
Fork 0

## 撤单秒结处理;

This commit is contained in:
cabbage 2025-09-02 11:55:25 +08:00
parent 8584b1ca76
commit ff24c59c2c
8 changed files with 86 additions and 17 deletions

View File

@ -85,4 +85,9 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*/
void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List<CuMemberBonus> cuMemberBonusList);
/**
* 回退奖金
*/
void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue);
}

View File

@ -147,4 +147,9 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
*/
List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam);
/**
* 新零售撤单回退奖金
*/
void mergeBackMemberBonusIncome(Long pkOrder);
}

View File

@ -135,15 +135,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
}
} else {
// 订单撤单处理逆向
// if (!DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
// settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
// currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
// }
// // 实时计算撤单数据业绩盒数等级奖衔日奖
// bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
// secondRangeTableName, beforePeriod, currentPeriod);
// // 处理收益
// iCuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
// 处理收益
iCuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
}
}
}

View File

@ -423,4 +423,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
return getCuMemberBonusExtList(bonusParam);
}
@Override
public void mergeBackMemberBonusIncome(Long pkOrder) {
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_REPURCHASE_INCOME.getValue());
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue());
}
}

View File

@ -596,4 +596,42 @@
b.retail_real_subtotal)
</insert>
<!-- 回退奖金 -->
<update id="mergeBackRangeBonusIncome">
merge into cu_member_bonus a
using (
select b.* from bd_bonus_items bt
inner join (
select pk_bonus, pk_bonus_items,
sum(pretax_income) pretax_income,
sum(income_tax) income_tax,
sum(real_income) real_income
from
<choose>
<when test="bonusValue == 36">cu_member_bonus_detail</when>
<otherwise>cu_member_bonus_range</otherwise>
</choose>
where del_flag = 0
and pk_order= #{pkOrder}
group by pk_bonus, pk_bonus_items
) b
on bt.pk_id = b.pk_bonus_items
where bt.bonus_value = #{bonusValue}
) b
on (a.pk_id = b.pk_bonus)
when matched then
update set a.retail_real_subtotal = a.retail_real_subtotal - b.real_income,
a.back_points = a.back_points - b.income_tax,
a.real_income_total = a.real_income_total - b.real_income
<if test="bonusValue == 25">
,a.retail_range_income = a.retail_range_income - b.pretax_income
</if>
<if test="bonusValue == 35">
,a.repur_range_income = a.repur_range_income - b.pretax_income
</if>
<if test="bonusValue == 36">
,a.retail_area_income = a.retail_area_income - b.pretax_income
</if>
</update>
</mapper>

View File

@ -1335,6 +1335,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
try {
// 撤单秒结处理
this.pushCancelOrderMq(saOrderExt);
// 推送MQ的列表
List<SaOrderExt> mqList = new ArrayList<>();
mqList.add(saOrderExt);
@ -1766,6 +1768,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
try {
// 撤单秒结处理
this.pushCancelOrderMq(saOrderExt);
// 推送MQ处理活动回退
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_CANCEL_EXCHANGE, RabbitMqConstants.ORDER_CANCEL_KEY, Collections.singletonList(saOrderExt));
} catch (Exception e) {
@ -2224,4 +2228,25 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
}
/**
* 订单推送MQ处理
*
* @param saOrderExt 会员订单
*/
private void pushCancelOrderMq(SaOrderExt saOrderExt) {
try {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// 撤单标记为 true
saOrderExt.setCancelBool(Boolean.TRUE);
// 计算奖金通过mq分发消息异步处理
log.info("新零售秒结消息order.second.exchange{}", saOrderExt.getOrderCode());
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_EXCHANGE, RabbitMqConstants.ORDER_SECOND_KEY, saOrderExt);
}
} catch (Exception e) {
log.error("新零售 pushOrderMq 推送MQ失败. order: {}", saOrderExt, e);
}
}
}

View File

@ -162,11 +162,7 @@ public class ApiShoppingCartController extends BaseController {
}
/**
* @description: 专区购物车数量 getAreaShoppingCount
* @author: zhang jing
* @date: 2024/3/28 10:27
* @param: [shoppingCartVO]
* @return: com.hzs.common.core.web.domain.AjaxResult
* 专区购物车数量 getAreaShoppingCount
**/
@GetMapping("/getAreaShoppingCount")
public AjaxResult getAreaShoppingCount(ShoppingCartVO shoppingCartVO) {

View File

@ -58,15 +58,15 @@ public enum EBonusItems {
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
/**
* 直推级差收益 -- 日奖
* 直推级差收益 -- 日奖秒奖
*/
RETAIL_RANGE_INCOME(25, "直推级差收益", 0),
/**
* 复购级差收益 -- 日奖
* 复购级差收益 -- 日奖秒奖
*/
RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0),
/**
* 复购配送收益 -- 日奖
* 复购配送收益 -- 日奖秒奖
*/
RETAIL_REPURCHASE_DELIVERY_INCOME(36, "复购配送收益", 0),