package models import ( "encoding/json" "log" ) type ListView struct { Page int `json:"page"` PageSize int `json:"page_size"` Total int `json:"total"` Next bool `json:"next"` List []interface{} `json:"list"` } // 輸出JSON給瀏覽器 func (listview *ListView) ToJSON() []byte { // 即使list爲空,也要返回空的JSON數組 if listview.List == nil { listview.List = make([]interface{}, 0) } // 輸出格式化的JSON b, err := json.MarshalIndent(listview, "", " ") if err != nil { log.Println(err) return nil } return b } //// 查詢數據(分頁, 每頁數量, 排序, 條件, 關聯, 獲取總數) //func (listview *ListView) Read(name string, page int64, page_size int64) error { // // // 獲取數據庫連接 // db, err := configs.GetDB() // if err != nil { // log.Println(err) // return err // } // // // 獲取總數 // var total int64 // err = db.QueryRow("SELECT COUNT(*) FROM " + name).Scan(&total) // if err != nil { // log.Println(err) // return err // } // // // 獲取數據 // rows, err := db.Query("SELECT * FROM "+name+" LIMIT ?, ?", (page-1)*page_size, page_size) // if err != nil { // log.Println(err) // return err // } // defer rows.Close() // // // 將數據轉換成對象 // switch name { // case "images": // for rows.Next() { // var image Image // err = rows.Scan(&image.ID, &image.Name, &image.CreatedAt, &image.UpdatedAt) // if err != nil { // log.Println(err) // return err // } // listview.List = append(listview.List, image) // } // case "models": // for rows.Next() { // var model Model // err = rows.Scan(&model.ID, &model.Name, &model.CreatedAt, &model.UpdatedAt) // if err != nil { // log.Println(err) // return err // } // listview.List = append(listview.List, model) // } // default: // for rows.Next() { // var object Object // err = rows.Scan(&object.ID, &object.Name, &object.CreatedAt, &object.UpdatedAt) // if err != nil { // log.Println(err) // return err // } // listview.List = append(listview.List, object) // } // } // // // 設置返回值 // listview.Code = 0 // listview.Page = page // listview.PageSize = page_size // listview.Total = total // listview.Next = total > page*page_size // // return nil //}