Files
sim-server/app/main/model/agentWithdrawModel_gen.go
2026-02-08 16:19:37 +08:00

402 lines
16 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.

// Code generated by goctl. DO NOT EDIT!
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"reflect"
"time"
"sim-server/common/globalkey"
"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"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
agentWithdrawFieldNames = builder.RawFieldNames(&AgentWithdraw{})
agentWithdrawRows = strings.Join(agentWithdrawFieldNames, ",")
agentWithdrawRowsExpectAutoSet = strings.Join(stringx.Remove(agentWithdrawFieldNames, "`create_time`", "`update_time`"), ",")
agentWithdrawRowsWithPlaceHolder = strings.Join(stringx.Remove(agentWithdrawFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheSimAgentWithdrawIdPrefix = "cache:sim:agentWithdraw:id:"
)
type (
agentWithdrawModel interface {
Insert(ctx context.Context, session sqlx.Session, data *AgentWithdraw) (sql.Result, error)
FindOne(ctx context.Context, id string) (*AgentWithdraw, error)
Update(ctx context.Context, session sqlx.Session, data *AgentWithdraw) (sql.Result, error)
UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentWithdraw) 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 *AgentWithdraw) 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) ([]*AgentWithdraw, error)
FindPageListByPage(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentWithdraw, error)
FindPageListByPageWithTotal(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentWithdraw, int64, error)
FindPageListByIdDESC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentWithdraw, error)
FindPageListByIdASC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentWithdraw, error)
Delete(ctx context.Context, session sqlx.Session, id string) error
}
defaultAgentWithdrawModel struct {
sqlc.CachedConn
table string
}
AgentWithdraw struct {
Id string `db:"id"` // UUID主键
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"` // 版本号
AgentId string `db:"agent_id"` // 代理ID关联agent表的id
AgentMobile sql.NullString `db:"agent_mobile"` // 代理手机号(冗余)
AgentCode sql.NullInt64 `db:"agent_code"` // 代理编码(冗余)
WithdrawAmount float64 `db:"withdraw_amount"` // 提现金额
TaxAmount float64 `db:"tax_amount"` // 税费金额
ActualAmount float64 `db:"actual_amount"` // 实际到账金额(税后)
FrozenAmount float64 `db:"frozen_amount"` // 冻结金额(与提现金额相同)
AccountName string `db:"account_name"` // 收款人姓名
BankCardNumber string `db:"bank_card_number"` // 银行卡号(明文,仅用于显示)
BankCardNumberEncrypted sql.NullString `db:"bank_card_number_encrypted"` // 加密的银行卡号
BankBranch sql.NullString `db:"bank_branch"` // 开户支行
Status int64 `db:"status"` // 状态0=待审核1=已通过2=已拒绝
AuditUserId sql.NullString `db:"audit_user_id"` // 审核人ID
AuditTime sql.NullTime `db:"audit_time"` // 审核时间
AuditRemark sql.NullString `db:"audit_remark"` // 审核备注(拒绝时必填)
}
)
func newAgentWithdrawModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAgentWithdrawModel {
return &defaultAgentWithdrawModel{
CachedConn: sqlc.NewConn(conn, c),
table: "`agent_withdraw`",
}
}
func (m *defaultAgentWithdrawModel) Insert(ctx context.Context, session sqlx.Session, data *AgentWithdraw) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
m.insertUUID(data)
simAgentWithdrawIdKey := fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, 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, agentWithdrawRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.Id, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark)
}
return conn.ExecCtx(ctx, query, data.Id, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark)
}, simAgentWithdrawIdKey)
}
func (m *defaultAgentWithdrawModel) insertUUID(data *AgentWithdraw) {
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 *defaultAgentWithdrawModel) FindOne(ctx context.Context, id string) (*AgentWithdraw, error) {
simAgentWithdrawIdKey := fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, id)
var resp AgentWithdraw
err := m.QueryRowCtx(ctx, &resp, simAgentWithdrawIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", agentWithdrawRows, 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 *defaultAgentWithdrawModel) Update(ctx context.Context, session sqlx.Session, data *AgentWithdraw) (sql.Result, error) {
simAgentWithdrawIdKey := fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, 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, agentWithdrawRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark, data.Id)
}
return conn.ExecCtx(ctx, query, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark, data.Id)
}, simAgentWithdrawIdKey)
}
func (m *defaultAgentWithdrawModel) UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AgentWithdraw) error {
oldVersion := data.Version
data.Version += 1
var sqlResult sql.Result
var err error
simAgentWithdrawIdKey := fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, 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, agentWithdrawRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark, data.Id, oldVersion)
}
return conn.ExecCtx(ctx, query, data.DeleteTime, data.DelState, data.Version, data.AgentId, data.AgentMobile, data.AgentCode, data.WithdrawAmount, data.TaxAmount, data.ActualAmount, data.FrozenAmount, data.AccountName, data.BankCardNumber, data.BankCardNumberEncrypted, data.BankBranch, data.Status, data.AuditUserId, data.AuditTime, data.AuditRemark, data.Id, oldVersion)
}, simAgentWithdrawIdKey)
if err != nil {
return err
}
updateCount, err := sqlResult.RowsAffected()
if err != nil {
return err
}
if updateCount == 0 {
return ErrNoRowsUpdate
}
return nil
}
func (m *defaultAgentWithdrawModel) DeleteSoft(ctx context.Context, session sqlx.Session, data *AgentWithdraw) 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 "), "AgentWithdrawModel delete err : %+v", err)
}
return nil
}
func (m *defaultAgentWithdrawModel) 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 *defaultAgentWithdrawModel) 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 *defaultAgentWithdrawModel) FindAll(ctx context.Context, builder squirrel.SelectBuilder, orderBy string) ([]*AgentWithdraw, error) {
builder = builder.Columns(agentWithdrawRows)
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 []*AgentWithdraw
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentWithdrawModel) FindPageListByPage(ctx context.Context, builder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentWithdraw, error) {
builder = builder.Columns(agentWithdrawRows)
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 []*AgentWithdraw
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentWithdrawModel) FindPageListByPageWithTotal(ctx context.Context, builder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AgentWithdraw, int64, error) {
total, err := m.FindCount(ctx, builder, "id")
if err != nil {
return nil, 0, err
}
builder = builder.Columns(agentWithdrawRows)
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 []*AgentWithdraw
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, total, nil
default:
return nil, total, err
}
}
func (m *defaultAgentWithdrawModel) FindPageListByIdDESC(ctx context.Context, builder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AgentWithdraw, error) {
builder = builder.Columns(agentWithdrawRows)
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 []*AgentWithdraw
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentWithdrawModel) FindPageListByIdASC(ctx context.Context, builder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AgentWithdraw, error) {
builder = builder.Columns(agentWithdrawRows)
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 []*AgentWithdraw
err = m.QueryRowsNoCacheCtx(ctx, &resp, query, values...)
switch err {
case nil:
return resp, nil
default:
return nil, err
}
}
func (m *defaultAgentWithdrawModel) 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 *defaultAgentWithdrawModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAgentWithdrawModel) Delete(ctx context.Context, session sqlx.Session, id string) error {
simAgentWithdrawIdKey := fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, 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)
}, simAgentWithdrawIdKey)
return err
}
func (m *defaultAgentWithdrawModel) formatPrimary(primary interface{}) string {
return fmt.Sprintf("%s%v", cacheSimAgentWithdrawIdPrefix, primary)
}
func (m *defaultAgentWithdrawModel) 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", agentWithdrawRows, m.table)
return conn.QueryRowCtx(ctx, v, query, primary, globalkey.DelStateNo)
}
func (m *defaultAgentWithdrawModel) tableName() string {
return m.table
}