合併輸出
This commit is contained in:
		@@ -3,6 +3,7 @@ package models
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ListView struct {
 | 
			
		||||
@@ -13,7 +14,7 @@ type ListView struct {
 | 
			
		||||
	List     []interface{} `json:"list"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 輸出JSON給瀏覽器
 | 
			
		||||
// 轉換爲JSON並返回
 | 
			
		||||
func (listview *ListView) ToJSON() []byte {
 | 
			
		||||
 | 
			
		||||
	// 即使list爲空,也要返回空的JSON數組
 | 
			
		||||
@@ -29,3 +30,9 @@ func (listview *ListView) ToJSON() []byte {
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 直接輸出JSON給瀏覽器
 | 
			
		||||
func (listview *ListView) WriteJSON(w http.ResponseWriter) {
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
	w.Write(listview.ToJSON())
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ type Tag struct {
 | 
			
		||||
	UpdatedAt string `json:"updated_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (tag *Tag) Create() error {
 | 
			
		||||
func (tag *Tag) Create(name string) error {
 | 
			
		||||
	db, err := configs.GetDB()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
@@ -25,7 +25,7 @@ func (tag *Tag) Create() error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer stmt.Close()
 | 
			
		||||
	result, err := stmt.Exec(tag.Name, tag.CreatedAt, tag.UpdatedAt)
 | 
			
		||||
	result, err := stmt.Exec(name, tag.CreatedAt, tag.UpdatedAt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return err
 | 
			
		||||
@@ -139,3 +139,44 @@ func GetTagByName(name string) (*Tag, error) {
 | 
			
		||||
	}
 | 
			
		||||
	return &tag, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryTags(page, pagesize int) (list []interface{}) {
 | 
			
		||||
	db, err := configs.GetDB()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	defer db.Close()
 | 
			
		||||
	rows, err := db.Query("SELECT * FROM tags LIMIT ?, ?", page, pagesize)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	defer rows.Close()
 | 
			
		||||
	for rows.Next() {
 | 
			
		||||
		var tag Tag
 | 
			
		||||
		err := rows.Scan(&tag.ID, &tag.Name, &tag.CreatedAt, &tag.UpdatedAt)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Println(err)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		list = append(list, tag)
 | 
			
		||||
	}
 | 
			
		||||
	return list
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CountTags() (count int) {
 | 
			
		||||
	db, err := configs.GetDB()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
	defer db.Close()
 | 
			
		||||
	row := db.QueryRow("SELECT COUNT(*) FROM tags")
 | 
			
		||||
	err = row.Scan(&count)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
	return count
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user