zhangwei 2 тижнів тому
батько
коміт
0551a61fd6

+ 0 - 29
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopLanguage.java

@@ -59,33 +59,4 @@ public class ShopLanguage {
     @TableField(value = "web_backend_status")
     private Integer webBackendStatus;
 
-    /**
-     * 创建时间
-     */
-    @TableField(value = "create_time")
-    private Date createTime;
-
-    /**
-     * 创建人
-     */
-    @TableField(value = "create_user_id")
-    private String createUserId;
-
-    /**
-     * 更新时间
-     */
-    @TableField(value = "update_time")
-    private Date updateTime;
-
-    /**
-     * 更新人id
-     */
-    @TableField(value = "update_user_id")
-    private String updateUserId;
-
-    /**
-     * 删除标记 0正常 1删除
-     */
-    @TableField(value = "delete_flag")
-    private Integer deleteFlag;
 }

+ 2 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopProductSpec.java

@@ -41,12 +41,12 @@ public class ShopProductSpec extends BaseEntity {
      *  规格Id
      */
     @TableField(value = "spec_id")
-    private String specId;
+    private Long specId;
 
     /**
      * 排序
      */
     @TableField(value = "sort_order")
-    private String sortOrder;
+    private Long sortOrder;
 
 }

+ 6 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopSkuSpecValue.java

@@ -37,5 +37,11 @@ public class ShopSkuSpecValue extends BaseEntity {
     @TableField(value = "spec_value_id")
     private Long specValueId;
 
+    /**
+     * 规格值id
+     */
+    @TableField(value = "spec_id")
+    private Long specId;
+
 
 }

+ 3 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/entity/ShopSpecValue.java

@@ -26,10 +26,10 @@ public class ShopSpecValue extends BaseEntity {
     private Long id;
 
     /**
-     * 规格ID
+     * 商品规格关联ID
      */
-    @TableField(value = "spec_id")
-    private Long specId;
+    @TableField(value = "product_spec_id")
+    private Long productSpecId;
 
     /**
      * 规格值

+ 21 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSpecServiceImpl.java

@@ -12,6 +12,7 @@ import edu.travel.commodity.mapper.ShopProductSpecMapper;
 import edu.travel.commodity.service.*;
 import edu.travel.commodity.vo.ProductSkuVo;
 import edu.travel.commodity.vo.ProductSpecVo;
+import edu.travel.commodity.vo.SpecSortVo;
 import edu.travel.commodity.vo.SpecValueVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,11 +32,14 @@ public class ShopProductSpecServiceImpl extends ServiceImpl<ShopProductSpecMappe
     private ShopSkuSpecValueService shopSkuSpecValueService;
     @Autowired
     private ShopSpecService shopSpecService;
+    @Autowired
+    private ShopProductSpecService shopProductSpecService;
 
     @Override
     public ProductSpecVo getShopSpec(ProductSpecDto param) {
         LambdaQueryChainWrapper<ShopProduct> query = shopProductService.lambdaQuery().eq(ShopProduct::getId, param.getProductId())
                 .eq(ShopProduct::getCountryId, param.getCountryId());
+        //商品信息
         ShopProduct one = shopProductService.getOne(query);
         if(ObjectUtil.isEmpty(one)){
             return null;
@@ -48,21 +52,34 @@ public class ShopProductSpecServiceImpl extends ServiceImpl<ShopProductSpecMappe
             return null;
         }
         ProductSpecVo bean = BeanUtil.toBean(one, ProductSpecVo.class);
+        //SKU
         Set<Long> skus = list1.stream().map(ShopProductSku::getSkuId).collect(Collectors.toSet());
         //规格和规格对应的值
         List<ShopSkuSpecValue> skuValues = shopSkuSpecValueService.lambdaQuery().eq(ShopSkuSpecValue::getSkuId, skus).list();
         //规格值ID
         Set<Long> collect = skuValues.stream().map(ShopSkuSpecValue::getSpecValueId).collect(Collectors.toSet());
-        List<ShopSpecValue> list2 = shopSpecValueService.list(Wrappers.<ShopSpecValue>lambdaQuery().in(ShopSpecValue::getId, collect));
+        List<ShopSpecValue> list2 = shopSpecValueService.list(Wrappers.<ShopSpecValue>lambdaQuery()
+                .orderByAsc(ShopSpecValue::getSortOrder)
+                .in(ShopSpecValue::getId, collect));
 
         //规格ID
-        Set<Long> collect3 = list2.stream().map(ShopSpecValue::getSpecId).collect(Collectors.toSet());
+        List<ShopProductSpec> list = shopProductSpecService.lambdaQuery().eq(ShopProductSpec::getProductId, one.getId())
+                .orderByAsc(ShopProductSpec::getSortOrder).list();
+        Set<Long> collect3 = list.stream().map(ShopProductSpec::getSpecId).collect(Collectors.toSet());
         Map<String, ShopSpec> specs = new HashMap<>();
-        List<ShopSpec> list = shopSpecService.lambdaQuery().in(ShopSpec::getId, collect3).list();
+        List<ShopSpec> list11 = shopSpecService.lambdaQuery().in(ShopSpec::getId, collect3).list();
 
-        for (ShopSpec spec : list) {
+        for (ShopSpec spec : list11) {
             specs.put(spec.getId().toString(), spec);
         }
+        List<SpecSortVo> specSortVoList = new ArrayList<>();
+        for (ShopProductSpec shopProductSpec : list) {
+            SpecSortVo specSortVo = new SpecSortVo();
+            specSortVo.setId(shopProductSpec.getSpecId().toString());
+            specSortVo.setSpecName(shopProductSpec.getSpecName());
+        }
+
+        bean.setSpecSortVoList(specSortVoList);
 
         Set<Long> skuIds = skuValues.stream().map(ShopSkuSpecValue::getSkuId).collect(Collectors.toSet());
         //SKU -> ShopSpecValue

+ 3 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/ProductSpecVo.java

@@ -9,7 +9,6 @@ import java.util.List;
 
 @Data
 public class ProductSpecVo {
-
     /**
      * 商品ID
      */
@@ -32,6 +31,9 @@ public class ProductSpecVo {
     /**默认价格*/
     private BigDecimal defaultPrice;
 
+    /**商品规格值*/
+    private List<SpecSortVo> specSortVoList;
+
     /**商品对应的规格值*/
     private List<ProductSkuVo> skuList;
 }

+ 16 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecSortVo.java

@@ -0,0 +1,16 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SpecSortVo {
+    /**规格ID*/
+    private String id;
+
+    /**规格ID*/
+    private String specName;
+
+    private List<SpecValueSortVo> list;
+}

+ 13 - 0
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/vo/SpecValueSortVo.java

@@ -0,0 +1,13 @@
+package edu.travel.commodity.vo;
+
+import lombok.Data;
+
+@Data
+public class SpecValueSortVo {
+    /**商品规格和规格值关联ID*/
+    private String id;
+
+    /**规制值*/
+    private String specValue;
+
+}

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopSkuSpecValueMapper.xml

@@ -13,10 +13,11 @@
     <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
     <result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
     <result column="delete_flag" jdbcType="INTEGER" property="deleteFlag" />
+    <result column="spec_id" jdbcType="INTEGER" property="specId" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, sku_id, spec_value_id, project, create_time, create_user_id, update_time, update_user_id, 
-    delete_flag
+    delete_flag,spec_id
   </sql>
 </mapper>

+ 2 - 2
edu-travel-service/edu-travel-service-commodity/src/main/resources/mapper/ShopSpecValueMapper.xml

@@ -5,7 +5,7 @@
     <!--@mbg.generated-->
     <!--@Table shop_spec_value-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="spec_id" jdbcType="BIGINT" property="specId" />
+    <result column="product_spec_id" jdbcType="BIGINT" property="productSpecId" />
     <result column="spec_value" jdbcType="VARCHAR" property="specValue" />
     <result column="project" jdbcType="VARCHAR" property="project" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@@ -18,7 +18,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, spec_id, spec_value, project, create_time, create_user_id, update_time, update_user_id, 
+    id, product_spec_id, spec_value, project, create_time, create_user_id, update_time, update_user_id,
     delete_flag,sort_order,product_id
   </sql>
 </mapper>