From fb863ef9d1d41f89f91c48937804ac4916fb66bd Mon Sep 17 00:00:00 2001
From: xuelijun <977662702@qq.com>
Date: Fri, 1 Aug 2025 18:02:59 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95=E6=9C=8D=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tashow-feign/tashow-product-api/pom.xml | 5 +
.../productapi/enums/ErrorCodeConstants.java | 1 +
.../general/StringListTypeHandler.java | 54 ++++++
.../mybatis/core/dataobject/BaseDO.java | 2 +-
tashow-module/tashow-module-product/pom.xml | 1 -
.../controller/CategoryController.java | 13 +-
.../product/controller/SkuController.java | 11 ++
.../SkuServiceDetailsController.java | 96 ++++++++++
.../com/tashow/cloud/product/dto/ProdDO.java | 16 +-
.../com/tashow/cloud/product/dto/SkuDO.java | 16 +-
.../product/dto/SkuServiceDetailsDO.java | 81 ++++++++
.../cloud/product/dto/SkuServicesFormDO.java | 6 +
.../mapper/SkuServiceDetailsMapper.java | 20 ++
.../cloud/product/service/SkuService.java | 8 +
.../service/SkuServiceDetailsService.java | 57 ++++++
.../product/service/impl/ProdServiceImpl.java | 1 +
.../impl/SkuServiceDetailsServiceImpl.java | 74 ++++++++
.../product/service/impl/SkuServiceImpl.java | 174 +++++++++++++++++-
.../cloud/product/vo/prod/ProdPageReqVO.java | 15 +-
.../cloud/product/vo/prod/ProdRespVO.java | 16 +-
.../cloud/product/vo/prod/ProdSaveReqVO.java | 17 +-
.../cloud/product/vo/sku/SkuExtendVO.java | 62 +++++++
.../cloud/product/vo/sku/SkuPageReqVO.java | 8 +
.../cloud/product/vo/sku/SkuRespVO.java | 8 +
.../SkuServiceDetailsPageReqVO.java | 57 ++++++
.../SkuServiceDetailsRespVO.java | 67 +++++++
.../SkuServiceDetailsSaveReqVO.java | 58 ++++++
.../product/SkuServiceDetailsMapper.xml | 12 ++
28 files changed, 937 insertions(+), 19 deletions(-)
create mode 100644 tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/general/StringListTypeHandler.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuServiceDetailsController.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServiceDetailsDO.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuServiceDetailsService.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceDetailsServiceImpl.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuExtendVO.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsPageReqVO.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsRespVO.java
create mode 100644 tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsSaveReqVO.java
create mode 100644 tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml
diff --git a/tashow-feign/tashow-product-api/pom.xml b/tashow-feign/tashow-product-api/pom.xml
index 782cc10..69de939 100644
--- a/tashow-feign/tashow-product-api/pom.xml
+++ b/tashow-feign/tashow-product-api/pom.xml
@@ -35,6 +35,11 @@
spring-cloud-starter-openfeign
true
+
+ org.mybatis
+ mybatis
+ 3.5.13
+
diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ErrorCodeConstants.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ErrorCodeConstants.java
index 03389a8..7f26c2e 100644
--- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ErrorCodeConstants.java
+++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ErrorCodeConstants.java
@@ -31,4 +31,5 @@ public interface ErrorCodeConstants {
ErrorCode SKU_SERVICE_MATERIAL_NOT_EXISTS = new ErrorCode(10019, "服务物料详情不存在");
ErrorCode SKU_SERVICES_FORM_NOT_EXISTS = new ErrorCode(10021, "商品SKU扩展服务表单不存在");
ErrorCode SKU_SERVICE_TRANSPORT_NOT_EXISTS = new ErrorCode(10022, "服务遗体运输不存在");
+ ErrorCode SKU_SERVICE_DETAILS_NOT_EXISTS = new ErrorCode(10023, "服务详情不存在");
}
diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/general/StringListTypeHandler.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/general/StringListTypeHandler.java
new file mode 100644
index 0000000..40472f1
--- /dev/null
+++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/general/StringListTypeHandler.java
@@ -0,0 +1,54 @@
+package com.tashow.cloud.productapi.general;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 处理 List 与数据库逗号分隔字符串之间的转换
+ */
+public class StringListTypeHandler extends BaseTypeHandler> {
+
+ @Override
+ public void setNonNullParameter(PreparedStatement ps, int i, List parameter, JdbcType jdbcType) throws SQLException {
+ // 将 List 转为逗号分隔的字符串
+ StringBuilder sb = new StringBuilder();
+ for (int j = 0; j < parameter.size(); j++) {
+ if (j > 0) sb.append(",");
+ sb.append(parameter.get(j));
+ }
+ ps.setString(i, sb.toString());
+ }
+
+ @Override
+ public List getNullableResult(ResultSet rs, String columnName) throws SQLException {
+ String str = rs.getString(columnName);
+ return parseStringToList(str);
+ }
+
+ @Override
+ public List getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+ String str = rs.getString(columnIndex);
+ return parseStringToList(str);
+ }
+
+ @Override
+ public List getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+ String str = cs.getString(columnIndex);
+ return parseStringToList(str);
+ }
+
+ private List parseStringToList(String str) {
+ if (str == null || str.trim().length() == 0) {
+ return Collections.emptyList();
+ }
+ return Arrays.asList(str.split(","));
+ }
+}
diff --git a/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/dataobject/BaseDO.java b/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/dataobject/BaseDO.java
index 5f1ec6d..92fa0e9 100644
--- a/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/dataobject/BaseDO.java
+++ b/tashow-framework/tashow-data-mybatis/src/main/java/com/tashow/cloud/mybatis/mybatis/core/dataobject/BaseDO.java
@@ -51,6 +51,6 @@ public abstract class BaseDO implements Serializable, TransPojo {
* 是否删除
*/
@TableLogic
- private Boolean deleted;
+ private Integer deleted;
}
diff --git a/tashow-module/tashow-module-product/pom.xml b/tashow-module/tashow-module-product/pom.xml
index d8255bc..e7f9af1 100644
--- a/tashow-module/tashow-module-product/pom.xml
+++ b/tashow-module/tashow-module-product/pom.xml
@@ -48,7 +48,6 @@
tashow-framework-monitor
-
com.alibaba
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/CategoryController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/CategoryController.java
index 5b59fb8..932b9bd 100644
--- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/CategoryController.java
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/CategoryController.java
@@ -47,10 +47,21 @@ public class CategoryController {
*/
@PermitAll
@GetMapping("/categoryList")
- public CommonResult> categoryList() {
+ public CommonResult> categoryList( @RequestParam(value = "grade", required = false) Integer grade,
+ @RequestParam(value = "categoryId", required = false) Long categoryId,
+ @RequestParam(value = "status", required = false) Integer status) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
//TODO 获取当前登录用户
wrapper.eq(CategoryDO::getShopId, 1L);
+ if(grade != null) {
+ wrapper.eq(CategoryDO::getGrade, grade);
+ }
+ if(categoryId != null) {
+ wrapper.eq(CategoryDO::getCategoryId, categoryId);
+ }
+ if (status != null){
+ wrapper.eq(CategoryDO::getStatus, status);
+ }
List categoryMenuList = categoryService.list(wrapper);
return success(categoryMenuList);
}
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 ba92b74..b6a9bff 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
@@ -2,9 +2,12 @@ package com.tashow.cloud.product.controller;
import com.tashow.cloud.product.dto.SkuDO;
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 jakarta.annotation.security.PermitAll;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -46,6 +49,14 @@ public class SkuController {
return success(skuService.createSku(createReqVO));
}
+ @PostMapping("/createSkuExtend")
+ @Operation(summary = "创建sku扩展服务配置")
+ @PermitAll
+ public CommonResult createSkuExtend(@Valid @RequestBody SkuExtendVO skuExtendVO) {
+ skuService.createSkuExtend(skuExtendVO);
+ return success(true);
+ }
+
@PutMapping("/update")
@Operation(summary = "更新单品SKU")
@PreAuthorize("@ss.hasPermission('tz:sku:update')")
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuServiceDetailsController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuServiceDetailsController.java
new file mode 100644
index 0000000..f5c8020
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/SkuServiceDetailsController.java
@@ -0,0 +1,96 @@
+package com.tashow.cloud.product.controller;
+
+import com.tashow.cloud.product.dto.SkuServiceDetailsDO;
+import com.tashow.cloud.product.service.SkuServiceDetailsService;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsPageReqVO;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsRespVO;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.tashow.cloud.common.pojo.PageParam;
+import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.common.pojo.CommonResult;
+import com.tashow.cloud.common.util.object.BeanUtils;
+import static com.tashow.cloud.common.pojo.CommonResult.success;
+
+import com.tashow.cloud.excel.excel.core.util.ExcelUtils;
+
+import com.tashow.cloud.web.apilog.core.annotation.ApiAccessLog;
+import static com.tashow.cloud.web.apilog.core.enums.OperateTypeEnum.*;
+
+@Tag(name = "管理后台 - 服务详情")
+@RestController
+@RequestMapping("/tz/sku-service-details")
+@Validated
+public class SkuServiceDetailsController {
+
+ @Resource
+ private SkuServiceDetailsService skuServiceDetailsService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建服务详情")
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:create')")
+ public CommonResult createSkuServiceDetails(@Valid @RequestBody SkuServiceDetailsSaveReqVO createReqVO) {
+ return success(skuServiceDetailsService.createSkuServiceDetails(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新服务详情")
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:update')")
+ public CommonResult updateSkuServiceDetails(@Valid @RequestBody SkuServiceDetailsSaveReqVO updateReqVO) {
+ skuServiceDetailsService.updateSkuServiceDetails(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除服务详情")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:delete')")
+ public CommonResult deleteSkuServiceDetails(@RequestParam("id") Long id) {
+ skuServiceDetailsService.deleteSkuServiceDetails(id);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得服务详情")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:query')")
+ public CommonResult getSkuServiceDetails(@RequestParam("id") Long id) {
+ SkuServiceDetailsDO skuServiceDetails = skuServiceDetailsService.getSkuServiceDetails(id);
+ return success(BeanUtils.toBean(skuServiceDetails, SkuServiceDetailsRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得服务详情分页")
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:query')")
+ public CommonResult> getSkuServiceDetailsPage(@Valid SkuServiceDetailsPageReqVO pageReqVO) {
+ PageResult pageResult = skuServiceDetailsService.getSkuServiceDetailsPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, SkuServiceDetailsRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出服务详情 Excel")
+ @PreAuthorize("@ss.hasPermission('tz:sku-service-details:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportSkuServiceDetailsExcel(@Valid SkuServiceDetailsPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = skuServiceDetailsService.getSkuServiceDetailsPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "服务详情.xls", "数据", SkuServiceDetailsRespVO.class,
+ BeanUtils.toBean(list, SkuServiceDetailsRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java
index d89bb7a..f40f8e8 100644
--- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java
@@ -1,5 +1,6 @@
package com.tashow.cloud.product.dto;
+import com.tashow.cloud.productapi.general.StringListTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -39,7 +40,7 @@ public class ProdDO extends BaseDO {
/**
* seo标题
*/
- private String seoName;
+ private String seoShortName;
/**
* seo搜索
*/
@@ -88,10 +89,21 @@ public class ProdDO extends BaseDO {
*/
private String imgs;
+ /**
+ * 视频
+ */
+ private String video;
+
+ /**
+ * 商品轮播图片,以,分割
+ */
+ private String whiteImg;
+
/**
* 标签
*/
- private String tag;
+ @TableField(typeHandler = StringListTypeHandler.class)
+ private List tag;
/**
* 默认是1,正常状态(出售中), 0:下架(仓库中) 2:待审核
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 ede98ea..5d0f360 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
@@ -77,7 +77,7 @@ public class SkuDO extends BaseDO {
*/
private String overview;
/**
- * 库存
+ * 库存(-1代表无限库存)
*/
private Integer stocks;
/**
@@ -124,13 +124,19 @@ public class SkuDO extends BaseDO {
* 0 禁用 1 启用
*/
private Integer status;
- /**
- * 0 正常 1 已被删除
- */
- private Integer isDelete;
/**
* 最小购买数量
*/
private Integer moq;
+ /**
+ * 是否上下架0下架1上架
+ */
+ private Integer isShelf;
+
+ /**
+ * 是否默认规则0否1是
+ */
+ private Integer isSpecs;
+
}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServiceDetailsDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServiceDetailsDO.java
new file mode 100644
index 0000000..6146268
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServiceDetailsDO.java
@@ -0,0 +1,81 @@
+package com.tashow.cloud.product.dto;
+
+import lombok.*;
+import java.util.*;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 服务详情 DO
+ *
+ * @author 芋道源码
+ */
+@TableName("tz_sku_service_details")
+@KeySequence("tz_sku_service_details_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SkuServiceDetailsDO extends BaseDO {
+
+ /**
+ * 服务详情的唯一标识符
+ */
+ @TableId
+ private Long id;
+ /**
+ * 关联的扩展服务ID
+ */
+ private Long serviceId;
+ /**
+ * 图片
+ */
+ private String pic;
+ /**
+ * 名称
+ */
+ private String name;
+ /**
+ * 价格
+ */
+ private BigDecimal price;
+ /**
+ * 是否收费0:免费1收费
+ */
+ private Integer isCharge;
+ /**
+ * 是否默认值0否1是
+ */
+ private Integer isDefault;
+ /**
+ * 类型:0:配置信息1:交付方式
+ */
+ private Integer type;
+
+ /**
+ * 地点
+ */
+ private String adress;
+
+ /**
+ * 触发节点名称
+ */
+ private String trigger;
+
+ /**
+ * 触发节点id
+ */
+ private Long triggerId;
+
+ /**
+ * 描述
+ */
+ private String describe;
+
+
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServicesFormDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServicesFormDO.java
index 17457eb..9f56d6d 100644
--- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServicesFormDO.java
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/SkuServicesFormDO.java
@@ -43,6 +43,12 @@ public class SkuServicesFormDO extends BaseDO {
* 是否启用该服务
*/
private Integer isEnabled;
+
+ /**
+ * 类型
+ */
+ private Integer type;
+
/**
* 创建时间
*/
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
new file mode 100644
index 0000000..a8c5345
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuServiceDetailsMapper.java
@@ -0,0 +1,20 @@
+package com.tashow.cloud.product.mapper;
+
+import java.util.*;
+
+import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX;
+import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
+import com.tashow.cloud.product.dto.SkuServiceDetailsDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 服务详情 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface SkuServiceDetailsMapper extends BaseMapperX {
+
+
+}
\ No newline at end of file
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 053105c..c2c8b86 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
@@ -3,6 +3,7 @@ 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 jakarta.validation.*;
@@ -24,6 +25,13 @@ public interface SkuService {
*/
Long createSku(@Valid SkuSaveReqVO createReqVO);
+ /**
+ * 创建sku扩展服务配置
+ *
+ * @param skuExtendVO 更新信息
+ */
+ void createSkuExtend(@Valid SkuExtendVO skuExtendVO);
+
/**
* 更新单品SKU
*
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuServiceDetailsService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuServiceDetailsService.java
new file mode 100644
index 0000000..2da66d1
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuServiceDetailsService.java
@@ -0,0 +1,57 @@
+package com.tashow.cloud.product.service;
+
+import java.util.*;
+
+import com.tashow.cloud.product.dto.SkuServiceDetailsDO;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsPageReqVO;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsSaveReqVO;
+import jakarta.validation.*;
+import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.common.pojo.PageParam;
+
+/**
+ * 服务详情 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface SkuServiceDetailsService {
+
+ /**
+ * 创建服务详情
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createSkuServiceDetails(@Valid SkuServiceDetailsSaveReqVO createReqVO);
+
+ /**
+ * 更新服务详情
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateSkuServiceDetails(@Valid SkuServiceDetailsSaveReqVO updateReqVO);
+
+ /**
+ * 删除服务详情
+ *
+ * @param id 编号
+ */
+ void deleteSkuServiceDetails(Long id);
+
+ /**
+ * 获得服务详情
+ *
+ * @param id 编号
+ * @return 服务详情
+ */
+ SkuServiceDetailsDO getSkuServiceDetails(Long id);
+
+ /**
+ * 获得服务详情分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 服务详情分页
+ */
+ PageResult getSkuServiceDetailsPage(SkuServiceDetailsPageReqVO pageReqVO);
+
+}
\ No newline at end of file
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 4a9ba7f..2a3afd5 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
@@ -64,6 +64,7 @@ public class ProdServiceImpl implements ProdService {
private ProdWeightRangePricesMapper prodWeightRangePricesMapper;
@Override
+ @Transactional
public Long createProd(ProdSaveReqVO createReqVO) {
// 插入
ProdDO prod = BeanUtils.toBean(createReqVO, ProdDO.class);
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceDetailsServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceDetailsServiceImpl.java
new file mode 100644
index 0000000..f89e4e3
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceDetailsServiceImpl.java
@@ -0,0 +1,74 @@
+package com.tashow.cloud.product.service.impl;
+
+import com.tashow.cloud.product.dto.SkuServiceDetailsDO;
+import com.tashow.cloud.product.mapper.SkuServiceDetailsMapper;
+import com.tashow.cloud.product.service.SkuServiceDetailsService;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsPageReqVO;
+import com.tashow.cloud.product.vo.skuservicedetails.SkuServiceDetailsSaveReqVO;
+import com.tashow.cloud.productapi.enums.ErrorCodeConstants;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.tashow.cloud.common.pojo.PageResult;
+import com.tashow.cloud.common.pojo.PageParam;
+import com.tashow.cloud.common.util.object.BeanUtils;
+import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * 服务详情 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class SkuServiceDetailsServiceImpl implements SkuServiceDetailsService {
+
+ @Resource
+ private SkuServiceDetailsMapper skuServiceDetailsMapper;
+
+ @Override
+ public Long createSkuServiceDetails(SkuServiceDetailsSaveReqVO createReqVO) {
+ // 插入
+ SkuServiceDetailsDO skuServiceDetails = BeanUtils.toBean(createReqVO, SkuServiceDetailsDO.class);
+ skuServiceDetailsMapper.insert(skuServiceDetails);
+ // 返回
+ return skuServiceDetails.getId();
+ }
+
+ @Override
+ public void updateSkuServiceDetails(SkuServiceDetailsSaveReqVO updateReqVO) {
+ // 校验存在
+ validateSkuServiceDetailsExists(updateReqVO.getId());
+ // 更新
+ SkuServiceDetailsDO updateObj = BeanUtils.toBean(updateReqVO, SkuServiceDetailsDO.class);
+ skuServiceDetailsMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteSkuServiceDetails(Long id) {
+ // 校验存在
+ validateSkuServiceDetailsExists(id);
+ // 删除
+ skuServiceDetailsMapper.deleteById(id);
+ }
+
+ private void validateSkuServiceDetailsExists(Long id) {
+ if (skuServiceDetailsMapper.selectById(id) == null) {
+ throw exception(ErrorCodeConstants.SKU_SERVICE_DETAILS_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public SkuServiceDetailsDO getSkuServiceDetails(Long id) {
+ return skuServiceDetailsMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getSkuServiceDetailsPage(SkuServiceDetailsPageReqVO pageReqVO) {
+ return null;
+ }
+
+}
\ No newline at end of file
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 5fccb11..c093bef 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,10 +1,12 @@
package com.tashow.cloud.product.service.impl;
-import com.tashow.cloud.product.dto.SkuDO;
-import com.tashow.cloud.product.mapper.SkuMapper;
+import com.tashow.cloud.product.dto.*;
+import com.tashow.cloud.product.mapper.*;
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.productapi.enums.BaseEnum;
import com.tashow.cloud.productapi.enums.ErrorCodeConstants;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
@@ -30,6 +32,16 @@ public class SkuServiceImpl implements SkuService {
@Resource
private SkuMapper skuMapper;
+ @Resource
+ private SkuServiceDetailsMapper skuServiceDetailsMapper;
+ @Resource
+ private SkuServicesFormMapper skuServicesFormMapper;
+ @Resource
+ private SkuServiceMaterialMapper skuServiceMaterialMapper;
+ @Resource
+ private SkuServiceTransportMapper skuServiceTransportMapper;
+ @Resource
+ private SkuServiceDeliverMapper skuServiceDeliverMapper;
@Override
public Long createSku(SkuSaveReqVO createReqVO) {
@@ -40,6 +52,164 @@ public class SkuServiceImpl implements SkuService {
return sku.getSkuId();
}
+ @Override
+ @Transactional
+ public void createSkuExtend(SkuExtendVO skuExtendVO) {
+ //接运车辆配置
+ if(Objects.equals(skuExtendVO.getTransportCarSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("接运车辆配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(1);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceDetailsDO skuServiceDetailsDO:skuExtendVO.getTransportCarList()){
+ skuServiceDetailsDO.setServiceId(skuServicesFormDO.getId());
+ skuServiceDetailsMapper.insert(skuServiceDetailsDO);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("接运车辆服务物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(2);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getTransportCarMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+ //遗体运输目的地配置
+ if(Objects.equals(skuExtendVO.getTrafficSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("遗体运输目的地配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(3);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceTransportDO skuServiceTransportDO:skuExtendVO.getTrafficList()){
+ skuServiceTransportDO.setServiceId(skuServicesFormDO.getId());
+ skuServiceTransportMapper.insert(skuServiceTransportDO);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("遗体运输目的地物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(4);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getTrafficMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+ //遗体清洁配置
+ if(Objects.equals(skuExtendVO.getCleanSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("遗体清洁配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(5);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getCleanList()){
+ skuServiceDetails.setServiceId(skuServicesFormDO.getId());
+ skuServiceDetailsMapper.insert(skuServiceDetails);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("遗体清洁物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(6);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getCleanMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+ //追思告别配置
+ if(Objects.equals(skuExtendVO.getReflectionSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("追思告别配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(7);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getReflectionList()){
+ skuServiceDetails.setServiceId(skuServicesFormDO.getId());
+ skuServiceDetailsMapper.insert(skuServiceDetails);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("追思告别物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(8);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getReflectionMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+
+ //遗体火化配置
+ if(Objects.equals(skuExtendVO.getCremationSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("遗体火化配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(9);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getCremationList()){
+ skuServiceDetails.setServiceId(skuServicesFormDO.getId());
+ skuServiceDetailsMapper.insert(skuServiceDetails);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("遗体火化物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(10);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getCremationMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+
+ //骨灰处理配置
+ if(Objects.equals(skuExtendVO.getAshProcessingSwitch(),BaseEnum.YES_ONE.getKey())){
+ SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
+ skuServicesFormDO.setServiceName("骨灰处理配置");
+ skuServicesFormDO.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesFormDO.setType(9);
+ skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesFormDO);
+ for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getAshProcessingList()){
+ skuServiceDetails.setServiceId(skuServicesFormDO.getId());
+ skuServiceDetailsMapper.insert(skuServiceDetails);
+ }
+ SkuServicesFormDO skuForm = new SkuServicesFormDO();
+ skuForm.setServiceName("骨灰处理配送方式");
+ skuForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuForm.setType(10);
+ skuForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuForm);
+ for(SkuServiceDeliverDO skuServiceDeliverDO:skuExtendVO.getAshProcessingDeliverList()){
+ skuServiceDeliverDO.setServiceId(skuForm.getId());
+ skuServiceDeliverMapper.insert(skuServiceDeliverDO);
+ }
+ SkuServicesFormDO skuServicesForm = new SkuServicesFormDO();
+ skuServicesForm.setServiceName("骨灰处理物料");
+ skuServicesForm.setIsEnabled(BaseEnum.YES.getKey());
+ skuServicesForm.setType(10);
+ skuServicesForm.setName(skuExtendVO.getSkuFormName());
+ skuServicesFormMapper.insert(skuServicesForm);
+ for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getAshProcessingMaterialList()){
+ skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
+ skuServiceMaterialMapper.insert(skuServiceMaterialDO);
+ }
+ }
+
+
+
+ }
+
@Override
public void updateSku(SkuSaveReqVO updateReqVO) {
// 校验存在
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdPageReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdPageReqVO.java
index 1576ccd..485806d 100644
--- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdPageReqVO.java
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdPageReqVO.java
@@ -8,6 +8,7 @@ import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
+import java.util.List;
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,7 +25,7 @@ public class ProdPageReqVO extends PageParam {
private String abbreviation;
@Schema(description = "seo标题", example = "李四")
- private String seoName;
+ private String seoShortName;
@Schema(description = "seo搜索")
private String seoSearch;
@@ -53,7 +54,7 @@ public class ProdPageReqVO extends PageParam {
/**
* 标签
*/
- private String tag;
+ public List tag;
@Schema(description = "商品编号")
private String prodNumber;
@@ -64,6 +65,16 @@ public class ProdPageReqVO extends PageParam {
@Schema(description = "商品轮播图片,以,分割")
private String imgs;
+ /**
+ * 视频
+ */
+ private String video;
+
+ /**
+ * 商品轮播图片,以,分割
+ */
+ private String whiteImg;
+
@Schema(description = "默认是1,正常状态(出售中), 0:下架(仓库中) 2:待审核", example = "2")
private Integer status;
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdRespVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdRespVO.java
index c319247..655c9c7 100644
--- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdRespVO.java
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdRespVO.java
@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
+import java.util.List;
@Schema(description = "管理后台 - 商品 Response VO")
@Data
@@ -26,7 +27,8 @@ public class ProdRespVO {
@Schema(description = "seo标题", example = "李四")
@ExcelProperty("seo标题")
- private String seoName;
+ private String seoShortName;
+
@Schema(description = "seo搜索")
@ExcelProperty("seo搜索")
@@ -64,6 +66,16 @@ public class ProdRespVO {
@ExcelProperty("商品轮播图片,以,分割")
private String imgs;
+ /**
+ * 视频
+ */
+ private String video;
+
+ /**
+ * 商品轮播图片,以,分割
+ */
+ private String whiteImg;
+
@Schema(description = "默认是1,正常状态(出售中), 0:下架(仓库中) 2:待审核", example = "2")
@ExcelProperty("默认是1,正常状态(出售中), 0:下架(仓库中) 2:待审核")
private Integer status;
@@ -88,7 +100,7 @@ public class ProdRespVO {
/**
* 标签
*/
- private String tag;
+ public List tag;
@Schema(description = "分享话术")
@ExcelProperty("分享话术")
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 6a4458c..f5ae6cf 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
@@ -1,11 +1,13 @@
package com.tashow.cloud.product.vo.prod;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.tashow.cloud.product.dto.SkuDO;
import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO;
+//import com.tashow.cloud.productapi.general.StringListTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
-
+import org.apache.ibatis.type.TypeHandler;
import java.util.List;
@Schema(description = "管理后台 - 商品新增/修改 Request VO")
@@ -23,7 +25,7 @@ public class ProdSaveReqVO {
private String abbreviation;
@Schema(description = "seo标题", example = "李四")
- private String seoName;
+ private String seoShortName;
@Schema(description = "seo搜索")
private String seoSearch;
@@ -42,6 +44,15 @@ public class ProdSaveReqVO {
@Schema(description = "详细描述")
private String content;
+ /**
+ * 视频
+ */
+ private String video;
+
+ /**
+ * 白底图
+ */
+ private String whiteImg;
@Schema(description = "商品编号")
private String prodNumber;
@@ -74,7 +85,7 @@ public class ProdSaveReqVO {
/**
* 标签
*/
- private String tag;
+ public List tag;
@Schema(description = "分享话术")
private String shareContent;
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuExtendVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuExtendVO.java
new file mode 100644
index 0000000..250a798
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/sku/SkuExtendVO.java
@@ -0,0 +1,62 @@
+package com.tashow.cloud.product.vo.sku;
+
+import com.tashow.cloud.product.dto.*;
+import com.tashow.cloud.product.vo.prodemergencyresponse.ProdEmergencyInfoVO;
+import com.tashow.cloud.product.vo.prodserviceareas.ProdServiceAreasInfoVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "sku扩展服务配置 VO")
+@Data
+public class SkuExtendVO {
+
+ @Schema(description = "表单名称")
+ private String skuFormName;
+
+ @Schema(description = "遗体接运车辆配置0关1开")
+ private Integer transportCarSwitch;
+ @Schema(description = "遗体接运扩展服务配置")
+ public List transportCarList;
+ @Schema(description = "遗体接运服务物料")
+ public List transportCarMaterialList;
+
+ @Schema(description = "遗体运输目的地配置0关1开")
+ private Integer trafficSwitch;
+ @Schema(description = "遗体运输目的地配置")
+ public List trafficList;
+ @Schema(description = "遗体运输目的地物料")
+ public List trafficMaterialList;
+
+ @Schema(description = "遗体清洁配置0关1开")
+ private Integer cleanSwitch;
+ @Schema(description = "遗体清洁配置")
+ public List cleanList;
+ @Schema(description = "遗体清洁物料")
+ public List cleanMaterialList;
+
+ @Schema(description = "追思告别配置0关1开")
+ private Integer reflectionSwitch;
+ @Schema(description = "追思告别配置")
+ public List reflectionList;
+ @Schema(description = "追思告别物料")
+ public List reflectionMaterialList;
+
+ @Schema(description = "遗体火化配置0关1开")
+ private Integer cremationSwitch;
+ @Schema(description = "遗体火化配置")
+ public List cremationList;
+ @Schema(description = "遗体火化物料")
+ public List cremationMaterialList;
+
+ @Schema(description = "骨灰处理配置0关1开")
+ private Integer ashProcessingSwitch;
+ @Schema(description = "骨灰处理配置")
+ public List ashProcessingList;
+ @Schema(description = "骨灰处理配送方式配置")
+ public List ashProcessingDeliverList;
+ @Schema(description = "骨灰处理物料")
+ public List ashProcessingMaterialList;
+
+}
\ 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 f4009cc..a50fdfa 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
@@ -94,5 +94,13 @@ public class SkuPageReqVO extends PageParam {
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
+ /**
+ * 是否上下架0下架1上架
+ */
+ private Integer isShelf;
+ /**
+ * 是否默认规则0否1是
+ */
+ private Integer isSpecs;
}
\ No newline at end of file
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 a1db220..3917425 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
@@ -120,5 +120,13 @@ public class SkuRespVO {
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
+ /**
+ * 是否上下架0下架1上架
+ */
+ private Integer isShelf;
+ /**
+ * 是否默认规则0否1是
+ */
+ private Integer isSpecs;
}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsPageReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsPageReqVO.java
new file mode 100644
index 0000000..2cfe580
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsPageReqVO.java
@@ -0,0 +1,57 @@
+package com.tashow.cloud.product.vo.skuservicedetails;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.tashow.cloud.common.pojo.PageParam;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 服务详情分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SkuServiceDetailsPageReqVO extends PageParam {
+
+ @Schema(description = "关联的扩展服务ID", example = "21602")
+ private Long serviceId;
+
+ @Schema(description = "图片")
+ private String pic;
+
+ @Schema(description = "名称", example = "张三")
+ private String name;
+
+ @Schema(description = "价格", example = "16929")
+ private BigDecimal price;
+
+ @Schema(description = "是否收费0:免费1收费")
+ private Boolean isCharge;
+
+ @Schema(description = "是否默认值0否1是")
+ private Boolean isDefault;
+
+ @Schema(description = "类型:0:配置信息1:交付方式", example = "2")
+ private Boolean type;
+
+ @Schema(description = "描述")
+ private String describe;
+
+ /**
+ * 地点
+ */
+ private String adress;
+
+ /**
+ * 触发节点名称
+ */
+ private String trigger;
+
+ /**
+ * 触发节点id
+ */
+ private Long triggerId;
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsRespVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsRespVO.java
new file mode 100644
index 0000000..091e71a
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsRespVO.java
@@ -0,0 +1,67 @@
+package com.tashow.cloud.product.vo.skuservicedetails;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 服务详情 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class SkuServiceDetailsRespVO {
+
+ @Schema(description = "服务详情的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "17139")
+ @ExcelProperty("服务详情的唯一标识符")
+ private Long id;
+
+ @Schema(description = "关联的扩展服务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21602")
+ @ExcelProperty("关联的扩展服务ID")
+ private Long serviceId;
+
+ @Schema(description = "图片")
+ @ExcelProperty("图片")
+ private String pic;
+
+ @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+ @ExcelProperty("名称")
+ private String name;
+
+ @Schema(description = "价格", example = "16929")
+ @ExcelProperty("价格")
+ private BigDecimal price;
+
+ @Schema(description = "是否收费0:免费1收费")
+ @ExcelProperty("是否收费0:免费1收费")
+ private Boolean isCharge;
+
+ @Schema(description = "是否默认值0否1是")
+ @ExcelProperty("是否默认值0否1是")
+ private Boolean isDefault;
+
+ @Schema(description = "类型:0:配置信息1:交付方式", example = "2")
+ @ExcelProperty("类型:0:配置信息1:交付方式")
+ private Boolean type;
+
+ @Schema(description = "描述")
+ @ExcelProperty("描述")
+ private String describe;
+
+ /**
+ * 地点
+ */
+ private String adress;
+
+ /**
+ * 触发节点名称
+ */
+ private String trigger;
+
+ /**
+ * 触发节点id
+ */
+ private Long triggerId;
+
+}
\ No newline at end of file
diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsSaveReqVO.java
new file mode 100644
index 0000000..c73b048
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/skuservicedetails/SkuServiceDetailsSaveReqVO.java
@@ -0,0 +1,58 @@
+package com.tashow.cloud.product.vo.skuservicedetails;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 服务详情新增/修改 Request VO")
+@Data
+public class SkuServiceDetailsSaveReqVO {
+
+ @Schema(description = "服务详情的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "17139")
+ private Long id;
+
+ @Schema(description = "关联的扩展服务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21602")
+ @NotNull(message = "关联的扩展服务ID不能为空")
+ private Long serviceId;
+
+ @Schema(description = "图片")
+ private String pic;
+
+ @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+ @NotEmpty(message = "名称不能为空")
+ private String name;
+
+ @Schema(description = "价格", example = "16929")
+ private BigDecimal price;
+
+ @Schema(description = "是否收费0:免费1收费")
+ private Boolean isCharge;
+
+ @Schema(description = "是否默认值0否1是")
+ private Boolean isDefault;
+
+ @Schema(description = "类型:0:配置信息1:交付方式", example = "2")
+ private Boolean type;
+
+ @Schema(description = "描述")
+ private String describe;
+ /**
+ * 地点
+ */
+ private String adress;
+
+ /**
+ * 触发节点名称
+ */
+ private String trigger;
+
+ /**
+ * 触发节点id
+ */
+ private Long triggerId;
+
+}
\ 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
new file mode 100644
index 0000000..56dfd4a
--- /dev/null
+++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuServiceDetailsMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file