// Code generated by goctl. DO NOT EDIT. // versions: // goctl version: 1.8.3 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 ( yunyinSignPayOrderFieldNames = builder.RawFieldNames(&YunyinSignPayOrder{}) yunyinSignPayOrderRows = strings.Join(yunyinSignPayOrderFieldNames, ",") yunyinSignPayOrderRowsExpectAutoSet = strings.Join(stringx.Remove(yunyinSignPayOrderFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") yunyinSignPayOrderRowsWithPlaceHolder = strings.Join(stringx.Remove(yunyinSignPayOrderFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" cacheJncYunyinSignPayOrderIdPrefix = "cache:jnc:yunyinSignPayOrder:id:" cacheJncYunyinSignPayOrderOrderIdPrefix = "cache:jnc:yunyinSignPayOrder:orderId:" cacheJncYunyinSignPayOrderTaskIdPrefix = "cache:jnc:yunyinSignPayOrder:taskId:" ) type ( yunyinSignPayOrderModel interface { Insert(ctx context.Context, data *YunyinSignPayOrder) (sql.Result, error) FindOne(ctx context.Context, id string) (*YunyinSignPayOrder, error) FindOneByOrderId(ctx context.Context, orderId string) (*YunyinSignPayOrder, error) FindOneByTaskId(ctx context.Context, taskId string) (*YunyinSignPayOrder, error) Update(ctx context.Context, data *YunyinSignPayOrder) error Delete(ctx context.Context, id string) error } defaultYunyinSignPayOrderModel struct { sqlc.CachedConn table string } YunyinSignPayOrder struct { Id string `db:"id"` // 主键ID(UUID) OrderId string `db:"order_id"` // 订单ID(关联order表) UserId string `db:"user_id"` // 用户ID(用于查询该用户是否有未完成的签署) TaskId string `db:"task_id"` // 任务ID/流程ID(flowId) ParticipantId string `db:"participant_id"` // 参与者ID(签署方2的participantId) Amount float64 `db:"amount"` // 支付金额 PayType int64 `db:"pay_type"` // 支付类型:0=微信支付,1=支付宝支付 SignStatus int64 `db:"sign_status"` // 签署状态:0=待签署,1=已签署,2=已取消 PayStatus int64 `db:"pay_status"` // 支付状态:0=待支付,1=已支付,2=已退款 SourceOrderCode string `db:"source_order_code"` // 源订单号(我们平台的订单号,用于关联) UserMobile sql.NullString `db:"user_mobile"` // 用户手机号(冗余字段,方便查询) UserName sql.NullString `db:"user_name"` // 用户姓名(冗余字段,方便查询) 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"` // 版本号(乐观锁) } ) func newYunyinSignPayOrderModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultYunyinSignPayOrderModel { return &defaultYunyinSignPayOrderModel{ CachedConn: sqlc.NewConn(conn, c, opts...), table: "`yunyin_sign_pay_order`", } } func (m *defaultYunyinSignPayOrderModel) Delete(ctx context.Context, id string) error { data, err := m.FindOne(ctx, id) if err != nil { return err } jncYunyinSignPayOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderIdPrefix, id) jncYunyinSignPayOrderOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderOrderIdPrefix, data.OrderId) jncYunyinSignPayOrderTaskIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderTaskIdPrefix, data.TaskId) _, 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) }, jncYunyinSignPayOrderIdKey, jncYunyinSignPayOrderOrderIdKey, jncYunyinSignPayOrderTaskIdKey) return err } func (m *defaultYunyinSignPayOrderModel) FindOne(ctx context.Context, id string) (*YunyinSignPayOrder, error) { jncYunyinSignPayOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderIdPrefix, id) var resp YunyinSignPayOrder err := m.QueryRowCtx(ctx, &resp, jncYunyinSignPayOrderIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error { query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", yunyinSignPayOrderRows, 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 *defaultYunyinSignPayOrderModel) FindOneByOrderId(ctx context.Context, orderId string) (*YunyinSignPayOrder, error) { jncYunyinSignPayOrderOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderOrderIdPrefix, orderId) var resp YunyinSignPayOrder err := m.QueryRowIndexCtx(ctx, &resp, jncYunyinSignPayOrderOrderIdKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) { query := fmt.Sprintf("select %s from %s where `order_id` = ? limit 1", yunyinSignPayOrderRows, m.table) if err := conn.QueryRowCtx(ctx, &resp, query, orderId); 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 *defaultYunyinSignPayOrderModel) FindOneByTaskId(ctx context.Context, taskId string) (*YunyinSignPayOrder, error) { jncYunyinSignPayOrderTaskIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderTaskIdPrefix, taskId) var resp YunyinSignPayOrder err := m.QueryRowIndexCtx(ctx, &resp, jncYunyinSignPayOrderTaskIdKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) { query := fmt.Sprintf("select %s from %s where `task_id` = ? limit 1", yunyinSignPayOrderRows, m.table) if err := conn.QueryRowCtx(ctx, &resp, query, taskId); 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 *defaultYunyinSignPayOrderModel) Insert(ctx context.Context, data *YunyinSignPayOrder) (sql.Result, error) { jncYunyinSignPayOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderIdPrefix, data.Id) jncYunyinSignPayOrderOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderOrderIdPrefix, data.OrderId) jncYunyinSignPayOrderTaskIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderTaskIdPrefix, data.TaskId) 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, yunyinSignPayOrderRowsExpectAutoSet) return conn.ExecCtx(ctx, query, data.Id, data.OrderId, data.UserId, data.TaskId, data.ParticipantId, data.Amount, data.PayType, data.SignStatus, data.PayStatus, data.SourceOrderCode, data.UserMobile, data.UserName, data.DeleteTime, data.DelState, data.Version) }, jncYunyinSignPayOrderIdKey, jncYunyinSignPayOrderOrderIdKey, jncYunyinSignPayOrderTaskIdKey) return ret, err } func (m *defaultYunyinSignPayOrderModel) Update(ctx context.Context, newData *YunyinSignPayOrder) error { data, err := m.FindOne(ctx, newData.Id) if err != nil { return err } jncYunyinSignPayOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderIdPrefix, data.Id) jncYunyinSignPayOrderOrderIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderOrderIdPrefix, data.OrderId) jncYunyinSignPayOrderTaskIdKey := fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderTaskIdPrefix, data.TaskId) _, 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, yunyinSignPayOrderRowsWithPlaceHolder) return conn.ExecCtx(ctx, query, newData.OrderId, newData.UserId, newData.TaskId, newData.ParticipantId, newData.Amount, newData.PayType, newData.SignStatus, newData.PayStatus, newData.SourceOrderCode, newData.UserMobile, newData.UserName, newData.DeleteTime, newData.DelState, newData.Version, newData.Id) }, jncYunyinSignPayOrderIdKey, jncYunyinSignPayOrderOrderIdKey, jncYunyinSignPayOrderTaskIdKey) return err } func (m *defaultYunyinSignPayOrderModel) formatPrimary(primary any) string { return fmt.Sprintf("%s%v", cacheJncYunyinSignPayOrderIdPrefix, primary) } func (m *defaultYunyinSignPayOrderModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error { query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", yunyinSignPayOrderRows, m.table) return conn.QueryRowCtx(ctx, v, query, primary) } func (m *defaultYunyinSignPayOrderModel) tableName() string { return m.table }