列表附上用户信息
This commit is contained in:
@@ -38,8 +38,8 @@ type Image struct {
|
||||
Public bool `json:"public"` // 是否公开
|
||||
UserID int `json:"user_id"` // 用户ID
|
||||
ModelID int `json:"model_id"` // 模型ID
|
||||
Preview string `json:"preview" gorm:"-"` // 实时预览 base64
|
||||
User User `json:"user" gorm:"-"` // 用户
|
||||
Preview string `json:"preview" gorm:"-"` // 实时预览 base64 或 url
|
||||
User *User `json:"user" gorm:"foreignKey:UserID;"` // 用户
|
||||
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
|
||||
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ type Model struct {
|
||||
DatasetID int `json:"dataset_id"` // 模型所使用的數據集ID
|
||||
ServerID string `json:"server_id"` // 模型所在服務器(訓練機或推理機)
|
||||
Stars StarList `json:"stars"` // 模型的收藏者
|
||||
User User `json:"user" gorm:"-"` // 模型的所有者
|
||||
User *User `json:"user" gorm:"foreignKey:UserID;"` // 模型的所有者
|
||||
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
|
||||
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
|
||||
}
|
||||
|
@@ -116,10 +116,8 @@ func ImagesGet(w http.ResponseWriter, r *http.Request) {
|
||||
db = db.Where("id IN (?)", list)
|
||||
}
|
||||
|
||||
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&image_list).Count(&listview.Total)
|
||||
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Preload("User").Find(&image_list).Count(&listview.Total)
|
||||
for _, image := range image_list {
|
||||
image.User = models.User{ID: image.UserID}
|
||||
db.First(&image.User)
|
||||
if image.Preview == "" {
|
||||
image.Preview = "https://image.gameuiux.cn/2023/06/27/1687851028u=3116699095,2862677591&fm=253&fmt=auto&app=120&f=JPEG.webp"
|
||||
}
|
||||
|
@@ -142,11 +142,8 @@ func ModelsGet(w http.ResponseWriter, r *http.Request) {
|
||||
db = db.Where("id IN (?)", list)
|
||||
}
|
||||
|
||||
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&model_list).Count(&listview.Total)
|
||||
for _, model := range model_list {
|
||||
model.User = models.User{ID: model.UserID}
|
||||
db.Take(&model.User)
|
||||
}
|
||||
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Preload("User").Find(&model_list).Count(&listview.Total)
|
||||
|
||||
listview.List = model_list
|
||||
listview.Next = listview.Page*listview.PageSize < int(listview.Total)
|
||||
listview.WriteJSON(w)
|
||||
@@ -376,6 +373,11 @@ func ModelItemPatch(w http.ResponseWriter, r *http.Request) {
|
||||
model.Tags = model_new.Tags
|
||||
}
|
||||
|
||||
// TODO: 只允许管理员更新模型
|
||||
if model_new.UserID != 0 && model_new.UserID != model.UserID {
|
||||
model.UserID = model_new.UserID
|
||||
}
|
||||
|
||||
// 執行更新
|
||||
if err := configs.ORMDB().Save(&model).Error; err != nil {
|
||||
log.Println(err)
|
||||
|
Reference in New Issue
Block a user