From 19df67e19f23cd2a04d1c7f355e1e656f4140af4 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期四, 17 四月 2025 20:04:14 +0800
Subject: [PATCH] 后台:首页统计、系统管理、广告管理、用户管理、商品分类管理

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
index d84a0f6..5035619 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -18,6 +18,7 @@
 import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
 import com.ruoyi.order.vo.Price;
 import com.ruoyi.other.api.domain.*;
+import com.ruoyi.other.dto.AddGoodsDTO;
 import com.ruoyi.other.enums.GoodsStatus;
 import com.ruoyi.other.mapper.GoodsMapper;
 import com.ruoyi.other.mapper.GoodsShopMapper;
@@ -28,13 +29,17 @@
 import com.ruoyi.other.vo.NearbyShopVO;
 import com.ruoyi.system.api.domain.SysConfig;
 import com.ruoyi.system.api.feignClient.SysConfigClient;
+import com.ruoyi.system.api.model.LoginUser;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -89,16 +94,23 @@
         }
         //查找满足条件的商品  分类、名称、附近十家店
         List<GoodsVO> list = this.baseMapper.goodsList(search.getGoodsCategoryId(), search.getName(),shopIds);
+        //去重
+        Map<Integer, GoodsVO> uniqueGoodsMap = new LinkedHashMap<>();
+        for (GoodsVO goods : list) {
+            uniqueGoodsMap.putIfAbsent(goods.getGoodsId(), goods);
+        }
+        list = new ArrayList<>(uniqueGoodsMap.values());
         for (GoodsVO goods : list) {
 
             //计算所需价格和积分
-            Price price = getPrice( goods.getGoodsId(), 1);
+            Price price = getPrice( goods.getGoodsId());
             if(null != price){
                 //秒杀活动
                 goods.setSellingPrice(price.getCash());
                 goods.setIntegral(price.getPoint());
                 goods.setStartTime(price.getStartTime());
                 goods.setEndTime(price.getEndTime());
+                goods.setPurchaseLimit(price.getPurchaseLimit());
             }
             //已售数量
             Integer data = orderClient.getGoodsSaleNum(goods.getGoodsId(), 1).getData();
@@ -185,6 +197,7 @@
         }
 
         Goods goods = this.getById(goodsId);
+
         if(null == goods || goods.getDelFlag() == 1){
             throw new RuntimeException("商品不存在");
         }
@@ -198,13 +211,14 @@
         goodsVO.setGoodsName(goods.getName());
 
         //计算所需价格和积分
-        Price price = getPrice( goods.getId(), 1);
+        Price price = getPrice( goods.getId());
         if(null != price){
             //秒杀活动
             goodsVO.setSellingPrice(price.getCash());
             goodsVO.setIntegral(price.getPoint());
             goodsVO.setStartTime(price.getStartTime());
             goodsVO.setEndTime(price.getEndTime());
+            goodsVO.setPurchaseLimit(price.getPurchaseLimit());
         }
         //已售数量
         Integer data = orderClient.getGoodsSaleNum(goods.getId(), 1).getData();
@@ -214,12 +228,12 @@
         GoodsShop goodsShop = goodsShopMapper.selectOne(new LambdaQueryWrapper<GoodsShop>()
                 .eq(GoodsShop::getGoodsId, goodsId));
         Shop shop1 = shopMapper.selectById(goodsShop.getShopId());
-        ArrayList<Shop> shops = new ArrayList<>();
-        shops.add(shop1);
-        goodsVO.setShopList(shops);
+
+        goodsVO.setShop(shop1);
         //已售数量
         Integer integer = orderClient.getGoodsSaleNum(goods.getId(), 1).getData();
         goodsVO.setSaleNum(integer);
+
         return goodsVO;
 
     }
@@ -229,13 +243,17 @@
     public List<GoodsVO> getGoodsListByShopId(PageInfo<GoodsVO> pageInfo, Integer shopId) {
         //查询该门店商品
         List<GoodsVO> goods = goodsMapper.selectListByShopId(pageInfo, shopId);
+        if (goods == null) {
+            return null;
+        }
         for (GoodsVO good : goods) {
             //价格
-            Price price = getPrice( good.getGoodsId(), 1);
+            Price price = getPrice( good.getGoodsId());
             if(null != price){
                 //秒杀活动
                 good.setSellingPrice(price.getCash());
                 good.setIntegral(price.getPoint());
+                good.setPurchaseLimit(price.getPurchaseLimit());
                 good.setStartTime(price.getStartTime());
                 good.setEndTime(price.getEndTime());
             }
@@ -258,7 +276,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addGoods(Goods goods) {
-        goods.setSaleNum(0);
+      /*  goods.setSaleNum(0);
         goods.setStatus(GoodsStatus.DOWN.getCode());
         goodsMapper.insert(goods);
 
@@ -270,18 +288,18 @@
                 throw new NullPointerException("请选择指定门店");
             }
             saveGoodsShopList(goodsShopList, goods.getId());
-        }
+        }*/
     }
 
     @Override
     public void updateManageGoods(Goods goods) {
-        this.updateById(goods);
+       /* this.updateById(goods);
         //修改个别字段
         this.update(new LambdaUpdateWrapper<Goods>().eq(Goods::getId, goods.getId()).set(Goods::getSellingPrice, goods.getSellingPrice())
                 .set(Goods::getIntegral, goods.getIntegral()));
         // 指定门店
         List<GoodsShop> goodsShopList = goods.getGoodsShopList();
-        saveGoodsShopList(goodsShopList, goods.getId());
+        saveGoodsShopList(goodsShopList, goods.getId());*/
     }
 
 
@@ -322,19 +340,17 @@
                 goodsShop.setAddress(shop.getAddress());
             }
         }
-        goods.setGoodsShopList(goodsShops);
+//        goods.setGoodsShopList(goodsShops);
         return goods;
     }
 
 
 
+
     /**
-     * 根据商品的价格配置体系获取商品当前的价格
-     * @param goodsId
-     * @param type          1普通商品,2秒杀商品
-     * @return
+     * 获取商品当前的价格,就是判断是否在秒杀活动中
      */
-    public Price getPrice( Integer goodsId, Integer type){
+    public Price getPrice( Integer goodsId ){
         //判断是否有在秒杀活动时间中
         Price price = new Price();
         SeckillActivityInfo one = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodsId)
@@ -346,7 +362,7 @@
             goodsSeckill = goodsSeckillService.getOne(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, one.getId()));
         }
         //没有秒杀活动或者添加的普通商品则使用秒杀活动价格
-        if(null == goodsSeckill || type == 1){
+        if(null == goodsSeckill ){
            return null;
         }
         //秒杀活动价格
@@ -355,6 +371,7 @@
         price.setPoint(getPoint(price.getCash()));
         price.setStartTime(one.getStartTime());
         price.setEndTime(one.getEndTime());
+        price.setPurchaseLimit(one.getMaxNum());
         return price;
     }
 

--
Gitblit v1.7.1