From 0575d14494b98c233b9f566d555097fcd4509802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=9C=E8=8F=AF?= Date: Sun, 13 Aug 2023 01:27:10 +0800 Subject: [PATCH] user info --- models/Image.go | 1 + models/Model.go | 1 + models/server.go | 47 ++++++++++++++++++++++++++++++++++++++++++++++- routers/images.go | 1 + routers/models.go | 1 + 5 files changed, 50 insertions(+), 1 deletion(-) diff --git a/models/Image.go b/models/Image.go index d91433d..3b4c075 100644 --- a/models/Image.go +++ b/models/Image.go @@ -39,6 +39,7 @@ type Image struct { UserID int `json:"user_id"` // 用户ID ModelID int `json:"model_id"` // 模型ID Preview string `json:"preview" gorm:"-"` // 实时预览 base64 + User User `json:"user" gorm:"-"` // 用户 CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` } diff --git a/models/Model.go b/models/Model.go index 9663c86..e7d0e84 100644 --- a/models/Model.go +++ b/models/Model.go @@ -41,6 +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:"-"` // 模型的所有者 CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` } diff --git a/models/server.go b/models/server.go index c590e94..90dc779 100644 --- a/models/server.go +++ b/models/server.go @@ -123,6 +123,52 @@ func (server *Server) InitModels() (err error) { return err } + //// 加载所有lora模型列表取得id和hash和path + //var lora_models []map[string]interface{} + //if err := configs.ORMDB().Table("models").Where("type = ?", "lora").Select("id", "name", "hash", "model_path").Find(&lora_models).Error; err != nil { + // return fmt.Errorf("获取模型列表失败: %v", err) + //} + + //// 加载所有基础模型列表取得id和hash和path + //var base_models []map[string]interface{} + //if err := configs.ORMDB().Table("models").Where("type = ?", "ckp").Select("id", "name", "hash", "model_path").Find(&base_models).Error; err != nil { + // return fmt.Errorf("获取模型列表失败: %v", err) + //} + + //判断模型是否存在 := func(list []map[string]interface{}, item map[string]interface{}) bool { + // for _, item2 := range list { + // fmt.Println(item2) + // return true + // //if item["hash"].(string) == item2["hash"].(string) { + // // return true + // //} + // } + // return false + //} + + //// 遍历数据库中的模型列表, 如果不存在则添加 + //for _, item := range lora_models { + // fmt.Println("模型:", item["id"], item["hash"], item["name"]) + // if !判断模型是否存在(data_lora, item) { + // // 从数据库删除不存在的模型 + // //if err := configs.ORMDB().Delete(&Model{}, item["id"]).Error; err != nil { + // // return fmt.Errorf("删除模型失败: %v", err) + // //} + // fmt.Println("模型:", item["id"], item["hash"], item["name"], "\033[31mfail\033[0m") + // } + // fmt.Println("模型:", item["id"], item["hash"], item["name"], "\033[32mok\033[0m") + //} + + //for _, item := range base_models { + // fmt.Println("模型:", item["id"], item["hash"], item["name"]) + //} + //for _, item := range data_lora { + // for _, model := range base_models { + // if item["hash"].(string) == model["hash"].(string) { + // } + // } + //} + // 从数据库检查此模型hash是否存在 for _, item := range data_lora { var model Model @@ -189,7 +235,6 @@ func (server *Server) InitModels() (err error) { fmt.Println("忽略模型:", item.ModelCheckpoint) continue } - var model Model if err := configs.ORMDB().Where("hash = ?", item.Hash).First(&model).Error; err != nil { // 不存在则添加 diff --git a/routers/images.go b/routers/images.go index 21bb4de..7314727 100644 --- a/routers/images.go +++ b/routers/images.go @@ -118,6 +118,7 @@ func ImagesGet(w http.ResponseWriter, r *http.Request) { db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&image_list) for _, image := range image_list { + image.User = models.User{ID: image.UserID} listview.List = append(listview.List, image) } diff --git a/routers/models.go b/routers/models.go index 7f1f784..7a8285e 100644 --- a/routers/models.go +++ b/routers/models.go @@ -144,6 +144,7 @@ func ModelsGet(w http.ResponseWriter, r *http.Request) { db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&model_list) for _, model := range model_list { + model.User = models.User{ID: model.UserID} listview.List = append(listview.List, model) } db.Model(&models.Model{}).Count(&listview.Total)