From 61b57c78d685cffe45bf923ac379f108f6dfa558 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 05 六月 2023 17:44:15 +0800
Subject: [PATCH] 商品管理

---
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java          |    3 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java               |    4 -
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsUpDownDto.java             |   24 ++++++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java               |   27 +++++++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsRecommendDto.java          |   24 ++++++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java |   29 +++++++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java      |   62 ++++++++++++++++++++
 7 files changed, 169 insertions(+), 4 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
index e9adbc2..f1e0aaf 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -128,4 +128,7 @@
 
     String NO_POSITION = "商品信息需要获取定位";
 
+    String GOODS_DELETED = "商品已被删除";
+
+
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
index e987015..4817c0e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -5,10 +5,13 @@
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.goods.domain.dto.MgtGoodsEditDto;
 import com.ruoyi.goods.domain.dto.MgtGoodsPageDto;
+import com.ruoyi.goods.domain.dto.MgtGoodsRecommendDto;
+import com.ruoyi.goods.domain.dto.MgtGoodsUpDownDto;
 import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
 import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo;
 import com.ruoyi.goods.service.goods.GoodsService;
 import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -63,4 +66,30 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/upDownMgtGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "平台上下架商品")
+    public R upDownMgtGoods(@RequestBody MgtGoodsUpDownDto mgtGoodsUpDownDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtGoodsUpDownDto.setUserId(userId);
+        goodsService.upDownMgtGoods(mgtGoodsUpDownDto);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/recommendMgtGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "平台推荐商品")
+    public R recommendMgtGoods(@RequestBody MgtGoodsRecommendDto mgtGoodsRecommendDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtGoodsRecommendDto.setUserId(userId);
+        goodsService.recommendMgtGoods(mgtGoodsRecommendDto);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/deleteMgtGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "平台推荐商品")
+    public R deleteMgtGoods(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtBaseGetDto.setUserId(userId);
+        goodsService.deleteMgtGoods(mgtBaseGetDto.getId(),userId);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java
index e654c08..ae3bc37 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java
@@ -1,13 +1,10 @@
 package com.ruoyi.goods.domain.dto;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.ruoyi.system.api.domain.dto.MgtBaseDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * @author jqs34
@@ -18,7 +15,6 @@
  */
 @Data
 public class MgtGoodsEditDto extends MgtBaseDto {
-
 
     @ApiModelProperty(value = "商品id 新增时不传")
     private String goodsId;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsRecommendDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsRecommendDto.java
new file mode 100644
index 0000000..81b4a69
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsRecommendDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.goods.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtGoodsUpDownDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/5 17:20
+ * @Version 1.0
+ */
+@Data
+public class MgtGoodsRecommendDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "是否推荐0否1是")
+    private Integer recommendFlag;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsUpDownDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsUpDownDto.java
new file mode 100644
index 0000000..0d6b5d4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsUpDownDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.goods.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtGoodsUpDownDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/6/5 17:20
+ * @Version 1.0
+ */
+@Data
+public class MgtGoodsUpDownDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "商品状态1上架2下架")
+    private Integer goodsStatus;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
index 484bcf2..5f7c559 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
@@ -87,4 +87,31 @@
      * @param mgtGoodsEditDto
      */
     void editMgtGoods(MgtGoodsEditDto mgtGoodsEditDto);
+
+    /**
+     * @description  上下架商品
+     * @author  jqs
+     * @date    2023/6/5 17:32
+     * @param mgtGoodsUpDownDto
+     * @return  void
+     */
+    void upDownMgtGoods(MgtGoodsUpDownDto mgtGoodsUpDownDto);
+
+    /**
+     * @description  推荐商品
+     * @author  jqs
+     * @date    2023/6/5 17:32
+     * @param mgtGoodsRecommendDto
+     * @return  void
+     */
+    void recommendMgtGoods(MgtGoodsRecommendDto mgtGoodsRecommendDto);
+
+    /**
+     * @description  删除商品
+     * @author  jqs
+     * @date    2023/6/5 17:36
+     * @param goodsId
+     * @return  void
+     */
+    void deleteMgtGoods(String goodsId,Long userId);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
index 7604ed6..22372e0 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -132,6 +132,9 @@
     public AppGoodsInfoVo getGoodsInfo(AppGoodsInfoGetDto appGoodsInfoGetDto){
         AppGoodsInfoVo appGoodsInfoVo = new AppGoodsInfoVo();
         Goods goods = this.getById(appGoodsInfoGetDto.getId());
+        if(goods.getGoodsStatus()==-1){
+            throw new ServiceException(AppErrorConstant.GOODS_DELETED);
+        }
         BeanUtils.copyProperties(goods, appGoodsInfoVo);
         //商户定制价格
         ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(appGoodsInfoGetDto.getShopId(),goods.getGoodsId());
@@ -277,6 +280,9 @@
         // 判断是否有商品ID 没有则新建
         if (goodsId != null) {
             goods = this.getById(goodsId);
+            if(goods.getGoodsStatus()==-1){
+                throw new ServiceException(AppErrorConstant.GOODS_DELETED);
+            }
         } else {
             goods = new Goods();
             goodsId = IdUtils.simpleUUID();
@@ -348,4 +354,60 @@
              goodsFileService.saveBatch(files);
          }
      }
+
+    /**
+     * @description: 上下架
+     * @author jqs
+     * @date   2023/6/5 17:21
+     * @version 1.0
+     */
+    @Override
+    public void upDownMgtGoods(MgtGoodsUpDownDto mgtGoodsUpDownDto){
+        Goods goods = this.getById(mgtGoodsUpDownDto.getGoodsId());
+        if(goods.getGoodsStatus()==-1){
+            throw new ServiceException(AppErrorConstant.GOODS_DELETED);
+        }
+        goods.setGoodsStatus(mgtGoodsUpDownDto.getGoodsStatus());
+        goods.setUpdateTime(DateUtils.getNowDate());
+        goods.setUpdateUserId(mgtGoodsUpDownDto.getUserId());
+        this.saveOrUpdate(goods);
+    }
+
+    /**
+     * @description  推荐商品
+     * @author  jqs
+     * @date    2023/6/5 17:32
+     * @param mgtGoodsRecommendDto
+     * @return  void
+     */
+    @Override
+    public void recommendMgtGoods(MgtGoodsRecommendDto mgtGoodsRecommendDto){
+        Goods goods = this.getById(mgtGoodsRecommendDto.getGoodsId());
+        if(goods.getGoodsStatus()==-1){
+            throw new ServiceException(AppErrorConstant.GOODS_DELETED);
+        }
+        goods.setRecommendFlag(mgtGoodsRecommendDto.getRecommendFlag());
+        goods.setUpdateTime(DateUtils.getNowDate());
+        goods.setUpdateUserId(mgtGoodsRecommendDto.getUserId());
+        this.saveOrUpdate(goods);
+    }
+
+    /**
+     * @description  删除商品
+     * @author  jqs
+     * @date    2023/6/5 17:36
+     * @param goodsId
+     * @return  void
+     */
+    @Override
+    public void deleteMgtGoods(String goodsId,Long userId){
+        Goods goods = this.getById(goodsId);
+        goods.setDelFlag(1);
+        goods.setGoodsStatus(-1);
+        goods.setUpdateTime(DateUtils.getNowDate());
+        goods.setUpdateUserId(userId);
+        this.saveOrUpdate(goods);
+    }
+
+
 }

--
Gitblit v1.7.1