diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/ProductController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/ProductController.java index 3db6ad3..2017a06 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/ProductController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/ProductController.java @@ -8,6 +8,7 @@ import com.atguigu.spzx.model.entity.product.Product; import com.atguigu.spzx.model.vo.result.Result; import com.github.pagehelper.PageInfo; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -50,4 +51,11 @@ public class ProductController { Product product = productService.getById(id); return Result.success(product); } + + @Operation(summary = "保存修改数据接口", description = "保存修改数据接口") + @PutMapping("updateById") + public Result updateById(@Parameter(name = "product", description = "请求参数实体类", required = true) @RequestBody Product product) { + productService.updateById(product); + return Result.success(); + } } \ No newline at end of file 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 index 491c55e..f91d8fc 100644 --- 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 @@ -19,4 +19,11 @@ public interface ProductDetailsMapper { * @return ProductDetails */ ProductDetails selectByProductId(Long id); + + /** + * 修改商品的详情数据 + * + * @param productDetails ProductDetails + */ + void updateById(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 902a637..3f8c7a3 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 @@ -30,4 +30,11 @@ public interface ProductMapper { * @return 商品实体类 */ Product selectById(Long id); + + /** + * 修改商品基本数据 + * + * @param product 商品实体类 + */ + void updateById(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 index 117f073..c19116b 100644 --- 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 @@ -21,4 +21,11 @@ public interface ProductSkuMapper { * @return 商品实体类列表 */ List selectByProductId(Long id); + + /** + * 修改商品的sku数据 + * + * @param productSku 商品实体类 + */ + void updateById(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 094899b..d4786fe 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 @@ -29,4 +29,11 @@ public interface ProductService { * @return 商品实体类 */ Product getById(Long id); + + /** + * 保存修改数据接口 + * + * @param product 商品实体类 + */ + void updateById(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 7080186..33d2ac3 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 @@ -96,8 +96,30 @@ public class ProductServiceImpl implements ProductService { // 根据商品的id查询商品详情数据 ProductDetails productDetails = productDetailsMapper.selectByProductId(product.getId()); product.setDetailsImageUrls(productDetails.getImageUrls()); - + // 返回数据 return product; } + + /** + * 保存修改数据接口 + * + * @param product 商品实体类 + */ + @Override + public void updateById(Product product) { + // 修改商品基本数据 + productMapper.updateById(product); + + // 修改商品的sku数据 + List productSkuList = product.getProductSkuList(); + productSkuList.forEach(productSku -> { + productSkuMapper.updateById(productSku); + }); + + // 修改商品的详情数据 + ProductDetails productDetails = productDetailsMapper.selectByProductId(product.getId()); + productDetails.setImageUrls(product.getDetailsImageUrls()); + productDetailsMapper.updateById(productDetails); + } } diff --git a/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml b/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml index 64109ee..895c444 100644 --- a/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml +++ b/spzx-manager/src/main/resources/mapper/ProductDetailsMapper.xml @@ -12,6 +12,19 @@ values (#{id}, #{productId}, #{imageUrls}, now(), now(), 0) + + + update product_details set + + product_id = #{productId}, + + + image_urls = #{imageUrls}, + + update_time = now() + where + id = #{id} + select diff --git a/spzx-manager/src/main/resources/mapper/ProductSkuMapper.xml b/spzx-manager/src/main/resources/mapper/ProductSkuMapper.xml index 7b3c021..3466204 100644 --- a/spzx-manager/src/main/resources/mapper/ProductSkuMapper.xml +++ b/spzx-manager/src/main/resources/mapper/ProductSkuMapper.xml @@ -15,6 +15,50 @@ #{costPrice}, #{stockNum}, #{skuSpec}, #{weight}, #{volume}, #{status}, #{saleNum}, now(), now(), 0) + + + update product_sku set + + sku_code = #{skuCode}, + + + sku_name = #{skuName}, + + + product_id = #{productId}, + + + thumb_img = #{thumbImg}, + + + sale_price = #{salePrice}, + + + market_price = #{marketPrice}, + + + cost_price = #{costPrice}, + + + stock_num = #{stockNum}, + + + sku_spec = #{skuSpec}, + + + weight = #{weight}, + + + volume = #{volume}, + + + status = #{status}, + + update_time = now() + where + id = #{id} + +