分销后台相关接口

This commit is contained in:
张松
2025-10-25 10:21:50 +08:00
parent 1d153a2c4d
commit 3fd64d4806
14 changed files with 591 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
package com.czg.market.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import jakarta.validation.Valid;
import jakarta.validation.constraints.*;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 分销配置 实体类。
*
* @author ww
* @since 2025-10-25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MkDistributionConfigDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 是否开启
*/
@NotNull(message = "是否开启不能为空")
private Integer isEnable;
/**
* pay购买开通 auto自动开通 manual手动开通
*/
@NotBlank(message = "开通方式不能为空")
private String openType;
/**
* 邀请条件人数
*/
@Min(value = 1, message = "邀请人数不能小于1")
private Integer inviteCount;
/**
* 被邀请人消费有效 0 1
*/
private Integer inviteConsume;
/**
* 购买开通金额
*/
@DecimalMin(value = "0.01", message = "购买开通金额不能小于0.01")
private BigDecimal payAmount;
/**
* 每人奖励次数
*/
@NotNull(message = "每人奖励次数不能为空")
@Min(value = 1, message = "每人奖励次数不能小于1")
private Integer rewardCount;
/**
* n天结算
*/
@NotNull(message = "结算天数不能为空")
@Min(value = 0, message = "结算天数不能小于0")
private Integer settlementDay;
/**
* not_upgrade不自动升级 invite邀请有效人数 cost消费金额
*/
@NotBlank(message = "升级条件不能为空")
private String upgradeType;
/**
* 未开通页面富文本
*/
private String notActivatedPage;
@Valid
private List<MkDistributionLevelConfigDTO> levelConfigList;
}

View File

@@ -0,0 +1,65 @@
package com.czg.market.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import jakarta.validation.constraints.*;
import lombok.experimental.Accessors;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 分销员等级配置 实体类。
*
* @author ww
* @since 2025-10-25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MkDistributionLevelConfigDTO implements Serializable {
private Long id;
/**
* 名称
*/
@NotBlank(message = "名称不能为空")
private String name;
/**
* 有效人数
*/
@NotNull(message = "有效人数不能为空")
@Min(value = 1, message = "有效人数不能小于1")
private Integer inviteCount;
/**
* 消费金额
*/
@NotNull(message = "消费金额不能为空")
@DecimalMin(value = "0.01", message = "消费金额不能小于0.01")
private BigDecimal costAmount;
/**
* 一级分销比例
*/
@NotNull(message = "一级分销比例不为空")
@DecimalMin(value = "0.01", message = "一级分销比例不能小于0.01")
@DecimalMax(value = "1", message = "一级分销比例不能小于1")
private BigDecimal levelOneCommission;
/**
* 二级分销比例
*/
private BigDecimal levelTwoCommission;
}

View File

@@ -0,0 +1,101 @@
package com.czg.market.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 分销配置 实体类。
*
* @author ww
* @since 2025-10-25
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_distribution_config")
@Accessors(chain = true)
public class MkDistributionConfig implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 是否开启
*/
private Integer isEnable;
/**
* pay购买开通 auto自动开通 manual手动开通
*/
private String openType;
/**
* 邀请条件人数
*/
private Integer inviteCount;
/**
* 被邀请人消费有效 0 1
*/
private Integer inviteConsume;
/**
* 购买开通金额
*/
private BigDecimal payAmount;
/**
* 每人奖励次数
*/
private Integer rewardCount;
/**
* n天结算
*/
private Integer settlementDay;
/**
* not_upgrade不自动升级 invite邀请有效人数 cost消费金额
*/
private String upgradeType;
/**
* 未开通页面富文本
*/
private String notActivatedPage;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 修改时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 主店id
*/
private Long mainShopId;
}

View File

@@ -0,0 +1,84 @@
package com.czg.market.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 分销员等级配置 实体类。
*
* @author ww
* @since 2025-10-25
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_distribution_level_config")
public class MkDistributionLevelConfig implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 分销配置表id
*/
private Long distributionConfigId;
/**
* 主店id
*/
private Long mainShopId;
/**
* 名称
*/
private String name;
/**
* 有效人数
*/
private Integer inviteCount;
/**
* 消费金额
*/
private BigDecimal costAmount;
/**
* 一级分销比例
*/
private BigDecimal levelOneCommission;
/**
* 二级分销比例
*/
private BigDecimal levelTwoCommission;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 修改时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,19 @@
package com.czg.market.service;
import com.czg.market.dto.MkDistributionConfigDTO;
import com.czg.market.vo.MkDistributionConfigVO;
import com.czg.market.vo.MkRedemptionConfigVO;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkDistributionConfig;
/**
* 分销配置 服务层。
*
* @author ww
* @since 2025-10-25
*/
public interface MkDistributionConfigService extends IService<MkDistributionConfig> {
MkDistributionConfigVO detail(Long mainShopId);
Boolean edit(Long shopId, MkDistributionConfigDTO dto);
}

View File

@@ -0,0 +1,19 @@
package com.czg.market.service;
import com.czg.market.dto.MkDistributionLevelConfigDTO;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkDistributionLevelConfig;
import jakarta.validation.Valid;
import java.util.List;
/**
* 分销员等级配置 服务层。
*
* @author ww
* @since 2025-10-25
*/
public interface MkDistributionLevelConfigService extends IService<MkDistributionLevelConfig> {
void updateByShopId(@Valid List<MkDistributionLevelConfigDTO> levelConfigList, Long mainShopId, Long id);
}

View File

@@ -0,0 +1,19 @@
package com.czg.market.vo;
import com.czg.market.entity.MkDistributionConfig;
import com.czg.market.entity.MkDistributionLevelConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @author Administrator
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class MkDistributionConfigVO extends MkDistributionConfig implements Serializable {
private List<MkDistributionLevelConfig> levelConfigList;
}