102 lines
2.3 KiB
Go
102 lines
2.3 KiB
Go
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
|
||
//}
|