From 5dfc1d9e5c891225a69ec88a74ba7f83153adaf6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 22 五月 2024 20:00:48 +0800
Subject: [PATCH] 1.提交【管理后台】团购管理模块接口 2.延时任务部分代码

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)

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 0e5c883..905f7d9 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
@@ -1,9 +1,22 @@
 package com.ruoyi.goods.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.enums.ListingStatusEnum;
+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;
+import com.ruoyi.goods.controller.management.DTO.GoodsGroupPurchaseDTO;
+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.mapper.GoodsGroupPurchaseMapper;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
+import com.ruoyi.system.api.domain.dto.ListStatusDTO;
+import com.ruoyi.system.api.feignClient.OrderClient;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +28,82 @@
  * @since 2024-05-16
  */
 @Service
+@RequiredArgsConstructor
 public class GoodsGroupPurchaseServiceImpl extends ServiceImpl<GoodsGroupPurchaseMapper, GoodsGroupPurchase> implements IGoodsGroupPurchaseService {
 
+    private final OrderClient orderClient;
+
+    /**
+     * 获取团购商品列表的分页数据
+     *
+     * @param query 团购商品查询对象
+     * @return PageDTO < GoodsGroupPurchaseVO>
+     */
+    @Override
+    public PageDTO<GoodsGroupPurchaseVO> getGoodsGroupPurchasePage(GoodsGroupPurchaseQuery query) {
+        return PageDTO.of(
+                baseMapper.getGoodsGroupPurchasePage(query.getGoodsSkuName(),
+                        new Page<>(query.getPageCurr(), query.getPageSize())));
+    }
+
+    /**
+     * 添加/编辑 团购商品
+     *
+     * @param dto 团购商品数据传输对象
+     */
+    @Override
+    public void saveGoodsGroupPurchase(GoodsGroupPurchaseDTO dto) {
+        GoodsGroupPurchase goodsGroupPurchase = BeanUtils.copyBean(dto, GoodsGroupPurchase.class);
+        if (StringUtils.isNull(dto.getId())) {
+            this.save(goodsGroupPurchase);
+        } else {
+            GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
+            if (StringUtils.isNull(groupPurchase)) {
+                throw new ServiceException("团购商品不存在");
+            }
+            this.updateById(goodsGroupPurchase);
+        }
+        //TODO 添加调度任务 处理团购商品开始结束
+    }
+
+    /**
+     * 查看详情
+     *
+     * @param id 团购商品id
+     * @return GoodsGroupPurchaseVO 团购商品视图对象
+     */
+    @Override
+    public GoodsGroupPurchaseVO getGoodsGroupPurchaseDetail(Long id) {
+        GoodsGroupPurchase groupPurchase = this.getById(id);
+        if (StringUtils.isNull(groupPurchase)) {
+            throw new ServiceException("团购商品不存在");
+        }
+        GoodsGroupPurchaseVO vo = BeanUtils.copyBean(groupPurchase,
+                GoodsGroupPurchaseVO.class);
+        //远程调用订单服务查询商品购买总数
+        Integer num = orderClient.getGroupPurchasesGoodsNum(groupPurchase.getId()).getData();
+        vo.setBuyNumber(num);
+        return vo;
+    }
+
+    /**
+     * 下架/上架 团购商品
+     *
+     * @param dto 商品上下架状态对象
+     */
+    @Override
+    public void updStatus(ListStatusDTO dto) {
+        GoodsGroupPurchase groupPurchase = this.getById(dto.getId());
+        if (StringUtils.isNull(groupPurchase)) {
+            throw new ServiceException("团购商品不存在");
+        }
+        //判断商品状态
+        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)
+                && groupPurchase.getStartStatus().equals(StartStatusEnum.STARTED)) {
+            throw new ServiceException("该商品已开始团购,不能下架");
+        }
+        //修改状态
+        groupPurchase.setListingStatus(dto.getListingStatus());
+        this.updateById(groupPurchase);
+    }
 }

--
Gitblit v1.7.1