From fd45fcbd496bbeaf9ee18edd8f2f858cf9cebaf3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 24 一月 2025 16:47:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java |   74 +++++++++++++++++++++++++++++++++---
 1 files changed, 67 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
index bd6f4e6..89451c0 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.redis.annotation.DistributedLock;
 import com.ruoyi.other.api.domain.Goods;
 import com.ruoyi.other.api.domain.VipSetting;
 import com.ruoyi.other.api.feignClient.VipSettingClient;
@@ -47,6 +48,22 @@
     @PostMapping("/addGoods")
     @ApiOperation(value = "发布商品", tags = {"管理后台-商品管理"})
     public R<Void> addGoods(@RequestBody Goods goods) {
+        if(goods.getPurchaseLimit()==null){
+            goods.setPurchaseLimit(-1);
+        }
+        goodsService.addGoods(goods);
+        return R.ok();
+    }
+
+    /**
+     * 商品克隆
+     */
+    @GetMapping("/cloneGoods")
+    @ApiOperation(value = "商品克隆", tags = {"管理后台-商品管理"})
+    public R<Void> cloneGoods(@RequestParam Long goodsId,@RequestParam String goodsName) {
+        Goods goods = goodsService.getManageGoodsDetail(goodsId);
+        goods.setId(null);
+        goods.setName(goodsName);
         goodsService.addGoods(goods);
         return R.ok();
     }
@@ -77,6 +94,9 @@
     @PutMapping("/manageGoodsUpdate")
     @ApiOperation(value = "商品修改", tags = {"管理后台-商品管理"})
     public R<Void> manageGoodsUpdate(@RequestBody Goods goods){
+        if(goods.getPurchaseLimit()==null){
+            goods.setPurchaseLimit(-1);
+        }
         goodsService.updateManageGoods(goods);
         if (goods.getType()==2){
             goods.setAppointStore(2);
@@ -130,7 +150,9 @@
         if(0 < count){
             return R.fail("商品已被会员配置使用,不能删除");
         }
-        goodsService.removeById(goodsId);
+        Goods goods = goodsService.getById(goodsId);
+        goods.setDelFlag(1);
+        goodsService.updateById(goods);
         return R.ok();
     }
 
@@ -172,11 +194,14 @@
      */
     @GetMapping("/goodsDetail/{goodsId}")
     @ApiOperation(value = "商品详情", tags = {"小程序-商城-首页"})
-    public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId, String longitude, String latitude){
-        return R.ok(goodsService.goodsDetail(goodsId, longitude, latitude));
+    public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId,
+                                  Integer shopId,
+                                  String longitude,
+                                  String latitude) {
+        return R.ok(goodsService.goodsDetail(goodsId, shopId, longitude, latitude));
     }
-    
-    
+
+
     /**
      * 根据类型(1=服务商品,2=单品商品)获取商品数据
      * @param type
@@ -188,8 +213,8 @@
         List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getType, type).eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2));
         return R.ok(list);
     }
-    
-    
+
+
     /**
      * 根据id获取商品信息
      * @param id
@@ -209,5 +234,40 @@
         return R.ok(goods);
     }
 
+
+    /**
+     * 编辑商品
+     * @param goods
+     * @return
+     */
+    @PostMapping("/editGoodsList")
+    public R editGoodsList(@RequestBody List<Goods> goods){
+        goodsService.updateBatchById(goods);
+        return R.ok();
+    }
+
+
+    /**
+     * 商品销量增加
+     */
+    @PutMapping("/editGoodsNum")
+    @DistributedLock(lockNamePre = "#goods_lock", lockNamePost = "#goodsId")
+    public R<Void> editGoodsNum(@RequestParam("goodsId") Integer goodsId, @RequestParam("num") Integer num){
+        Goods goods = goodsService.getById(goodsId);
+        goods.setSaleNum(goods.getSaleNum() + num);
+        goodsService.updateById(goods);
+        return R.ok();
+    }
+
+
+    /**
+     * 获取所有商品
+     * @return
+     */
+    @PostMapping("/getAllGoods")
+    public R<List<Goods>> getAllGoods(){
+        List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2));
+        return R.ok(list);
+    }
 }
 

--
Gitblit v1.7.1