|  | @@ -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 非繁人:【可选】参与活动中的商品,不允许下架???
 |