From 9ef80e04458d4b12ad5ec586d83b9f6bff22eb5d Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 24 Apr 2025 17:46:07 +0800 Subject: [PATCH] feat(rabbitmq): 添加活动订单项核销功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java index e244e5d..d61a600 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java @@ -22,6 +22,7 @@ import cc.mrbird.febs.mall.vo.activity.ApiVoteActivityHotVo; import cc.mrbird.febs.pay.model.BrandWCPayRequestData; import cc.mrbird.febs.pay.service.IXcxPayService; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; @@ -60,6 +61,7 @@ private final IXcxPayService iXcxPayService; private final IApiMallMemberWalletService iApiMallMemberWalletService; private final HappyActivityCategoryMapper happyActivityCategoryMapper; + private final AgentProducer agentProducer; @Override public FebsResponse activityList(ApiActivityInfoDto dto) { @@ -795,8 +797,9 @@ happyActivityOrderItem.setTransferItemId(memberId); happyActivityOrderItemMapper.updateById(happyActivityOrderItem); - HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId()); + agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId()); + HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId()); ApiCheckOrderVo apiCheckOrderVo = new ApiCheckOrderVo(); apiCheckOrderVo.setActivityName(happyActivity.getName()); apiCheckOrderVo.setActivityStartTime(happyActivity.getStartTime()); @@ -813,6 +816,33 @@ return new FebsResponse().fail().message("核销失败!"); } + /** + * 检查活动订单项的状态 + * 当指定订单的所有活动订单项都不处于"未使用"状态时,将订单状态更新为"已使用" + * + * @param orderId 订单ID,用于查询活动订单项和订单信息 + */ + @Override + public void checkActivityItem(Long orderId) { + // 查询指定订单ID的活动订单项数量,且状态为"未使用" + Integer integer = happyActivityOrderItemMapper.selectCount( + new LambdaQueryWrapper<HappyActivityOrderItem>() + .eq(HappyActivityOrderItem::getOrderId, orderId) + .eq(HappyActivityOrderItem::getState, StateUpDownEnum.DOWN.getCode()) + ); + // 如果没有找到任何未使用的活动订单项 + if(0 == integer){ + // 根据订单ID查询订单信息 + HappyActivityOrder happyActivityOrder = happyActivityOrderMapper.selectById(orderId); + // 更新订单状态为"已使用" + happyActivityOrder.setState(StateUpDownEnum.ORDER_STATE_USED.getCode()); + // 保存更新后的订单信息 + happyActivityOrderMapper.updateById(happyActivityOrder); + } + // 结束方法执行 + return; + } + @Override public FebsResponse voteActivityHot(Long id) { -- Gitblit v1.9.1