From 360c497c49b904a167b63b054f487e600be771fc Mon Sep 17 00:00:00 2001 From: xuelijun <977662702@qq.com> Date: Tue, 5 Aug 2025 15:38:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E5=88=99=E4=BF=AE=E6=94=B9=202?= =?UTF-8?q?=EF=BC=9Asku=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tashow-module/tashow-module-product/pom.xml | 2 - .../product/controller/SkuController.java | 124 +++++++++++++-- .../cloud/product/dto/ProdExtendDO.java | 42 +++++ .../tashow/cloud/product/dto/ProdPropDO.java | 25 ++- .../cloud/product/dto/ProdPropValueDO.java | 26 ++- .../com/tashow/cloud/product/dto/SkuDO.java | 23 ++- .../product/mapper/ProdExtendMapper.java | 22 +++ .../cloud/product/mapper/ProdPropMapper.java | 4 +- .../mapper/SkuServiceDeliverMapper.java | 2 +- .../mapper/SkuServiceDetailsMapper.java | 1 + .../mapper/SkuServiceMaterialMapper.java | 1 + .../mapper/SkuServiceTransportMapper.java | 1 + .../product/mapper/SkuServicesFormMapper.java | 1 + .../product/service/ProdExtendService.java | 22 +++ .../product/service/ProdPropService.java | 8 +- .../cloud/product/service/SkuService.java | 51 +++++- .../service/impl/ProdExtendServiceImpl.java | 23 +++ .../service/impl/ProdPropServiceImpl.java | 60 +++++-- .../product/service/impl/ProdServiceImpl.java | 11 +- .../product/service/impl/SkuServiceImpl.java | 148 +++++++++++++++--- .../cloud/product/vo/prod/ProdSaveReqVO.java | 2 +- .../vo/prodprop/ProdPropPageReqVO.java | 2 +- .../product/vo/prodprop/ProdPropRespVO.java | 2 +- .../vo/prodprop/ProdPropSaveReqVO.java | 7 +- .../prodpropvalue/ProdPropValuePageReqVO.java | 2 +- .../vo/prodpropvalue/ProdPropValueRespVO.java | 2 +- .../prodpropvalue/ProdPropValueSaveReqVO.java | 2 +- .../cloud/product/vo/sku/SkuPageReqVO.java | 17 +- .../cloud/product/vo/sku/SkuPropInfoVO.java | 28 ++++ .../cloud/product/vo/sku/SkuPropVO.java | 31 ++++ .../cloud/product/vo/sku/SkuRespVO.java | 16 +- .../cloud/product/vo/sku/SkuSaveReqVO.java | 16 +- .../src/main/resources/logback-spring.xml | 7 + .../mapper/product/ProdExtendMapper.xml | 18 +++ .../mapper/product/ProdPropMapper.xml | 2 +- .../product/SkuServiceDeliverMapper.xml | 4 +- .../product/SkuServiceDetailsMapper.xml | 4 +- .../product/SkuServiceMaterialMapper.xml | 4 +- .../product/SkuServiceTransportMapper.xml | 4 +- 39 files changed, 692 insertions(+), 75 deletions(-) create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdExtendDO.java create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdExtendMapper.java create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdExtendService.java create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdExtendServiceImpl.java create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropInfoVO.java create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropVO.java create mode 100644 tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdExtendMapper.xml diff --git a/tashow-module/tashow-module-product/pom.xml b/tashow-module/tashow-module-product/pom.xml index e7f9af1..e825af5 100644 --- a/tashow-module/tashow-module-product/pom.xml +++ b/tashow-module/tashow-module-product/pom.xml @@ -41,8 +41,6 @@ swagger-models 2.2.20 - - com.tashow.cloud tashow-framework-monitor diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuController.java index f444df8..6bce828 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuController.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuController.java @@ -1,13 +1,19 @@ package com.tashow.cloud.product.controller; -import com.tashow.cloud.product.dto.SkuDO; -import com.tashow.cloud.product.dto.SkuServiceDetailsDO; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.tashow.cloud.product.dto.*; +import com.tashow.cloud.product.mapper.ProdExtendMapper; +import com.tashow.cloud.product.mapper.SkuMapper; +import com.tashow.cloud.product.service.ProdExtendService; +import com.tashow.cloud.product.service.ProdPropService; +import com.tashow.cloud.product.service.ProdPropValueService; import com.tashow.cloud.product.service.SkuService; import com.tashow.cloud.product.vo.prod.ProdServiceVO; -import com.tashow.cloud.product.vo.sku.SkuExtendVO; -import com.tashow.cloud.product.vo.sku.SkuPageReqVO; -import com.tashow.cloud.product.vo.sku.SkuRespVO; -import com.tashow.cloud.product.vo.sku.SkuSaveReqVO; +import com.tashow.cloud.product.vo.prodprop.ProdPropRespVO; +import com.tashow.cloud.product.vo.sku.*; +import com.tashow.cloud.productapi.enums.BaseEnum; +import com.tashow.cloud.productapi.enums.ProdPropRule; import jakarta.annotation.security.PermitAll; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; @@ -43,6 +49,17 @@ public class SkuController { @Resource private SkuService skuService; + @Resource + private ProdPropService prodPropService; + @Resource + private ProdPropValueService prodPropValueService; + + @Resource + private ProdExtendService prodExtendService; + + @Resource + private SkuMapper skuMapper; + /* @PostMapping("/create") @Operation(summary = "创建单品SKU") @PreAuthorize("@ss.hasPermission('tz:sku:create')") @@ -52,22 +69,82 @@ public class SkuController { @PutMapping("/update") @Operation(summary = "更新单品SKU") + @PermitAll public CommonResult updateSku(@Valid @RequestBody SkuSaveReqVO updateReqVO) { skuService.updateSku(updateReqVO); return success(true); } + + @PutMapping("/updateProp") + @Operation(summary = "更新sku规格") + @PermitAll + public CommonResult updateProp(@Valid @RequestBody SkuPropVO skuPropVO) { + skuService.updateProp(skuPropVO); + return success(true); + } + + @GetMapping("/getSKuPropList") + @Operation(summary = "获取sku规格") + @PermitAll + @Parameter(name = "prodId", description = "商品id", required = true) + public CommonResult getSKuPropList(@RequestParam("prodId") Long prodId) { + return success(skuService.getSKuPropList(prodId)); + } + + @DeleteMapping("/delete") @Operation(summary = "删除单品SKU") @Parameter(name = "id", description = "编号", required = true) + @PermitAll public CommonResult deleteSku(@RequestParam("id") Long id) { skuService.deleteSku(id); return success(true); } + @DeleteMapping("/deleteSkuList") + @Operation(summary = "批量删除SKU") + @Parameter(name = "ids", description = "编号", required = true) + @PermitAll + public CommonResult deleteSkuList(@RequestParam("id") List ids) { + skuMapper.deleteByIds(ids); + return success(true); + } + + + @DeleteMapping("/updateSkuShelf") + @Operation(summary = "修改单品上下架") + @Parameter(name = "ids", description = "编号", required = true) + @Parameter(name = "isShelf", description = "是否上下架(0下架 1上架)", required = true) + @PermitAll + public CommonResult updateSkuShelf(@RequestParam("id") Long id,@RequestParam("isShelf") Integer isShelf) { + SkuDO sku = new SkuDO(); + sku.setSkuId(id); + sku.setIsShelf(isShelf); + skuMapper.updateBatch(sku); + return success(true); + } + + @DeleteMapping("/updateSkuShelfList") + @Operation(summary = "批量上下架") + @Parameter(name = "ids", description = "编号", required = true) + @Parameter(name = "isShelf", description = "是否上下架(0下架 1上架)", required = true) + @PermitAll + public CommonResult updateSkuShelfList(@RequestParam("id") List ids,@RequestParam("isShelf") Integer isShelf) { + for(Long id:ids){ + SkuDO sku = new SkuDO(); + sku.setSkuId(id); + sku.setIsShelf(isShelf); + skuMapper.updateBatch(sku); + } + return success(true); + } + + @GetMapping("/get") @Operation(summary = "获得单品SKU") @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PermitAll public CommonResult getSku(@RequestParam("id") Long id) { SkuDO sku = skuService.getSku(id); return success(BeanUtils.toBean(sku, SkuRespVO.class)); @@ -93,14 +170,39 @@ public class SkuController { return success(skuExtendVO); } - /* @PostMapping("/updateTransportCar") - @Operation(summary = "修改遗体接运车辆配置") + + @PostMapping("/updateServiceDetails") + @Operation(summary = "修改扩展服务信息配置(遗体接运扩展服务,遗体清洁配置,追思告别配置,骨灰处理配置......)") @PermitAll - public CommonResult createSkuExtend(@RequestBody List transportCarList) { - skuService.createSkuExtend(skuExtendVO); + public CommonResult updateServiceDetails(@RequestBody List skuServiceDetailsList) { + skuService.updateServiceDetails(skuServiceDetailsList); return success(true); } -*/ + + @PostMapping("/updateMaterial") + @Operation(summary = "修物料配置") + @PermitAll + public CommonResult updateMaterial(@RequestBody List skuServiceMaterialList) { + skuService.updateMaterial(skuServiceMaterialList); + return success(true); + } + + @PostMapping("/updateTransportAdress") + @Operation(summary = "修改接运地址配置") + @PermitAll + public CommonResult updateTransportAdress(@RequestBody List skuServiceTransportDOList) { + skuService.updateTransportAdress(skuServiceTransportDOList); + return success(true); + } + + @PostMapping("/updateDeliver") + @Operation(summary = "修改配送方式") + @PermitAll + public CommonResult updateDeliver(@RequestBody List skuServiceDeliverList) { + skuService.updateDeliver(skuServiceDeliverList); + return success(true); + } + /* @GetMapping("/page") @Operation(summary = "获得单品SKU分页") diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdExtendDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdExtendDO.java new file mode 100644 index 0000000..fe68815 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdExtendDO.java @@ -0,0 +1,42 @@ +package com.tashow.cloud.product.dto; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 属性规则 DO + * + * @author 芋道源码 + */ +@TableName("tz_prod_extend") +@KeySequence("tz_prod_extend_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProdExtendDO { + + /** + * 属性值ID + */ + @TableId + private Long id; + /** + * 商品id + */ + private Long prodId; + /** + * 是否显示失效规格值 0否1是 + */ + private Integer isExpire; + + /** + * 是否显示禁用规格值 0否1是 + */ + private Integer isDisable; + +} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java index 658fe6f..856c7fa 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java @@ -19,10 +19,13 @@ import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; @AllArgsConstructor public class ProdPropDO{ + /** * 属性id */ @TableId + private Long id; + private Long propId; /** * 属性名称 @@ -39,11 +42,29 @@ public class ProdPropDO{ /** * 商品id */ - private Integer prodId; + private Long prodId; + + /** + * 排序 + */ + private Integer sort; + /** * 是否删除0否1是 */ - private Integer isDelete; + private Integer deleted; + /** + * isExist 是否新增 0否1是 + */ + @TableField(exist=false) + private Integer isExist; + + + /** + * 状态0禁用1启用 + */ + private Integer state; + /** * 属性值 */ diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java index 37e363e..080c6f7 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java @@ -20,9 +20,11 @@ import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; public class ProdPropValueDO { /** - * 属性值ID + * id */ @TableId + private Long id; + private Long valueId; /** * 属性值名称 @@ -35,6 +37,26 @@ public class ProdPropValueDO { /** * 是否删除0否1是 */ - private Integer isDelete; + private Integer deleted; + + /** + * 状态0禁用1启用 + */ + private Integer state; + + /** + * 是否失效0否1是 + */ + private Integer isExpire; + + /** + * 排序 + */ + private Integer sort; + /** + * isExist 是否新增 0否1是 + */ + @TableField(exist=false) + private Integer isExist; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuDO.java index 2a35b0f..a4dfb15 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuDO.java @@ -45,9 +45,13 @@ public class SkuDO extends BaseDO { */ private String alias; /** - * 价格 + * 当前价格 */ private BigDecimal price; + /** + * 基准价 + */ + private BigDecimal basePrice; /** * 最低价格 */ @@ -64,6 +68,15 @@ public class SkuDO extends BaseDO { * 市场价 */ private BigDecimal marketPrice; + + /** + * 服务内容 + */ + private String serviceContent; + /** + * 规格id 多个用逗号分隔(1,2,3) + */ + private String propIds; /** * 单位 */ @@ -143,4 +156,12 @@ public class SkuDO extends BaseDO { */ private Long formId; + + /** + * isExist 是否新增 0否1是 + */ + @TableField(exist=false) + private Integer isExist; + + } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdExtendMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdExtendMapper.java new file mode 100644 index 0000000..90fe399 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdExtendMapper.java @@ -0,0 +1,22 @@ +package com.tashow.cloud.product.mapper; + +import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; +import com.tashow.cloud.product.dto.ProdExtendDO; +import com.tashow.cloud.product.dto.ProdPropValueDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 属性规则 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ProdExtendMapper extends BaseMapperX { + // 自定义更新方法(可选) + int updateByProdId(@Param("prodId") Long prodId, + @Param("isDisable") Integer isDisable, + @Param("isExpire") Integer isExpire); +} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java index 48c0407..e066671 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java @@ -20,9 +20,9 @@ public interface ProdPropMapper extends BaseMapperX { /** * 根据店铺id和属性名称获取商品属性 * @param propName - * @param shopId + * @param prodId * @param rule * @return */ - ProdPropDO getProdPropByPropNameAndShopId(@Param("propName") String propName, @Param("shopId") Long shopId, @Param("rule") Integer rule); + ProdPropDO getProdPropByPropNameAndShopId(@Param("propName") String propName, @Param("prodId") Integer prodId, @Param("rule") Integer rule); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDeliverMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDeliverMapper.java index 59fce24..38a1ff1 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDeliverMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDeliverMapper.java @@ -16,5 +16,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SkuServiceDeliverMapper extends BaseMapperX { - + void deleteDelivers(Long serviceId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java index a8c5345..31e2c00 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java @@ -16,5 +16,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SkuServiceDetailsMapper extends BaseMapperX { + void deleteDetails(Long serviceId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceMaterialMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceMaterialMapper.java index ecba405..be96935 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceMaterialMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceMaterialMapper.java @@ -17,4 +17,5 @@ import org.apache.ibatis.annotations.Mapper; public interface SkuServiceMaterialMapper extends BaseMapperX { + void deleteMaterials(Long serviceId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceTransportMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceTransportMapper.java index 68e2181..4432bb7 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceTransportMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceTransportMapper.java @@ -17,4 +17,5 @@ import org.apache.ibatis.annotations.Mapper; public interface SkuServiceTransportMapper extends BaseMapperX { + void deleteTransports(Long serviceId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServicesFormMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServicesFormMapper.java index 6213bd0..a12f272 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServicesFormMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServicesFormMapper.java @@ -19,4 +19,5 @@ import org.apache.ibatis.annotations.Mapper; public interface SkuServicesFormMapper extends BaseMapperX { List selectSkuServiceExtendWithDetails(Integer formId); + } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdExtendService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdExtendService.java new file mode 100644 index 0000000..b10e7a8 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdExtendService.java @@ -0,0 +1,22 @@ +package com.tashow.cloud.product.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.tashow.cloud.common.pojo.PageResult; +import com.tashow.cloud.product.dto.ProdExtendDO; +import com.tashow.cloud.product.dto.ProdPropDO; +import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; +import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import com.tashow.cloud.product.vo.sku.SkuPropVO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * 商品属性 Service 接口 + * + * @author 芋道源码 + */ +public interface ProdExtendService extends IService { + + +} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java index 884836e..4078f7e 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java @@ -4,8 +4,10 @@ import java.util.*; import com.baomidou.mybatisplus.extension.service.IService; import com.tashow.cloud.product.dto.ProdPropDO; +import com.tashow.cloud.product.vo.prod.ProdSaveReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import com.tashow.cloud.product.vo.sku.SkuPropVO; import jakarta.validation.*; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.pojo.PageParam; @@ -25,7 +27,11 @@ public interface ProdPropService extends IService { */ Long createProdProp(@Valid ProdPropSaveReqVO createReqVO); - void saveProdPropAndValues(ProdPropSaveReqVO createReqVO); + void saveProdPropAndValues(ProdSaveReqVO createReqVO); + + + + void updateProdPropAndValues(SkuPropVO skuPropVO); /** * 更新商品属性 * diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java index 28770ee..7a28a9f 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java @@ -2,13 +2,12 @@ package com.tashow.cloud.product.service; import java.util.*; -import com.tashow.cloud.product.dto.SkuDO; -import com.tashow.cloud.product.vo.sku.SkuExtendVO; -import com.tashow.cloud.product.vo.sku.SkuPageReqVO; -import com.tashow.cloud.product.vo.sku.SkuSaveReqVO; +import com.tashow.cloud.product.dto.*; +import com.tashow.cloud.product.vo.sku.*; import jakarta.validation.*; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.pojo.PageParam; +import org.springframework.web.bind.annotation.RequestParam; /** * 单品SKU Service 接口 @@ -32,6 +31,9 @@ public interface SkuService { */ void createSkuExtend(@Valid SkuExtendVO skuExtendVO); + + + /** * 创建sku扩展服务配置 * @@ -47,6 +49,16 @@ public interface SkuService { */ void updateSku(@Valid SkuSaveReqVO updateReqVO); + /** + * 更新sku规格 + * + * @param skuPropVO 更新信息 + */ + void updateProp(SkuPropVO skuPropVO); + + + SkuPropInfoVO getSKuPropList(Long prodId); + /** * 删除单品SKU * @@ -70,4 +82,35 @@ public interface SkuService { */ PageResult getSkuPage(SkuPageReqVO pageReqVO); + + /** + * 创建sku扩展服务配置 + * + * @param skuServiceDetailsList 更新信息 + */ + void updateServiceDetails(List skuServiceDetailsList); + + + /** + * 修物料配置 + * + * @param skuServiceMaterialList 更新信息 + */ + void updateMaterial(List skuServiceMaterialList); + + + /** + * 修改接运地址配置 + * + * @param skuServiceTransportDOList 更新信息 + */ + void updateTransportAdress( List skuServiceTransportDOList); + + /** + * 修改配送方式 + * + * @param skuServiceDeliverList 更新信息 + */ + void updateDeliver(List skuServiceDeliverList); + } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdExtendServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdExtendServiceImpl.java new file mode 100644 index 0000000..a780a46 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdExtendServiceImpl.java @@ -0,0 +1,23 @@ +package com.tashow.cloud.product.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tashow.cloud.product.dto.ProdExtendDO; +import com.tashow.cloud.product.dto.ProdPropValueDO; +import com.tashow.cloud.product.mapper.ProdExtendMapper; +import com.tashow.cloud.product.mapper.ProdPropValueMapper; +import com.tashow.cloud.product.service.ProdExtendService; +import com.tashow.cloud.product.service.ProdPropValueService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + + +/** + * 超区规则 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ProdExtendServiceImpl extends ServiceImpl implements ProdExtendService { + +} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java index 3e8886a..5ca497c 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java @@ -3,11 +3,15 @@ package com.tashow.cloud.product.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tashow.cloud.product.dto.ProdPropDO; +import com.tashow.cloud.product.dto.ProdPropValueDO; import com.tashow.cloud.product.mapper.ProdPropMapper; import com.tashow.cloud.product.mapper.ProdPropValueMapper; import com.tashow.cloud.product.service.ProdPropService; +import com.tashow.cloud.product.vo.prod.ProdSaveReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import com.tashow.cloud.product.vo.sku.SkuPropVO; +import com.tashow.cloud.productapi.enums.BaseEnum; import com.tashow.cloud.productapi.enums.ErrorCodeConstants; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; @@ -47,20 +51,52 @@ public class ProdPropServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) - public void saveProdPropAndValues(ProdPropSaveReqVO createReqVO) { - if(createReqVO.getShopId()==null){ - createReqVO.setShopId(1L); + public void saveProdPropAndValues(ProdSaveReqVO createReqVOInfo) { + + for (ProdPropSaveReqVO createReqVO : createReqVOInfo.getProdPropSaveReqVO()){ + ProdPropDO dbProdProp = prodPropMapper.getProdPropByPropNameAndShopId(createReqVO.getPropName(), createReqVO.getProdId(), createReqVO.getRule()); + if (dbProdProp != null) { + throw new RuntimeException("已有相同名称规格"); + } + ProdPropDO prodProp = BeanUtils.toBean(createReqVO, ProdPropDO.class); + prodProp.setProdId(createReqVOInfo.getProdId()); + prodPropMapper.insert(prodProp); + if (CollUtil.isEmpty(createReqVO.getProdPropValues())) { + return; + } + for (ProdPropValueDO prodPropValueDO : createReqVO.getProdPropValues()){ + prodPropValueDO.setPropId(prodProp.getPropId()); + prodPropValueMapper.insert(prodPropValueDO); + } } - ProdPropDO dbProdProp = prodPropMapper.getProdPropByPropNameAndShopId(createReqVO.getPropName(), createReqVO.getShopId(), createReqVO.getRule()); - if (dbProdProp != null) { - throw new RuntimeException("已有相同名称规格"); + } + + @Override + @Transactional + public void updateProdPropAndValues(SkuPropVO skuPropVO) { + for (ProdPropSaveReqVO createReqVO : skuPropVO.getProdPropSaveReqVO()){ + ProdPropDO dbProdProp = prodPropMapper.getProdPropByPropNameAndShopId(createReqVO.getPropName(), createReqVO.getProdId(), createReqVO.getRule()); + if (dbProdProp != null) { + throw new RuntimeException("已有相同名称规格"); + } + ProdPropDO prodProp = BeanUtils.toBean(createReqVO, ProdPropDO.class); + if(Objects.equals(BaseEnum.YES_ONE.getKey(),createReqVO.getIsExist())){ + prodPropMapper.insert(prodProp); + }else { + prodPropMapper.updateById(prodProp); + } + if (CollUtil.isEmpty(createReqVO.getProdPropValues())) { + return; + } + for (ProdPropValueDO prodPropValueDO : createReqVO.getProdPropValues()){ + if(Objects.equals(BaseEnum.YES_ONE.getKey(),prodPropValueDO.getIsExist())){ + prodPropValueDO.setPropId(prodProp.getPropId()); + prodPropValueMapper.insert(prodPropValueDO); + }else { + prodPropValueMapper.updateById(prodPropValueDO); + } + } } - ProdPropDO prodProp = BeanUtils.toBean(createReqVO, ProdPropDO.class); - prodPropMapper.insert(prodProp); - if (CollUtil.isEmpty(createReqVO.getProdPropValues())) { - return; - } - prodPropValueMapper.insertPropValues(prodProp.getPropId(), createReqVO.getProdPropValues()); } diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java index 2a3afd5..6bef46c 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java @@ -62,6 +62,8 @@ public class ProdServiceImpl implements ProdService { private ProdAdditionalFeePeriodsMapper prodAdditionalFeePeriodsMapper; @Resource private ProdWeightRangePricesMapper prodWeightRangePricesMapper; + @Resource + private ProdExtendMapper prodExtendMapper; @Override @Transactional @@ -75,11 +77,16 @@ public class ProdServiceImpl implements ProdService { for(SkuDO sku : skuList){ sku.setProdId(prod.getProdId()); } - skuMapper.insert(skuList); + skuMapper.insertBatch(skuList); } createReqVO.setProdId(prod.getProdId()); //保存规格 - prodPropService.saveProdPropAndValues(createReqVO.getProdPropSaveReqVO()); + prodPropService.saveProdPropAndValues(createReqVO); + ProdExtendDO prodExtendDO = new ProdExtendDO(); + prodExtendDO.setIsExpire(BaseEnum.YES_ONE.getKey()); + prodExtendDO.setIsExpire(BaseEnum.YES_ONE.getKey()); + prodExtendDO.setProdId(prod.getProdId()); + prodExtendMapper.insert(prodExtendDO); // 返回 return prod.getProdId(); } diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java index a2ef06b..878dd72 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java @@ -1,12 +1,15 @@ package com.tashow.cloud.product.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tashow.cloud.product.dto.*; import com.tashow.cloud.product.mapper.*; +import com.tashow.cloud.product.service.ProdExtendService; +import com.tashow.cloud.product.service.ProdPropService; +import com.tashow.cloud.product.service.ProdPropValueService; import com.tashow.cloud.product.service.SkuService; -import com.tashow.cloud.product.vo.sku.SkuExtendVO; -import com.tashow.cloud.product.vo.sku.SkuPageReqVO; -import com.tashow.cloud.product.vo.sku.SkuSaveReqVO; -import com.tashow.cloud.product.vo.sku.SkuServiceExtendVO; +import com.tashow.cloud.product.vo.sku.*; import com.tashow.cloud.productapi.enums.BaseEnum; import com.tashow.cloud.productapi.enums.ErrorCodeConstants; import com.tashow.cloud.productapi.enums.ServiceTypeEnum; @@ -45,6 +48,14 @@ public class SkuServiceImpl implements SkuService { private SkuServiceTransportMapper skuServiceTransportMapper; @Resource private SkuServiceDeliverMapper skuServiceDeliverMapper; + @Resource + private ProdPropService prodPropService; + @Resource + private ProdExtendMapper prodExtendMapper; + @Resource + private ProdPropValueService prodPropValueService; + @Resource + private ProdExtendService prodExtendService; @Override public Long createSku(SkuSaveReqVO createReqVO) { @@ -62,7 +73,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getTransportCarSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -72,7 +83,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.TRANSPORT_CAR_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.TRANSPORT_CAR_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -85,7 +96,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getTrafficSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -95,7 +106,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.BODY_TRANSPORT_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.BODY_TRANSPORT_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -108,7 +119,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getCleanSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_CLEAN_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.BODY_CLEAN_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -118,7 +129,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.BODY_CLEAN_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.BODY_CLEAN_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -131,7 +142,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getReflectionSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.MEMORIAL_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.MEMORIAL_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -141,7 +152,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.MEMORIAL_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.MEMORIAL_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -155,7 +166,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getCremationSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.CREMATION_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.CREMATION_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -165,7 +176,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.CREMATION_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.CREMATION_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -179,7 +190,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getAshProcessingSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -189,7 +200,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuForm = new SkuServicesFormDO(); skuForm.setServiceName(ServiceTypeEnum.ASH_PROCESSING_DELIVERY.getDescription()); - skuForm.setIsEnabled(BaseEnum.YES.getKey()); + skuForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuForm.setType(ServiceTypeEnum.ASH_PROCESSING_DELIVERY.getCode()); skuForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuForm); @@ -199,7 +210,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuServicesForm = new SkuServicesFormDO(); skuServicesForm.setServiceName(ServiceTypeEnum.ASH_PROCESSING_MATERIAL.getDescription()); - skuServicesForm.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesForm.setType(ServiceTypeEnum.ASH_PROCESSING_MATERIAL.getCode()); skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesForm); @@ -213,7 +224,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getBoneashSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.BONE_ASH_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.BONE_ASH_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -227,7 +238,7 @@ public class SkuServiceImpl implements SkuService { if(Objects.equals(skuExtendVO.getSouvenirSwitch(),BaseEnum.YES_ONE.getKey())){ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); skuServicesFormDO.setServiceName(ServiceTypeEnum.SOUVENIR_CONFIG.getDescription()); - skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey()); + skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setType(ServiceTypeEnum.SOUVENIR_CONFIG.getCode()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuServicesFormDO); @@ -237,7 +248,7 @@ public class SkuServiceImpl implements SkuService { } SkuServicesFormDO skuForm = new SkuServicesFormDO(); skuForm.setServiceName(ServiceTypeEnum.SOUVENIR_DELIVERY.getDescription()); - skuForm.setIsEnabled(BaseEnum.YES.getKey()); + skuForm.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuForm.setType(ServiceTypeEnum.SOUVENIR_DELIVERY.getCode()); skuForm.setName(skuExtendVO.getSkuFormName()); skuServicesFormMapper.insert(skuForm); @@ -366,6 +377,67 @@ public class SkuServiceImpl implements SkuService { skuMapper.updateById(updateObj); } + @Override + @Transactional + public void updateProp(SkuPropVO skuPropVO) { + //保存sku + if (CollectionUtil.isNotEmpty(skuPropVO.getSkuList())) { + List skuList = skuPropVO.getSkuList(); + List skuListNew = new ArrayList<>(); + List skuListUpdate = new ArrayList<>(); + for(SkuDO sku : skuList){ + if(Objects.equals(BaseEnum.YES_ONE.getKey(), sku.getIsExist())){ + sku.setProdId(skuPropVO.getProdId()); + skuListNew.add(sku); + }else { + skuListUpdate.add(sku); + } + } + if(CollUtil.isNotEmpty(skuListNew)){ + skuMapper.insertBatch(skuListNew); + } + if(CollUtil.isNotEmpty(skuListUpdate)){ + skuMapper.updateBatch(skuListUpdate); + } + } + /* prodExtendMapper.updateByProdId(skuPropVO.getProdId(),skuPropVO.getIsDisable(),skuPropVO.getIsExpire()); + //保存规格 + prodPropService.updateProdPropAndValues(skuPropVO);*/ + } + + @Override + public SkuPropInfoVO getSKuPropList(Long prodId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProdPropDO::getProdId,prodId); + wrapper.eq(ProdPropDO::getState, BaseEnum.YES_ONE.getKey()) + .orderByDesc(ProdPropDO::getSort); + + List list = prodPropService.list(wrapper); + list.forEach(prop -> { + List values = prodPropValueService.list( + new LambdaQueryWrapper() + .eq(ProdPropValueDO::getPropId, prop.getId()) + .orderByDesc(ProdPropValueDO::getSort) + ); + /* LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(ProdPropValueDO::getPropId,prop.getPropId()); + wrapper1.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey()); + if (merchantComm.getScore() != null) { + wrapper.eq("score", merchantComm.getScore()); + } + wrapper1.orderByDesc(ProdPropValueDO::getSort);*/ + + prop.setProdPropValues(values); + }); + SkuPropInfoVO skuPropInfoVO = new SkuPropInfoVO(); + skuPropInfoVO.setProdId(prodId); + skuPropInfoVO.setProdPropSaveReqVO(list); + ProdExtendDO prodExtendDO = prodExtendService.getOne(new LambdaQueryWrapper().eq(ProdExtendDO::getProdId, prodId)); + skuPropInfoVO.setIsDisable(prodExtendDO.getIsDisable()); + skuPropInfoVO.setIsExpire(prodExtendDO.getIsExpire()); + return skuPropInfoVO; + } + @Override public void deleteSku(Long id) { // 校验存在 @@ -390,4 +462,40 @@ public class SkuServiceImpl implements SkuService { return null; } + @Override + @Transactional + public void updateServiceDetails(List skuServiceDetailsList) { + if (ObjectUtils.isNotEmpty(skuServiceDetailsList)) { + skuServiceDetailsMapper.delete(SkuServiceDetailsDO::getServiceId, skuServiceDetailsList.get(0).getServiceId()); + skuServiceDetailsMapper.insertBatch(skuServiceDetailsList); + } + } + + @Override + @Transactional + public void updateMaterial(List skuServiceMaterialList) { + if (ObjectUtils.isNotEmpty(skuServiceMaterialList)) { + skuServiceMaterialMapper.delete(SkuServiceMaterialDO::getServiceId, skuServiceMaterialList.get(0).getServiceId()); + skuServiceMaterialMapper.insertBatch(skuServiceMaterialList); + } + } + + @Override + @Transactional + public void updateTransportAdress(List skuServiceTransportDOList) { + if (ObjectUtils.isNotEmpty(skuServiceTransportDOList)) { + skuServiceTransportMapper.delete(SkuServiceTransportDO::getServiceId, skuServiceTransportDOList.get(0).getServiceId()); + skuServiceTransportMapper.insertBatch(skuServiceTransportDOList); + } + } + + @Override + public void updateDeliver(List skuServiceDeliverList) { + if (ObjectUtils.isNotEmpty(skuServiceDeliverList)) { + skuServiceDeliverMapper.delete(SkuServiceDeliverDO::getServiceId, skuServiceDeliverList.get(0).getServiceId()); + skuServiceDeliverMapper.insertBatch(skuServiceDeliverList); + } + } + + } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java index f5ae6cf..5d1a827 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java @@ -127,6 +127,6 @@ public class ProdSaveReqVO { private List skuList; @Schema(description = "规格") - private ProdPropSaveReqVO prodPropSaveReqVO; + private List prodPropSaveReqVO; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropPageReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropPageReqVO.java index 080d40f..93ae248 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropPageReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropPageReqVO.java @@ -24,6 +24,6 @@ public class ProdPropPageReqVO extends PageParam { private Integer prodId; @Schema(description = "是否删除0否1是") - private Integer isDelete; + private Integer deleted; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropRespVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropRespVO.java index d6004a7..0958d60 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropRespVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropRespVO.java @@ -32,6 +32,6 @@ public class ProdPropRespVO { @Schema(description = "是否删除0否1是") @ExcelProperty("是否删除0否1是") - private Integer isDelete; + private Integer deleted; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java index cc5173e..ad5b971 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java @@ -27,8 +27,13 @@ public class ProdPropSaveReqVO { private Integer prodId; @Schema(description = "是否删除0否1是") - private Integer isDelete; + private Integer deleted; + /** + * isExist 是否新增 0否1是 + */ + @TableField(exist=false) + private Integer isExist; /** * 属性值 */ diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValuePageReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValuePageReqVO.java index 31d84bc..9449bbd 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValuePageReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValuePageReqVO.java @@ -18,6 +18,6 @@ public class ProdPropValuePageReqVO extends PageParam { private Long propId; @Schema(description = "是否删除0否1是") - private Integer isDelete; + private Integer deleted; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueRespVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueRespVO.java index 3f3cf9e..e8e2758 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueRespVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueRespVO.java @@ -24,6 +24,6 @@ public class ProdPropValueRespVO { @Schema(description = "是否删除0否1是") @ExcelProperty("是否删除0否1是") - private Boolean isDelete; + private Boolean deleted; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueSaveReqVO.java index b1c93a3..908b528 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodpropvalue/ProdPropValueSaveReqVO.java @@ -19,6 +19,6 @@ public class ProdPropValueSaveReqVO { private Long propId; @Schema(description = "是否删除0否1是") - private Boolean isDelete; + private Boolean deleted; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPageReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPageReqVO.java index a50fdfa..deedda8 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPageReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPageReqVO.java @@ -25,9 +25,14 @@ public class SkuPageReqVO extends PageParam { @Schema(description = "别名") private String alias; - @Schema(description = "价格", example = "32405") + @Schema(description = "当前价格", example = "32405") private BigDecimal price; + /** + * 基准价 + */ + private BigDecimal basePrice; + @Schema(description = "最低价格", example = "5040") private BigDecimal minPrice; @@ -103,4 +108,14 @@ public class SkuPageReqVO extends PageParam { * 是否默认规则0否1是 */ private Integer isSpecs; + + + /** + * 服务内容 + */ + private String serviceContent; + /** + * 规格id 多个用逗号分隔(1,2,3) + */ + private String propIds; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropInfoVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropInfoVO.java new file mode 100644 index 0000000..0d301eb --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropInfoVO.java @@ -0,0 +1,28 @@ +package com.tashow.cloud.product.vo.sku; + +import com.tashow.cloud.product.dto.ProdPropDO; +import com.tashow.cloud.product.dto.SkuDO; +import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class SkuPropInfoVO { + @Schema(description = "产品id") + private Long prodId; + + /** + * 是否显示失效规格值 0否1是 + */ + private Integer isExpire; + + /** + * 是否显示禁用规格值 0否1是 + */ + private Integer isDisable; + + @Schema(description = "规格") + public List prodPropSaveReqVO; +} diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropVO.java new file mode 100644 index 0000000..04a4983 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuPropVO.java @@ -0,0 +1,31 @@ +package com.tashow.cloud.product.vo.sku; + +import com.tashow.cloud.product.dto.SkuDO; +import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class SkuPropVO { + @Schema(description = "产品id") + private Long prodId; + + /** + * 是否显示失效规格值 0否1是 + */ + private Integer isExpire = 1; + + /** + * 是否显示禁用规格值 0否1是 + */ + private Integer isDisable =1; + + + @Schema(description = "sku列表") + public List skuList; + + @Schema(description = "规格") + public List prodPropSaveReqVO; +} diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuRespVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuRespVO.java index 3917425..7f4f9e5 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuRespVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuRespVO.java @@ -29,10 +29,15 @@ public class SkuRespVO { @ExcelProperty("别名") private String alias; - @Schema(description = "价格", example = "32405") + @Schema(description = "当前价格", example = "32405") @ExcelProperty("价格") private BigDecimal price; + /** + * 基准价 + */ + private BigDecimal basePrice; + @Schema(description = "最低价格", example = "5040") @ExcelProperty("最低价格") private BigDecimal minPrice; @@ -129,4 +134,13 @@ public class SkuRespVO { * 是否默认规则0否1是 */ private Integer isSpecs; + + /** + * 服务内容 + */ + private String serviceContent; + /** + * 规格id 多个用逗号分隔(1,2,3) + */ + private String propIds; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuSaveReqVO.java index 61f3186..fef9f51 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuSaveReqVO.java @@ -23,9 +23,14 @@ public class SkuSaveReqVO { @Schema(description = "别名") private String alias; - @Schema(description = "价格", example = "32405") + @Schema(description = "当前价格", example = "32405") private BigDecimal price; + /** + * 基准价 + */ + private BigDecimal basePrice; + @Schema(description = "最低价格", example = "5040") private BigDecimal minPrice; @@ -93,4 +98,13 @@ public class SkuSaveReqVO { * 扩展服务表单id */ private Long formId; + + /** + * 服务内容 + */ + private String serviceContent; + /** + * 规格id 多个用逗号分隔(1,2,3) + */ + private String propIds; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/logback-spring.xml b/tashow-module/tashow-module-product/src/main/resources/logback-spring.xml index 16f0c0f..8bef45c 100644 --- a/tashow-module/tashow-module-product/src/main/resources/logback-spring.xml +++ b/tashow-module/tashow-module-product/src/main/resources/logback-spring.xml @@ -73,4 +73,11 @@ + + + + + + + diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdExtendMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdExtendMapper.xml new file mode 100644 index 0000000..50520d3 --- /dev/null +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdExtendMapper.xml @@ -0,0 +1,18 @@ + + + + + + + UPDATE tz_prod_extend + SET + is_disable = #{isDisable}, + is_expire = #{isExpire} + WHERE prod_id = #{prodId} + + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml index 5ed26d4..94f4c50 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml @@ -9,6 +9,6 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDeliverMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDeliverMapper.xml index 55f1873..2cbaf7c 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDeliverMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDeliverMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + delete from tz_sku_service_deliver where service_id = #{serviceId} + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml index 56dfd4a..a74ad84 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + delete from tz_sku_service_details where service_id = #{serviceId} + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceMaterialMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceMaterialMapper.xml index a2f79be..ad0ec3c 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceMaterialMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceMaterialMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + delete from tz_sku_service_material where service_id = #{serviceId} + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceTransportMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceTransportMapper.xml index bab926a..a7aa6ec 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceTransportMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceTransportMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + delete from tz_sku_service_transport where service_id = #{serviceId} + \ No newline at end of file