tianyuan-api-server/apps/user/internal/model/apirequestsmodel_gen.go
2024-10-12 20:41:55 +08:00

153 lines
6.2 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.
// versions:
// goctl version: 1.7.2
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"time"
"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 (
apiRequestsFieldNames = builder.RawFieldNames(&ApiRequests{})
apiRequestsRows = strings.Join(apiRequestsFieldNames, ",")
apiRequestsRowsExpectAutoSet = strings.Join(stringx.Remove(apiRequestsFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
apiRequestsRowsWithPlaceHolder = strings.Join(stringx.Remove(apiRequestsFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
cacheApiRequestsIdPrefix = "cache:apiRequests:id:"
cacheApiRequestsTransactionIdPrefix = "cache:apiRequests:transactionId:"
)
type (
apiRequestsModel interface {
Insert(ctx context.Context, data *ApiRequests) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*ApiRequests, error)
FindOneByTransactionId(ctx context.Context, transactionId string) (*ApiRequests, error)
Update(ctx context.Context, data *ApiRequests) error
Delete(ctx context.Context, id int64) error
}
defaultApiRequestsModel struct {
sqlc.CachedConn
table string
}
ApiRequests struct {
Id int64 `db:"id"` // 请求记录ID
TransactionId string `db:"transaction_id"` // 交易ID
UserId int64 `db:"user_id"` // 用户ID
ProductCode string `db:"product_code"` // 产品编码
Status string `db:"status"` // 请求状态success=成功failed=失败
Charges int64 `db:"charges"` // 是否需要付费
Remark sql.NullString `db:"remark"` // 备注
Timestamp time.Time `db:"timestamp"` // 请求时间
}
)
func newApiRequestsModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultApiRequestsModel {
return &defaultApiRequestsModel{
CachedConn: sqlc.NewConn(conn, c, opts...),
table: "`api_requests`",
}
}
func (m *defaultApiRequestsModel) Delete(ctx context.Context, id int64) error {
data, err := m.FindOne(ctx, id)
if err != nil {
return err
}
apiRequestsIdKey := fmt.Sprintf("%s%v", cacheApiRequestsIdPrefix, id)
apiRequestsTransactionIdKey := fmt.Sprintf("%s%v", cacheApiRequestsTransactionIdPrefix, data.TransactionId)
_, 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)
return conn.ExecCtx(ctx, query, id)
}, apiRequestsIdKey, apiRequestsTransactionIdKey)
return err
}
func (m *defaultApiRequestsModel) FindOne(ctx context.Context, id int64) (*ApiRequests, error) {
apiRequestsIdKey := fmt.Sprintf("%s%v", cacheApiRequestsIdPrefix, id)
var resp ApiRequests
err := m.QueryRowCtx(ctx, &resp, apiRequestsIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", apiRequestsRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultApiRequestsModel) FindOneByTransactionId(ctx context.Context, transactionId string) (*ApiRequests, error) {
apiRequestsTransactionIdKey := fmt.Sprintf("%s%v", cacheApiRequestsTransactionIdPrefix, transactionId)
var resp ApiRequests
err := m.QueryRowIndexCtx(ctx, &resp, apiRequestsTransactionIdKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) {
query := fmt.Sprintf("select %s from %s where `transaction_id` = ? limit 1", apiRequestsRows, m.table)
if err := conn.QueryRowCtx(ctx, &resp, query, transactionId); 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 *defaultApiRequestsModel) Insert(ctx context.Context, data *ApiRequests) (sql.Result, error) {
apiRequestsIdKey := fmt.Sprintf("%s%v", cacheApiRequestsIdPrefix, data.Id)
apiRequestsTransactionIdKey := fmt.Sprintf("%s%v", cacheApiRequestsTransactionIdPrefix, data.TransactionId)
ret, err := 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, apiRequestsRowsExpectAutoSet)
return conn.ExecCtx(ctx, query, data.TransactionId, data.UserId, data.ProductCode, data.Status, data.Charges, data.Remark, data.Timestamp)
}, apiRequestsIdKey, apiRequestsTransactionIdKey)
return ret, err
}
func (m *defaultApiRequestsModel) Update(ctx context.Context, newData *ApiRequests) error {
data, err := m.FindOne(ctx, newData.Id)
if err != nil {
return err
}
apiRequestsIdKey := fmt.Sprintf("%s%v", cacheApiRequestsIdPrefix, data.Id)
apiRequestsTransactionIdKey := fmt.Sprintf("%s%v", cacheApiRequestsTransactionIdPrefix, data.TransactionId)
_, 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` = ?", m.table, apiRequestsRowsWithPlaceHolder)
return conn.ExecCtx(ctx, query, newData.TransactionId, newData.UserId, newData.ProductCode, newData.Status, newData.Charges, newData.Remark, newData.Timestamp, newData.Id)
}, apiRequestsIdKey, apiRequestsTransactionIdKey)
return err
}
func (m *defaultApiRequestsModel) formatPrimary(primary any) string {
return fmt.Sprintf("%s%v", cacheApiRequestsIdPrefix, primary)
}
func (m *defaultApiRequestsModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", apiRequestsRows, m.table)
return conn.QueryRowCtx(ctx, v, query, primary)
}
func (m *defaultApiRequestsModel) tableName() string {
return m.table
}