产品模块4
This commit is contained in:
BIN
logs/gateway-server.log.2025-07-28.0.gz
Normal file
BIN
logs/gateway-server.log.2025-07-28.0.gz
Normal file
Binary file not shown.
BIN
logs/infra-server.log.2025-07-28.0.gz
Normal file
BIN
logs/infra-server.log.2025-07-28.0.gz
Normal file
Binary file not shown.
BIN
logs/system-server.log.2025-07-28.0.gz
Normal file
BIN
logs/system-server.log.2025-07-28.0.gz
Normal file
Binary file not shown.
@@ -13,6 +13,7 @@
|
||||
<modules>
|
||||
<module>tashow-infra-api</module>
|
||||
<module>tashow-system-api</module>
|
||||
<module>tashow-product-api</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
|
||||
40
tashow-feign/tashow-product-api/pom.xml
Normal file
40
tashow-feign/tashow-product-api/pom.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
<artifactId>tashow-feign</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<artifactId>tashow-product-api</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>${project.artifactId}</name>
|
||||
<description>
|
||||
infra 模块 API,暴露给其它模块调用
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
<artifactId>tashow-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 参数校验 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- RPC 远程调用相关 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* infra API 包,定义暴露给其它模块的 API
|
||||
*/
|
||||
package com.tashow.cloud.productapi.api;
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.tashow.cloud.productapi.enums;
|
||||
|
||||
|
||||
import com.tashow.cloud.common.enums.RpcConstants;
|
||||
|
||||
/**
|
||||
* API 相关的枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public class ApiConstants {
|
||||
|
||||
/**
|
||||
* 服务名
|
||||
*
|
||||
* 注意,需要保证和 spring.application.name 保持一致
|
||||
*/
|
||||
public static final String NAME = "product-server";
|
||||
|
||||
public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/infra";
|
||||
|
||||
public static final String VERSION = "1.0.0";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.tashow.cloud.productapi.enums;
|
||||
|
||||
/**
|
||||
* Infra 字典类型的枚举类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface DictTypeConstants {
|
||||
|
||||
String JOB_STATUS = "product_job_status"; // 定时任务状态的枚举
|
||||
String JOB_LOG_STATUS = "product_job_log_status"; // 定时任务日志状态的枚举
|
||||
|
||||
String API_ERROR_LOG_PROCESS_STATUS = "product_api_error_log_process_status"; // API 错误日志的处理状态的枚举
|
||||
|
||||
String CONFIG_TYPE = "product_config_type"; // 参数配置类型
|
||||
String BOOLEAN_STRING = "product_boolean_string"; // Boolean 是否类型
|
||||
|
||||
String OPERATE_TYPE = "product_operate_type"; // 操作类型
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.tashow.cloud.productapi.enums;
|
||||
|
||||
|
||||
import com.tashow.cloud.common.exception.ErrorCode;
|
||||
|
||||
/**
|
||||
* Infra 错误码枚举类
|
||||
*
|
||||
* infra 系统,使用 1-001-000-000 段
|
||||
*/
|
||||
public interface ErrorCodeConstants {
|
||||
|
||||
ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(10001, "产品类目不存在");
|
||||
ErrorCode PROD_NOT_EXISTS = new ErrorCode(10002, "商品不存在");
|
||||
ErrorCode PROD_ADDITIONAL_FEE_DATES_NOT_EXISTS = new ErrorCode(10003, "特殊日期附加费用规则不存在");
|
||||
ErrorCode PROD_ADDITIONAL_FEE_PERIODS_NOT_EXISTS = new ErrorCode(10004, "特殊时段附加费用规则不存在");
|
||||
}
|
||||
@@ -42,11 +42,12 @@
|
||||
<version>2.2.20</version>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.github.jsqlparser</groupId>-->
|
||||
<!-- <artifactId>jsqlparser</artifactId>-->
|
||||
<!-- <version>4.5</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
<artifactId>tashow-framework-monitor</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- EasyExcel 核心库 -->
|
||||
<dependency>
|
||||
@@ -55,7 +56,16 @@
|
||||
<version>4.0.3</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
<artifactId>tashow-product-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
<artifactId>tashow-data-excel</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<!-- RPC 远程调用相关 -->
|
||||
<dependency>
|
||||
<groupId>com.tashow.cloud</groupId>
|
||||
|
||||
@@ -1,54 +1,93 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*//*
|
||||
|
||||
|
||||
package com.tashow.cloud.product.controller;
|
||||
|
||||
import com.tashow.cloud.product.domain.Category;
|
||||
import com.tashow.cloud.product.domain.ServerResponseEntity;
|
||||
import com.tashow.cloud.product.dto.CategoryDO;
|
||||
import com.tashow.cloud.product.service.CategoryService;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.tashow.cloud.product.vo.category.*;
|
||||
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 java.util.List;
|
||||
import jakarta.validation.constraints.*;
|
||||
import jakarta.validation.*;
|
||||
import jakarta.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 分类接口
|
||||
* @author lanhai
|
||||
*//*
|
||||
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.web.apilog.core.annotation.ApiAccessLog;
|
||||
import static com.tashow.cloud.web.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
@Tag(name = "管理后台 - 产品类目")
|
||||
@RestController
|
||||
@RequestMapping("/category")
|
||||
@RequestMapping("/tz/category")
|
||||
@Validated
|
||||
public class CategoryController {
|
||||
|
||||
@Autowired
|
||||
@Resource
|
||||
private CategoryService categoryService;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 分类信息列表接口
|
||||
*//*
|
||||
|
||||
@PermitAll
|
||||
@GetMapping("/categoryInfo")
|
||||
public ServerResponseEntity<List<Category>> categoryInfo() {
|
||||
List<Category> categories = categoryService.tableCategory(1L);
|
||||
return ServerResponseEntity.success(categories);
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建产品类目")
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:create')")
|
||||
public CommonResult<Long> createCategory(@Valid @RequestBody CategorySaveReqVO createReqVO) {
|
||||
return success(categoryService.createCategory(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新产品类目")
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:update')")
|
||||
public CommonResult<Boolean> updateCategory(@Valid @RequestBody CategorySaveReqVO updateReqVO) {
|
||||
categoryService.updateCategory(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除产品类目")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:delete')")
|
||||
public CommonResult<Boolean> deleteCategory(@RequestParam("id") Long id) {
|
||||
categoryService.deleteCategory(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得产品类目")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:query')")
|
||||
public CommonResult<CategoryRespVO> getCategory(@RequestParam("id") Long id) {
|
||||
CategoryDO category = categoryService.getCategory(id);
|
||||
return success(BeanUtils.toBean(category, CategoryRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得产品类目分页")
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:query')")
|
||||
public CommonResult<PageResult<CategoryRespVO>> getCategoryPage(@Valid CategoryPageReqVO pageReqVO) {
|
||||
PageResult<CategoryDO> pageResult = categoryService.getCategoryPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, CategoryRespVO.class));
|
||||
}
|
||||
|
||||
/* @GetMapping("/export-excel")
|
||||
@Operation(summary = "导出产品类目 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('tz:category:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportCategoryExcel(@Valid CategoryPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<CategoryDO> list = categoryService.getCategoryPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "产品类目.xls", "数据", CategoryRespVO.class,
|
||||
BeanUtils.toBean(list, CategoryRespVO.class));
|
||||
}*/
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.tashow.cloud.product.controller;
|
||||
|
||||
import com.tashow.cloud.product.dto.ProdAdditionalFeeDatesDO;
|
||||
import com.tashow.cloud.product.service.ProdAdditionalFeeDatesService;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesPageReqVO;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesRespVO;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesSaveReqVO;
|
||||
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/prod-additional-fee-dates")
|
||||
@Validated
|
||||
public class ProdAdditionalFeeDatesController {
|
||||
|
||||
@Resource
|
||||
private ProdAdditionalFeeDatesService prodAdditionalFeeDatesService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建特殊日期附加费用规则")
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:create')")
|
||||
public CommonResult<Long> createProdAdditionalFeeDates(@Valid @RequestBody ProdAdditionalFeeDatesSaveReqVO createReqVO) {
|
||||
return success(prodAdditionalFeeDatesService.createProdAdditionalFeeDates(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新特殊日期附加费用规则")
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:update')")
|
||||
public CommonResult<Boolean> updateProdAdditionalFeeDates(@Valid @RequestBody ProdAdditionalFeeDatesSaveReqVO updateReqVO) {
|
||||
prodAdditionalFeeDatesService.updateProdAdditionalFeeDates(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除特殊日期附加费用规则")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:delete')")
|
||||
public CommonResult<Boolean> deleteProdAdditionalFeeDates(@RequestParam("id") Long id) {
|
||||
prodAdditionalFeeDatesService.deleteProdAdditionalFeeDates(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得特殊日期附加费用规则")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:query')")
|
||||
public CommonResult<ProdAdditionalFeeDatesRespVO> getProdAdditionalFeeDates(@RequestParam("id") Long id) {
|
||||
ProdAdditionalFeeDatesDO prodAdditionalFeeDates = prodAdditionalFeeDatesService.getProdAdditionalFeeDates(id);
|
||||
return success(BeanUtils.toBean(prodAdditionalFeeDates, ProdAdditionalFeeDatesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得特殊日期附加费用规则分页")
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:query')")
|
||||
public CommonResult<PageResult<ProdAdditionalFeeDatesRespVO>> getProdAdditionalFeeDatesPage(@Valid ProdAdditionalFeeDatesPageReqVO pageReqVO) {
|
||||
PageResult<ProdAdditionalFeeDatesDO> pageResult = prodAdditionalFeeDatesService.getProdAdditionalFeeDatesPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ProdAdditionalFeeDatesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出特殊日期附加费用规则 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('tz:prod-additional-fee-dates:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportProdAdditionalFeeDatesExcel(@Valid ProdAdditionalFeeDatesPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProdAdditionalFeeDatesDO> list = prodAdditionalFeeDatesService.getProdAdditionalFeeDatesPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "特殊日期附加费用规则.xls", "数据", ProdAdditionalFeeDatesRespVO.class,
|
||||
BeanUtils.toBean(list, ProdAdditionalFeeDatesRespVO.class));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,125 +0,0 @@
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Entity基类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class BaseEntity implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 搜索值
|
||||
*/
|
||||
@JsonIgnore
|
||||
@TableField(exist = false)
|
||||
private String searchValue;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> params;
|
||||
|
||||
public String getSearchValue() {
|
||||
return searchValue;
|
||||
}
|
||||
|
||||
public void setSearchValue(String searchValue) {
|
||||
this.searchValue = searchValue;
|
||||
}
|
||||
|
||||
public String getCreateBy() {
|
||||
return createBy;
|
||||
}
|
||||
|
||||
public void setCreateBy(String createBy) {
|
||||
this.createBy = createBy;
|
||||
}
|
||||
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Date createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public String getUpdateBy() {
|
||||
return updateBy;
|
||||
}
|
||||
|
||||
public void setUpdateBy(String updateBy) {
|
||||
this.updateBy = updateBy;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return remark;
|
||||
}
|
||||
|
||||
public void setRemark(String remark) {
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public Map<String, Object> getParams() {
|
||||
if (params == null) {
|
||||
params = new HashMap<>();
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
public void setParams(Map<String, Object> params) {
|
||||
this.params = params;
|
||||
}
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*//*
|
||||
|
||||
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author lanhai
|
||||
*//*
|
||||
|
||||
@Data
|
||||
@TableName("tz_category")
|
||||
public class Category implements Serializable {
|
||||
|
||||
*/
|
||||
/**
|
||||
* 类目ID
|
||||
*//*
|
||||
|
||||
private Long categoryId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 店铺ID
|
||||
*//*
|
||||
|
||||
private Long shopId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 父节点
|
||||
*//*
|
||||
|
||||
private Long parentId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 产品类目名称
|
||||
*//*
|
||||
|
||||
private String categoryName;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 类目图标
|
||||
*//*
|
||||
|
||||
private String icon;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 类目的显示图片
|
||||
*//*
|
||||
|
||||
private String pic;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 类目描述
|
||||
*//*
|
||||
|
||||
private String describe;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 标签
|
||||
*//*
|
||||
|
||||
private String tag;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 排序
|
||||
*//*
|
||||
|
||||
private Integer seq;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 默认是1,表示正常状态,0为下线状态
|
||||
*//*
|
||||
|
||||
private Integer status;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 创建时间
|
||||
*//*
|
||||
|
||||
private Date createTime;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 创建时间
|
||||
*//*
|
||||
|
||||
private String creator;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 分类层级
|
||||
*//*
|
||||
|
||||
private Integer grade;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 更新时间
|
||||
*//*
|
||||
|
||||
private Date updateTime;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 修改人
|
||||
*//*
|
||||
|
||||
private String updater;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
}
|
||||
*/
|
||||
@@ -1,200 +0,0 @@
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
/**
|
||||
* 商品对象 prod
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-07-25
|
||||
*/
|
||||
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Prod extends BaseEntity {
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@ApiModelProperty(value = "产品ID", position = 0)
|
||||
private Long prodId;
|
||||
|
||||
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@ApiModelProperty(value = "商品名称", position = 1)
|
||||
private String prodName;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "商品简称", position = 2)
|
||||
private String abbreviation;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "seo标题", position = 3)
|
||||
private String seoName;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "seo搜索", position = 4)
|
||||
private String seoSearch;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "关键词", position = 5)
|
||||
private String keyword;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "店铺id", position = 6)
|
||||
private Long shopId;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "简要描述,卖点等", position = 7)
|
||||
private String brief;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "品牌", position = 8)
|
||||
private String brand;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "详细描述", position = 9)
|
||||
private String content;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "商品编号", position = 10)
|
||||
private String prodNumber;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "商品主图", position = 11)
|
||||
private String pic;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "商品轮播图片,以,分割", position = 12)
|
||||
private String imgs;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "默认是1,表示正常状态, -1表示删除, 0下架", position = 13)
|
||||
private Long status;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "商品分类", position = 14)
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "销量", position = 15)
|
||||
private Long soldNum;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "分享图", position = 16)
|
||||
private String shareImage;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "分享话术", position = 17)
|
||||
private String shareContent;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否开启区域0关1开", position = 18)
|
||||
private Integer regionSwitch;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否特殊时段0关1开", position = 19)
|
||||
private Integer additionalSwitch;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否特殊日期(节假日周末什么的)0关1开", position = 20)
|
||||
private Integer additionalFeeSwitch;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否紧急响应服务0关1开", position = 21)
|
||||
private Integer emergencySwitch;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否预约0关1开", position = 22)
|
||||
private Integer reservationSwitch;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否接单上线0关1开", position = 23)
|
||||
private Integer orderLimitSwitch;
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "是否开启体重配置0关1开", position = 24)
|
||||
private Integer weightSwitch;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "版本 乐观锁", position = 29)
|
||||
private Long version;
|
||||
|
||||
/**
|
||||
* 展示的权重
|
||||
*/
|
||||
@ApiModelProperty(value = "展示的权重", position = 30)
|
||||
private Long top;
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*/
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
public interface ResponseCode {
|
||||
|
||||
int SUCCESS = 1;
|
||||
int FAIL = -1;
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*/
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
/**
|
||||
* @author FrozenWatermelon
|
||||
* @date 2020/7/9
|
||||
*/
|
||||
public enum ResponseEnum {
|
||||
|
||||
/**
|
||||
* ok
|
||||
*/
|
||||
OK("00000", "ok"),
|
||||
SHOW_FAIL("A00001", "cw"),
|
||||
|
||||
/**
|
||||
* 用于直接显示提示用户的错误,内容由输入内容决定
|
||||
*/
|
||||
|
||||
/**
|
||||
* 用于直接显示提示系统的成功,内容由输入内容决定
|
||||
*/
|
||||
SHOW_SUCCESS("A00002", ""),
|
||||
|
||||
/**
|
||||
* 未授权
|
||||
*/
|
||||
UNAUTHORIZED("A00004", "Unauthorized"),
|
||||
|
||||
/**
|
||||
* 服务器出了点小差
|
||||
*/
|
||||
EXCEPTION("A00005", "服务器出了点小差"),
|
||||
/**
|
||||
* 方法参数没有校验,内容由输入内容决定
|
||||
*/
|
||||
METHOD_ARGUMENT_NOT_VALID("A00014", "方法参数没有校验");
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String msg;
|
||||
|
||||
public String value() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
ResponseEnum(String code, String msg) {
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ResponseEnum{" + "code='" + code + '\'' + ", msg='" + msg + '\'' + "} " + super.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,198 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*/
|
||||
|
||||
package com.tashow.cloud.product.domain;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Slf4j
|
||||
public class ServerResponseEntity<T> implements Serializable {
|
||||
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 信息
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 数据
|
||||
*/
|
||||
private T data;
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
private String version;
|
||||
|
||||
/**
|
||||
* 时间
|
||||
*/
|
||||
private Long timestamp;
|
||||
|
||||
private String sign;
|
||||
|
||||
public String getSign() {
|
||||
return sign;
|
||||
}
|
||||
|
||||
public void setSign(String sign) {
|
||||
this.sign = sign;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public T getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public ServerResponseEntity setData(T data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public Long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
public void setTimestamp(Long timestamp) {
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
|
||||
public boolean isSuccess() {
|
||||
return Objects.equals(ResponseEnum.OK.value(), this.code);
|
||||
}
|
||||
public boolean isFail() {
|
||||
return !Objects.equals(ResponseEnum.OK.value(), this.code);
|
||||
}
|
||||
|
||||
public ServerResponseEntity() {
|
||||
// 版本号
|
||||
this.version = "mall4j.v230424";
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> success(T data) {
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setData(data);
|
||||
serverResponseEntity.setCode(ResponseEnum.OK.value());
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> success() {
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setCode(ResponseEnum.OK.value());
|
||||
serverResponseEntity.setMsg(ResponseEnum.OK.getMsg());
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> success(Integer code, T data) {
|
||||
return success(String.valueOf(code), data);
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> success(String code, T data) {
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setCode(code);
|
||||
serverResponseEntity.setData(data);
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 前端显示失败消息
|
||||
* @param msg 失败消息
|
||||
* @return
|
||||
*/
|
||||
public static <T> ServerResponseEntity<T> showFailMsg(String msg) {
|
||||
log.error(msg);
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setMsg(msg);
|
||||
serverResponseEntity.setCode(ResponseEnum.SHOW_FAIL.value());
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> fail(ResponseEnum responseEnum) {
|
||||
log.error(responseEnum.toString());
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setMsg(responseEnum.getMsg());
|
||||
serverResponseEntity.setCode(responseEnum.value());
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> fail(ResponseEnum responseEnum, T data) {
|
||||
log.error(responseEnum.toString());
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setMsg(responseEnum.getMsg());
|
||||
serverResponseEntity.setCode(responseEnum.value());
|
||||
serverResponseEntity.setData(data);
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> fail(String code, String msg, T data) {
|
||||
log.error(msg);
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setMsg(msg);
|
||||
serverResponseEntity.setCode(code);
|
||||
serverResponseEntity.setData(data);
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> fail(String code, String msg) {
|
||||
return fail(code, msg, null);
|
||||
}
|
||||
|
||||
public static <T> ServerResponseEntity<T> fail(Integer code, T data) {
|
||||
ServerResponseEntity<T> serverResponseEntity = new ServerResponseEntity<>();
|
||||
serverResponseEntity.setCode(String.valueOf(code));
|
||||
serverResponseEntity.setData(data);
|
||||
return serverResponseEntity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ServerResponseEntity{" +
|
||||
"code='" + code + '\'' +
|
||||
", msg='" + msg + '\'' +
|
||||
", data=" + data +
|
||||
", version='" + version + '\'' +
|
||||
", timestamp=" + timestamp +
|
||||
", sign='" + sign + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.tashow.cloud.product.dto;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
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_category")
|
||||
@KeySequence("tz_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class CategoryDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 类目ID
|
||||
*/
|
||||
@TableId
|
||||
private Long categoryId;
|
||||
/**
|
||||
* 店铺ID
|
||||
*/
|
||||
private Long shopId;
|
||||
/**
|
||||
* 父节点
|
||||
*/
|
||||
private Long parentId;
|
||||
/**
|
||||
* 产品类目名称
|
||||
*/
|
||||
private String categoryName;
|
||||
/**
|
||||
* 类目图标
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* 类目的显示图片
|
||||
*/
|
||||
private String pic;
|
||||
/**
|
||||
* 类目描述
|
||||
*/
|
||||
private String describe;
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tag;
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer seq;
|
||||
/**
|
||||
* 默认是1,表示正常状态,0为下线状态
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 分类层级
|
||||
*/
|
||||
private Integer grade;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
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_prod_additional_fee_dates")
|
||||
@KeySequence("tz_prod_additional_fee_dates_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProdAdditionalFeeDatesDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 特殊日期规则的唯一标识符
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 商品id
|
||||
*/
|
||||
private Long prodId;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'
|
||||
*/
|
||||
private Boolean dateType;
|
||||
/**
|
||||
* 自定义日期时间段(JSON格式存储)
|
||||
*/
|
||||
private String customTimeSlots;
|
||||
/**
|
||||
* 指定日期(JSON格式存储)
|
||||
*/
|
||||
private String specificDates;
|
||||
/**
|
||||
* 收费方式
|
||||
*/
|
||||
private String chargeMode;
|
||||
/**
|
||||
* 价格或上浮百分比
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 是否启用该规则
|
||||
*/
|
||||
private Boolean isEnabled;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createdAt;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
||||
@@ -1,46 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*//*
|
||||
|
||||
|
||||
package com.tashow.cloud.product.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tashow.cloud.product.domain.Category;
|
||||
import java.util.*;
|
||||
|
||||
import java.util.List;
|
||||
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.CategoryDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author lanhai
|
||||
*//*
|
||||
|
||||
public interface CategoryMapper extends BaseMapper<Category> {
|
||||
|
||||
*/
|
||||
/**
|
||||
* 根据父级id获取分类列表
|
||||
*
|
||||
* @param parentId
|
||||
* @return
|
||||
*//*
|
||||
|
||||
List<Category> listByParentId(Long parentId);
|
||||
* 产品类目 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface CategoryMapper extends BaseMapperX<CategoryDO> {
|
||||
|
||||
|
||||
*/
|
||||
/**
|
||||
* 根据店铺id获取分类列表
|
||||
*
|
||||
* @param shopId
|
||||
* @return
|
||||
*//*
|
||||
|
||||
List<Category> tableCategory(Long shopId);
|
||||
}*/
|
||||
}
|
||||
@@ -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.ProdAdditionalFeeDatesDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 特殊日期附加费用规则 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProdAdditionalFeeDatesMapper extends BaseMapperX<ProdAdditionalFeeDatesDO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,71 +1,57 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*//*
|
||||
|
||||
|
||||
package com.tashow.cloud.product.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tashow.cloud.product.domain.Category;
|
||||
import java.util.*;
|
||||
|
||||
import java.util.List;
|
||||
import com.tashow.cloud.product.dto.CategoryDO;
|
||||
import com.tashow.cloud.product.vo.category.CategoryPageReqVO;
|
||||
import com.tashow.cloud.product.vo.category.CategorySaveReqVO;
|
||||
import jakarta.validation.*;
|
||||
import com.tashow.cloud.common.pojo.PageResult;
|
||||
import com.tashow.cloud.common.pojo.PageParam;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author lanhai
|
||||
* 商品分类
|
||||
*//*
|
||||
* 产品类目 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface CategoryService {
|
||||
|
||||
public interface CategoryService extends IService<Category> {
|
||||
/**
|
||||
* 创建产品类目
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createCategory(@Valid CategorySaveReqVO createReqVO);
|
||||
|
||||
*/
|
||||
/**
|
||||
* 根据parentId获取分类
|
||||
* @param parentId 0 一级分类
|
||||
* @return
|
||||
*//*
|
||||
/**
|
||||
* 更新产品类目
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateCategory(@Valid CategorySaveReqVO updateReqVO);
|
||||
|
||||
List<Category> listByParentId(Long parentId);
|
||||
/**
|
||||
* 删除产品类目
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteCategory(Long id);
|
||||
|
||||
/**
|
||||
* 获得产品类目
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 产品类目
|
||||
*/
|
||||
CategoryDO getCategory(Long id);
|
||||
|
||||
*/
|
||||
/**
|
||||
* 获取用于页面表单展现的category列表,根据seq排序
|
||||
* @param shopId 店铺id
|
||||
* @return
|
||||
*//*
|
||||
|
||||
List<Category> tableCategory(Long shopId);
|
||||
|
||||
*/
|
||||
/**
|
||||
* 保存分类、品牌、参数
|
||||
* @param category
|
||||
*//*
|
||||
|
||||
void saveCategory(Category category);
|
||||
|
||||
*/
|
||||
/**
|
||||
* 修改分类、品牌、参数
|
||||
* @param category
|
||||
*//*
|
||||
|
||||
void updateCategory(Category category);
|
||||
|
||||
*/
|
||||
/**
|
||||
* 删除分类、品牌、参数 以及分类对应的图片
|
||||
* @param categoryId 分类id
|
||||
*//*
|
||||
|
||||
void deleteCategory(Long categoryId);
|
||||
/**
|
||||
* 获得产品类目分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 产品类目分页
|
||||
*/
|
||||
PageResult<CategoryDO> getCategoryPage(CategoryPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.tashow.cloud.product.service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.tashow.cloud.product.dto.ProdAdditionalFeeDatesDO;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesPageReqVO;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesSaveReqVO;
|
||||
import jakarta.validation.*;
|
||||
import com.tashow.cloud.common.pojo.PageResult;
|
||||
import com.tashow.cloud.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 特殊日期附加费用规则 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface ProdAdditionalFeeDatesService {
|
||||
|
||||
/**
|
||||
* 创建特殊日期附加费用规则
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProdAdditionalFeeDates(@Valid ProdAdditionalFeeDatesSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新特殊日期附加费用规则
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProdAdditionalFeeDates(@Valid ProdAdditionalFeeDatesSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除特殊日期附加费用规则
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProdAdditionalFeeDates(Long id);
|
||||
|
||||
/**
|
||||
* 获得特殊日期附加费用规则
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 特殊日期附加费用规则
|
||||
*/
|
||||
ProdAdditionalFeeDatesDO getProdAdditionalFeeDates(Long id);
|
||||
|
||||
/**
|
||||
* 获得特殊日期附加费用规则分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 特殊日期附加费用规则分页
|
||||
*/
|
||||
PageResult<ProdAdditionalFeeDatesDO> getProdAdditionalFeeDatesPage(ProdAdditionalFeeDatesPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
@@ -1,79 +1,78 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||||
*
|
||||
* https://www.mall4j.com/
|
||||
*
|
||||
* 未经允许,不可做商业用途!
|
||||
*
|
||||
* 版权所有,侵权必究!
|
||||
*//*
|
||||
|
||||
|
||||
package com.tashow.cloud.product.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tashow.cloud.product.domain.Category;
|
||||
import com.tashow.cloud.common.exception.ErrorCode;
|
||||
import com.tashow.cloud.product.dto.CategoryDO;
|
||||
import com.tashow.cloud.product.mapper.CategoryMapper;
|
||||
import com.tashow.cloud.product.service.CategoryService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.tashow.cloud.product.vo.category.CategoryPageReqVO;
|
||||
import com.tashow.cloud.product.vo.category.CategorySaveReqVO;
|
||||
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.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
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;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author lanhai
|
||||
*//*
|
||||
|
||||
* 产品类目 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {
|
||||
@Validated
|
||||
public class CategoryServiceImpl implements CategoryService {
|
||||
|
||||
@Autowired
|
||||
private CategoryMapper categoryMapper;
|
||||
@Resource
|
||||
private CategoryMapper categoryMapper;
|
||||
|
||||
@Override
|
||||
public List<Category> listByParentId(Long parentId) {
|
||||
return categoryMapper.listByParentId(parentId);
|
||||
}
|
||||
@Override
|
||||
public Long createCategory(CategorySaveReqVO createReqVO) {
|
||||
// 插入
|
||||
CategoryDO category = BeanUtils.toBean(createReqVO, CategoryDO.class);
|
||||
categoryMapper.insert(category);
|
||||
// 返回
|
||||
return category.getCategoryId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Category> tableCategory(Long shopId) {
|
||||
return categoryMapper.tableCategory(shopId);
|
||||
}
|
||||
@Override
|
||||
public void updateCategory(CategorySaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateCategoryExists(updateReqVO.getCategoryId());
|
||||
// 更新
|
||||
CategoryDO updateObj = BeanUtils.toBean(updateReqVO, CategoryDO.class);
|
||||
categoryMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveCategory(Category category) {
|
||||
category.setCreateTime(new Date());
|
||||
// 保存分类信息
|
||||
categoryMapper.insert(category);
|
||||
}
|
||||
@Override
|
||||
public void deleteCategory(Long id) {
|
||||
// 校验存在
|
||||
validateCategoryExists(id);
|
||||
// 删除
|
||||
categoryMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateCategory(Category category) {
|
||||
Category dbCategory = categoryMapper.selectById(category.getCategoryId());
|
||||
category.setUpdateTime(new Date());
|
||||
// 保存分类信息
|
||||
categoryMapper.updateById(category);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteCategory(Long categoryId) {
|
||||
Category category = categoryMapper.selectById(categoryId);
|
||||
categoryMapper.deleteById(categoryId);
|
||||
}
|
||||
private void validateCategoryExists(Long id) {
|
||||
if (categoryMapper.selectById(id) == null) {
|
||||
throw exception(ErrorCodeConstants.CATEGORY_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CategoryDO getCategory(Long id) {
|
||||
return categoryMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<CategoryDO> getCategoryPage(CategoryPageReqVO pageReqVO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.tashow.cloud.product.service.impl;
|
||||
|
||||
import com.tashow.cloud.product.dto.ProdAdditionalFeeDatesDO;
|
||||
import com.tashow.cloud.product.mapper.ProdAdditionalFeeDatesMapper;
|
||||
import com.tashow.cloud.product.service.ProdAdditionalFeeDatesService;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesPageReqVO;
|
||||
import com.tashow.cloud.product.vo.prodadditionalfeedates.ProdAdditionalFeeDatesSaveReqVO;
|
||||
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 ProdAdditionalFeeDatesServiceImpl implements ProdAdditionalFeeDatesService {
|
||||
|
||||
@Resource
|
||||
private ProdAdditionalFeeDatesMapper prodAdditionalFeeDatesMapper;
|
||||
|
||||
@Override
|
||||
public Long createProdAdditionalFeeDates(ProdAdditionalFeeDatesSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
ProdAdditionalFeeDatesDO prodAdditionalFeeDates = BeanUtils.toBean(createReqVO, ProdAdditionalFeeDatesDO.class);
|
||||
prodAdditionalFeeDatesMapper.insert(prodAdditionalFeeDates);
|
||||
// 返回
|
||||
return prodAdditionalFeeDates.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProdAdditionalFeeDates(ProdAdditionalFeeDatesSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateProdAdditionalFeeDatesExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ProdAdditionalFeeDatesDO updateObj = BeanUtils.toBean(updateReqVO, ProdAdditionalFeeDatesDO.class);
|
||||
prodAdditionalFeeDatesMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteProdAdditionalFeeDates(Long id) {
|
||||
// 校验存在
|
||||
validateProdAdditionalFeeDatesExists(id);
|
||||
// 删除
|
||||
prodAdditionalFeeDatesMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateProdAdditionalFeeDatesExists(Long id) {
|
||||
if (prodAdditionalFeeDatesMapper.selectById(id) == null) {
|
||||
throw exception(ErrorCodeConstants.PROD_ADDITIONAL_FEE_DATES_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProdAdditionalFeeDatesDO getProdAdditionalFeeDates(Long id) {
|
||||
return prodAdditionalFeeDatesMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProdAdditionalFeeDatesDO> getProdAdditionalFeeDatesPage(ProdAdditionalFeeDatesPageReqVO pageReqVO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -74,7 +74,6 @@ public class ProdServiceImpl implements ProdService {
|
||||
@Override
|
||||
public PageResult<ProdDO> getProdPage(ProdPageReqVO pageReqVO) {
|
||||
IPage<ProdDO> prodPageList = prodMapper.getProdPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO);
|
||||
|
||||
return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal());
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.tashow.cloud.product.vo.category;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.tashow.cloud.common.pojo.PageParam;
|
||||
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 CategoryPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "店铺ID", example = "22369")
|
||||
private Long shopId;
|
||||
|
||||
@Schema(description = "父节点", example = "16509")
|
||||
private Long parentId;
|
||||
|
||||
@Schema(description = "产品类目名称", example = "王五")
|
||||
private String categoryName;
|
||||
|
||||
@Schema(description = "类目图标")
|
||||
private String icon;
|
||||
|
||||
@Schema(description = "类目的显示图片")
|
||||
private String pic;
|
||||
|
||||
@Schema(description = "类目描述")
|
||||
private String describe;
|
||||
|
||||
@Schema(description = "标签")
|
||||
private String tag;
|
||||
|
||||
@Schema(description = "排序")
|
||||
private Integer seq;
|
||||
|
||||
@Schema(description = "默认是1,表示正常状态,0为下线状态", example = "1")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "分类层级")
|
||||
private Integer grade;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.tashow.cloud.product.vo.category;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 产品类目 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class CategoryRespVO {
|
||||
|
||||
@Schema(description = "类目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15856")
|
||||
@ExcelProperty("类目ID")
|
||||
private Long categoryId;
|
||||
|
||||
@Schema(description = "店铺ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22369")
|
||||
@ExcelProperty("店铺ID")
|
||||
private Long shopId;
|
||||
|
||||
@Schema(description = "父节点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16509")
|
||||
@ExcelProperty("父节点")
|
||||
private Long parentId;
|
||||
|
||||
@Schema(description = "产品类目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("产品类目名称")
|
||||
private String categoryName;
|
||||
|
||||
@Schema(description = "类目图标")
|
||||
@ExcelProperty("类目图标")
|
||||
private String icon;
|
||||
|
||||
@Schema(description = "类目的显示图片")
|
||||
@ExcelProperty("类目的显示图片")
|
||||
private String pic;
|
||||
|
||||
@Schema(description = "类目描述")
|
||||
@ExcelProperty("类目描述")
|
||||
private String describe;
|
||||
|
||||
@Schema(description = "标签")
|
||||
@ExcelProperty("标签")
|
||||
private String tag;
|
||||
|
||||
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("排序")
|
||||
private Integer seq;
|
||||
|
||||
@Schema(description = "默认是1,表示正常状态,0为下线状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("默认是1,表示正常状态,0为下线状态")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "分类层级", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("分类层级")
|
||||
private Integer grade;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.tashow.cloud.product.vo.category;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 产品类目新增/修改 Request VO")
|
||||
@Data
|
||||
public class CategorySaveReqVO {
|
||||
|
||||
@Schema(description = "类目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15856")
|
||||
private Long categoryId;
|
||||
|
||||
@Schema(description = "店铺ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22369")
|
||||
@NotNull(message = "店铺ID不能为空")
|
||||
private Long shopId;
|
||||
|
||||
@Schema(description = "父节点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16509")
|
||||
@NotNull(message = "父节点不能为空")
|
||||
private Long parentId;
|
||||
|
||||
@Schema(description = "产品类目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@NotEmpty(message = "产品类目名称不能为空")
|
||||
private String categoryName;
|
||||
|
||||
@Schema(description = "类目图标")
|
||||
private String icon;
|
||||
|
||||
@Schema(description = "类目的显示图片")
|
||||
private String pic;
|
||||
|
||||
@Schema(description = "类目描述")
|
||||
private String describe;
|
||||
|
||||
@Schema(description = "标签")
|
||||
private String tag;
|
||||
|
||||
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "排序不能为空")
|
||||
private Integer seq;
|
||||
|
||||
@Schema(description = "默认是1,表示正常状态,0为下线状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotNull(message = "默认是1,表示正常状态,0为下线状态不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "分类层级", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "分类层级不能为空")
|
||||
private Integer grade;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.tashow.cloud.product.vo.prodadditionalfeedates;
|
||||
|
||||
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 ProdAdditionalFeeDatesPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "商品id", example = "24324")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "名称", example = "赵六")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'", example = "2")
|
||||
private Boolean dateType;
|
||||
|
||||
@Schema(description = "自定义日期时间段(JSON格式存储)")
|
||||
private String customTimeSlots;
|
||||
|
||||
@Schema(description = "指定日期(JSON格式存储)")
|
||||
private String specificDates;
|
||||
|
||||
@Schema(description = "收费方式")
|
||||
private String chargeMode;
|
||||
|
||||
@Schema(description = "价格或上浮百分比", example = "17305")
|
||||
private BigDecimal price;
|
||||
|
||||
@Schema(description = "是否启用该规则")
|
||||
private Boolean isEnabled;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.tashow.cloud.product.vo.prodadditionalfeedates;
|
||||
|
||||
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 ProdAdditionalFeeDatesRespVO {
|
||||
|
||||
@Schema(description = "特殊日期规则的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "1445")
|
||||
@ExcelProperty("特殊日期规则的唯一标识符")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "商品id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24324")
|
||||
@ExcelProperty("商品id")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||
@ExcelProperty("名称")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'")
|
||||
private Boolean dateType;
|
||||
|
||||
@Schema(description = "自定义日期时间段(JSON格式存储)")
|
||||
@ExcelProperty("自定义日期时间段(JSON格式存储)")
|
||||
private String customTimeSlots;
|
||||
|
||||
@Schema(description = "指定日期(JSON格式存储)")
|
||||
@ExcelProperty("指定日期(JSON格式存储)")
|
||||
private String specificDates;
|
||||
|
||||
@Schema(description = "收费方式", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("收费方式")
|
||||
private String chargeMode;
|
||||
|
||||
@Schema(description = "价格或上浮百分比", example = "17305")
|
||||
@ExcelProperty("价格或上浮百分比")
|
||||
private BigDecimal price;
|
||||
|
||||
@Schema(description = "是否启用该规则", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否启用该规则")
|
||||
private Boolean isEnabled;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
@ExcelProperty("更新时间")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.tashow.cloud.product.vo.prodadditionalfeedates;
|
||||
|
||||
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 ProdAdditionalFeeDatesSaveReqVO {
|
||||
|
||||
@Schema(description = "特殊日期规则的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "1445")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "商品id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24324")
|
||||
@NotNull(message = "商品id不能为空")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||
@NotEmpty(message = "名称不能为空")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "日期类型0:'自定义日期范围':1:'指定日期':2:'法定节假日',3:'固定休息日'不能为空")
|
||||
private Boolean dateType;
|
||||
|
||||
@Schema(description = "自定义日期时间段(JSON格式存储)")
|
||||
private String customTimeSlots;
|
||||
|
||||
@Schema(description = "指定日期(JSON格式存储)")
|
||||
private String specificDates;
|
||||
|
||||
@Schema(description = "收费方式", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "收费方式不能为空")
|
||||
private String chargeMode;
|
||||
|
||||
@Schema(description = "价格或上浮百分比", example = "17305")
|
||||
private BigDecimal price;
|
||||
|
||||
@Schema(description = "是否启用该规则", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "是否启用该规则不能为空")
|
||||
private Boolean isEnabled;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
<configuration>
|
||||
<!-- 引用 Spring Boot 的 logback 基础配置 -->
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||
<!-- 变量 yudao.info.base-package,基础业务包 -->
|
||||
<springProperty scope="context" name="tashow.info.base-package" source="tashow.info.base-package"/>
|
||||
<!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 -->
|
||||
<property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
|
||||
|
||||
<!-- 控制台 Appender -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 文件 Appender -->
|
||||
<!-- 参考 Spring Boot 的 file-appender.xml 编写 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
<!-- 日志文件名 -->
|
||||
<file>${LOG_FILE}</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 滚动后的日志文件名 -->
|
||||
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
|
||||
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
|
||||
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
|
||||
<!-- 日志文件,到达多少容量,进行滚动 -->
|
||||
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
|
||||
<!-- 日志文件的总大小,0 表示不限制 -->
|
||||
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
|
||||
<!-- 日志文件的保留天数 -->
|
||||
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
<!-- 异步写入日志,提升性能 -->
|
||||
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 -->
|
||||
<appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 本地环境 -->
|
||||
<springProfile name="local">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 -->
|
||||
<appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 -->
|
||||
</root>
|
||||
</springProfile>
|
||||
<!-- 其它环境 -->
|
||||
<springProfile name="dev,test,stage,prod,default">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ASYNC"/>
|
||||
<appender-ref ref="GRPC"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.tashow.cloud.product.mapper.CategoryMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.tashow.cloud.product.mapper.ProdAdditionalFeeDatesMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user