清理冗余的梯度返佣(TierCommission)配置
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m46s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m46s
- 移除 Model 层:删除 ShopSeriesCommissionTier 模型及相关字段 - 更新 DTO:删除 TierCommissionConfig、TierEntry 类型及相关请求/响应字段 - 删除 Store 层:移除 ShopSeriesCommissionTierStore 及相关查询逻辑 - 简化 Service 层:删除梯度返佣处理逻辑,统计查询移除 tier_bonus 字段 - 数据库迁移:创建 000034_remove_tier_commission 移除相关表和字段 - 更新测试:移除梯度返佣相关测试用例,更新集成测试 - OpenAPI 文档:删除梯度返佣相关 schema 和枚举值 - 归档变更:归档 remove-tier-commission-redundancy 到 archive/2026-01-30- - 同步规范:更新 4 个主 specs,标记废弃功能并添加迁移指引 原因:梯度返佣功能与一次性梯度佣金功能重复,且从未实现实际计算逻辑 迁移:使用一次性佣金的梯度模式 (OneTimeCommissionConfig.type = "tiered") 替代
This commit is contained in:
@@ -8,7 +8,7 @@ import (
|
||||
|
||||
// CommissionRecord 佣金记录模型
|
||||
// 记录各级代理的佣金入账情况
|
||||
// 包含成本价差收入、一次性佣金、梯度奖励等多种佣金来源
|
||||
// 包含成本价差收入和一次性佣金两种佣金来源
|
||||
type CommissionRecord struct {
|
||||
gorm.Model
|
||||
BaseModel `gorm:"embedded"`
|
||||
@@ -16,7 +16,7 @@ type CommissionRecord struct {
|
||||
OrderID uint `gorm:"column:order_id;index;not null;comment:订单ID" json:"order_id"`
|
||||
IotCardID *uint `gorm:"column:iot_card_id;index;comment:关联卡ID(可空)" json:"iot_card_id"`
|
||||
DeviceID *uint `gorm:"column:device_id;index;comment:关联设备ID(可空)" json:"device_id"`
|
||||
CommissionSource string `gorm:"column:commission_source;type:varchar(20);not null;index;comment:佣金来源 cost_diff-成本价差 one_time-一次性佣金 tier_bonus-梯度奖励" json:"commission_source"`
|
||||
CommissionSource string `gorm:"column:commission_source;type:varchar(20);not null;index;comment:佣金来源 cost_diff-成本价差 one_time-一次性佣金" json:"commission_source"`
|
||||
Amount int64 `gorm:"column:amount;type:bigint;not null;comment:佣金金额(分)" json:"amount"`
|
||||
BalanceAfter int64 `gorm:"column:balance_after;type:bigint;default:0;comment:入账后钱包余额(分)" json:"balance_after"`
|
||||
Status int `gorm:"column:status;type:int;default:1;not null;comment:状态 1-已入账 2-已失效" json:"status"`
|
||||
@@ -35,8 +35,6 @@ const (
|
||||
CommissionSourceCostDiff = "cost_diff"
|
||||
// CommissionSourceOneTime 一次性佣金
|
||||
CommissionSourceOneTime = "one_time"
|
||||
// CommissionSourceTierBonus 梯度奖励
|
||||
CommissionSourceTierBonus = "tier_bonus"
|
||||
)
|
||||
|
||||
// 佣金状态常量
|
||||
|
||||
@@ -2,15 +2,14 @@ package dto
|
||||
|
||||
// AllocationConfigResponse 配置版本响应
|
||||
type AllocationConfigResponse struct {
|
||||
ID uint `json:"id" description:"配置版本ID"`
|
||||
AllocationID uint `json:"allocation_id" description:"关联的分配ID"`
|
||||
Version int `json:"version" description:"配置版本号"`
|
||||
BaseCommissionMode string `json:"base_commission_mode" description:"基础返佣模式 (fixed:固定金额, percent:百分比)"`
|
||||
BaseCommissionValue int64 `json:"base_commission_value" description:"基础返佣值(分或千分比)"`
|
||||
EnableTierCommission bool `json:"enable_tier_commission" description:"是否启用梯度返佣"`
|
||||
EffectiveFrom string `json:"effective_from" description:"生效开始时间"`
|
||||
EffectiveTo string `json:"effective_to,omitempty" description:"生效结束时间(NULL表示当前生效)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
ID uint `json:"id" description:"配置版本ID"`
|
||||
AllocationID uint `json:"allocation_id" description:"关联的分配ID"`
|
||||
Version int `json:"version" description:"配置版本号"`
|
||||
BaseCommissionMode string `json:"base_commission_mode" description:"基础返佣模式 (fixed:固定金额, percent:百分比)"`
|
||||
BaseCommissionValue int64 `json:"base_commission_value" description:"基础返佣值(分或千分比)"`
|
||||
EffectiveFrom string `json:"effective_from" description:"生效开始时间"`
|
||||
EffectiveTo string `json:"effective_to,omitempty" description:"生效结束时间(NULL表示当前生效)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
}
|
||||
|
||||
// AllocationConfigListResponse 配置版本列表响应
|
||||
|
||||
@@ -11,7 +11,7 @@ type CommissionRecordResponse struct {
|
||||
IotCardICCID string `json:"iot_card_iccid" description:"卡ICCID"`
|
||||
DeviceID *uint `json:"device_id" description:"关联设备ID"`
|
||||
DeviceNo string `json:"device_no" description:"设备号"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金)"`
|
||||
Amount int64 `json:"amount" description:"佣金金额(分)"`
|
||||
BalanceAfter int64 `json:"balance_after" description:"入账后钱包余额(分)"`
|
||||
Status int `json:"status" description:"状态 (1:已入账, 2:已失效)"`
|
||||
@@ -25,7 +25,7 @@ type CommissionRecordListRequest struct {
|
||||
Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码"`
|
||||
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量"`
|
||||
ShopID *uint `json:"shop_id" query:"shop_id" validate:"omitempty" description:"店铺ID"`
|
||||
CommissionSource *string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time tier_bonus" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource *string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金)"`
|
||||
StartTime *string `json:"start_time" query:"start_time" validate:"omitempty" description:"开始时间"`
|
||||
EndTime *string `json:"end_time" query:"end_time" validate:"omitempty" description:"结束时间"`
|
||||
Status *int `json:"status" query:"status" validate:"omitempty,oneof=1 2" description:"状态 (1:已入账, 2:已失效)"`
|
||||
@@ -42,17 +42,14 @@ type CommissionRecordPageResult struct {
|
||||
|
||||
// CommissionStatsResponse 佣金统计响应
|
||||
type CommissionStatsResponse struct {
|
||||
TotalAmount int64 `json:"total_amount" description:"总收入(分)"`
|
||||
CostDiffAmount int64 `json:"cost_diff_amount" description:"成本价差收入(分)"`
|
||||
OneTimeAmount int64 `json:"one_time_amount" description:"一次性佣金收入(分)"`
|
||||
TierBonusAmount int64 `json:"tier_bonus_amount" description:"梯度奖励收入(分)"`
|
||||
CostDiffPercent int64 `json:"cost_diff_percent" description:"成本价差占比(千分比)"`
|
||||
OneTimePercent int64 `json:"one_time_percent" description:"一次性佣金占比(千分比)"`
|
||||
TierBonusPercent int64 `json:"tier_bonus_percent" description:"梯度奖励占比(千分比)"`
|
||||
TotalCount int64 `json:"total_count" description:"总笔数"`
|
||||
CostDiffCount int64 `json:"cost_diff_count" description:"成本价差笔数"`
|
||||
OneTimeCount int64 `json:"one_time_count" description:"一次性佣金笔数"`
|
||||
TierBonusCount int64 `json:"tier_bonus_count" description:"梯度奖励笔数"`
|
||||
TotalAmount int64 `json:"total_amount" description:"总收入(分)"`
|
||||
CostDiffAmount int64 `json:"cost_diff_amount" description:"成本价差收入(分)"`
|
||||
OneTimeAmount int64 `json:"one_time_amount" description:"一次性佣金收入(分)"`
|
||||
CostDiffPercent int64 `json:"cost_diff_percent" description:"成本价差占比(千分比)"`
|
||||
OneTimePercent int64 `json:"one_time_percent" description:"一次性佣金占比(千分比)"`
|
||||
TotalCount int64 `json:"total_count" description:"总笔数"`
|
||||
CostDiffCount int64 `json:"cost_diff_count" description:"成本价差笔数"`
|
||||
OneTimeCount int64 `json:"one_time_count" description:"一次性佣金笔数"`
|
||||
}
|
||||
|
||||
// DailyCommissionStatsResponse 每日佣金统计响应
|
||||
|
||||
@@ -41,7 +41,7 @@ type MyWithdrawalListReq struct {
|
||||
type MyCommissionRecordListReq struct {
|
||||
Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码"`
|
||||
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量"`
|
||||
CommissionSource *string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time tier_bonus" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource *string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time tier_bonus" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励)"`
|
||||
ICCID string `json:"iccid" query:"iccid" description:"ICCID(模糊查询)"`
|
||||
DeviceNo string `json:"device_no" query:"device_no" description:"设备号(模糊查询)"`
|
||||
OrderNo string `json:"order_no" query:"order_no" description:"订单号(模糊查询)"`
|
||||
@@ -51,7 +51,7 @@ type MyCommissionRecordItem struct {
|
||||
ID uint `json:"id" description:"佣金记录ID"`
|
||||
ShopID uint `json:"shop_id" description:"店铺ID"`
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励)"`
|
||||
Amount int64 `json:"amount" description:"佣金金额(分)"`
|
||||
Status int `json:"status" description:"状态 (1:已入账, 2:已失效)"`
|
||||
StatusName string `json:"status_name" description:"状态名称"`
|
||||
|
||||
@@ -96,7 +96,7 @@ type ShopCommissionRecordListReq struct {
|
||||
ShopID uint `json:"-" params:"shop_id" path:"shop_id" validate:"required" description:"店铺ID"`
|
||||
Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码(默认1)"`
|
||||
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量(默认20,最大100)"`
|
||||
CommissionSource string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time tier_bonus" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource string `json:"commission_source" query:"commission_source" validate:"omitempty,oneof=cost_diff one_time tier_bonus" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励)"`
|
||||
ICCID string `json:"iccid" query:"iccid" validate:"omitempty,max=50" maxLength:"50" description:"ICCID(模糊查询)"`
|
||||
DeviceNo string `json:"device_no" query:"device_no" validate:"omitempty,max=50" maxLength:"50" description:"设备号(模糊查询)"`
|
||||
OrderNo string `json:"order_no" query:"order_no" validate:"omitempty,max=50" maxLength:"50" description:"订单号(模糊查询)"`
|
||||
@@ -107,7 +107,7 @@ type ShopCommissionRecordItem struct {
|
||||
ID uint `json:"id" description:"佣金记录ID"`
|
||||
Amount int64 `json:"amount" description:"佣金金额(分)"`
|
||||
BalanceAfter int64 `json:"balance_after" description:"入账后佣金余额(分)"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)"`
|
||||
CommissionSource string `json:"commission_source" description:"佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus(已废弃):梯度奖励)"`
|
||||
Status int `json:"status" description:"状态 (1:已入账, 2:已失效)"`
|
||||
StatusName string `json:"status_name" description:"状态名称"`
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
|
||||
@@ -8,12 +8,10 @@ type PriceAdjustment struct {
|
||||
|
||||
// BatchAllocatePackagesRequest 批量分配套餐请求
|
||||
type BatchAllocatePackagesRequest struct {
|
||||
ShopID uint `json:"shop_id" validate:"required" required:"true" description:"被分配的店铺ID"`
|
||||
SeriesID uint `json:"series_id" validate:"required" required:"true" description:"套餐系列ID"`
|
||||
PriceAdjustment *PriceAdjustment `json:"price_adjustment" validate:"omitempty" description:"可选加价配置"`
|
||||
BaseCommission BaseCommissionConfig `json:"base_commission" validate:"required" required:"true" description:"基础返佣配置"`
|
||||
EnableTierCommission bool `json:"enable_tier_commission" description:"是否启用梯度返佣"`
|
||||
TierConfig *TierCommissionConfig `json:"tier_config" validate:"omitempty" description:"梯度返佣配置(启用梯度返佣时必填)"`
|
||||
ShopID uint `json:"shop_id" validate:"required" required:"true" description:"被分配的店铺ID"`
|
||||
SeriesID uint `json:"series_id" validate:"required" required:"true" description:"套餐系列ID"`
|
||||
PriceAdjustment *PriceAdjustment `json:"price_adjustment" validate:"omitempty" description:"可选加价配置"`
|
||||
BaseCommission BaseCommissionConfig `json:"base_commission" validate:"required" required:"true" description:"基础返佣配置"`
|
||||
}
|
||||
|
||||
// BatchAllocatePackagesResponse 批量分配套餐响应
|
||||
|
||||
@@ -6,20 +6,6 @@ type BaseCommissionConfig struct {
|
||||
Value int64 `json:"value" validate:"required,min=0" required:"true" minimum:"0" description:"返佣值(分或千分比,如200=20%)"`
|
||||
}
|
||||
|
||||
// TierCommissionConfig 梯度返佣配置
|
||||
type TierCommissionConfig struct {
|
||||
PeriodType string `json:"period_type" validate:"required,oneof=monthly quarterly yearly" required:"true" description:"周期类型 (monthly:月度, quarterly:季度, yearly:年度)"`
|
||||
TierType string `json:"tier_type" validate:"required,oneof=sales_count sales_amount" required:"true" description:"梯度类型 (sales_count:销量, sales_amount:销售额)"`
|
||||
Tiers []TierEntry `json:"tiers" validate:"required,min=1,dive" required:"true" description:"梯度档位列表"`
|
||||
}
|
||||
|
||||
// TierEntry 梯度档位条目
|
||||
type TierEntry struct {
|
||||
Threshold int64 `json:"threshold" validate:"required,min=1" required:"true" minimum:"1" description:"阈值(销量或金额分)"`
|
||||
Mode string `json:"mode" validate:"required,oneof=fixed percent" required:"true" description:"达标后返佣模式 (fixed:固定金额, percent:百分比)"`
|
||||
Value int64 `json:"value" validate:"required,min=1" required:"true" minimum:"1" description:"达标后返佣值(分或千分比)"`
|
||||
}
|
||||
|
||||
// OneTimeCommissionConfig 一次性佣金配置
|
||||
type OneTimeCommissionConfig struct {
|
||||
Type string `json:"type" validate:"required,oneof=fixed tiered" required:"true" description:"一次性佣金类型 (fixed:固定, tiered:梯度)"`
|
||||
@@ -43,8 +29,6 @@ type CreateShopSeriesAllocationRequest struct {
|
||||
ShopID uint `json:"shop_id" validate:"required" required:"true" description:"被分配的店铺ID"`
|
||||
SeriesID uint `json:"series_id" validate:"required" required:"true" description:"套餐系列ID"`
|
||||
BaseCommission BaseCommissionConfig `json:"base_commission" validate:"required" required:"true" description:"基础返佣配置"`
|
||||
EnableTierCommission bool `json:"enable_tier_commission" description:"是否启用梯度返佣"`
|
||||
TierConfig *TierCommissionConfig `json:"tier_config" validate:"omitempty" description:"梯度返佣配置(启用梯度返佣时必填)"`
|
||||
EnableOneTimeCommission bool `json:"enable_one_time_commission" description:"是否启用一次性佣金"`
|
||||
OneTimeCommissionConfig *OneTimeCommissionConfig `json:"one_time_commission_config" validate:"omitempty" description:"一次性佣金配置(启用一次性佣金时必填)"`
|
||||
}
|
||||
@@ -52,8 +36,6 @@ type CreateShopSeriesAllocationRequest struct {
|
||||
// UpdateShopSeriesAllocationRequest 更新套餐系列分配请求
|
||||
type UpdateShopSeriesAllocationRequest struct {
|
||||
BaseCommission *BaseCommissionConfig `json:"base_commission" validate:"omitempty" description:"基础返佣配置"`
|
||||
EnableTierCommission *bool `json:"enable_tier_commission" description:"是否启用梯度返佣"`
|
||||
TierConfig *TierCommissionConfig `json:"tier_config" validate:"omitempty" description:"梯度返佣配置"`
|
||||
EnableOneTimeCommission *bool `json:"enable_one_time_commission" description:"是否启用一次性佣金"`
|
||||
OneTimeCommissionConfig *OneTimeCommissionConfig `json:"one_time_commission_config" validate:"omitempty" description:"一次性佣金配置"`
|
||||
}
|
||||
@@ -82,7 +64,6 @@ type ShopSeriesAllocationResponse struct {
|
||||
AllocatorShopID uint `json:"allocator_shop_id" description:"分配者店铺ID"`
|
||||
AllocatorShopName string `json:"allocator_shop_name" description:"分配者店铺名称"`
|
||||
BaseCommission BaseCommissionConfig `json:"base_commission" description:"基础返佣配置"`
|
||||
EnableTierCommission bool `json:"enable_tier_commission" description:"是否启用梯度返佣"`
|
||||
EnableOneTimeCommission bool `json:"enable_one_time_commission" description:"是否启用一次性佣金"`
|
||||
OneTimeCommissionConfig *OneTimeCommissionConfig `json:"one_time_commission_config,omitempty" description:"一次性佣金配置"`
|
||||
Status int `json:"status" description:"状态 (1:启用, 2:禁用)"`
|
||||
|
||||
@@ -9,13 +9,12 @@ import (
|
||||
// 分配者只能分配自己已被分配的套餐系列,且只能分配给直属下级
|
||||
type ShopSeriesAllocation struct {
|
||||
gorm.Model
|
||||
BaseModel `gorm:"embedded"`
|
||||
ShopID uint `gorm:"column:shop_id;index;not null;comment:被分配的店铺ID" json:"shop_id"`
|
||||
SeriesID uint `gorm:"column:series_id;index;not null;comment:套餐系列ID" json:"series_id"`
|
||||
AllocatorShopID uint `gorm:"column:allocator_shop_id;index;not null;comment:分配者店铺ID(上级)" json:"allocator_shop_id"`
|
||||
BaseCommissionMode string `gorm:"column:base_commission_mode;type:varchar(20);not null;default:percent;comment:基础返佣模式 fixed-固定金额 percent-百分比" json:"base_commission_mode"`
|
||||
BaseCommissionValue int64 `gorm:"column:base_commission_value;type:bigint;not null;default:0;comment:基础返佣值(分或千分比,如200=20%)" json:"base_commission_value"`
|
||||
EnableTierCommission bool `gorm:"column:enable_tier_commission;type:boolean;not null;default:false;comment:是否启用梯度返佣" json:"enable_tier_commission"`
|
||||
BaseModel `gorm:"embedded"`
|
||||
ShopID uint `gorm:"column:shop_id;index;not null;comment:被分配的店铺ID" json:"shop_id"`
|
||||
SeriesID uint `gorm:"column:series_id;index;not null;comment:套餐系列ID" json:"series_id"`
|
||||
AllocatorShopID uint `gorm:"column:allocator_shop_id;index;not null;comment:分配者店铺ID(上级)" json:"allocator_shop_id"`
|
||||
BaseCommissionMode string `gorm:"column:base_commission_mode;type:varchar(20);not null;default:percent;comment:基础返佣模式 fixed-固定金额 percent-百分比" json:"base_commission_mode"`
|
||||
BaseCommissionValue int64 `gorm:"column:base_commission_value;type:bigint;not null;default:0;comment:基础返佣值(分或千分比,如200=20%)" json:"base_commission_value"`
|
||||
|
||||
// 一次性佣金配置
|
||||
EnableOneTimeCommission bool `gorm:"column:enable_one_time_commission;type:boolean;not null;default:false;comment:是否启用一次性佣金" json:"enable_one_time_commission"`
|
||||
|
||||
@@ -11,13 +11,12 @@ import (
|
||||
// 支持配置追溯和数据一致性保障
|
||||
type ShopSeriesAllocationConfig struct {
|
||||
gorm.Model
|
||||
AllocationID uint `gorm:"column:allocation_id;index;not null;comment:关联的分配ID" json:"allocation_id"`
|
||||
Version int `gorm:"column:version;type:int;not null;comment:配置版本号" json:"version"`
|
||||
BaseCommissionMode string `gorm:"column:base_commission_mode;type:varchar(20);not null;comment:基础返佣模式(配置快照)" json:"base_commission_mode"`
|
||||
BaseCommissionValue int64 `gorm:"column:base_commission_value;type:bigint;not null;comment:基础返佣值(配置快照)" json:"base_commission_value"`
|
||||
EnableTierCommission bool `gorm:"column:enable_tier_commission;type:boolean;not null;comment:是否启用梯度返佣(配置快照)" json:"enable_tier_commission"`
|
||||
EffectiveFrom time.Time `gorm:"column:effective_from;type:timestamptz;not null;comment:生效开始时间" json:"effective_from"`
|
||||
EffectiveTo *time.Time `gorm:"column:effective_to;type:timestamptz;comment:生效结束时间(NULL表示当前生效)" json:"effective_to"`
|
||||
AllocationID uint `gorm:"column:allocation_id;index;not null;comment:关联的分配ID" json:"allocation_id"`
|
||||
Version int `gorm:"column:version;type:int;not null;comment:配置版本号" json:"version"`
|
||||
BaseCommissionMode string `gorm:"column:base_commission_mode;type:varchar(20);not null;comment:基础返佣模式(配置快照)" json:"base_commission_mode"`
|
||||
BaseCommissionValue int64 `gorm:"column:base_commission_value;type:bigint;not null;comment:基础返佣值(配置快照)" json:"base_commission_value"`
|
||||
EffectiveFrom time.Time `gorm:"column:effective_from;type:timestamptz;not null;comment:生效开始时间" json:"effective_from"`
|
||||
EffectiveTo *time.Time `gorm:"column:effective_to;type:timestamptz;comment:生效结束时间(NULL表示当前生效)" json:"effective_to"`
|
||||
}
|
||||
|
||||
// TableName 指定表名
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// ShopSeriesCommissionTier 梯度佣金配置模型
|
||||
// 基于销量或销售额配置不同档位的返佣比例提升
|
||||
// 支持月度、季度、年度、自定义周期的统计
|
||||
type ShopSeriesCommissionTier struct {
|
||||
gorm.Model
|
||||
BaseModel `gorm:"embedded"`
|
||||
AllocationID uint `gorm:"column:allocation_id;index;not null;comment:关联的分配ID" json:"allocation_id"`
|
||||
TierType string `gorm:"column:tier_type;type:varchar(20);not null;comment:梯度类型 sales_count-销量 sales_amount-销售额" json:"tier_type"`
|
||||
PeriodType string `gorm:"column:period_type;type:varchar(20);not null;comment:周期类型 monthly-月度 quarterly-季度 yearly-年度 custom-自定义" json:"period_type"`
|
||||
PeriodStartDate *time.Time `gorm:"column:period_start_date;comment:自定义周期开始日期" json:"period_start_date"`
|
||||
PeriodEndDate *time.Time `gorm:"column:period_end_date;comment:自定义周期结束日期" json:"period_end_date"`
|
||||
ThresholdValue int64 `gorm:"column:threshold_value;type:bigint;not null;comment:阈值(销量或金额分)" json:"threshold_value"`
|
||||
CommissionMode string `gorm:"column:commission_mode;type:varchar(20);not null;default:percent;comment:达标后返佣模式 fixed-固定金额 percent-百分比" json:"commission_mode"`
|
||||
CommissionValue int64 `gorm:"column:commission_value;type:bigint;not null;comment:达标后返佣值(分或千分比)" json:"commission_value"`
|
||||
}
|
||||
|
||||
// TableName 指定表名
|
||||
func (ShopSeriesCommissionTier) TableName() string {
|
||||
return "tb_shop_series_commission_tier"
|
||||
}
|
||||
|
||||
// 梯度类型常量
|
||||
const (
|
||||
// TierTypeSalesCount 销量梯度
|
||||
TierTypeSalesCount = "sales_count"
|
||||
// TierTypeSalesAmount 销售额梯度
|
||||
TierTypeSalesAmount = "sales_amount"
|
||||
)
|
||||
|
||||
// 周期类型常量
|
||||
const (
|
||||
// PeriodTypeMonthly 月度
|
||||
PeriodTypeMonthly = "monthly"
|
||||
// PeriodTypeQuarterly 季度
|
||||
PeriodTypeQuarterly = "quarterly"
|
||||
// PeriodTypeYearly 年度
|
||||
PeriodTypeYearly = "yearly"
|
||||
// PeriodTypeCustom 自定义
|
||||
PeriodTypeCustom = "custom"
|
||||
)
|
||||
@@ -23,12 +23,14 @@ func (ShopSeriesOneTimeCommissionTier) TableName() string {
|
||||
return "tb_shop_series_one_time_commission_tier"
|
||||
}
|
||||
|
||||
// 梯度类型常量(复用 ShopSeriesCommissionTier 的常量)
|
||||
// TierTypeSalesCount = "sales_count" // 销量梯度
|
||||
// TierTypeSalesAmount = "sales_amount" // 销售额梯度
|
||||
// 这些常量已在 shop_series_commission_tier.go 中定义
|
||||
// 梯度类型常量
|
||||
const (
|
||||
// TierTypeSalesCount 销量梯度
|
||||
TierTypeSalesCount = "sales_count"
|
||||
// TierTypeSalesAmount 销售额梯度
|
||||
TierTypeSalesAmount = "sales_amount"
|
||||
)
|
||||
|
||||
// 返佣模式常量(复用 ShopSeriesAllocation 的常量)
|
||||
// CommissionModeFixed = "fixed" // 固定金额返佣
|
||||
// CommissionModePercent = "percent" // 百分比返佣(千分比)
|
||||
// 这些常量已在 shop_series_allocation.go 中定义
|
||||
// 返佣模式常量在 shop_series_allocation.go 中定义
|
||||
// CommissionModeFixed = "fixed"
|
||||
// CommissionModePercent = "percent"
|
||||
|
||||
Reference in New Issue
Block a user