From 78698a4a6731054bd9e5bc397cf9aba4764aa763 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 24 五月 2024 18:17:19 +0800
Subject: [PATCH] 提交【管理后台】 商城管理-团购管理-立即结束 接口

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                          |   13 +++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java                                    |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java            |   67 ++++++++++++++++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java                    |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java                    |    7 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java                  |   10 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                         |   20 ++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java                         |   11 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java                            |   14 +++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java |   12 +++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java       |   10 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java                    |    7 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java                                    |   17 ++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java                                 |   17 ++++
 14 files changed, 202 insertions(+), 9 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
similarity index 98%
rename from ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java
rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
index 0f1a40b..8a2c157 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/Order.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java
@@ -1,4 +1,4 @@
-package com.ruoyi.order.domain.pojo;
+package com.ruoyi.system.api.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
index de129fb..a6975ef 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -1,9 +1,11 @@
 package com.ruoyi.system.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
+import java.util.List;
 import org.springframework.cloud.openfeign.FallbackFactory;
 
 /**
@@ -35,6 +37,11 @@
             public R<Integer> getGroupPurchasesGoodsNum(Long id) {
                 return R.fail("获取团购商品已购数量失败:" + cause.getMessage());
             }
+
+            @Override
+            public R<List<Order>> getOrderByGroupPurchaseId(Long id) {
+                return R.fail("根据团购商品id获取订单列表失败:" + cause.getMessage());
+            }
         };
 
     }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
index 9612ed5..4895905 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -2,9 +2,11 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import com.ruoyi.system.api.factory.OrderFallbackFactory;
+import java.util.List;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -38,4 +40,13 @@
      */
     @GetMapping("/order/group-purchase-num/{id}")
     R<Integer> getGroupPurchasesGoodsNum(@PathVariable("id") Long id);
+
+    /**
+     * 根据团购商品id获取订单列表
+     *
+     * @param id 团购商品id
+     * @return List<Order> 订单列表
+     */
+    @GetMapping("/order/group-purchase-id/{id}")
+    R<List<Order>> getOrderByGroupPurchaseId(@PathVariable("id") Long id);
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
index eb2c956..75fc971 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PaymentMethodEnum.java
@@ -12,8 +12,8 @@
 
     /* 支付方式 1=微信 2=支付宝*/
 
-    WECHAT(1, "男"),
-    ALIPAY(2, "未知");
+    WECHAT(1, "微信"),
+    ALIPAY(2, "支付宝");
     @EnumValue
     private final int code;
     @JsonValue
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java
index a6b6421..f44b259 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsGroupPurchaseDTO.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -22,29 +24,37 @@
     private Long goodsSkuId;
 
     @ApiModelProperty(value = "分享标题")
+    @NotBlank(message = "分享标题不能为空")
     private String shareTitle;
 
     @ApiModelProperty(value = "分享图片")
+    @NotBlank(message = "分享图片不能为空")
     private String sharePic;
 
     @ApiModelProperty(value = "团购价格")
+    @NotNull(message = "团购价格不能为空")
     private BigDecimal groupPurchasePrice;
 
     @ApiModelProperty(value = "成团人数")
+    @NotNull(message = "成团人数不能为空")
     private Integer groupSize;
 
     @ApiModelProperty(value = "限购数量")
+    @NotNull(message = "限购数量不能为空")
     private Integer limitNumber;
 
     @ApiModelProperty(value = "团购开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "团购开始时间不能为空")
     private LocalDateTime startTime;
 
     @ApiModelProperty(value = "团购结束时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "团购结束时间不能为空")
     private LocalDateTime endTime;
 
     @ApiModelProperty(value = "参团说明")
+    @NotBlank(message = "参团说明不能为空")
     private String description;
 
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
index dea8bed..496d25b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
@@ -86,4 +86,16 @@
         goodsGroupPurchaseService.updStatus(dto);
         return R.ok();
     }
+
+    /**
+     * 立即结束
+     *
+     * @param id 团购商品id
+     */
+    @ApiOperation(value = "立即结束", notes = "立即结束")
+    @PutMapping("/stop-immediately/{id}")
+    public R<Void> stopImmediately(@PathVariable("id") Long id) {
+        goodsGroupPurchaseService.stopImmediately(id);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
index 8eb6d9c..9d34215 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
@@ -61,4 +61,11 @@
      * @param groupPurchaseId 团购商品id
      */
     void endGroupPurchase(Long groupPurchaseId);
+
+    /**
+     * 立即结束团购
+     *
+     * @param id 团购商品id
+     */
+    void stopImmediately(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index 3f9575c..fa87a08 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -2,7 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
+import com.ruoyi.common.core.enums.PaymentMethodEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -12,10 +14,15 @@
 import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseQuery;
 import com.ruoyi.goods.controller.management.VO.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
+import com.ruoyi.goods.domain.GoodsSku;
 import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
+import com.ruoyi.goods.service.IGoodsSkuService;
+import com.ruoyi.goods.service.async.AsyncMethodService;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import com.ruoyi.system.api.feignClient.OrderClient;
+import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -34,7 +41,8 @@
 public class GoodsGroupPurchaseServiceImpl extends ServiceImpl<GoodsGroupPurchaseMapper, GoodsGroupPurchase> implements IGoodsGroupPurchaseService {
 
     private final OrderClient orderClient;
-
+    private final IGoodsSkuService goodsSkuService;
+    private final AsyncMethodService asyncMethodService;
     /**
      * 获取团购商品列表的分页数据
      *
@@ -57,16 +65,39 @@
     public void saveGoodsGroupPurchase(GoodsGroupPurchaseDTO dto) {
         GoodsGroupPurchase goodsGroupPurchase = BeanUtils.copyBean(dto, GoodsGroupPurchase.class);
         if (StringUtils.isNull(dto.getId())) {
+            if (StringUtils.isNull(dto.getGoodsSkuId())) {
+                throw new ServiceException("商品id不能为空");
+            }
             this.save(goodsGroupPurchase);
+            GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            int groupPurchaseStock = dto.getLimitNumber() * dto.getGroupSize();
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock, goodsSku.getStock() - groupPurchaseStock)
+                    .ge(GoodsSku::getStock, groupPurchaseStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
         } else {
             GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
             if (StringUtils.isNull(groupPurchase)) {
                 throw new ServiceException("团购商品不存在");
             }
+            int originGroupStock = groupPurchase.getLimitNumber() * groupPurchase.getGroupSize();
+            GoodsSku goodsSku = goodsSkuService.getById(dto.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            int groupPurchaseStock = dto.getLimitNumber() * dto.getGroupSize();
+            int latestStock = originGroupStock - groupPurchaseStock;
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock,
+                            goodsSku.getStock() + latestStock)
+                    .ge(GoodsSku::getStock, latestStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
             this.updateById(goodsGroupPurchase);
+            asyncMethodService.groupPurchaseScheduleTask(goodsGroupPurchase);
         }
-        //TODO 添加调度任务 处理团购商品开始结束
-
     }
 
     /**
@@ -141,4 +172,34 @@
             //TODO 通知小程序
         }
     }
+
+    /**
+     * 立即结束
+     *
+     * @param id 团购商品id
+     */
+    @Override
+    public void stopImmediately(Long id) {
+        GoodsGroupPurchase groupPurchase = this.getById(id);
+        if (StringUtils.isNull(groupPurchase)) {
+            throw new ServiceException("团购商品不存在");
+        }
+        //判断商品状态,未成团则查询关联订单,进行退款;成团就直接修改状态
+        if (groupPurchase.getGroupStatus().equals(GroupStatusEnum.TO_FORM_A_GROUP)) {
+            //查询关联订单
+            List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id).getData();
+            for (Order order : orderList) {
+                if (PaymentMethodEnum.ALIPAY.equals(order.getPaymentMethod())) {
+                    //TODO
+                }
+                if (PaymentMethodEnum.WECHAT.equals(order.getPaymentMethod())) {
+                    //TODO
+                }
+            }
+        } else {
+            this.lambdaUpdate()
+                    .set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED)
+                    .eq(GoodsGroupPurchase::getId, id).update();
+        }
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
index af7e470..fb901b3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.enums.StartStatusEnum;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
@@ -60,6 +61,15 @@
         this.saveBatch(goodsSeckills);
 
         for (GoodsSeckill goodsSeckill : goodsSeckills) {
+            GoodsSku goodsSku = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
+            if (StringUtils.isNull(goodsSku)) {
+                throw new ServiceException("商品不存在");
+            }
+            Integer seckillStock = goodsSeckill.getSeckillStock();
+            goodsSkuService.lambdaUpdate()
+                    .set(GoodsSku::getStock, goodsSku.getStock() - seckillStock)
+                    .ge(GoodsSku::getStock, seckillStock)
+                    .eq(GoodsSku::getId, goodsSku.getId());
             asyncMethodService.seckillScheduleTask(goodsSeckill);
         }
     }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 0f36576..4219436 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -4,7 +4,9 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.order.service.IOrderService;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
@@ -64,4 +66,16 @@
     R<Integer> getGroupPurchasesGoodsNum(@PathVariable("id") Long id) {
         return R.ok(orderService.getGroupPurchasesGoodsNum(id));
     }
+
+    /**
+     * 获取团购商品已购订单列表
+     *
+     * @param id 团购商品id
+     * @return List<Order> 订单列表
+     */
+    @InnerAuth
+    @GetMapping("/group-purchase-id/{id}")
+    R<List<Order>> getOrderByGroupPurchaseId(@PathVariable("id") Long id) {
+        return R.ok(orderService.getOrderByGroupPurchaseId(id));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
index d6a61c7..0711b57 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -1,7 +1,8 @@
 package com.ruoyi.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.system.api.domain.Order;
+import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -14,5 +15,19 @@
  */
 public interface OrderMapper extends BaseMapper<Order> {
 
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     Integer getSeckillMembers(@Param("id") Long id);
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    List<Order> getOrderByGroupPurchaseId(@Param("id") Long id);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
index 37a1954..9fed17b 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
@@ -1,8 +1,9 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.order.domain.pojo.Order;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
+import java.util.List;
 
 /**
  * <p>
@@ -16,6 +17,12 @@
 
     void saveOrderOne(OrderDTO OrderDTO);
 
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     Integer getSeckillMembers(Long id);
 
     /**
@@ -25,4 +32,12 @@
      * @return 团购商品已购数量
      */
     Integer getGroupPurchasesGoodsNum(Long id);
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    List<Order> getOrderByGroupPurchaseId(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 520643c..55b91da 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -2,12 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
-import com.ruoyi.order.domain.pojo.Order;
 import com.ruoyi.order.domain.pojo.OrderMall;
 import com.ruoyi.order.mapper.OrderMapper;
 import com.ruoyi.order.service.IOrderMallService;
 import com.ruoyi.order.service.IOrderService;
 import com.ruoyi.order.util.OrderUtil;
+import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.dto.OrderDTO;
 import java.util.List;
 import java.util.Set;
@@ -50,6 +50,13 @@
         order.setBound(OrderDTO.getBound());
         orderService.save(order);
     }
+
+    /**
+     * 获取某个商品的已购会员数
+     *
+     * @param id 秒杀商品id
+     * @return 已购会员数
+     */
     @Override
     public Integer getSeckillMembers(Long id) {
         return baseMapper.getSeckillMembers(id);
@@ -72,4 +79,15 @@
                         OrderStatusEnum.GOODS_TO_BE_RECEIVED, OrderStatusEnum.FINISHED).list();
         return list.stream().map(Order::getGoodsQuantity).reduce(0, Integer::sum);
     }
+
+    /**
+     * 根据团购商品id获取团购商品订单
+     *
+     * @param id 团购商品id
+     * @return 订单列表
+     */
+    @Override
+    public List<Order> getOrderByGroupPurchaseId(Long id) {
+        return baseMapper.getOrderByGroupPurchaseId(id);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index e86ecaf..74e9b67 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -14,4 +14,17 @@
     GROUP BY
       o.member_id
   </select>
+  <select id="getOrderByGroupPurchaseId" resultType="com.ruoyi.system.api.domain.Order"
+    parameterType="java.lang.Long">
+    SELECT
+    o.*
+    FROM
+    t_order_mall tom
+    LEFT JOIN t_order o ON tom.order_id = o.id
+    <where>
+      o.order_status = 2
+      AND o.order_from = 3
+      AND tom.activity_id = #{id}
+    </where>
+  </select>
 </mapper>

--
Gitblit v1.7.1