فهرست منبع

商户不允许修改商品到回收站

Yangzw 7 ماه پیش
والد
کامیت
bd9708c855

+ 21 - 1
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/service/spuapply/SpuApplyServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.newfeifan.mall.module.product.service.spuapply;
 
+import cn.newfeifan.mall.framework.common.exception.ErrorCode;
 import cn.newfeifan.mall.module.product.controller.admin.skuapply.vo.SkuApplySaveReqVO;
 import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSpuSaveReqVO;
 import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusReqVO;
@@ -138,7 +139,7 @@ public class SpuApplyServiceImpl implements SpuApplyService {
         spu.setStock(getSumValue(skus, SkuApplySaveReqVO::getStock, Integer::sum));
         // 若是 spu 已有状态则不处理
         if (spu.getStatus() == null) {
-            spu.setStatus(ProductSpuStatusEnum.ENABLE.getStatus()); // 默认状态为上架
+//            spu.setStatus(ProductSpuStatusEnum.ENABLE.getStatus()); // 默认状态为上架
             spu.setSalesCount(0); // 默认商品销量
             spu.setBrowseCount(0); // 默认商品浏览量
         }
@@ -164,6 +165,8 @@ public class SpuApplyServiceImpl implements SpuApplyService {
 
         // 更新 SPU
         SpuApplyDO updateObj = BeanUtils.toBean(updateReqVO, SpuApplyDO.class);
+        SpuApplyDO spuApplyDO = spuApplyMapper.selectById(updateReqVO.getId());
+        updateObj.setStatus(spuApplyDO.getStatus());
         initSpuFromSkus(updateObj, skuSaveReqList);
 
         //最大推广费, 单位: 分  add by Ben
@@ -276,6 +279,9 @@ public class SpuApplyServiceImpl implements SpuApplyService {
         validateSpuApplyExists(id);
         // 删除
         spuApplyMapper.deleteById(id);
+
+        ProductSpuDO spu = spuService.getSpuByApplyId(id);
+        spuService.deleteSpu(spu.getId());
     }
 
     private void validateSpuApplyExists(Long id) {
@@ -330,6 +336,20 @@ public class SpuApplyServiceImpl implements SpuApplyService {
 
     @Override
     public void updateSpuStatus(ProductSpuUpdateStatusReqVO updateReqVO) {
+
+        // 商户不允许回收商品
+        if(updateReqVO.getStatus().equals(ProductSpuStatusEnum.RECYCLE.getStatus())){
+            ErrorCode ERROR = new ErrorCode(1_008_005_001, "商户不允许回收商品");
+            throw exception(ERROR);
+        }
+
+        // 如果商户的商品在回收站中,则商品不允许上下架
+        SpuApplyDO spuApplyDO = spuApplyMapper.selectById(updateReqVO.getId());
+        if(spuApplyDO.getStatus().equals(ProductSpuStatusEnum.RECYCLE.getStatus())){
+            ErrorCode SPU_SAVE_FAIL_CATEGORY_LEVEL_ERROR = new ErrorCode(1_008_005_001, "商品在回收站中不允许上下架");
+            throw exception(SPU_SAVE_FAIL_CATEGORY_LEVEL_ERROR);
+        }
+
         // 校验存在
         validateSpuApplyExists(updateReqVO.getId());
         // TODO 非繁人:【可选】参与活动中的商品,不允许下架???