分页查找系统首页数据.
(pageIndex, pageSize, member_id int, orderType string)
| 513 | |
| 514 | //分页查找系统首页数据. |
| 515 | func (m *Book) FindForHomeToPager(pageIndex, pageSize, member_id int, orderType string) (books []*BookResult, totalCount int, err error) { |
| 516 | o := orm.NewOrm() |
| 517 | |
| 518 | offset := (pageIndex - 1) * pageSize |
| 519 | //如果是登录用户 |
| 520 | if member_id > 0 { |
| 521 | sql1 := "SELECT COUNT(*) FROM md_books AS book LEFT JOIN md_relationship AS rel ON rel.book_id = book.book_id AND rel.member_id = ? WHERE relationship_id > 0 OR book.privately_owned = 0" |
| 522 | err = o.Raw(sql1, member_id).QueryRow(&totalCount) |
| 523 | if err != nil { |
| 524 | return |
| 525 | } |
| 526 | |
| 527 | sql2 := `SELECT book.*,rel1.*,member.account AS create_name FROM md_books AS book |
| 528 | LEFT JOIN md_relationship AS rel ON rel.book_id = book.book_id AND rel.member_id = ? |
| 529 | LEFT JOIN md_relationship AS rel1 ON rel1.book_id = book.book_id AND rel1.role_id = 0 |
| 530 | LEFT JOIN md_members AS member ON rel1.member_id = member.member_id |
| 531 | WHERE rel.relationship_id > 0 OR book.privately_owned = 0 ORDER BY order_index DESC ,book.book_id DESC LIMIT ?,?` |
| 532 | |
| 533 | _, err = o.Raw(sql2, member_id, offset, pageSize).QueryRows(&books) |
| 534 | return |
| 535 | } |
| 536 | |
| 537 | count, errCount := o.QueryTable(m.TableNameWithPrefix()).Filter("privately_owned", 0).Count() |
| 538 | if errCount != nil { |
| 539 | err = errCount |
| 540 | return |
| 541 | } |
| 542 | totalCount = int(count) |
| 543 | |
| 544 | sql := `SELECT book.*,rel.*,member.account AS create_name FROM md_books AS book |
| 545 | LEFT JOIN md_relationship AS rel ON rel.book_id = book.book_id AND rel.role_id = 0 |
| 546 | LEFT JOIN md_members AS member ON rel.member_id = member.member_id |
| 547 | WHERE book.privately_owned = 0 ORDER BY order_index DESC ,book.book_id DESC LIMIT ?,?` |
| 548 | |
| 549 | _, err = o.Raw(sql, offset, pageSize).QueryRows(&books) |
| 550 | return |
| 551 | } |
| 552 | |
| 553 | //分页全局搜索. |
| 554 | func (m *Book) FindForLabelToPager(keyword string, pageIndex, pageSize, memberId int) (books []*BookResult, totalCount int, err error) { |
nothing calls this directly
no test coverage detected