dev798
wxy 2024-03-31 14:22:51 +08:00
parent a07b6385e9
commit 8dc71ff9dc
4 changed files with 95 additions and 4 deletions

View File

@ -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<String, Integer> attributes;
}

View File

@ -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<ProductSku> productSkuList);
void insertProductSkuAttr(List<ProductSkuAttr> productSkuAttrs);
}

View File

@ -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<ProductSku> productSkuList = productReq.getProductSkus();
int productId = productReq.getProduct().getId();
// 设置商品ID
productSkuList.forEach(productSku -> productSku.setProductId(productId));
// 批量添加 productSku
productSkuMapper.insertProductSku(productSkuList);
// 添加 skuAttr
List<ProductSkuAttr> productSkuAttrs = new ArrayList<>();
productSkuList.forEach(productSku -> {
// 获取 sku 的属性值
Map<String, Integer> 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) {

View File

@ -8,4 +8,42 @@
<!-- 添加其他操作方法如插入、更新、删除等 -->
<insert id="insertProductSku">
insert t_product_sku (id,sale_price,promotion_price,stock,stock_alert
,product_id,bg_img,create_time,create_by)
values
<foreach collection="productSkus" item="productSku" separator=",">
(
#{productSku.id},
#{productSku.salePrice},
#{productSku.promotionPrice},
#{productSku.stock},
#{productSku.stockAlert},
#{productSku.productId},
#{productSku.bgImg},
#{productSku.createTime},
#{productSku.createBy}
)
</foreach>
</insert>
<insert id="insertProductSkuAttr">
INSERT INTO `cargo`.`t_product_sku_attr` (
`sku_id`, `attr_id`, `attr_value_id`, `attr_value`, `flag`, `create_time`, `create_by`
) VALUES
<foreach collection="productSkuAttrs" separator="," item="productSkuAttr">
(
#{productSkuAttr.skuId},
#{productSkuAttr.attrId},
#{productSkuAttr.attrValueId},
#{productSkuAttr.attrValue},
#{productSkuAttr.flag},
now(),
#{productSkuAttr.createBy}
)
</foreach>
</insert>
</mapper>