This commit is contained in:
2025-12-09 18:55:28 +08:00
parent 8d00d67540
commit c23ab8338b
209 changed files with 5445 additions and 3963 deletions

View File

@@ -8,9 +8,11 @@ import (
"fmt"
"strings"
"reflect"
"time"
"github.com/Masterminds/squirrel"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
@@ -23,7 +25,7 @@ import (
var (
agentUpgradeFieldNames = builder.RawFieldNames(&AgentUpgrade{})
agentUpgradeRows = strings.Join(agentUpgradeFieldNames, ",")
agentUpgradeRowsExpectAutoSet = strings.Join(stringx.Remove(agentUpgradeFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
agentUpgradeRowsExpectAutoSet = strings.Join(stringx.Remove(agentUpgradeFieldNames, "`create_time`", "`update_time`"), ",")
agentUpgradeRowsWithPlaceHolder = strings.Join(stringx.Remove(agentUpgradeFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheYccAgentUpgradeIdPrefix = "cache:ycc:agentUpgrade:id:"
@@ -32,7 +34,7 @@ var (
type (
agentUpgradeModel interface {
Insert(ctx context.Context, session sqlx.Session, data *AgentUpgrade) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*AgentUpgrade, error)
FindOne(ctx context.Context, id string) (*AgentUpgrade, error)
Update(ctx context.Context, session sqlx.Session, data *AgentUpgrade) (sql.Result, error)
UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentUpgrade) error
Trans(ctx context.Context, fn func(context context.Context, session sqlx.Session) error) error
@@ -45,7 +47,7 @@ type (
FindPageListByPageWithTotal(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentUpgrade, int64, error)
FindPageListByIdDESC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentUpgrade, error)
FindPageListByIdASC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentUpgrade, error)
Delete(ctx context.Context, session sqlx.Session, id int64) error
Delete(ctx context.Context, session sqlx.Session, id string) error
}
defaultAgentUpgradeModel struct {
@@ -54,23 +56,23 @@ type (
}
AgentUpgrade struct {
Id int64 `db:"id"` // 主键ID
AgentId int64 `db:"agent_id"` // 被升级的代理ID
FromLevel int64 `db:"from_level"` // 原等级1=普通2=黄金3=钻石
ToLevel int64 `db:"to_level"` // 目标等级1=普通2=黄金3=钻石
UpgradeType int64 `db:"upgrade_type"` // 升级类型1=自主付费2=钻石升级下级
UpgradeFee float64 `db:"upgrade_fee"` // 升级费用
RebateAmount float64 `db:"rebate_amount"` // 返佣金额(给原直接上级)
RebateAgentId sql.NullInt64 `db:"rebate_agent_id"` // 返佣代理ID原直接上级
OperatorAgentId sql.NullInt64 `db:"operator_agent_id"` // 操作代理ID如果是钻石升级下级记录操作者
OrderNo sql.NullString `db:"order_no"` // 支付订单号(如果是自主付费)
Status int64 `db:"status"` // 状态1=待处理2=已完成3=已失败
Remark sql.NullString `db:"remark"` // 备注
CreateTime time.Time `db:"create_time"` // 创建时间
UpdateTime time.Time `db:"update_time"` // 更新时间
DeleteTime sql.NullTime `db:"delete_time"` // 删除时间
DelState int64 `db:"del_state"` // 删除状态0=未删除1=已删除
Version int64 `db:"version"` // 版本号(乐观锁)
Id string `db:"id"`
AgentId string `db:"agent_id"`
FromLevel int64 `db:"from_level"` // 原等级1=普通2=黄金3=钻石
ToLevel int64 `db:"to_level"` // 目标等级1=普通2=黄金3=钻石
UpgradeType int64 `db:"upgrade_type"` // 升级类型1=自主付费2=钻石升级下级
UpgradeFee float64 `db:"upgrade_fee"` // 升级费用
RebateAmount float64 `db:"rebate_amount"` // 返佣金额(给原直接上级)
RebateAgentId sql.NullString `db:"rebate_agent_id"`
OperatorAgentId sql.NullString `db:"operator_agent_id"`
OrderNo sql.NullString `db:"order_no"` // 支付订单号(如果是自主付费)
Status int64 `db:"status"` // 状态1=待处理2=已完成3=已失败
Remark sql.NullString `db:"remark"` // 备注
CreateTime time.Time `db:"create_time"` // 创建时间
UpdateTime time.Time `db:"update_time"` // 更新时间
DeleteTime sql.NullTime `db:"delete_time"` // 删除时间
DelState int64 `db:"del_state"` // 删除状态0=未删除1=已删除
Version int64 `db:"version"` // 版本号(乐观锁)
}
)
@@ -83,17 +85,34 @@ func newAgentUpgradeModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAgentUpg
func (m *defaultAgentUpgradeModel) Insert(ctx context.Context, session sqlx.Session, data *AgentUpgrade) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
m.insertUUID(data)
yccAgentUpgradeIdKey := fmt.Sprintf("%s%v", cacheYccAgentUpgradeIdPrefix, data.Id)
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, agentUpgradeRowsExpectAutoSet)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, agentUpgradeRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.FromLevel, data.ToLevel, data.UpgradeType, data.UpgradeFee, data.RebateAmount, data.RebateAgentId, data.OperatorAgentId, data.OrderNo, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
return session.ExecCtx(ctx, query, data.Id, data.AgentId, data.FromLevel, data.ToLevel, data.UpgradeType, data.UpgradeFee, data.RebateAmount, data.RebateAgentId, data.OperatorAgentId, data.OrderNo, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.FromLevel, data.ToLevel, data.UpgradeType, data.UpgradeFee, data.RebateAmount, data.RebateAgentId, data.OperatorAgentId, data.OrderNo, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
return conn.ExecCtx(ctx, query, data.Id, data.AgentId, data.FromLevel, data.ToLevel, data.UpgradeType, data.UpgradeFee, data.RebateAmount, data.RebateAgentId, data.OperatorAgentId, data.OrderNo, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
}, yccAgentUpgradeIdKey)
}
func (m *defaultAgentUpgradeModel) insertUUID(data *AgentUpgrade) {
t := reflect.TypeOf(data).Elem()
v := reflect.ValueOf(data).Elem()
for i := 0; i < t.NumField(); i++ {
sf := t.Field(i)
if sf.Tag.Get("db") == "id" {
f := v.Field(i)
if f.IsValid() && f.CanSet() && f.Kind() == reflect.String {
if f.String() == "" {
f.SetString(uuid.NewString())
}
}
break
}
}
}
func (m *defaultAgentUpgradeModel) FindOne(ctx context.Context, id int64) (*AgentUpgrade, error) {
func (m *defaultAgentUpgradeModel) FindOne(ctx context.Context, id string) (*AgentUpgrade, error) {
yccAgentUpgradeIdKey := fmt.Sprintf("%s%v", cacheYccAgentUpgradeIdPrefix, id)
var resp AgentUpgrade
err := m.QueryRowCtx(ctx, &resp, yccAgentUpgradeIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
@@ -353,7 +372,7 @@ func (m *defaultAgentUpgradeModel) Trans(ctx context.Context, fn func(ctx contex
func (m *defaultAgentUpgradeModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAgentUpgradeModel) Delete(ctx context.Context, session sqlx.Session, id int64) error {
func (m *defaultAgentUpgradeModel) Delete(ctx context.Context, session sqlx.Session, id string) error {
yccAgentUpgradeIdKey := fmt.Sprintf("%s%v", cacheYccAgentUpgradeIdPrefix, id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)