Documentation
¶
Index ¶
- type CRUDBuilder
- func (b *CRUDBuilder[T]) After(fn func(query interface{}, db *gorm.DB) error) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) Before(fn func(query interface{}, db *gorm.DB) error) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) Create(data interface{}) (*T, error)
- func (b *CRUDBuilder[T]) Delete(ids interface{}) error
- func (b *CRUDBuilder[T]) List() map[string]interface{}
- func (b *CRUDBuilder[T]) Session(db *gorm.DB) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) Update(id interface{}, data interface{}) (*T, error)
- func (b *CRUDBuilder[T]) ValidateFields(data map[string]interface{}) error
- func (b *CRUDBuilder[T]) WithContext(ctx *gin.Context) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) WithFilter(use bool) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) WithPagination(use bool) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) WithSearchFields(fields ...string) *CRUDBuilder[T]
- func (b *CRUDBuilder[T]) WithTransaction(use bool) *CRUDBuilder[T]
- type ListApi
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 ¶
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]) 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 列表查询参数
Click to show internal directories.
Click to hide internal directories.