From 6e3fcdbde6ad62832753ddc8d3e1429f29ea58ee Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 28 Apr 2025 17:31:42 +0800 Subject: [PATCH] refactor(mall): 优化活动报名相关功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 19 +++++++++++++++++++ src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderListVo.java | 4 ++++ src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderInfoVo.java | 2 -- 3 files changed, 23 insertions(+), 2 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 7b36573..b2d0db8 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("已经添加过该联系人"); @@ -504,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("活动不存在"); diff --git a/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderInfoVo.java index 08c1f96..622fbd7 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderInfoVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderInfoVo.java @@ -43,8 +43,6 @@ @ApiModelProperty(value = "实付金额") private BigDecimal price; - - @ApiModelProperty(value = "订单状态 1-待支付 2-待使用 3-已使用 4-售后") private Integer orderState; diff --git a/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderListVo.java index d5b3000..cb95e00 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderListVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/activity/ApiActivityOrderListVo.java @@ -42,6 +42,10 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; + @ApiModelProperty(value = "订单失效时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date failTime; + @ApiModelProperty(value = "活动地点") private String address; -- Gitblit v1.9.1