From 8dc71ff9dc82721c1839ecff73a3f53bf29f85ee Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 31 Mar 2024 14:22:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/product/domain/DTO/ProductSku.java | 6 +++ .../muyu/product/mapper/ProductSkuMapper.java | 7 +++ .../service/impl/ProductServiceImpl.java | 48 +++++++++++++++++-- .../mapper/product/ProductSkuMapper.xml | 38 +++++++++++++++ 4 files changed, 95 insertions(+), 4 deletions(-) diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductSku.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductSku.java index 3ef70fe..6d60524 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductSku.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductSku.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigInteger; +import java.util.Map; /** * @Author: wangxinyuan @@ -35,4 +36,9 @@ public class ProductSku extends BaseEntity { @ApiModelProperty(value = "SKU背景图地址") private String bgImg; + + private Map attributes; + + + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java index 4529819..084d3c4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java @@ -1,11 +1,18 @@ package com.muyu.product.mapper; +import com.muyu.product.domain.DTO.ProductSku; +import com.muyu.product.domain.DTO.ProductSkuAttr; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @Author: wangxinyuan * @Date: 2024/3/29 17:29 */ @Mapper public interface ProductSkuMapper { + void insertProductSku(List productSkuList); + + void insertProductSkuAttr(List productSkuAttrs); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java index 7b58593..5dfcfa8 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java @@ -1,11 +1,15 @@ package com.muyu.product.service.impl; +import com.alibaba.fastjson.JSONObject; // 导入 FastJSON 的 JSONObject 类 +import com.github.pagehelper.PageHelper; // 导入 PageHelper 类 +import com.github.pagehelper.PageInfo; // 导入 PageInfo 类 +import com.muyu.product.domain.DTO.ProductSkuAttr; // 导入 ProductSkuAttr 类 + -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.muyu.product.domain.DTO.*; import com.muyu.product.domain.DTO.Number; import com.muyu.product.domain.Resp.ProductResp; import com.muyu.product.domain.req.ProductReq; +import com.muyu.product.domain.req.ProductSkuNew; import com.muyu.product.domain.req.QueryProductReq; import com.muyu.product.mapper.ProductMapper; import com.muyu.product.mapper.ProductSkuMapper; @@ -17,8 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.management.Query; -import java.util.List; + +import java.util.*; /** * @Author: wangxinyuan @@ -64,6 +68,42 @@ public class ProductServiceImpl implements ProductService { insertProductPromotion(productReq); + insertProductSku(productReq); + + + } + + private void insertProductSku(ProductReq productReq) { + List productSkuList = productReq.getProductSkus(); + int productId = productReq.getProduct().getId(); + + // 设置商品ID + productSkuList.forEach(productSku -> productSku.setProductId(productId)); + + // 批量添加 productSku + productSkuMapper.insertProductSku(productSkuList); + + // 添加 skuAttr + List productSkuAttrs = new ArrayList<>(); + productSkuList.forEach(productSku -> { + // 获取 sku 的属性值 + Map attributes = productSku.getAttributes(); + + // 构造 ProductSkuAttr 对象 + attributes.forEach((key, value) -> { + ProductSkuAttr productSkuAttr = new ProductSkuAttr(); + productSkuAttr.setSkuId(productSku.getId()); + productSkuAttr.setAttrId(Integer.valueOf(key)); + productSkuAttr.setAttrValueId(value); + productSkuAttr.setFlag(Integer.valueOf(Number.zero.getValue())); + productSkuAttrs.add(productSkuAttr); + }); + }); + + log.info("productSkuAttrs 中的数据为:{}", JSONObject.toJSONString(productSkuAttrs)); + + // 批量添加 productSkuAttr + productSkuMapper.insertProductSkuAttr(productSkuAttrs); } private void insertProductPromotion(ProductReq productReq) { diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml index f10ab56..b267e8c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml @@ -8,4 +8,42 @@ + + + insert t_product_sku (id,sale_price,promotion_price,stock,stock_alert + ,product_id,bg_img,create_time,create_by) + values + + ( + #{productSku.id}, + #{productSku.salePrice}, + #{productSku.promotionPrice}, + #{productSku.stock}, + #{productSku.stockAlert}, + #{productSku.productId}, + #{productSku.bgImg}, + #{productSku.createTime}, + #{productSku.createBy} + ) + + + + + + INSERT INTO `cargo`.`t_product_sku_attr` ( + `sku_id`, `attr_id`, `attr_value_id`, `attr_value`, `flag`, `create_time`, `create_by` + ) VALUES + + ( + #{productSkuAttr.skuId}, + #{productSkuAttr.attrId}, + #{productSkuAttr.attrValueId}, + #{productSkuAttr.attrValue}, + #{productSkuAttr.flag}, + now(), + #{productSkuAttr.createBy} + ) + + +