comment_result.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package models
  2. import "github.com/astaxie/beego/orm"
  3. type CommentResult struct {
  4. Comment
  5. Author string `json:"author"`
  6. ReplyAccount string `json:"reply_account"`
  7. }
  8. func (m *CommentResult) FindForDocumentToPager(doc_id, page_index, page_size int) (comments []*CommentResult, totalCount int, err error) {
  9. o := orm.NewOrm()
  10. sql1 := `
  11. SELECT
  12. comment.* ,
  13. parent.* ,
  14. member.account AS author,
  15. p_member.account AS reply_account
  16. FROM md_comments AS comment
  17. LEFT JOIN md_members AS member ON comment.member_id = member.member_id
  18. LEFT JOIN md_comments AS parent ON comment.parent_id = parent.comment_id
  19. LEFT JOIN md_members AS p_member ON p_member.member_id = parent.member_id
  20. WHERE comment.document_id = ? ORDER BY comment.comment_id DESC LIMIT 0,10`
  21. offset := (page_index - 1) * page_size
  22. _, err = o.Raw(sql1, doc_id, offset, page_size).QueryRows(&comments)
  23. v, err := o.QueryTable(m.TableNameWithPrefix()).Filter("document_id", doc_id).Count()
  24. if err == nil {
  25. totalCount = int(v)
  26. }
  27. return
  28. }