| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package common
- import (
- "database/sql/driver"
- "encoding/json"
- "fmt"
- "gorm.io/gorm"
- )
- // 分页响应
- type PageResult struct {
- List interface{} `json:"list"`
- Total int64 `json:"total"`
- Page int `json:"page"`
- PageSize int `json:"pageSize"`
- }
- // PageInfo Paging common input parameter structure
- type PageInfo struct {
- Page int `json:"page" form:"page"` // 页码
- PageSize int `json:"pageSize" form:"pageSize"` // 每页大小
- Keyword string `json:"keyword" form:"keyword"` // 关键字
- }
- func (r *PageInfo) Paginate() func(db *gorm.DB) *gorm.DB {
- return func(db *gorm.DB) *gorm.DB {
- if r.Page <= 0 {
- r.Page = 1
- }
- switch {
- case r.PageSize > 100:
- r.PageSize = 100
- case r.PageSize <= 0:
- r.PageSize = 10
- }
- offset := (r.Page - 1) * r.PageSize
- return db.Offset(offset).Limit(r.PageSize)
- }
- }
- // GetById Find by id structure
- type GetById struct {
- ID int `json:"id" form:"id"` // 主键ID
- }
- func (r *GetById) Uint() uint {
- return uint(r.ID)
- }
- type IdsReq struct {
- Ids []int `json:"ids" form:"ids"`
- }
- // GetAuthorityId Get role by id structure
- type GetAuthorityId struct {
- AuthorityId uint `json:"authorityId" form:"authorityId"` // 角色ID
- }
- type Empty struct{}
- type ClearDB struct {
- TableName string
- CompareField string
- Interval string
- }
- type JSONMap map[string]interface{}
- func (m JSONMap) Value() (driver.Value, error) {
- if m == nil {
- return nil, nil
- }
- return json.Marshal(m)
- }
- func (m *JSONMap) Scan(value interface{}) error {
- if value == nil {
- *m = make(map[string]interface{})
- return nil
- }
- var err error
- switch value.(type) {
- case []byte:
- err = json.Unmarshal(value.([]byte), m)
- case string:
- err = json.Unmarshal([]byte(value.(string)), m)
- default:
- err = fmt.Errorf("basetypes.JSONMap.Scan: invalid value type")
- }
- if err != nil {
- return err
- }
- return nil
- }
|