From ac36b13ee1a3b74515f434e61457af67d0a497a7 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 26 Mar 2024 16:11:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E-=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86):=20=E4=BF=9D=E5=AD=98=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: bunny <1319900154@qq.com> --- .../manger/mapper/ProductDetailsMapper.java | 14 ++++ .../spzx/manger/mapper/ProductMapper.java | 7 ++ .../spzx/manger/mapper/ProductSkuMapper.java | 14 ++++ .../spzx/manger/service/ProductService.java | 5 ++ .../service/impl/ProductServiceImpl.java | 47 +++++++++++- .../resources/mapper/ProductDetailsMapper.xml | 9 +++ .../main/resources/mapper/ProductMapper.xml | 8 ++ .../resources/mapper/ProductSkuMapper.xml | 13 ++++ .../spzx/model/entity/product/Product.java | 74 +++++++++---------- .../spzx/model/entity/product/ProductSku.java | 55 +++++++------- 10 files changed, 179 insertions(+), 67 deletions(-) create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductDetailsMapper.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductSkuMapper.java create mode 100644 spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml create mode 100644 spzx-manager/src/main/resources/mapper/ProductSkuMapper.xml diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductDetailsMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductDetailsMapper.java new file mode 100644 index 0000000..4616521 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductDetailsMapper.java @@ -0,0 +1,14 @@ +package com.atguigu.spzx.manger.mapper; + +import com.atguigu.spzx.model.entity.product.ProductDetails; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ProductDetailsMapper { + /** + * 保存数据 + * + * @param productDetails 商品实体类 + */ + void save(ProductDetails productDetails); +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductMapper.java index a4ecbbd..77f9eb5 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductMapper.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductMapper.java @@ -15,4 +15,11 @@ public interface ProductMapper { * @return 查询结果 */ List findByPage(ProductDto dto); + + /** + * 保存商品数据 + * + * @param product 商品实体类 + */ + void save(Product product); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductSkuMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductSkuMapper.java new file mode 100644 index 0000000..f8c8880 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/ProductSkuMapper.java @@ -0,0 +1,14 @@ +package com.atguigu.spzx.manger.mapper; + +import com.atguigu.spzx.model.entity.product.ProductSku; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ProductSkuMapper { + /** + * 保存数据 + * + * @param productSku 商品实体类 + */ + void save(ProductSku productSku); +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ProductService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ProductService.java index b10b5d4..81e7c83 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ProductService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ProductService.java @@ -15,5 +15,10 @@ public interface ProductService { */ PageInfo findByPage(Integer page, Integer limit, ProductDto dto); + /** + * 保存商品数据接口 + * + * @param product 商品实体类 + */ void save(Product product); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ProductServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ProductServiceImpl.java index 71aefb2..d941dd0 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ProductServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ProductServiceImpl.java @@ -1,14 +1,19 @@ package com.atguigu.spzx.manger.service.impl; +import com.atguigu.spzx.manger.mapper.ProductDetailsMapper; import com.atguigu.spzx.manger.mapper.ProductMapper; +import com.atguigu.spzx.manger.mapper.ProductSkuMapper; import com.atguigu.spzx.manger.service.ProductService; import com.atguigu.spzx.model.dto.product.ProductDto; import com.atguigu.spzx.model.entity.product.Product; +import com.atguigu.spzx.model.entity.product.ProductDetails; +import com.atguigu.spzx.model.entity.product.ProductSku; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -16,13 +21,17 @@ import java.util.List; public class ProductServiceImpl implements ProductService { @Autowired private ProductMapper productMapper; + @Autowired + private ProductDetailsMapper productDetailsMapper; + @Autowired + private ProductSkuMapper productSkuMapper; /** * 列表查询 * * @param page 当前也 * @param limit 每页限制 - * @param dto + * @param dto 商品实体类 * @return 分页结果 */ @Override @@ -33,4 +42,40 @@ public class ProductServiceImpl implements ProductService { startPage.close(); return new PageInfo<>(productList); } + + /** + * 保存商品数据接口 + * + * @param product 商品实体类 + */ + @Transactional + @Override + public void save(Product product) { + // 保存商品数据 + product.setStatus(0); // 设置上架状态为0 + product.setAuditStatus(0); // 设置审核状态为0 + productMapper.save(product); + + // 保存商品sku数据 + List productSkuList = product.getProductSkuList(); + for (int i = 0, size = productSkuList.size(); i < size; i++) { + + // 获取ProductSku对象 + ProductSku productSku = productSkuList.get(i); + productSku.setSkuCode(product.getId() + "_" + i); // 构建skuCode + + productSku.setProductId(product.getId()); // 设置商品id + productSku.setSkuName(product.getName() + productSku.getSkuSpec()); + productSku.setSaleNum(0); // 设置销量 + productSku.setStatus(0); + productSkuMapper.save(productSku); // 保存数据 + + } + + // 保存商品详情数据 + ProductDetails productDetails = new ProductDetails(); + productDetails.setProductId(product.getId()); + productDetails.setImageUrls(product.getDetailsImageUrls()); + productDetailsMapper.save(productDetails); + } } diff --git a/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml b/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml new file mode 100644 index 0000000..2156680 --- /dev/null +++ b/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml @@ -0,0 +1,9 @@ + + + + + + + insert into product_details (id, product_id, image_urls, create_time, update_time, is_deleted) + values (#{id}, #{productId}, #{imageUrls}, now(), now(), 0) + diff --git a/spzx-manager/src/main/resources/mapper/ProductMapper.xml b/spzx-manager/src/main/resources/mapper/ProductMapper.xml index 970f4e7..05d776a 100644 --- a/spzx-manager/src/main/resources/mapper/ProductMapper.xml +++ b/spzx-manager/src/main/resources/mapper/ProductMapper.xml @@ -6,6 +6,14 @@ id,name,brand_id,category1_id,category2_id,category3_id,unit_name,slider_urls,spec_value,status,audit_status,audit_message,create_time,update_time,is_deleted + + + insert into product (id, name, brand_id, category1_id, category2_id, category3_id, unit_name, slider_urls, + spec_value, status, audit_status, audit_message, create_time, update_time, is_deleted) + values (#{id}, #{name}, #{brandId}, #{category1Id}, #{category2Id}, #{category3Id}, #{unitName}, #{sliderUrls}, + #{specValue}, #{status}, #{auditStatus}, #{auditMessage}, now(), now(), 0) + +