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 )