package models import "github.com/astaxie/beego/orm" type CommentResult struct { Comment Author string `json:"author"` ReplyAccount string `json:"reply_account"` } func (m *CommentResult) FindForDocumentToPager(doc_id, page_index,page_size int) (comments []*CommentResult,totalCount int,err error) { o := orm.NewOrm() sql1 := ` SELECT comment.* , parent.* , member.account AS author, p_member.account AS reply_account FROM md_comments AS comment LEFT JOIN md_members AS member ON comment.member_id = member.member_id LEFT JOIN md_comments AS parent ON comment.parent_id = parent.comment_id LEFT JOIN md_members AS p_member ON p_member.member_id = parent.member_id WHERE comment.document_id = ? ORDER BY comment.comment_id DESC LIMIT 0,10` offset := (page_index - 1) * page_size _,err = o.Raw(sql1,doc_id,offset, page_size).QueryRows(&comments) v,err := o.QueryTable(m.TableNameWithPrefix()).Filter("document_id",doc_id).Count() if err == nil { totalCount = int(v) } return }