Files
junhong_cmp_fiber/internal/model/commission.go
huang e87513541b
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m41s
feat: 实现一次性佣金功能
- 新增佣金计算服务,支持一次性佣金和返佣计算
- 新增 ShopSeriesOneTimeCommissionTier 模型和存储层
- 新增两个数据库迁移:一次性佣金表和订单佣金字段
- 更新 Commission 模型,新增佣金来源和关联字段
- 更新 CommissionRecord 存储层,支持一次性佣金查询
- 更新 MyCommission 服务,集成一次性佣金计算逻辑
- 更新 ShopCommission 服务,支持一次性佣金统计
- 新增佣金计算异步任务处理器
- 更新 API 路由,新增一次性佣金相关端点
- 归档 OpenSpec 变更文档,同步规范到主规范库
2026-01-29 09:36:12 +08:00

49 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package model
import (
"time"
"gorm.io/gorm"
)
// CommissionRecord 佣金记录模型
// 记录各级代理的佣金入账情况
// 包含成本价差收入、一次性佣金、梯度奖励等多种佣金来源
type CommissionRecord struct {
gorm.Model
BaseModel `gorm:"embedded"`
ShopID uint `gorm:"column:shop_id;index;not null;comment:店铺ID佣金归属" json:"shop_id"`
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"`
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"`
ReleasedAt *time.Time `gorm:"column:released_at;comment:入账时间" json:"released_at"`
Remark string `gorm:"column:remark;type:varchar(500);comment:备注" json:"remark"`
}
// TableName 指定表名
func (CommissionRecord) TableName() string {
return "tb_commission_record"
}
// 佣金来源常量
const (
// CommissionSourceCostDiff 成本价差收入
CommissionSourceCostDiff = "cost_diff"
// CommissionSourceOneTime 一次性佣金
CommissionSourceOneTime = "one_time"
// CommissionSourceTierBonus 梯度奖励
CommissionSourceTierBonus = "tier_bonus"
)
// 佣金状态常量
const (
// CommissionStatusReleased 已入账
CommissionStatusReleased = 1
// CommissionStatusInvalid 已失效
CommissionStatusInvalid = 2
)