用户模块--logo列表

This commit is contained in:
Hiven
2023-08-03 14:38:17 +08:00
parent 464133be97
commit 39ffc78d6d
8 changed files with 184 additions and 16 deletions

View File

@@ -6,13 +6,14 @@ import (
// fs_user_material 用户素材表
type FsUserMaterial struct {
Id int64 `gorm:"primary_key;default:0;" json:"id"` // 用户 ID
Module *string `gorm:"default:'';" json:"module"` // 所属模块
UserId *int64 `gorm:"index;default:0;" json:"user_id"` // 用户 ID
ResourceId *string `gorm:"default:'';" json:"resource_id"` // 资源ID
ResourceUrl *string `gorm:"default:'';" json:"resource_url"` // 资源 URL
Metadata *string `gorm:"default:'';" json:"metadata"` // 元数据,json格式,存储图像分率
CreateAt *int64 `gorm:"default:0;" json:"create_at"` // 上传时间
Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // 用户 ID
Module *string `gorm:"default:'';" json:"module"` // 所属模块
UserId *int64 `gorm:"index;default:0;" json:"user_id"` // 用户 ID
GuestId *int64 `gorm:"index;default:0;" json:"guest_id"` // 游客 ID
ResourceId *string `gorm:"default:'';" json:"resource_id"` // 资源ID
ResourceUrl *string `gorm:"default:'';" json:"resource_url"` // 资源 URL
Metadata *string `gorm:"default:'';" json:"metadata"` // 元数据,json格式,存储图像分率
CreateAt *int64 `gorm:"default:0;" json:"create_at"` // 上传时间
}
type FsUserMaterialModel struct {
db *gorm.DB

View File

@@ -1,6 +1,12 @@
package gmodel
import "context"
import (
"context"
"fusenapi/utils/handler"
"reflect"
"gorm.io/gorm"
)
// TODO: 使用model的属性做你想做的
@@ -13,3 +19,39 @@ func (p *FsUserMaterialModel) CreateOrUpdate(ctx context.Context, req *FsUserMat
}
return req, err
}
func (m *FsUserMaterialModel) FindAll(ctx context.Context, rowBuilder *gorm.DB, filterMap map[string]string, orderBy string) ([]*FsUserMaterial, error) {
var resp []*FsUserMaterial
// 过滤
if filterMap != nil {
rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap))
}
// 排序
if orderBy != "" {
var fieldsMap = make(map[string]struct{})
s := reflect.TypeOf(&FsUserMaterial{}).Elem() //通过反射获取type定义
for i := 0; i < s.NumField(); i++ {
fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{}
}
rowBuilder = rowBuilder.Scopes(handler.OrderCheck(orderBy, fieldsMap))
}
result := rowBuilder.WithContext(ctx).Find(&resp)
if result.Error != nil {
return nil, result.Error
} else {
return resp, nil
}
}
func (m *FsUserMaterialModel) RowSelectBuilder(selectData []string) *gorm.DB {
var rowBuilder = m.db.Table(m.name)
if selectData != nil {
rowBuilder = rowBuilder.Select(selectData)
} else {
rowBuilder = rowBuilder.Select("*")
}
return rowBuilder
}