This commit is contained in:
2026-04-29 11:38:59 +08:00
parent e96e3f9583
commit 7d363f4e8a
30 changed files with 1135 additions and 215 deletions

View File

@@ -11,7 +11,6 @@ import (
"time"
"bdrp-server/common/globalkey"
"github.com/Masterminds/squirrel"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
@@ -59,8 +58,9 @@ type (
AgentId int64 `db:"agent_id"`
DeductedAgentId int64 `db:"deducted_agent_id"` // 被抽佣代理ID
Amount float64 `db:"amount"`
ProductId int64 `db:"product_id"` // 产品ID
OrderId sql.NullInt64 `db:"order_id"` // 关联订单ID
RefundedAmount float64 `db:"refunded_amount"` // 已退款金额
ProductId int64 `db:"product_id"` // 产品ID
OrderId sql.NullInt64 `db:"order_id"` // 关联订单ID
Type string `db:"type"`
Status int64 `db:"status"` // 状态
CreateTime time.Time `db:"create_time"`
@@ -82,11 +82,11 @@ func (m *defaultAgentCommissionDeductionModel) Insert(ctx context.Context, sessi
data.DelState = globalkey.DelStateNo
bdrpAgentCommissionDeductionIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentCommissionDeductionIdPrefix, 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, agentCommissionDeductionRowsExpectAutoSet)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, agentCommissionDeductionRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version)
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version)
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version)
}, bdrpAgentCommissionDeductionIdKey)
}
@@ -112,9 +112,9 @@ func (m *defaultAgentCommissionDeductionModel) Update(ctx context.Context, sessi
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, agentCommissionDeductionRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id)
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id)
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id)
}, bdrpAgentCommissionDeductionIdKey)
}
@@ -130,9 +130,9 @@ func (m *defaultAgentCommissionDeductionModel) UpdateWithVersion(ctx context.Con
sqlResult, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ? and version = ? ", m.table, agentCommissionDeductionRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
return session.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
return conn.ExecCtx(ctx, query, data.AgentId, data.DeductedAgentId, data.Amount, data.RefundedAmount, data.ProductId, data.OrderId, data.Type, data.Status, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}, bdrpAgentCommissionDeductionIdKey)
if err != nil {
return err

View File

@@ -0,0 +1,57 @@
package model
import (
"context"
"strconv"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
var _ AgentConfigModel = (*customAgentConfigModel)(nil)
type (
// AgentConfigModel is an interface to be customized, add more methods here,
// and implement the added methods in customAgentConfigModel.
AgentConfigModel interface {
agentConfigModel
IsCommissionSafeMode(ctx context.Context) bool
SetCommissionSafeMode(ctx context.Context, enabled bool) error
}
customAgentConfigModel struct {
*defaultAgentConfigModel
}
)
// 配置键常量
const (
AgentConfigKeyCommissionSafeMode = "commission_safe_mode"
)
// NewAgentConfigModel returns a model for the database table.
func NewAgentConfigModel(conn sqlx.SqlConn, c cache.CacheConf) AgentConfigModel {
return &customAgentConfigModel{
defaultAgentConfigModel: newAgentConfigModel(conn, c),
}
}
// IsCommissionSafeMode 从数据库查询佣金安全防御模式是否开启
func (m *customAgentConfigModel) IsCommissionSafeMode(ctx context.Context) bool {
config, err := m.FindOneByConfigKey(ctx, AgentConfigKeyCommissionSafeMode)
if err != nil {
return false
}
enabled, _ := strconv.ParseBool(config.ConfigValue)
return enabled
}
// SetCommissionSafeMode 更新佣金安全防御模式开关
func (m *customAgentConfigModel) SetCommissionSafeMode(ctx context.Context, enabled bool) error {
config, err := m.FindOneByConfigKey(ctx, AgentConfigKeyCommissionSafeMode)
if err != nil {
return err
}
config.ConfigValue = strconv.FormatBool(enabled)
return m.UpdateWithVersion(ctx, nil, config)
}

View File

@@ -0,0 +1,408 @@
// Code generated by goctl. DO NOT EDIT!
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"time"
"bdrp-server/common/globalkey"
"github.com/Masterminds/squirrel"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
agentConfigFieldNames = builder.RawFieldNames(&AgentConfig{})
agentConfigRows = strings.Join(agentConfigFieldNames, ",")
agentConfigRowsExpectAutoSet = strings.Join(stringx.Remove(agentConfigFieldNames, "`create_time`", "`update_time`"), ",")
agentConfigRowsWithPlaceHolder = strings.Join(stringx.Remove(agentConfigFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheBdrpAgentConfigIdPrefix = "cache:bdrp:agentConfig:id:"
cacheBdrpAgentConfigConfigKeyPrefix = "cache:bdrp:agentConfig:configKey:"
)
type (
agentConfigModel interface {
Insert(ctx context.Context, session sqlx.Session, data *AgentConfig) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*AgentConfig, error)
FindOneByConfigKey(ctx context.Context, configKey string) (*AgentConfig, error)
Update(ctx context.Context, session sqlx.Session, data *AgentConfig) (sql.Result, error)
UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentConfig) error
Trans(ctx context.Context, fn func(context context.Context, session sqlx.Session) error) error
SelectBuilder() squirrel.SelectBuilder
DeleteSoft(ctx context.Context, session sqlx.Session, data *AgentConfig) error
FindSum(ctx context.Context, sumBuilder squirrel.SelectBuilder, field string) (float64, error)
FindCount(ctx context.Context, countBuilder squirrel.SelectBuilder, field string) (int64, error)
FindAll(ctx context.Context, rowBuilder squirrel.SelectBuilder, orderBy string) ([]*AgentConfig, error)
FindPageListByPage(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentConfig, error)
FindPageListByPageWithTotal(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentConfig, int64, error)
FindPageListByIdDESC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentConfig, error)
FindPageListByIdASC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentConfig, error)
Delete(ctx context.Context, session sqlx.Session, id int64) error
}
defaultAgentConfigModel struct {
sqlc.CachedConn
table string
}
AgentConfig struct {
Id int64 `db:"id"` // 主键ID
ConfigKey string `db:"config_key"` // 配置键名
ConfigValue string `db:"config_value"` // 配置值
Remark string `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"` // 删除状态
Version int64 `db:"version"` // 版本号
}
)
func newAgentConfigModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAgentConfigModel {
return &defaultAgentConfigModel{
CachedConn: sqlc.NewConn(conn, c),
table: "`agent_config`",
}
}
func (m *defaultAgentConfigModel) Insert(ctx context.Context, session sqlx.Session, data *AgentConfig) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
bdrpAgentConfigConfigKeyKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigConfigKeyPrefix, data.ConfigKey)
bdrpAgentConfigIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, 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, agentConfigRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.Id, data.ConfigKey, data.ConfigValue, data.Remark, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.Id, data.ConfigKey, data.ConfigValue, data.Remark, data.DeleteTime, data.DelState, data.Version)
}, bdrpAgentConfigConfigKeyKey, bdrpAgentConfigIdKey)
}
func (m *defaultAgentConfigModel) FindOne(ctx context.Context, id int64) (*AgentConfig, error) {
bdrpAgentConfigIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, id)
var resp AgentConfig
err := m.QueryRowCtx(ctx, &resp, bdrpAgentConfigIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", agentConfigRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id, globalkey.DelStateNo)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) FindOneByConfigKey(ctx context.Context, configKey string) (*AgentConfig, error) {
bdrpAgentConfigConfigKeyKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigConfigKeyPrefix, configKey)
var resp AgentConfig
err := m.QueryRowIndexCtx(ctx, &resp, bdrpAgentConfigConfigKeyKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) (i interface{}, e error) {
query := fmt.Sprintf("select %s from %s where `config_key` = ? and del_state = ? limit 1", agentConfigRows, m.table)
if err := conn.QueryRowCtx(ctx, &resp, query, configKey, globalkey.DelStateNo); err != nil {
return nil, err
}
return resp.Id, nil
}, m.queryPrimary)
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) Update(ctx context.Context, session sqlx.Session, newData *AgentConfig) (sql.Result, error) {
data, err := m.FindOne(ctx, newData.Id)
if err != nil {
return nil, err
}
bdrpAgentConfigConfigKeyKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigConfigKeyPrefix, data.ConfigKey)
bdrpAgentConfigIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, data.Id)
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, agentConfigRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, newData.ConfigKey, newData.ConfigValue, newData.Remark, newData.DeleteTime, newData.DelState, newData.Version, newData.Id)
}
return conn.ExecCtx(ctx, query, newData.ConfigKey, newData.ConfigValue, newData.Remark, newData.DeleteTime, newData.DelState, newData.Version, newData.Id)
}, bdrpAgentConfigConfigKeyKey, bdrpAgentConfigIdKey)
}
func (m *defaultAgentConfigModel) UpdateWithVersion(ctx context.Context, session sqlx.Session, newData *AgentConfig) error {
oldVersion := newData.Version
newData.Version += 1
var sqlResult sql.Result
var err error
data, err := m.FindOne(ctx, newData.Id)
if err != nil {
return err
}
bdrpAgentConfigConfigKeyKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigConfigKeyPrefix, data.ConfigKey)
bdrpAgentConfigIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, data.Id)
sqlResult, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ? and version = ? ", m.table, agentConfigRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, newData.ConfigKey, newData.ConfigValue, newData.Remark, newData.DeleteTime, newData.DelState, newData.Version, newData.Id, oldVersion)
}
return conn.ExecCtx(ctx, query, newData.ConfigKey, newData.ConfigValue, newData.Remark, newData.DeleteTime, newData.DelState, newData.Version, newData.Id, oldVersion)
}, bdrpAgentConfigConfigKeyKey, bdrpAgentConfigIdKey)
if err != nil {
return err
}
updateCount, err := sqlResult.RowsAffected()
if err != nil {
return err
}
if updateCount == 0 {
return ErrNoRowsUpdate
}
return nil
}
func (m *defaultAgentConfigModel) DeleteSoft(ctx context.Context, session sqlx.Session, data *AgentConfig) error {
data.DelState = globalkey.DelStateYes
data.DeleteTime = sql.NullTime{Time: time.Now(), Valid: true}
if err := m.UpdateWithVersion(ctx, session, data); err != nil {
return errors.Wrapf(errors.New("delete soft failed "), "AgentConfigModel delete err : %+v", err)
}
return nil
}
func (m *defaultAgentConfigModel) FindSum(ctx context.Context, builder squirrel.SelectBuilder, field string) (float64, error) {
if len(field) == 0 {
return 0, errors.Wrapf(errors.New("FindSum Least One Field"), "FindSum Least One Field")
}
builder = builder.Columns("IFNULL(SUM(" + field + "),0)")
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).ToSql()
if err != nil {
return 0, err
}
var resp float64
err = m.QueryRowNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return 0, err
}
}
func (m *defaultAgentConfigModel) FindCount(ctx context.Context, builder squirrel.SelectBuilder, field string) (int64, error) {
if len(field) == 0 {
return 0, errors.Wrapf(errors.New("FindCount Least One Field"), "FindCount Least One Field")
}
builder = builder.Columns("COUNT(" + field + ")")
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).ToSql()
if err != nil {
return 0, err
}
var resp int64
err = m.QueryRowNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return 0, err
}
}
func (m *defaultAgentConfigModel) FindAll(ctx context.Context, builder squirrel.SelectBuilder, orderBy string) ([]*AgentConfig, error) {
builder = builder.Columns(agentConfigRows)
if orderBy == "" {
builder = builder.OrderBy("id DESC")
} else {
builder = builder.OrderBy(orderBy)
}
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).ToSql()
if err != nil {
return nil, err
}
var resp []*AgentConfig
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) FindPageListByPage(ctx context.Context, builder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentConfig, error) {
builder = builder.Columns(agentConfigRows)
if orderBy == "" {
builder = builder.OrderBy("id DESC")
} else {
builder = builder.OrderBy(orderBy)
}
if page < 1 {
page = 1
}
offset := (page - 1) * pageSize
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).Offset(uint64(offset)).Limit(uint64(pageSize)).ToSql()
if err != nil {
return nil, err
}
var resp []*AgentConfig
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) FindPageListByPageWithTotal(ctx context.Context, builder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentConfig, int64, error) {
total, err := m.FindCount(ctx, builder, "id")
if err != nil {
return nil, 0, err
}
builder = builder.Columns(agentConfigRows)
if orderBy == "" {
builder = builder.OrderBy("id DESC")
} else {
builder = builder.OrderBy(orderBy)
}
if page < 1 {
page = 1
}
offset := (page - 1) * pageSize
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).Offset(uint64(offset)).Limit(uint64(pageSize)).ToSql()
if err != nil {
return nil, total, err
}
var resp []*AgentConfig
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, total, nil
default:
return nil, total, err
}
}
func (m *defaultAgentConfigModel) FindPageListByIdDESC(ctx context.Context, builder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentConfig, error) {
builder = builder.Columns(agentConfigRows)
if preMinId > 0 {
builder = builder.Where(" id < ? ", preMinId)
}
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).OrderBy("id DESC").Limit(uint64(pageSize)).ToSql()
if err != nil {
return nil, err
}
var resp []*AgentConfig
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) FindPageListByIdASC(ctx context.Context, builder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentConfig, error) {
builder = builder.Columns(agentConfigRows)
if preMaxId > 0 {
builder = builder.Where(" id > ? ", preMaxId)
}
query, values, err := builder.Where("del_state = ?", globalkey.DelStateNo).OrderBy("id ASC").Limit(uint64(pageSize)).ToSql()
if err != nil {
return nil, err
}
var resp []*AgentConfig
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentConfigModel) Trans(ctx context.Context, fn func(ctx context.Context, session sqlx.Session) error) error {
return m.TransactCtx(ctx, func(ctx context.Context, session sqlx.Session) error {
return fn(ctx, session)
})
}
func (m *defaultAgentConfigModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAgentConfigModel) Delete(ctx context.Context, session sqlx.Session, id int64) error {
data, err := m.FindOne(ctx, id)
if err != nil {
return err
}
bdrpAgentConfigConfigKeyKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigConfigKeyPrefix, data.ConfigKey)
bdrpAgentConfigIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, 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)
if session != nil {
return session.ExecCtx(ctx, query, id)
}
return conn.ExecCtx(ctx, query, id)
}, bdrpAgentConfigConfigKeyKey, bdrpAgentConfigIdKey)
return err
}
func (m *defaultAgentConfigModel) formatPrimary(primary interface{}) string {
return fmt.Sprintf("%s%v", cacheBdrpAgentConfigIdPrefix, primary)
}
func (m *defaultAgentConfigModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", agentConfigRows, m.table)
return conn.QueryRowCtx(ctx, v, query, primary, globalkey.DelStateNo)
}
func (m *defaultAgentConfigModel) tableName() string {
return m.table
}

View File

@@ -11,7 +11,6 @@ import (
"time"
"bdrp-server/common/globalkey"
"github.com/Masterminds/squirrel"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
@@ -27,7 +26,7 @@ var (
agentRewardsRowsExpectAutoSet = strings.Join(stringx.Remove(agentRewardsFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
agentRewardsRowsWithPlaceHolder = strings.Join(stringx.Remove(agentRewardsFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheHmAgentRewardsIdPrefix = "cache:bdrp:agentRewards:id:"
cacheBdrpAgentRewardsIdPrefix = "cache:bdrp:agentRewards:id:"
)
type (
@@ -60,6 +59,8 @@ type (
RelationAgentId sql.NullInt64 `db:"relation_agent_id"` // 关联代理ID
Amount float64 `db:"amount"`
Type string `db:"type"`
Status int64 `db:"status"` // 状态0=正常, 1=已取消
Remark string `db:"remark"` // 备注
CreateTime time.Time `db:"create_time"`
UpdateTime time.Time `db:"update_time"` // 更新时间
DeleteTime sql.NullTime `db:"delete_time"` // 删除时间
@@ -77,20 +78,20 @@ func newAgentRewardsModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAgentRew
func (m *defaultAgentRewardsModel) Insert(ctx context.Context, session sqlx.Session, data *AgentRewards) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
hmAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, data.Id)
bdrpAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, 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, agentRewardsRowsExpectAutoSet)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, agentRewardsRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version)
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version)
}, hmAgentRewardsIdKey)
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version)
}, bdrpAgentRewardsIdKey)
}
func (m *defaultAgentRewardsModel) FindOne(ctx context.Context, id int64) (*AgentRewards, error) {
hmAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, id)
bdrpAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, id)
var resp AgentRewards
err := m.QueryRowCtx(ctx, &resp, hmAgentRewardsIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
err := m.QueryRowCtx(ctx, &resp, bdrpAgentRewardsIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", agentRewardsRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id, globalkey.DelStateNo)
})
@@ -105,14 +106,14 @@ func (m *defaultAgentRewardsModel) FindOne(ctx context.Context, id int64) (*Agen
}
func (m *defaultAgentRewardsModel) Update(ctx context.Context, session sqlx.Session, data *AgentRewards) (sql.Result, error) {
hmAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, data.Id)
bdrpAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, data.Id)
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, agentRewardsRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version, data.Id)
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version, data.Id)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version, data.Id)
}, hmAgentRewardsIdKey)
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version, data.Id)
}, bdrpAgentRewardsIdKey)
}
func (m *defaultAgentRewardsModel) UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentRewards) error {
@@ -123,14 +124,14 @@ func (m *defaultAgentRewardsModel) UpdateWithVersion(ctx context.Context, sessio
var sqlResult sql.Result
var err error
hmAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, data.Id)
bdrpAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, data.Id)
sqlResult, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ? and version = ? ", m.table, agentRewardsRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
return session.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}, hmAgentRewardsIdKey)
return conn.ExecCtx(ctx, query, data.AgentId, data.RelationAgentId, data.Amount, data.Type, data.Status, data.Remark, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}, bdrpAgentRewardsIdKey)
if err != nil {
return err
}
@@ -348,18 +349,18 @@ func (m *defaultAgentRewardsModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAgentRewardsModel) Delete(ctx context.Context, session sqlx.Session, id int64) error {
hmAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, id)
bdrpAgentRewardsIdKey := fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, 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)
if session != nil {
return session.ExecCtx(ctx, query, id)
}
return conn.ExecCtx(ctx, query, id)
}, hmAgentRewardsIdKey)
}, bdrpAgentRewardsIdKey)
return err
}
func (m *defaultAgentRewardsModel) formatPrimary(primary interface{}) string {
return fmt.Sprintf("%s%v", cacheHmAgentRewardsIdPrefix, primary)
return fmt.Sprintf("%s%v", cacheBdrpAgentRewardsIdPrefix, primary)
}
func (m *defaultAgentRewardsModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", agentRewardsRows, m.table)