star
This commit is contained in:
@@ -30,6 +30,7 @@ type Model struct {
|
|||||||
UserID int `json:"user_id"` // 模型的所有者
|
UserID int `json:"user_id"` // 模型的所有者
|
||||||
DatasetID int `json:"dataset_id"` // 模型所使用的數據集ID
|
DatasetID int `json:"dataset_id"` // 模型所使用的數據集ID
|
||||||
ServerID string `json:"server_id"` // 模型所在服務器(訓練機或推理機)
|
ServerID string `json:"server_id"` // 模型所在服務器(訓練機或推理機)
|
||||||
|
Stars StarList `json:"stars"` // 模型的收藏者
|
||||||
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
|
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
|
||||||
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
|
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
|
||||||
}
|
}
|
||||||
|
@@ -27,3 +27,13 @@ func (list *TagList) Scan(value interface{}) error {
|
|||||||
func (list TagList) Value() (driver.Value, error) {
|
func (list TagList) Value() (driver.Value, error) {
|
||||||
return json.Marshal(list)
|
return json.Marshal(list)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StarList []int
|
||||||
|
|
||||||
|
func (list *StarList) Scan(value interface{}) error {
|
||||||
|
return json.Unmarshal(value.([]byte), list)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (list StarList) Value() (driver.Value, error) {
|
||||||
|
return json.Marshal(list)
|
||||||
|
}
|
||||||
|
@@ -28,27 +28,32 @@ func ModelsGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
// 按照 user_id 篩選
|
// 按照 user_id 篩選
|
||||||
if user_id := utils.ParamInt(r.URL.Query().Get("user_id"), 0); user_id > 0 {
|
if user_id := utils.ParamInt(r.URL.Query().Get("user_id"), 0); user_id > 0 {
|
||||||
db.Where("user_id = ?", user_id)
|
db = db.Where("user_id = ?", user_id)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按照 star 篩選
|
||||||
|
if star := utils.ParamInt(r.URL.Query().Get("star"), 0); star > 0 {
|
||||||
|
db = db.Where("stars LIKE ?", "%"+strconv.Itoa(star)+"%")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照 name 模糊搜索
|
// 按照 name 模糊搜索
|
||||||
if name := r.URL.Query().Get("name"); name != "" {
|
if name := r.URL.Query().Get("name"); name != "" {
|
||||||
db.Where("name LIKE ?", "%"+name+"%")
|
db = db.Where("name LIKE ?", "%"+name+"%")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照 type 篩選
|
// 按照 type 篩選
|
||||||
if model_type := r.URL.Query().Get("type"); model_type != "" {
|
if model_type := r.URL.Query().Get("type"); model_type != "" {
|
||||||
db.Where("type = ?", model_type)
|
db = db.Where("type = ?", model_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照 status 篩選
|
// 按照 status 篩選
|
||||||
if status := r.URL.Query().Get("status"); status != "" {
|
if status := r.URL.Query().Get("status"); status != "" {
|
||||||
db.Where("status = ?", status)
|
db = db.Where("status = ?", status)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照 tag 篩選
|
// 按照 tag 篩選
|
||||||
if tag := r.URL.Query().Get("tag"); tag != "" {
|
if tag := r.URL.Query().Get("tag"); tag != "" {
|
||||||
db.Where("tags LIKE ?", "%"+tag+"%")
|
db = db.Where("tags LIKE ?", "%"+tag+"%")
|
||||||
}
|
}
|
||||||
|
|
||||||
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&model_list)
|
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&model_list)
|
||||||
|
Reference in New Issue
Block a user