Browse Source

修改问题

jinshihui 2 days ago
parent
commit
df7f93175b

+ 4 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/ProductSpecController.java

@@ -1,5 +1,6 @@
 package com.ylx.web.controller.massage;
 
+import com.alibaba.fastjson.JSON;
 import com.ylx.common.core.controller.BaseController;
 import com.ylx.common.core.domain.R;
 import com.ylx.massage.domain.dto.ProductSpecSetupDTO;
@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.List;
+
 @Slf4j
 @Api(tags = {"商品规格管理"})
 @RestController
@@ -33,6 +35,7 @@ public class ProductSpecController extends BaseController {
     @ApiOperation("新增商品规格")
     public R setupSpec(@Valid @RequestBody ProductSpecSetupDTO dto) {
         try {
+            log.info("新增商品规格参数的值:{}", JSON.toJSONString(dto));
             productService.setupSpec(dto);
             return R.ok("新增规格成功");
         } catch (Exception e) {
@@ -45,7 +48,7 @@ public class ProductSpecController extends BaseController {
      * 获取商品规格组合(笛卡尔积)
      *
      * @param productId 商品ID
-     * @return R<List<SpecComboVO>> 规格组合列表
+     * @return R<List < SpecComboVO>> 规格组合列表
      */
     @GetMapping("spec/combinations")
     @ApiOperation("获取商品规格组合")

+ 1 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/dto/ProductSpecSetupDTO.java

@@ -22,6 +22,7 @@ public class ProductSpecSetupDTO {
     /**
      * 商品编号
      */
+    @NotNull(message = "商品编号不能为空")
     private String productNo;
 
     /**

+ 12 - 6
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/ProductServiceImpl.java

@@ -12,6 +12,7 @@ import com.ylx.massage.domain.vo.SpecComboVO;
 import com.ylx.massage.mapper.*;
 import com.ylx.massage.service.ProductService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -236,25 +237,30 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     }
 
     /**
-     * 设置商品规格
+     * 新增商品规格
+     *
+      @param dto 规格设置请求DTO
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void setupSpec(ProductSpecSetupDTO dto) {
+        if (StringUtils.isBlank(dto.getProductNo())) {
+            throw new RuntimeException("商品编号不能为空");
+        }
         // 保存新的规格
         if (!CollectionUtils.isEmpty(dto.getSpecList())) {
             AtomicInteger specIndex = new AtomicInteger(0);
             for (ProductSpecSetupDTO.SpecItemDTO specItem : dto.getSpecList()) {
-                // 保存规格名
-                ProductSpec spec = new ProductSpec();
-                spec.setProductNo(dto.getProductNo());
-                // 检查规格名是否存在,如果存在,则直接通过,不插入
+                // 根据商品编号检查规格名是否存在,如果存在,则直接通过,不插入
                 LambdaQueryWrapper<ProductSpec> specWrapper = new LambdaQueryWrapper<>();
-                specWrapper.eq(ProductSpec::getSpecName, specItem.getSpecName());
+                specWrapper.eq(ProductSpec::getProductNo, dto.getProductNo()).eq(ProductSpec::getSpecName, specItem.getSpecName());
                 ProductSpec existingSpec = productSpecMapper.selectOne(specWrapper);
                 if (existingSpec != null) {
                     continue;
                 }
+                // 保存规格名
+                ProductSpec spec = new ProductSpec();
+                spec.setProductNo(dto.getProductNo());
                 spec.setSpecName(specItem.getSpecName());
                 spec.setSort(specItem.getSort() != null ? specItem.getSort() : specIndex.get() + 1);
                 productSpecMapper.insert(spec);