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 (
agentOrderFieldNames = builder.RawFieldNames(&AgentOrder{})
agentOrderRows = strings.Join(agentOrderFieldNames, ",")
agentOrderRowsExpectAutoSet = strings.Join(stringx.Remove(agentOrderFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
agentOrderRowsExpectAutoSet = strings.Join(stringx.Remove(agentOrderFieldNames, "`create_time`", "`update_time`"), ",")
agentOrderRowsWithPlaceHolder = strings.Join(stringx.Remove(agentOrderFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheYccAgentOrderIdPrefix = "cache:ycc:agentOrder:id:"
@@ -33,8 +35,8 @@ var (
type (
agentOrderModel interface {
Insert(ctx context.Context, session sqlx.Session, data *AgentOrder) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*AgentOrder, error)
FindOneByOrderId(ctx context.Context, orderId int64) (*AgentOrder, error)
FindOne(ctx context.Context, id string) (*AgentOrder, error)
FindOneByOrderId(ctx context.Context, orderId string) (*AgentOrder, error)
Update(ctx context.Context, session sqlx.Session, data *AgentOrder) (sql.Result, error)
UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentOrder) error
Trans(ctx context.Context, fn func(context context.Context, session sqlx.Session) error) error
@@ -47,7 +49,7 @@ type (
FindPageListByPageWithTotal(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentOrder, int64, error)
FindPageListByIdDESC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentOrder, error)
FindPageListByIdASC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentOrder, error)
Delete(ctx context.Context, session sqlx.Session, id int64) error
Delete(ctx context.Context, session sqlx.Session, id string) error
}
defaultAgentOrderModel struct {
@@ -56,10 +58,10 @@ type (
}
AgentOrder struct {
Id int64 `db:"id"` // 主键ID
AgentId int64 `db:"agent_id"` // 代理ID
OrderId int64 `db:"order_id"` // 订单ID
ProductId int64 `db:"product_id"` // 产品ID
Id string `db:"id"`
AgentId string `db:"agent_id"`
OrderId string `db:"order_id"`
ProductId string `db:"product_id"`
OrderAmount float64 `db:"order_amount"` // 订单金额(用户实际支付金额,冗余字段)
SetPrice float64 `db:"set_price"` // 代理设定价格
ActualBasePrice float64 `db:"actual_base_price"` // 实际底价(基础底价+等级加成)
@@ -85,18 +87,35 @@ func newAgentOrderModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAgentOrder
func (m *defaultAgentOrderModel) Insert(ctx context.Context, session sqlx.Session, data *AgentOrder) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
m.insertUUID(data)
yccAgentOrderIdKey := fmt.Sprintf("%s%v", cacheYccAgentOrderIdPrefix, data.Id)
yccAgentOrderOrderIdKey := fmt.Sprintf("%s%v", cacheYccAgentOrderOrderIdPrefix, data.OrderId)
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, agentOrderRowsExpectAutoSet)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, agentOrderRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.OrderId, data.ProductId, data.OrderAmount, data.SetPrice, data.ActualBasePrice, data.PriceCost, data.AgentProfit, data.ProcessStatus, data.ProcessTime, data.ProcessRemark, data.DeleteTime, data.DelState, data.Version)
return session.ExecCtx(ctx, query, data.Id, data.AgentId, data.OrderId, data.ProductId, data.OrderAmount, data.SetPrice, data.ActualBasePrice, data.PriceCost, data.AgentProfit, data.ProcessStatus, data.ProcessTime, data.ProcessRemark, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.OrderId, data.ProductId, data.OrderAmount, data.SetPrice, data.ActualBasePrice, data.PriceCost, data.AgentProfit, data.ProcessStatus, data.ProcessTime, data.ProcessRemark, data.DeleteTime, data.DelState, data.Version)
return conn.ExecCtx(ctx, query, data.Id, data.AgentId, data.OrderId, data.ProductId, data.OrderAmount, data.SetPrice, data.ActualBasePrice, data.PriceCost, data.AgentProfit, data.ProcessStatus, data.ProcessTime, data.ProcessRemark, data.DeleteTime, data.DelState, data.Version)
}, yccAgentOrderIdKey, yccAgentOrderOrderIdKey)
}
func (m *defaultAgentOrderModel) insertUUID(data *AgentOrder) {
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 *defaultAgentOrderModel) FindOne(ctx context.Context, id int64) (*AgentOrder, error) {
func (m *defaultAgentOrderModel) FindOne(ctx context.Context, id string) (*AgentOrder, error) {
yccAgentOrderIdKey := fmt.Sprintf("%s%v", cacheYccAgentOrderIdPrefix, id)
var resp AgentOrder
err := m.QueryRowCtx(ctx, &resp, yccAgentOrderIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
@@ -113,7 +132,7 @@ func (m *defaultAgentOrderModel) FindOne(ctx context.Context, id int64) (*AgentO
}
}
func (m *defaultAgentOrderModel) FindOneByOrderId(ctx context.Context, orderId int64) (*AgentOrder, error) {
func (m *defaultAgentOrderModel) FindOneByOrderId(ctx context.Context, orderId string) (*AgentOrder, error) {
yccAgentOrderOrderIdKey := fmt.Sprintf("%s%v", cacheYccAgentOrderOrderIdPrefix, orderId)
var resp AgentOrder
err := m.QueryRowIndexCtx(ctx, &resp, yccAgentOrderOrderIdKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) (i interface{}, e error) {
@@ -386,7 +405,7 @@ func (m *defaultAgentOrderModel) Trans(ctx context.Context, fn func(ctx context.
func (m *defaultAgentOrderModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAgentOrderModel) Delete(ctx context.Context, session sqlx.Session, id int64) error {
func (m *defaultAgentOrderModel) Delete(ctx context.Context, session sqlx.Session, id string) error {
data, err := m.FindOne(ctx, id)
if err != nil {
return err