Browse Source

feat: 添加犯返利BO

master
Yen 3 months ago
parent
commit
96025a113c
  1. 44
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java
  2. 130
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateGoods.java
  3. 41
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java
  4. 41
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsArgument.java
  5. 63
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsConfig.java
  6. 41
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebatePeriod.java
  7. 1
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateSubject.java
  8. 50
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateArgumentParam.java
  9. 52
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateCenterParam.java
  10. 33
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateGoodsParam.java
  11. 31
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsConfigParam.java
  12. 60
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java
  13. 92
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java
  14. 61
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebatePeriodParam.java
  15. 52
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateSubjectParam.java
  16. 41
      cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java
  17. 14
      cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java
  18. 19
      cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

44
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java

@ -7,11 +7,14 @@ import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/** /**
* 返利信息 实体类 * 返利信息 实体类
@ -95,6 +98,40 @@ public class TzcRebate implements Serializable {
@NotNull(message = "坎级叠加标识不能为空") @NotNull(message = "坎级叠加标识不能为空")
private Integer overlayFlag; private Integer overlayFlag;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TzcRebate toNewObject(TzcRebate source){ public static TzcRebate toNewObject(TzcRebate source){
TzcRebate rebate = new TzcRebate(); TzcRebate rebate = new TzcRebate();
@ -116,6 +153,13 @@ public class TzcRebate implements Serializable {
rebate.setSupplierName(source.getSupplierName()); rebate.setSupplierName(source.getSupplierName());
rebate.setRebateAmount(source.getRebateAmount()); rebate.setRebateAmount(source.getRebateAmount());
rebate.setOverlayFlag(source.getOverlayFlag()); rebate.setOverlayFlag(source.getOverlayFlag());
rebate.setRemark(source.getRemark());
rebate.setCreateTime(source.getCreateTime());
rebate.setUpdateTime(source.getUpdateTime());
rebate.setTenantId(source.getTenantId());
rebate.setCreateBy(source.getCreateBy());
rebate.setUpdateBy(source.getUpdateBy());
rebate.setDelFlag(source.getDelFlag());
return rebate; return rebate;
} }

130
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateGoods.java

@ -0,0 +1,130 @@
package com.qs.serve.modules.tzc.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 返利商品 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
@TableName("tzc_rebate_goods")
public class TzcRebateGoods implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 政策id */
@NotNull(message = "政策id不能为空")
private Long rebateId;
/** 政策编码 */
@NotBlank(message = "政策编码不能为空")
@Length(max = 50,message = "政策编码长度不能超过50字")
private String rebateCode;
/** 目标类型(brand、category、series、spu、sku) */
@NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空")
@Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字")
private String targetType;
/** 目标id */
@NotNull(message = "目标id不能为空")
private Long targetId;
/** 目标编码 */
@NotBlank(message = "目标编码不能为空")
@Length(max = 30,message = "目标编码长度不能超过30字")
private String targetCode;
/** 目标名称 */
@NotBlank(message = "目标名称不能为空")
@Length(max = 255,message = "目标名称长度不能超过255字")
private String targetName;
/** 目标等级路径 */
@Length(max = 600,message = "目标等级路径长度不能超过600字")
private String targetLevelPathIds;
/** 目标等级路径 */
@Length(max = 600,message = "目标等级路径长度不能超过600字")
private String targetLevelPathNames;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 前端用于绑定模板id */
private String tmpUk;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TzcRebateGoods toNewObject(TzcRebateGoods source){
TzcRebateGoods rebateGoods = new TzcRebateGoods();
rebateGoods.setId(source.getId());
rebateGoods.setRebateId(source.getRebateId());
rebateGoods.setRebateCode(source.getRebateCode());
rebateGoods.setTargetType(source.getTargetType());
rebateGoods.setTargetId(source.getTargetId());
rebateGoods.setTargetCode(source.getTargetCode());
rebateGoods.setTargetName(source.getTargetName());
rebateGoods.setTargetLevelPathIds(source.getTargetLevelPathIds());
rebateGoods.setTargetLevelPathNames(source.getTargetLevelPathNames());
rebateGoods.setRemark(source.getRemark());
rebateGoods.setCreateTime(source.getCreateTime());
rebateGoods.setUpdateTime(source.getUpdateTime());
rebateGoods.setTenantId(source.getTenantId());
rebateGoods.setCreateBy(source.getCreateBy());
rebateGoods.setUpdateBy(source.getUpdateBy());
rebateGoods.setDelFlag(source.getDelFlag());
return rebateGoods;
}
}

41
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java

@ -57,6 +57,40 @@ public class TzcRebateLevels implements Serializable {
@Length(max = 600,message = "返利说明和计算例子长度不能超过600字") @Length(max = 600,message = "返利说明和计算例子长度不能超过600字")
private String exampleRemark; private String exampleRemark;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TzcRebateLevels toNewObject(TzcRebateLevels source){ public static TzcRebateLevels toNewObject(TzcRebateLevels source){
TzcRebateLevels rebateLevels = new TzcRebateLevels(); TzcRebateLevels rebateLevels = new TzcRebateLevels();
@ -68,6 +102,13 @@ public class TzcRebateLevels implements Serializable {
rebateLevels.setConditionRate(source.getConditionRate()); rebateLevels.setConditionRate(source.getConditionRate());
rebateLevels.setConditionAmount(source.getConditionAmount()); rebateLevels.setConditionAmount(source.getConditionAmount());
rebateLevels.setExampleRemark(source.getExampleRemark()); rebateLevels.setExampleRemark(source.getExampleRemark());
rebateLevels.setRemark(source.getRemark());
rebateLevels.setCreateTime(source.getCreateTime());
rebateLevels.setUpdateTime(source.getUpdateTime());
rebateLevels.setTenantId(source.getTenantId());
rebateLevels.setCreateBy(source.getCreateBy());
rebateLevels.setUpdateBy(source.getUpdateBy());
rebateLevels.setDelFlag(source.getDelFlag());
return rebateLevels; return rebateLevels;
} }

41
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsArgument.java

@ -65,6 +65,40 @@ public class TzcRebateLevelsArgument implements Serializable {
/** 增量最高返利金额 */ /** 增量最高返利金额 */
private BigDecimal addMaxReturn; private BigDecimal addMaxReturn;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TzcRebateLevelsArgument toNewObject(TzcRebateLevelsArgument source){ public static TzcRebateLevelsArgument toNewObject(TzcRebateLevelsArgument source){
TzcRebateLevelsArgument rebateLevelsArgument = new TzcRebateLevelsArgument(); TzcRebateLevelsArgument rebateLevelsArgument = new TzcRebateLevelsArgument();
@ -80,6 +114,13 @@ public class TzcRebateLevelsArgument implements Serializable {
rebateLevelsArgument.setAddReturnRate(source.getAddReturnRate()); rebateLevelsArgument.setAddReturnRate(source.getAddReturnRate());
rebateLevelsArgument.setAddReturnFixed(source.getAddReturnFixed()); rebateLevelsArgument.setAddReturnFixed(source.getAddReturnFixed());
rebateLevelsArgument.setAddMaxReturn(source.getAddMaxReturn()); rebateLevelsArgument.setAddMaxReturn(source.getAddMaxReturn());
rebateLevelsArgument.setRemark(source.getRemark());
rebateLevelsArgument.setCreateTime(source.getCreateTime());
rebateLevelsArgument.setUpdateTime(source.getUpdateTime());
rebateLevelsArgument.setTenantId(source.getTenantId());
rebateLevelsArgument.setCreateBy(source.getCreateBy());
rebateLevelsArgument.setUpdateBy(source.getUpdateBy());
rebateLevelsArgument.setDelFlag(source.getDelFlag());
return rebateLevelsArgument; return rebateLevelsArgument;
} }

63
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsConfig.java

@ -40,34 +40,41 @@ public class TzcRebateLevelsConfig implements Serializable {
private Integer levelNum; private Integer levelNum;
/** 条件类型:0-同期进货金额;1-区间目标金额 */ /** 条件类型:0-同期进货金额;1-区间目标金额 */
private Integer conditionType; private Integer levelConfigs;
/** 条件选择:0-百分比;1-固定金额 */ /** 备注 */
private Integer conditionSelect; @Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 满足条件的比例 */
private BigDecimal conditionRate; /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
/** 满足条件的金额 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private BigDecimal conditionAmount; @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 返利说明和计算例子 */
@Length(max = 600,message = "返利说明和计算例子长度不能超过600字") /** 最后更新时间 */
private String exampleRemark; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
public static TzcRebateLevelsConfig toNewObject(TzcRebateLevelsConfig source){ private LocalDateTime updateTime;
TzcRebateLevelsConfig rebateLevelsConfig = new TzcRebateLevelsConfig();
rebateLevelsConfig.setId(source.getId()); /** 所属租户 */
rebateLevelsConfig.setRebateId(source.getRebateId()); @JsonIgnore
rebateLevelsConfig.setLevelNum(source.getLevelNum()); @JsonProperty
rebateLevelsConfig.setConditionType(source.getConditionType()); private String tenantId;
rebateLevelsConfig.setConditionSelect(source.getConditionSelect());
rebateLevelsConfig.setConditionRate(source.getConditionRate()); /** 创建人 */
rebateLevelsConfig.setConditionAmount(source.getConditionAmount()); @TableField(fill = FieldFill.INSERT)
rebateLevelsConfig.setExampleRemark(source.getExampleRemark()); private String createBy;
return rebateLevelsConfig;
} /** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
} }

41
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebatePeriod.java

@ -77,6 +77,40 @@ public class TzcRebatePeriod implements Serializable {
/** 增量固定金额 */ /** 增量固定金额 */
private BigDecimal addAmtVal; private BigDecimal addAmtVal;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TzcRebatePeriod toNewObject(TzcRebatePeriod source){ public static TzcRebatePeriod toNewObject(TzcRebatePeriod source){
TzcRebatePeriod rebatePeriod = new TzcRebatePeriod(); TzcRebatePeriod rebatePeriod = new TzcRebatePeriod();
@ -94,6 +128,13 @@ public class TzcRebatePeriod implements Serializable {
rebatePeriod.setSumAmtVal(source.getSumAmtVal()); rebatePeriod.setSumAmtVal(source.getSumAmtVal());
rebatePeriod.setAddRateVal(source.getAddRateVal()); rebatePeriod.setAddRateVal(source.getAddRateVal());
rebatePeriod.setAddAmtVal(source.getAddAmtVal()); rebatePeriod.setAddAmtVal(source.getAddAmtVal());
rebatePeriod.setRemark(source.getRemark());
rebatePeriod.setCreateTime(source.getCreateTime());
rebatePeriod.setUpdateTime(source.getUpdateTime());
rebatePeriod.setTenantId(source.getTenantId());
rebatePeriod.setCreateBy(source.getCreateBy());
rebatePeriod.setUpdateBy(source.getUpdateBy());
rebatePeriod.setDelFlag(source.getDelFlag());
return rebatePeriod; return rebatePeriod;
} }

1
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateSubject.java

@ -91,7 +91,6 @@ public class TzcRebateSubject implements Serializable {
private String delFlag; private String delFlag;
/** 前端用于绑定模板id */ /** 前端用于绑定模板id */
@Length(max = 255,message = "前端用于绑定模板id长度不能超过255字")
private String tmpUk; private String tmpUk;

50
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateArgumentParam.java

@ -0,0 +1,50 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 返利坎级参数 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
public class TzcRebateArgumentParam implements Serializable {
private static final long serialVersionUID = 1L;
/** 目标销量维度:0-总量;1-增量 */
private Integer sumAddFlag;
/** 选择的策略:0-百分比;固定金额 */
private Integer rateAmtFlag;
/** 总量返利百分比 */
private BigDecimal sumReturnRate;
/** 总量返利固定金额 */
private BigDecimal sumReturnFixed;
/** 总量最高返利金额 */
private BigDecimal sumMaxReturn;
/** 增量返利百分比 */
private BigDecimal addReturnRate;
/** 增量返利固定金额 */
private BigDecimal addReturnFixed;
/** 增量最高返利金额 */
private BigDecimal addMaxReturn;
}

52
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateCenterParam.java

@ -0,0 +1,52 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 活动成本中心项 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
public class TzcRebateCenterParam implements Serializable {
/** 费用额度 */
@NotNull(message = "费用额度不能为空")
private BigDecimal centerAmount;
/** 费用占比 */
@NotNull(message = "费用占比不能为空")
private BigDecimal centerRate;
/** 成本中心类型 */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 255,message = "成本中心类型长度不能超过255字")
private String centerType;
/** 成本中心id */
@NotBlank(message = "成本中心id不能为空")
@Length(max = 32,message = "成本中心id长度不能超过32字")
private String centerId;
/** 备注 */
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
/** 模板唯一健 */
@Length(max = 200,message = "模板唯一健长度不能超过200字")
private String tmpUk;
}

33
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateGoodsParam.java

@ -0,0 +1,33 @@
package com.qs.serve.modules.tzc.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author YenHex
* @since 2025/4/16
*/
@Data
public class TzcRebateGoodsParam {
/**
* 产品类型brandcategoryseriesspusku
*/
private String goodsType;
/**
* 产品id
*/
private String goodsId;
private String remark;
private String tmpUk;
}

31
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsConfigParam.java

@ -0,0 +1,31 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 返利坎级 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
public class TzcRebateLevelsConfigParam implements Serializable {
/** 抵达:坎级数字 */
@NotNull(message = "坎级数字不能为空")
private Integer levelNum;
/** 坎级设置;格式如:1,3,5 */
private Integer levelConfigs;
}

60
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java

@ -0,0 +1,60 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 返利坎级 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
@TableName("tzc_rebate_levels")
public class TzcRebateLevelsParam implements Serializable {
private static final long serialVersionUID = 1L;
/** 坎级数字 */
@NotNull(message = "坎级数字不能为空")
private Integer levelNum;
/** 条件类型:0-同期进货金额;1-区间目标金额 */
@NotNull(message = "条件类型:0-同期进货金额;1-区间目标金额不能为空")
private Integer conditionType;
/** 条件选择:0-百分比;1-固定金额 */
@NotNull(message = "条件选择:0-百分比;1-固定金额不能为空")
private Integer conditionSelect;
/** 满足条件的比例 */
private BigDecimal conditionRate;
/** 满足条件的金额 */
private BigDecimal conditionAmount;
/** 返利-参数 */
private TzcRebateArgumentParam targetArgument;
/** 总目标返利-参数 */
private TzcRebateArgumentParam allTargetArgument;
/** 返利说明和计算例子 */
@Length(max = 600,message = "返利说明和计算例子长度不能超过600字")
private String exampleRemark;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
}

92
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java

@ -0,0 +1,92 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qs.serve.modules.tzc.entity.TzcRebateSubject;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author YenHex
* @since 2025/4/16
*/
@Data
public class TzcRebateParam{
private Long id;
/** 模板id */
private Long templateId;
/** 返利抬头 */
@Length(max = 64,message = "返利抬头长度不能超过64字")
private String rebateName;
/** 返利开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activityStartTime;
/** 返利结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activityEndTime;
/** 自动获取发货数据:0-否;1-是 */
private Integer autoDispatchFlag;
/** 核销模式:0-人工复核;1-自动核销 */
private Integer checkModel;
/** 超过多少金额自动核销变为人工核销 */
private BigDecimal checkMaxAmount;
/** 自动核销日期类型:0-手动设置;1-自然月;2-自然周 */
private Integer checkAutoDateType;
/** 核销开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate checkStartDate;
/** 核销结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate checkEndDate;
/** 客户id */
private Long supplierId;
/** 返利总金额 */
private BigDecimal rebateAmount;
/** 坎级叠加标识 */
@NotNull(message = "坎级叠加标识不能为空")
private Integer overlayFlag;
/** 备注 */
private String remark;
/**
* 商品列表
*/
private List<TzcRebateGoodsParam> goodsList;
/**
* 科目列表(内含成本中心列表)
*/
private List<TzcRebateSubject> subjectList;
/**
* 期间列表
*/
private List<TzcRebatePeriodParam> periodList;
/**
* 坎级配置列
*/
private List<TzcRebateLevelsConfigParam> configList;
}

61
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebatePeriodParam.java

@ -0,0 +1,61 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 返利适用期间 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
public class TzcRebatePeriodParam implements Serializable {
private static final long serialVersionUID = 1L;
/** 适用期间标题 */
@Length(max = 64,message = "适用期间标题长度不能超过64字")
private String periodTitle;
/** 开始时间 */
@Length(max = 0,message = "开始时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime periodStartDate;
/** 结束时间 */
@Length(max = 0,message = "结束时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime periodEndDate;
/** 区间目标金额 */
private BigDecimal periodAmount;
/** 同期进货金额 */
private BigDecimal samePeriodAmount;
/** 总目标达标补偿 */
private Integer compensationFlag;
/**
* 补偿方案
*/
private TzcRebateArgumentParam argumentParam;
/** 补充说明 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
}

52
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateSubjectParam.java

@ -0,0 +1,52 @@
package com.qs.serve.modules.tzc.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 活动科目项 实体类
* @author YenHex
* @since 2025-04-15
*/
@Data
public class TzcRebateSubjectParam implements Serializable {
private static final long serialVersionUID = 1L;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目比例 */
@DecimalMin(value = "0", message = "科目比例不能是负数")
private BigDecimal subjectRate;
/** 科目额度 */
@NotNull(message = "科目额度不能为空")
@DecimalMin(value = "0", message = "科目额度不能是负数")
private BigDecimal subjectAmount;
/** 备注 */
private String remark;
/** 前端用于绑定模板id */
private String tmpUk;
/** 成本中心列表 */
private List<TzcRebateCenterParam> centerList;
}

41
cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java

@ -33,26 +33,12 @@ public class TzcRebateController {
private TzcRebateService tzcRebateService; private TzcRebateService tzcRebateService;
/**
* 列表
* @param param
* @return
*/
//@GetMapping("/list")
//@PreAuthorize("hasRole('tzc:rebate:query')")
public R<List<TzcRebate>> getList(TzcRebate param){
LambdaQueryWrapper<TzcRebate> lqw = new LambdaQueryWrapper<>(param);
List<TzcRebate> list = tzcRebateService.list(lqw);
return R.ok(list);
}
/** /**
* 翻页 * 翻页
* @param param * @param param
* @return * @return
*/ */
//@GetMapping("/page") @GetMapping("/page")
//@PreAuthorize("hasRole('tzc:rebate:query')")
public R<PageVo<TzcRebate>> getPage(TzcRebate param){ public R<PageVo<TzcRebate>> getPage(TzcRebate param){
LambdaQueryWrapper<TzcRebate> lqw = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<TzcRebate> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage(); PageUtil.startPage();
@ -65,44 +51,26 @@ public class TzcRebateController {
* @param id * @param id
* @return * @return
*/ */
//@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.QUERY) @SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.QUERY)
@PreAuthorize("hasRole('tzc:rebate:query')")
public R<TzcRebate> getById(@PathVariable("id") String id){ public R<TzcRebate> getById(@PathVariable("id") String id){
TzcRebate tzcRebate = tzcRebateService.getById(id); TzcRebate tzcRebate = tzcRebateService.getById(id);
return R.ok(tzcRebate); return R.ok(tzcRebate);
} }
/** /**
* 更新 * 更新
* @param param * @param param
* @return * @return
*/ */
//@PostMapping("/updateById") @PostMapping("/editRebate")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.UPDATE) @SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.UPDATE)
//@PreAuthorize("hasRole('tzc:rebate:update')") public R<?> updateById(@RequestBody @Valid TzcRebate param){
public R<?> updateById(@RequestBody @Valid TzcRebateBo param){
TzcRebate entity = CopierUtil.copy(param,new TzcRebate()); TzcRebate entity = CopierUtil.copy(param,new TzcRebate());
boolean result = tzcRebateService.updateById(entity); boolean result = tzcRebateService.updateById(entity);
return R.isTrue(result); return R.isTrue(result);
} }
/**
* 新增
* @param param
* @return
*/
//@PostMapping("/save")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.INSERT)
//@PreAuthorize("hasRole('tzc:rebate:insert')")
public R<?> save(@RequestBody @Valid TzcRebateBo param){
TzcRebate entity = CopierUtil.copy(param,new TzcRebate());
boolean result = tzcRebateService.save(entity);
return R.isTrue(result);
}
/** /**
* 删除 * 删除
* @param ids * @param ids
@ -110,7 +78,6 @@ public class TzcRebateController {
*/ */
@DeleteMapping("/deleteById/{ids}") @DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.DELETE) @SysLog(module = SystemModule.Policy, title = "返利信息", biz = BizType.DELETE)
//@PreAuthorize("hasRole('tzc:rebate:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){ public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids); List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = tzcRebateService.removeByIds(idsLong); boolean result = tzcRebateService.removeByIds(idsLong);

14
cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplicationService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tzc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tzc.entity.TzcRebate;
/**
* 返利信息 服务接口
* @author YenHex
* @date 2025-04-15
*/
public interface TzcRebateApplicationService {
}

19
cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tzc.service.impl;
import com.qs.serve.modules.tzc.service.TzcRebateApplicationService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author YenHex
* @since 2025/4/16
*/
@Slf4j
@Service
@AllArgsConstructor
public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationService {
}
Loading…
Cancel
Save