background/model/memo.go

94 lines
2.1 KiB
Go

package model
import (
"background/db"
"background/logs"
"fmt"
"strings"
"qiniupkg.com/x/log.v7"
)
type Memo struct {
ID int64 `sql:"id" json:"id"`
Title string `sql:"title" json:"title"`
CreateTime string `sql:"create_time" json:"create_time"`
Content string `sql:"content" json:"content"`
}
func CreateMemo(memo Memo) error {
sql := fmt.Sprintf(`insert into memo(title,create_time,content) select '%s','%s','%s'
from dual where not exists (select * from memo where memo.title='%s') `,
memo.Title, memo.CreateTime, strings.Replace(memo.Content, "'", "\\'", -1), memo.Title)
log.Print(sql)
_, e := db.GetMysqlClient().Query(sql)
if nil != e {
logs.Error(e.Error())
return e
}
return nil
}
func UpdateMemo(memo Memo) error {
sql := fmt.Sprintf(`update memo set title = '%s',
create_time = '%s',
content = '%s' where memo.id = %d`,
memo.Title, memo.CreateTime, strings.Replace(memo.Content, "'", "\\'", -1), memo.ID)
_, e := db.GetMysqlClient().Query(sql)
if nil != e {
logs.Error(e.Error())
return e
}
return nil
}
func DeleteMemo(id int32) error {
sql := fmt.Sprintf(`delete from memo where memo.id = '%d'`, id)
log.Print(sql)
_, e := db.GetMysqlClient().Query(sql)
if nil != e {
logs.Error(e.Error())
return e
}
return nil
}
func ReadMemo(id int32) ([]Memo, error) {
memo := []Memo{}
sql := fmt.Sprintf(`select * from memo where memo.id = '%d'`, id)
e := db.GetMysqlClient().Query2(sql, &memo)
if nil != e {
logs.Error(e.Error())
return nil, e
}
return memo, nil
}
func MemoCnt() int {
sql := fmt.Sprintf(`select count(*) from memo`)
type Count struct {
Count int32 `sql:"count(*)"`
}
cnts := []Count{}
e := db.GetMysqlClient().Query2(sql, &cnts)
if nil != e {
logs.Error(e.Error())
return 0
}
return int(cnts[0].Count)
}
func GetMemos(title string, limit int, offset int) ([]Memo, error) {
memo := []Memo{}
sql := fmt.Sprintf(`select * from memo where memo.title like '%s%%' limit %d offset %d`,
title, limit, offset)
log.Print(sql)
e := db.GetMysqlClient().Query2(sql, &memo)
if nil != e {
logs.Error(e.Error())
return nil, e
}
return memo, nil
}