From 3fc146bb6018df095ef2252461f3446bda87ef82 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 29 Apr 2025 14:06:54 +0800 Subject: [PATCH] refactor(rabbitmq): 使用 RabbitQueueEnum 替代直接使用队列名称 --- src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 81 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 76 insertions(+), 5 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 ede7d68..a13dff7 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 @@ -415,6 +415,7 @@ new LambdaQueryWrapper<HappyActivityConnect>() .eq(HappyActivityConnect::getMemberId, memberId) .eq(HappyActivityConnect::getName, dto.getName()) + .eq(HappyActivityConnect::getPhone, dto.getPhone()) ); if(CollUtil.isNotEmpty(happyActivityConnects)){ throw new FebsException("已经添加过该联系人"); @@ -471,6 +472,26 @@ } @Override + public FebsResponse expireOrder(ApiExpireOrderDto dto) { + if(CollUtil.isEmpty(dto.getIds())){ + throw new FebsException("请选择订单"); + } + + dto.getIds().forEach(id -> { + HappyActivityOrder happyActivityOrder = happyActivityOrderMapper.selectById(id); + if(ObjectUtil.isNotEmpty(happyActivityOrder)){ + Long activityId = happyActivityOrder.getActivityId(); + Integer numCnt = happyActivityOrder.getNumCnt(); + this.baseMapper.updateHappyActivitySurplusCnt(activityId,numCnt); + + happyActivityOrder.setState(StateUpDownEnum.ORDER_STATE_OVERTIME.getCode()); + happyActivityOrderMapper.updateById(happyActivityOrder); + } + }); + return new FebsResponse().success(); + } + + @Override public FebsResponse createOrder(ApiCreateOrderDto dto) { Long memberId = LoginUserUtil.getLoginUser().getId(); if(CollUtil.isEmpty(dto.getConnectIds())){ @@ -484,6 +505,24 @@ } Long activityId = dto.getActivityId(); + + List<HappyActivityOrderItem> happyActivityOrderItems = happyActivityOrderItemMapper.selectList( + new LambdaQueryWrapper<HappyActivityOrderItem>() + .eq(HappyActivityOrderItem::getActivityId, activityId) + .in(HappyActivityOrderItem::getConnectId, connectIds) + ); + if(CollUtil.isNotEmpty(happyActivityOrderItems)){ + //stream流操作happyActivityOrderItems,返回一个orderId的Set集合 + Set<Long> orderIdSet = happyActivityOrderItems.stream().map(HappyActivityOrderItem::getOrderId).collect(Collectors.toSet()); + List<HappyActivityOrder> happyActivityOrders = happyActivityOrderMapper.selectList( + new LambdaQueryWrapper<HappyActivityOrder>() + .in(HappyActivityOrder::getId, orderIdSet) + .in(HappyActivityOrder::getState, Arrays.asList(StateUpDownEnum.ORDER_STATE_WAIT_PAY.getCode(),StateUpDownEnum.ORDER_STATE_WAIT_USE.getCode())) + ); + if(CollUtil.isNotEmpty(happyActivityOrders)){ + throw new FebsException("有报名人重复报名了活动,请重新选择"); + } + } HappyActivity happyActivity = this.baseMapper.selectById(activityId); if (ObjectUtil.isEmpty(happyActivity)) { throw new FebsException("活动不存在"); @@ -706,6 +745,7 @@ List<HappyActivity> happyActivities = this.baseMapper.selectList( new LambdaQueryWrapper<HappyActivity>() .select( + HappyActivity::getId, HappyActivity::getCategoryId, HappyActivity::getName, HappyActivity::getStartTime, @@ -755,7 +795,7 @@ List<HappyActivityOrderItem> happyActivityOrderItems = happyActivityOrderItemMapper.selectList( new LambdaQueryWrapper<HappyActivityOrderItem>() - .eq(HappyActivityOrderItem::getOrderId, happyActivityOrder.getActivityId()) + .eq(HappyActivityOrderItem::getOrderId, happyActivityOrder.getId()) .eq(HappyActivityOrderItem::getMemberId, memberId) ); if(CollUtil.isNotEmpty(happyActivityOrderItems)){ @@ -863,11 +903,10 @@ .last("limit 1") ); if(happyActivityOrderItem != null){ - happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode()); - happyActivityOrderItem.setTransferItemId(memberId); - happyActivityOrderItemMapper.updateById(happyActivityOrderItem); - agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId()); + if(StateUpDownEnum.UP.getCode() == happyActivityOrderItem.getState()){ + throw new FebsException("该票号已核销!"); + } HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId()); ApiCheckOrderVo apiCheckOrderVo = new ApiCheckOrderVo(); @@ -886,6 +925,38 @@ return new FebsResponse().fail().message("核销失败!"); } + @Override + public FebsResponse insureOrder(ApiCheckOrderDto dto) { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + MallMember mallMember = mallMemberMapper.selectById(memberId); + + if(StateUpDownEnum.UP.getCode() != mallMember.getCheckOrder()){ + throw new FebsException("您不是核销员!"); + } + + String orderItemCode = dto.getOrderItemCode(); + + HappyActivityOrderItem happyActivityOrderItem = happyActivityOrderItemMapper.selectOne( + new LambdaQueryWrapper<HappyActivityOrderItem>() + .eq(HappyActivityOrderItem::getCode, orderItemCode) + .eq(HappyActivityOrderItem::getState, StateUpDownEnum.DOWN.getCode()) + .last("limit 1") + ); + if(happyActivityOrderItem != null){ + if(StateUpDownEnum.UP.getCode() == happyActivityOrderItem.getState()){ + throw new FebsException("该票号已核销!"); + } + + happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode()); + happyActivityOrderItem.setTransferItemId(memberId); + happyActivityOrderItemMapper.updateById(happyActivityOrderItem); + agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId()); + } + return new FebsResponse().success().message("操作成功"); + } + /** * 检查活动订单项的状态 * 当指定订单的所有活动订单项都不处于"未使用"状态时,将订单状态更新为"已使用" -- Gitblit v1.9.1