From 08af9c4f8f368440ea8c9ab3bbecdbb325441659 Mon Sep 17 00:00:00 2001 From: huk Date: Mon, 22 Sep 2025 16:10:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(goods):=20=E5=95=86=E5=93=81=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=BF=AB=E7=85=A7=E6=9C=BA=E5=88=B6=E5=BC=95=E5=85=A5?= =?UTF-8?q?=20-=20=E6=96=B0=E5=A2=9E=E5=95=86=E5=93=81=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=BE=85=E5=AE=A1=E6=A0=B8=EF=BC=8C=E4=B8=8B=E6=9E=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=20-=20=E4=BB=85=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E5=95=86=E5=93=81=E5=8F=AF=E4=B8=8A=E6=9E=B6=20-=20?= =?UTF-8?q?=E6=AF=8F=E6=AC=A1=E4=B8=8A=E6=9E=B6=E5=95=86=E5=93=81=E5=9D=87?= =?UTF-8?q?=E4=BA=A7=E7=94=9F=E5=95=86=E5=93=81=E5=8F=8Asku=E7=9A=84?= =?UTF-8?q?=E5=BF=AB=E7=85=A7=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/business/ProductBusinessImpl.java | 52 +++++- .../soopin/goods/domain/entity/Product.java | 8 +- .../goods/domain/entity/ProductSnapshot.java | 163 ++++++++++++++++++ .../goods/domain/entity/SkuSnapshot.java | 82 +++++++++ .../soopin/goods/enums/ProductAuthFlag.java | 20 +++ .../goods/mapper/ProductSnapshotMapper.java | 9 + .../wzj/soopin/goods/mapper/SkuMapper.java | 13 +- .../goods/mapper/SkuSnapshotMapper.java | 9 + .../goods/service/ProductSnapshotService.java | 8 + .../wzj/soopin/goods/service/SkuService.java | 4 + .../goods/service/SkuSnapshotService.java | 12 ++ .../impl/ProductSnapshotServiceImpl.java | 13 ++ .../goods/service/impl/SkuServiceImpl.java | 10 ++ .../service/impl/SkuSnapshotServiceImpl.java | 17 ++ .../mapper/goods/ProductSnapshotMapper.xml | 5 + .../mapper/goods/SkuSnapshotMapper.xml | 5 + 16 files changed, 413 insertions(+), 17 deletions(-) create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductSnapshot.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/SkuSnapshot.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/enums/ProductAuthFlag.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductSnapshotMapper.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuSnapshotMapper.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductSnapshotService.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuSnapshotService.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductSnapshotServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuSnapshotServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductSnapshotMapper.xml create mode 100644 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/SkuSnapshotMapper.xml diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java index 1651e1508..a34f306c1 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java @@ -1,5 +1,7 @@ package com.wzj.soopin.goods.business; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,12 +10,19 @@ import com.wzj.soopin.goods.convert.SkuConvert; import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.bo.SkuBo; import com.wzj.soopin.goods.domain.entity.Product; +import com.wzj.soopin.goods.domain.entity.ProductSnapshot; import com.wzj.soopin.goods.domain.entity.Sku; +import com.wzj.soopin.goods.domain.entity.SkuSnapshot; import com.wzj.soopin.goods.domain.vo.ProductVO; +import com.wzj.soopin.goods.enums.ProductAuthFlag; import com.wzj.soopin.goods.service.ProductService; +import com.wzj.soopin.goods.service.ProductSnapshotService; import com.wzj.soopin.goods.service.SkuService; +import com.wzj.soopin.goods.service.SkuSnapshotService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.Constants; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.web.core.BusinessImpl; import org.springframework.stereotype.Service; @@ -31,6 +40,8 @@ public class ProductBusinessImpl extends BusinessImpl new ServiceException("商品信息不存在")); + Assert.isTrue(po.getPublishStatus().equals(Constants.PublishStatus.UNDERCARRIAGE) + && (po.getAuthFlag().equals(ProductAuthFlag.WAIT_AUDIT.getCode()) || po.getAuthFlag().equals(ProductAuthFlag.AUDIT_REJECT.getCode())) + , () -> new ServiceException("仅下架且未审核通过的商品可编辑")); + result = productService.updateById(product); + } // 新增则直接保存sku信息 if (bo.getId() == null) { List skus = bo.getSkuList().stream().map(skuBO -> { @@ -68,7 +91,7 @@ public class ProductBusinessImpl extends BusinessImpl skuList = bo.getSkuList(); @@ -117,7 +140,7 @@ public class ProductBusinessImpl extends BusinessImpl new ServiceException("上架中的商品不可审核")); productToUpdate.setAuthFlag(authFlag); productToUpdate.setReasons(reasons); productService.updateById(productToUpdate); @@ -142,14 +166,32 @@ public class ProductBusinessImpl extends BusinessImpl new ServiceException("商品未通过审核")); product.setPublishStatus(publishStatus); - productService.updateById(product); - return true; + // 发布上架的商品及sku,创建商品和sku快照 + if(Constants.PublishStatus.GROUNDING.equals(publishStatus)){ + List skuList = skuService.getByProductId(id); + ProductSnapshot productSnapshot = BeanUtil.copyProperties(product, ProductSnapshot.class, "id"); + productSnapshot.setProductId(product.getId()); + productSnapshotService.save(productSnapshot); + product.setProductSnapshotId(productSnapshot.getId()); + List skuSnapshotList = skuList.stream().map(sku -> { + SkuSnapshot skuSnapshot = BeanUtil.copyProperties(sku, SkuSnapshot.class, "id"); + skuSnapshot.setSkuId(sku.getId()); + skuSnapshot.setProductSnapshotId(productSnapshot.getId()); + return skuSnapshot; + }).toList(); + skuSnapshotService.insertBatch(skuSnapshotList); + }else{ + product.setAuthFlag(ProductAuthFlag.WAIT_AUDIT.getCode()); + } + return productService.updateById(product); } @Override diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java index af2b07733..e8ce4c48d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java @@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; import org.apache.ibatis.type.JdbcType; import org.dromara.common.excel.annotation.Excel; import org.dromara.common.mybatis.core.domain.BaseEntity; +import java.io.Serial; import java.math.BigDecimal; /** @@ -17,15 +19,20 @@ import java.math.BigDecimal; * * @author zcc */ +@EqualsAndHashCode(callSuper = true) @Schema(description = "商品信息对象") @Data @TableName("pms_product") public class Product extends BaseEntity { + @Serial private static final long serialVersionUID = 1L; @Schema(description = "ID") private Long id; + @Schema(description = "当前快照id") + private Long productSnapshotId; + @Schema(description = "BRAND_ID") @Excel(name = "BRAND_ID") private Long brandId; @@ -111,7 +118,6 @@ public class Product extends BaseEntity { private String reasons; @Schema(description = "删除标志(0代表存在,1代表删除)") - @Excel(name = "删除标志(0代表存在,1代表删除)") @TableLogic(value ="0", delval = "1") @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) private String delFlag; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductSnapshot.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductSnapshot.java new file mode 100644 index 000000000..499033cbe --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductSnapshot.java @@ -0,0 +1,163 @@ +package com.wzj.soopin.goods.domain.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.ibatis.type.JdbcType; + +import java.math.BigDecimal; + +/** + * 商品信息 + */ +@Schema(description = "商品信息") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wzj_soopin.pms_product_snapshot") +public class ProductSnapshot { + /** + * 主键id + */ + @TableId(value = "id") + @Schema(description = "主键id") + private Long id; + + /** + * 商品id + */ + @TableField(value = "product_id") + @Schema(description = "商品id") + private Long productId; + + /** + * 品牌id + */ + @TableField(value = "brand_id") + @Schema(description = "品牌id") + private Long brandId; + + /** + * 分类id + */ + @TableField(value = "category_id") + @Schema(description = "分类id") + private Long categoryId; + + /** + * 商品编码 + */ + @TableField(value = "out_product_id") + @Schema(description = "商品编码") + @Size(max = 64, message = "商品编码最大长度要小于 64") + private String outProductId; + + /** + * 商品名称 + */ + @TableField(value = "`name`") + @Schema(description = "商品名称") + @Size(max = 64, message = "商品名称最大长度要小于 64") + @NotBlank(message = "商品名称不能为空") + private String name; + + /** + * 主图 + */ + @TableField(value = "pic") + @Schema(description = "主图") + @Size(max = 255, message = "主图最大长度要小于 255") + private String pic; + + /** + * 画册图片,连产品图片限制为5张,以逗号分割 + */ + @TableField(value = "album_pics") + @Schema(description = "画册图片,连产品图片限制为5张,以逗号分割") + @Size(max = 1000, message = "画册图片,连产品图片限制为5张,以逗号分割最大长度要小于 1000") + private String albumPics; + + /** + * 排序 + */ + @TableField(value = "sort") + @Schema(description = "排序") + private Integer sort; + + /** + * 价格 + */ + @TableField(value = "price") + @Schema(description = "价格") + private BigDecimal price; + + /** + * 单位 + */ + @TableField(value = "unit") + @Schema(description = "单位") + @Size(max = 16, message = "单位最大长度要小于 16") + private String unit; + + /** + * 商品重量,默认为克 + */ + @TableField(value = "weight") + @Schema(description = "商品重量,默认为克") + private BigDecimal weight; + + /** + * 产品详情网页内容 + */ + @TableField(value = "detail_html") + @Schema(description = "产品详情网页内容") + private String detailHtml; + + /** + * 移动端网页详情 + */ + @TableField(value = "detail_mobile_html") + @Schema(description = "移动端网页详情") + private String detailMobileHtml; + + /** + * 品牌名称 + */ + @TableField(value = "brand_name") + @Schema(description = "品牌名称") + @Size(max = 255, message = "品牌名称最大长度要小于 255") + private String brandName; + + /** + * 商品分类名称 + */ + @TableField(value = "product_category_name") + @Schema(description = "商品分类名称") + @Size(max = 255, message = "商品分类名称最大长度要小于 255") + private String productCategoryName; + + /** + * 商品销售属性,json格式 + */ + @TableField(value = "product_attr") + @Schema(description = "商品销售属性,json格式") + @Size(max = 500, message = "商品销售属性,json格式最大长度要小于 500") + private String productAttr; + + /** + * 租户id + */ + @TableField(value = "tenant_id") + @Schema(description = "租户id") + @Size(max = 255, message = "租户id最大长度要小于 255") + private String tenantId; + + @Schema(description = "删除标志(0代表存在,1代表删除)") + @TableLogic(value ="0", delval = "1") + @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) + private String delFlag; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/SkuSnapshot.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/SkuSnapshot.java new file mode 100644 index 000000000..b2ff316f5 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/SkuSnapshot.java @@ -0,0 +1,82 @@ +package com.wzj.soopin.goods.domain.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.ibatis.type.JdbcType; + +import java.math.BigDecimal; + +/** + * sku信息 + */ +@Schema(description="sku信息") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wzj_soopin.pms_sku_snapshot") +public class SkuSnapshot { + + @TableId(value = "id") + private Long id; + + /** + * skuid + */ + @TableField(value = "sku_id") + @Schema(description="skuid") + private Long skuId; + + /** + * 商品快照id + */ + @TableField(value = "product_snapshot_id") + @Schema(description="商品快照id") + private Long productSnapshotId; + + /** + * sku编码 + */ + @TableField(value = "out_sku_id") + @Schema(description="sku编码") + @Size(max = 64,message = "sku编码最大长度要小于 64") + private String outSkuId; + + @TableField(value = "price") + @Schema(description="") + @NotNull(message = "不能为null") + private BigDecimal price; + + /** + * 展示图片 + */ + @TableField(value = "pic") + @Schema(description="展示图片") + @Size(max = 255,message = "展示图片最大长度要小于 255") + private String pic; + + /** + * 商品销售属性,json格式 + */ + @TableField(value = "sp_data") + @Schema(description="商品销售属性,json格式") + @Size(max = 500,message = "商品销售属性,json格式最大长度要小于 500") + private String spData; + + /** + * 租户id + */ + @TableField(value = "tenant_id") + @Schema(description="租户id") + @Size(max = 255,message = "租户id最大长度要小于 255") + private String tenantId; + + @Schema(description = "删除标志(0代表存在,1代表删除)") + @TableLogic(value ="0", delval = "1") + @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) + private String delFlag; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/enums/ProductAuthFlag.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/enums/ProductAuthFlag.java new file mode 100644 index 000000000..3cf6db4df --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/enums/ProductAuthFlag.java @@ -0,0 +1,20 @@ +package com.wzj.soopin.goods.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 商品审核状态 1.待审核;->2.审核通过;3->审核驳回 + * + */ +@Getter +@AllArgsConstructor +public enum ProductAuthFlag { + + WAIT_AUDIT(1, "待审核"), + AUDIT_PASS(2, "审核通过"), + AUDIT_REJECT(3, "审核驳回"); + + private final Integer code; + private final String message; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductSnapshotMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductSnapshotMapper.java new file mode 100644 index 000000000..e61d7d8cd --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductSnapshotMapper.java @@ -0,0 +1,9 @@ +package com.wzj.soopin.goods.mapper; + +import com.wzj.soopin.goods.domain.entity.ProductSnapshot; +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +@Mapper +public interface ProductSnapshotMapper extends BaseMapperPlus { +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java index f1fcbb68b..3db855fa8 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java @@ -1,17 +1,15 @@ package com.wzj.soopin.goods.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.goods.domain.bo.SkuBo; import com.wzj.soopin.goods.domain.entity.Sku; import com.wzj.soopin.goods.domain.vo.SkuVO; -import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import java.time.LocalDateTime; -import java.util.List; /** * sku信息Mapper接口 @@ -19,7 +17,7 @@ import java.util.List; * @author zcc */ @Mapper -public interface SkuMapper extends BaseMapper { +public interface SkuMapper extends BaseMapperPlus { int updateStockById(@Param("skuId")Long skuId, @Param("optDate")LocalDateTime optDate, @Param("quantity")Integer quantity); @@ -28,11 +26,4 @@ public interface SkuMapper extends BaseMapper { SkuVO selectSkuByid(@Param("id") Long id); - @Insert("") - void batchInsert(List skus); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuSnapshotMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuSnapshotMapper.java new file mode 100644 index 000000000..26ac8c59e --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuSnapshotMapper.java @@ -0,0 +1,9 @@ +package com.wzj.soopin.goods.mapper; + +import com.wzj.soopin.goods.domain.entity.SkuSnapshot; +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +@Mapper +public interface SkuSnapshotMapper extends BaseMapperPlus { +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductSnapshotService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductSnapshotService.java new file mode 100644 index 000000000..572bace81 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductSnapshotService.java @@ -0,0 +1,8 @@ +package com.wzj.soopin.goods.service; + +import com.wzj.soopin.goods.domain.entity.ProductSnapshot; +import com.baomidou.mybatisplus.extension.service.IService; +public interface ProductSnapshotService extends IService{ + + +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuService.java index a4c93d856..19ae44074 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuService.java @@ -10,4 +10,8 @@ public interface SkuService extends IService { void add(Sku sku); List getByProductId(Long productId); + + boolean insertBatch(List skus); + + boolean updateBatchById(List skus); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuSnapshotService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuSnapshotService.java new file mode 100644 index 000000000..778d8e057 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/SkuSnapshotService.java @@ -0,0 +1,12 @@ +package com.wzj.soopin.goods.service; + +import com.wzj.soopin.goods.domain.entity.SkuSnapshot; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +public interface SkuSnapshotService extends IService{ + + + void insertBatch(List skuSnapshotList); +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductSnapshotServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductSnapshotServiceImpl.java new file mode 100644 index 000000000..2758b0bec --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductSnapshotServiceImpl.java @@ -0,0 +1,13 @@ +package com.wzj.soopin.goods.service.impl; + +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.goods.mapper.ProductSnapshotMapper; +import com.wzj.soopin.goods.domain.entity.ProductSnapshot; +import com.wzj.soopin.goods.service.ProductSnapshotService; +@Service +public class ProductSnapshotServiceImpl extends ServiceImpl implements ProductSnapshotService{ + +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuServiceImpl.java index c7ae03f7c..6679c55dc 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuServiceImpl.java @@ -56,4 +56,14 @@ public class SkuServiceImpl extends ServiceImpl implements SkuSe public List getByProductId(Long productId) { return skuMapper.selectList(Wrappers.lambdaQuery(Sku.class).eq(Sku::getProductId, productId)); } + + @Override + public boolean insertBatch(List skus) { + return skuMapper.insertBatch(skus); + } + @Override + public boolean updateBatchById(List skus) { + return skuMapper.updateBatchById(skus); + } + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuSnapshotServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuSnapshotServiceImpl.java new file mode 100644 index 000000000..38655e338 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/SkuSnapshotServiceImpl.java @@ -0,0 +1,17 @@ +package com.wzj.soopin.goods.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.goods.domain.entity.SkuSnapshot; +import com.wzj.soopin.goods.mapper.SkuSnapshotMapper; +import com.wzj.soopin.goods.service.SkuSnapshotService; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class SkuSnapshotServiceImpl extends ServiceImpl implements SkuSnapshotService{ + + @Override + public void insertBatch(List skuSnapshotList) { + baseMapper.insertBatch(skuSnapshotList); + } +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductSnapshotMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductSnapshotMapper.xml new file mode 100644 index 000000000..f9a182d13 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductSnapshotMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/SkuSnapshotMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/SkuSnapshotMapper.xml new file mode 100644 index 000000000..0073bb143 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/SkuSnapshotMapper.xml @@ -0,0 +1,5 @@ + + + + +