builder

package
v0.0.0-...-09790a5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CRUDBuilder

type CRUDBuilder[T any] struct {
	// contains filtered or unexported fields
}

func NewCRUDBuilder

func NewCRUDBuilder[T any](db *gorm.DB) *CRUDBuilder[T]

NewCRUDBuilder 创建 CRUD 构建器(使用静态 DB) 推荐使用 db.WithContext(ctx.Request.Context()) 创建带上下文的 DB Session 注意:不推荐在 Service 初始化时使用此方法,建议使用 NewCRUDBuilderWithProvider

func NewCRUDBuilderWithProvider

func NewCRUDBuilderWithProvider[T any](provider func(*gin.Context) *gorm.DB) *CRUDBuilder[T]

NewCRUDBuilderWithProvider 创建 CRUD 构建器(使用 DB Provider) 推荐在 Service 初始化时使用此方法,每次请求会动态获取 DB Session provider: 返回 DB 的函数,会在每次 CRUD 操作时调用,自动绑定请求上下文

func (*CRUDBuilder[T]) After

func (b *CRUDBuilder[T]) After(fn func(query interface{}, db *gorm.DB) error) *CRUDBuilder[T]

After 设置操作后的回调

func (*CRUDBuilder[T]) Before

func (b *CRUDBuilder[T]) Before(fn func(query interface{}, db *gorm.DB) error) *CRUDBuilder[T]

Before 设置操作前的回调

func (*CRUDBuilder[T]) Create

func (b *CRUDBuilder[T]) Create(data interface{}) (*T, error)

Create 创建记录

func (*CRUDBuilder[T]) Delete

func (b *CRUDBuilder[T]) Delete(ids interface{}) error

Delete 删除记录

func (*CRUDBuilder[T]) List

func (b *CRUDBuilder[T]) List() map[string]interface{}

List 查询列表

func (*CRUDBuilder[T]) Session

func (b *CRUDBuilder[T]) Session(db *gorm.DB) *CRUDBuilder[T]

Session 创建一个新的 DB Session(推荐在每次请求时使用) 这样可以避免查询条件污染,并且可以绑定请求上下文

func (*CRUDBuilder[T]) Update

func (b *CRUDBuilder[T]) Update(id interface{}, data interface{}) (*T, error)

Update 更新记录

func (*CRUDBuilder[T]) ValidateFields

func (b *CRUDBuilder[T]) ValidateFields(data map[string]interface{}) error

ValidateFields 验证字段是否在模型中定义

func (*CRUDBuilder[T]) WithContext

func (b *CRUDBuilder[T]) WithContext(ctx *gin.Context) *CRUDBuilder[T]

WithContext 设置请求上下文(链式操作)

func (*CRUDBuilder[T]) WithFilter

func (b *CRUDBuilder[T]) WithFilter(use bool) *CRUDBuilder[T]

func (*CRUDBuilder[T]) WithPagination

func (b *CRUDBuilder[T]) WithPagination(use bool) *CRUDBuilder[T]

func (*CRUDBuilder[T]) WithSearchFields

func (b *CRUDBuilder[T]) WithSearchFields(fields ...string) *CRUDBuilder[T]

func (*CRUDBuilder[T]) WithTransaction

func (b *CRUDBuilder[T]) WithTransaction(use bool) *CRUDBuilder[T]

WithTransaction 设置是否使用事务

type ListApi

type ListApi struct {
	Page      int    `form:"page" binding:"min=1"`      // 页码
	PageSize  int    `form:"page_size" binding:"min=1"` // 每页数量
	Pid       int    `form:"pid"`                       // 父级
	Filter    string `form:"filter"`                    // 筛选条件(JSON格式)
	Search    string `form:"search"`                    // 搜索关键词
	Parent    string `form:"parent"`                    // 父级(字符串)
	SortBy    string `form:"sort_by"`                   // 排序字段
	SortOrder string `form:"sort_order"`                // 排序方向(asc/desc)
}

ListApi 列表查询参数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL