From 02fe3d34af44fe2c3f64e312459e7836cf12b6f5 Mon Sep 17 00:00:00 2001 From: wxy <14293288+zysysys@user.noreply.gitee.com> Date: Mon, 13 May 2024 20:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E4=BF=A1=E6=81=AF=E5=9B=9E?= =?UTF-8?q?=E6=98=BE--=E7=AC=AC=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/constant/ProductConstant.java | 18 ++++ .../nuyu/product/domain/MallProductInfo.java | 18 ++++ .../controller/MallProductInfoController.java | 4 +- .../product/mapper/MallProductInfoMapper.java | 4 + .../Impl/MallProductInfoServiceImpl.java | 95 +++++++++++++------ .../service/MallProductInfoService.java | 3 +- .../mapper/product/MallProductInfoMapper.xml | 46 +++++++++ 7 files changed, 156 insertions(+), 32 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/constant/ProductConstant.java diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/constant/ProductConstant.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/constant/ProductConstant.java new file mode 100644 index 0000000..e9b9647 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/constant/ProductConstant.java @@ -0,0 +1,18 @@ +package com.nuyu.product.constant; + +/** + * @Author: wangxinyuan + * @Date: 2024/5/13 下午3:07 + */ +public interface ProductConstant { + + public static final String CACHE_PREFIX = "muyu:product:"; + + public static final int TTL = 1000 *60 *60 *24 *14 ; + + public static final String STEP_ONE ="0"; + + public static final String STEP_TWO ="1"; + + public static final String STEP_THREE ="2"; +} diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/domain/MallProductInfo.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/domain/MallProductInfo.java index 9ce7610..ab4cfc1 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/domain/MallProductInfo.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/nuyu/product/domain/MallProductInfo.java @@ -9,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.web.domain.BaseEntity; +import javax.validation.constraints.NotNull; import java.io.Serial; /** @@ -28,6 +29,7 @@ public class MallProductInfo extends BaseEntity /** ID */ private Long id; + @NotNull(message = "product is Not Null") /** 商品名称 */ @Excel(name = "商品名称") @@ -98,6 +100,22 @@ public class MallProductInfo extends BaseEntity this.id = id; } + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + public Long getId() { return id; diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/MallProductInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/MallProductInfoController.java index 7f10556..bb30eb7 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/MallProductInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/MallProductInfoController.java @@ -71,7 +71,7 @@ public class MallProductInfoController extends BaseController @GetMapping(value = "/{id}") public Result getInfo(@PathVariable("id") Long id) { - return success(mallProductInfoService.selectMallProductInfoById(id)); + return success(mallProductInfoService.selectMallProductInfoAndSkuInfoById(id)); } /** @@ -91,7 +91,7 @@ public class MallProductInfoController extends BaseController @RequiresPermissions("product:info:edit") @Log(title = "商品信息", businessType = BusinessType.UPDATE) @PutMapping - public Result edit(@RequestBody MallProductInfo mallProductInfo) + public Result edit(@RequestBody MallProductInfoForm mallProductInfo) { return toAjax(mallProductInfoService.updateMallProductInfo(mallProductInfo)); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/MallProductInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/MallProductInfoMapper.java index 1b3c94b..779067b 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/MallProductInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/MallProductInfoMapper.java @@ -1,7 +1,9 @@ package com.muyu.product.mapper; import com.nuyu.product.domain.MallProductInfo; +import com.nuyu.product.req.MallProductInfoForm; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -64,4 +66,6 @@ public interface MallProductInfoMapper public int deleteMallProductInfoByIds(Long[] ids); List list(MallProductInfo mallProductInfo); + + MallProductInfoForm selectMallProductInfoAndSkuInfoById(@Param("id") Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/Impl/MallProductInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/Impl/MallProductInfoServiceImpl.java index eadd7ec..8422d7e 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/Impl/MallProductInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/Impl/MallProductInfoServiceImpl.java @@ -10,10 +10,12 @@ import com.muyu.common.core.utils.DateUtils; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.product.service.MallProductInfoService; import com.muyu.product.service.MallProductSkuInfoService; +import com.nuyu.product.constant.ProductConstant; import com.nuyu.product.domain.MallProductInfo; import com.nuyu.product.domain.MallProductSkuInfo; import com.nuyu.product.domain.MallProductTypeInfo; import com.nuyu.product.req.MallProductInfoForm; +import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; @@ -29,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; * @author muyu * @date 2024-05-06 */ +@Slf4j @Service public class MallProductInfoServiceImpl implements MallProductInfoService { @@ -81,35 +84,9 @@ public class MallProductInfoServiceImpl implements MallProductInfoService // 设置产品创建时间和更新时间 mallProductInfo.setCreateTime(DateUtils.getNowDate()); mallProductInfo.setUpdateTime(DateUtils.getNowDate()); - // 插入商城产品基本信息 int num = mallProductInfoMapper.insertMallProductInfo(mallProductInfo); - // 获取产品SKU信息列表 - ListskuInfoList=mallProductInfo.getSkuInfoList(); - // 如果产品信息插入成功且SKU信息不为空,则进行SKU信息的插入 - if(num > 0 && CollectionUtils.isNotEmpty(skuInfoList)){ - // 准备插入的SKU信息列表 - Long productInfoId = mallProductInfo.getId(); - ListmallProductSkuInfoList=new ArrayList<>(); - Date createTime = new Date(); - // 先删除该产品之前的SKU信息,准备插入新的SKU信息 - mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId); - - // 遍历SKU信息列表,复制属性并设置SKU信息的关联产品ID及其他默认值 - skuInfoList.stream().forEach(item ->{ - MallProductSkuInfo mallProductSkuInfo = new MallProductSkuInfo(); - BeanUtils.copyProperties(item,mallProductSkuInfo); - mallProductSkuInfo.setProductId(productInfoId); - mallProductSkuInfo.setImage("1"); - mallProductSkuInfo.setUpdateBy(String.valueOf(userId)); - mallProductSkuInfo.setCreateBy(String.valueOf(userId)); - mallProductSkuInfo.setCreateTime(createTime); - mallProductSkuInfo.setUpdateTime(createTime); - mallProductSkuInfoList.add(mallProductSkuInfo); - }); - // 批量插入处理后的SKU信息 - mallProductSkuInfoService.insertMallProductSkuInfoList(mallProductSkuInfoList); - } + packageDataSeveOrUpdate(mallProductInfo,num,userId); return num; } @@ -119,13 +96,68 @@ public class MallProductInfoServiceImpl implements MallProductInfoService * @param mallProductInfo 商品信息 * @return 结果 */ + @Transactional @Override - public int updateMallProductInfo(MallProductInfo mallProductInfo) + public int updateMallProductInfo(MallProductInfoForm mallProductInfo) { + String step = mallProductInfo.getStep(); + log.info("参数{}",step); + switch (step) { + case ProductConstant.STEP_ONE: + Long productInfoId = mallProductInfo.getId(); + mallProductInfo.setSkuInfoList(null); + mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId); + break; + case ProductConstant.STEP_THREE: + mallProductInfo.setProductDesc(""); + break; + default: + break; + } + Long userid = SecurityUtils.getLoginUser().getUserid(); + mallProductInfo.setCreateBy(String.valueOf(userid)); + Long loginUserId = SecurityUtils.getLoginUser().getUserid(); + mallProductInfo.setUpdateBy(String.valueOf(loginUserId)); + // 设置产品创建时间和更新时间 + mallProductInfo.setCreateTime(DateUtils.getNowDate()); mallProductInfo.setUpdateTime(DateUtils.getNowDate()); - return mallProductInfoMapper.updateMallProductInfo(mallProductInfo); + mallProductInfo.setUpdateTime(DateUtils.getNowDate()); + int num = mallProductInfoMapper.updateMallProductInfo(mallProductInfo); + packageDataSeveOrUpdate(mallProductInfo,num,userid); + return num; } + private void packageDataSeveOrUpdate(MallProductInfoForm mallProductInfo, int num, Long userid) { + ListskuInfoList=mallProductInfo.getSkuInfoList(); + // 如果产品信息插入成功且SKU信息不为空,则进行SKU信息的插入 + if(num > 0 && CollectionUtils.isNotEmpty(skuInfoList)){ + // 准备插入的SKU信息列表 + Long productInfoId = mallProductInfo.getId(); + ListmallProductSkuInfoList=new ArrayList<>(); + Date createTime = new Date(); + // 先删除该产品之前的SKU信息,准备插入新的SKU信息 + mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId); + + // 遍历SKU信息列表,复制属性并设置SKU信息的关联产品ID及其他默认值 + skuInfoList.stream().forEach(item ->{ + MallProductSkuInfo mallProductSkuInfo = new MallProductSkuInfo(); + BeanUtils.copyProperties(item,mallProductSkuInfo); + mallProductSkuInfo.setProductId(productInfoId); + mallProductSkuInfo.setImage("1"); + mallProductSkuInfo.setUpdateBy(String.valueOf(userid)); + mallProductSkuInfo.setCreateBy(String.valueOf(userid)); + mallProductSkuInfo.setCreateTime(createTime); + mallProductSkuInfo.setUpdateTime(createTime); + mallProductSkuInfoList.add(mallProductSkuInfo); + }); + // 批量插入处理后的SKU信息 + mallProductSkuInfoService.insertMallProductSkuInfoList(mallProductSkuInfoList); + } + + } + + + /** * 批量删除商品信息 * @@ -157,4 +189,9 @@ public class MallProductInfoServiceImpl implements MallProductInfoService PageInfo pageInfo = new PageInfo<>(products); return pageInfo; } + + @Override + public MallProductInfoForm selectMallProductInfoAndSkuInfoById(Long id) { + return mallProductInfoMapper.selectMallProductInfoAndSkuInfoById(id); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/MallProductInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/MallProductInfoService.java index f2ce46f..8398ec4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/MallProductInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/MallProductInfoService.java @@ -45,7 +45,7 @@ public interface MallProductInfoService * @param mallProductInfo 商品信息 * @return 结果 */ - public int updateMallProductInfo(MallProductInfo mallProductInfo); + public int updateMallProductInfo(MallProductInfoForm mallProductInfo); /** * 批量删除商品信息 @@ -66,4 +66,5 @@ public interface MallProductInfoService //列表 PageInfo list(MallProductInfo mallProductRuleAttrInfo); + MallProductInfoForm selectMallProductInfoAndSkuInfoById(Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml index 0300743..bc7d720 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml @@ -52,6 +52,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into mall_product_info