package model import ( "trading-go/common" "trading-go/response" ) type Pic struct { Id uint `db:"id"` Name string `db:"name"` Url string `db:"url"` } func (p *Pic) Save() error { db := common.DB sqlStr := "INSERT INTO pics(name, url) VALUES (:name, :url)" exec, err := db.NamedExec(sqlStr, p) if err != nil { return err } id, err := exec.LastInsertId() if err != nil { return err } p.Id = uint(id) return nil } func (p *Pic) GetAll() (pics []Pic, err error) { db := common.DB sqlStr := "SELECT * FROM pics" err = db.Select(&pics, sqlStr) return } func (p *Pic) Delete() error { db := common.DB sqlStr := "DELETE FROM pics WHERE id = ?" _, err := db.Exec(sqlStr) return err } func (p *Pic) GetPaged(page, pageSize int) (rsp response.PageResponse, err error) { var pics []Pic db := common.DB sqlStr := "SELECT * FROM pics LIMIT ?,?" rsp.Page = page rsp.PageSize = pageSize err = db.Select(&pics, sqlStr, (page-1)*pageSize, pageSize) rsp.Data = pics return } func (p *Pic) GetCnt() (cnt int, err error) { db := common.DB sqlStr := "SELECT COUNT(1) FROM pics" err = db.Get(&cnt, sqlStr) return }