| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | package modelsimport (	"time"	"github.com/astaxie/beego/orm")type DocumentSearchResult struct {	DocumentId int		`json:"doc_id"`	DocumentName string	`json:"doc_name"`	// Identify 文档唯一标识	Identify string		`json:"identify"`	Description string	`json:"description"`	Author string		`json:"author"`	ModifyTime time.Time	`json:"modify_time"`	CreateTime time.Time	`json:"create_time"`	BookId int		`json:"book_id"`	BookName string		`json:"book_name"`	BookIdentify string	`json:"book_identify"`}func NewDocumentSearchResult() *DocumentSearchResult {	return &DocumentSearchResult{}}func (m *DocumentSearchResult) FindToPager(keyword string,page_index,page_size,member_id int) (search_result []*DocumentSearchResult,total_count int,err error) {	o := orm.NewOrm()	offset := (page_index - 1) * page_size	if member_id <= 0 {		sql1 := `SELECT count(doc.document_id) as total_count FROM md_documents AS doc  LEFT JOIN md_books as book ON doc.book_id = book.book_idWHERE book.privately_owned = 0 AND (doc.document_name LIKE '%?%' OR doc.release LIKE '%?%') `		sql2 := `SELECT doc.document_id,doc.modify_time,doc.create_time,doc.document_name,doc.identify,doc.release as description,doc.modify_time,book.identify as book_identify,book.book_name,rel.member_id,member.account AS author FROM md_documents AS doc  LEFT JOIN md_books as book ON doc.book_id = book.book_id  LEFT JOIN md_relationship AS rel ON book.book_id = rel.book_id AND role_id = 0  LEFT JOIN md_members as member ON rel.member_id = member.member_idWHERE book.privately_owned = 0 AND (doc.document_name LIKE '%?%' OR doc.release LIKE '%?%') ORDER BY doc.document_id DESC LIMIT ?,? `		err = o.Raw(sql1,keyword,keyword).QueryRow(&total_count)		if err != nil{			return		}		_,err = o.Raw(sql2,keyword,keyword,offset,page_size).QueryRows(&search_result)		if err != nil {			return		}	}else{		sql1 := `SELECT count(doc.document_id) as total_count FROM md_documents AS doc  LEFT JOIN md_books as book ON doc.book_id = book.book_id  LEFT JOIN md_relationship AS rel ON doc.book_id = rel.book_id AND role_id = 0WHERE (book.privately_owned = 0 OR rel.relationship_id > 0)  AND (doc.document_name LIKE ? OR doc.release LIKE ?) `		sql2 := `SELECT doc.document_id,doc.modify_time,doc.create_time,doc.document_name,doc.identify,doc.release as description,doc.modify_time,book.identify as book_identify,book.book_name,rel.member_id,member.account AS author FROM md_documents AS doc  LEFT JOIN md_books as book ON doc.book_id = book.book_id  LEFT JOIN md_relationship AS rel ON book.book_id = rel.book_id AND role_id = 0  LEFT JOIN md_members as member ON rel.member_id = member.member_idWHERE (book.privately_owned = 0 OR rel.relationship_id > 0)  AND (doc.document_name LIKE ? OR doc.release LIKE ?) ORDER BY doc.document_id DESC LIMIT ?,? `		keyword = "%"+keyword+"%"		err = o.Raw(sql1,keyword,keyword).QueryRow(&total_count)		if err != nil{			return		}		_,err = o.Raw(sql2,keyword,keyword,offset,page_size).QueryRows(&search_result)		if err != nil {			return		}	}	return}
 |