Files
workspace/code/allapp/allapp-go/db/repo/batch.go
T
2026-03-04 17:30:05 +08:00

126 lines
2.7 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: batch.go
package repo
import (
"context"
"errors"
"github.com/jackc/pgx/v5"
)
var (
ErrBatchAlreadyClosed = errors.New("batch already closed")
)
const batchUpdateFinanceCategorySortNumber = `-- name: BatchUpdateFinanceCategorySortNumber :batchexec
UPDATE finance_category_space
SET sort_number = $1,update_by = $2,update_time = NOW()
WHERE id = $3
`
type BatchUpdateFinanceCategorySortNumberBatchResults struct {
br pgx.BatchResults
tot int
closed bool
}
type BatchUpdateFinanceCategorySortNumberParams struct {
SortNumber int32
UpdateBy int64
ID int64
}
func (q *Queries) BatchUpdateFinanceCategorySortNumber(ctx context.Context, arg []BatchUpdateFinanceCategorySortNumberParams) *BatchUpdateFinanceCategorySortNumberBatchResults {
batch := &pgx.Batch{}
for _, a := range arg {
vals := []interface{}{
a.SortNumber,
a.UpdateBy,
a.ID,
}
batch.Queue(batchUpdateFinanceCategorySortNumber, vals...)
}
br := q.db.SendBatch(ctx, batch)
return &BatchUpdateFinanceCategorySortNumberBatchResults{br, len(arg), false}
}
func (b *BatchUpdateFinanceCategorySortNumberBatchResults) Exec(f func(int, error)) {
defer b.br.Close()
for t := 0; t < b.tot; t++ {
if b.closed {
if f != nil {
f(t, ErrBatchAlreadyClosed)
}
continue
}
_, err := b.br.Exec()
if f != nil {
f(t, err)
}
}
}
func (b *BatchUpdateFinanceCategorySortNumberBatchResults) Close() error {
b.closed = true
return b.br.Close()
}
const batchUpdateSpaceSortNumber = `-- name: BatchUpdateSpaceSortNumber :batchexec
UPDATE space_member
SET sort_number = $1
WHERE user_id = $2
AND space_id = $3
`
type BatchUpdateSpaceSortNumberBatchResults struct {
br pgx.BatchResults
tot int
closed bool
}
type BatchUpdateSpaceSortNumberParams struct {
SortNumber int32
UserID int64
SpaceID int64
}
// 更新空间顺序
func (q *Queries) BatchUpdateSpaceSortNumber(ctx context.Context, arg []BatchUpdateSpaceSortNumberParams) *BatchUpdateSpaceSortNumberBatchResults {
batch := &pgx.Batch{}
for _, a := range arg {
vals := []interface{}{
a.SortNumber,
a.UserID,
a.SpaceID,
}
batch.Queue(batchUpdateSpaceSortNumber, vals...)
}
br := q.db.SendBatch(ctx, batch)
return &BatchUpdateSpaceSortNumberBatchResults{br, len(arg), false}
}
func (b *BatchUpdateSpaceSortNumberBatchResults) Exec(f func(int, error)) {
defer b.br.Close()
for t := 0; t < b.tot; t++ {
if b.closed {
if f != nil {
f(t, ErrBatchAlreadyClosed)
}
continue
}
_, err := b.br.Exec()
if f != nil {
f(t, err)
}
}
}
func (b *BatchUpdateSpaceSortNumberBatchResults) Close() error {
b.closed = true
return b.br.Close()
}