123456789101112131415161718192021222324252627282930313233343536373839 |
- 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
- }
|