| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | 
							- package models
 
- import (
 
- 	"strings"
 
- 	"github.com/beego/beego/v2/client/orm"
 
- 	"github.com/mindoc-org/mindoc/utils/filetil"
 
- )
 
- type AttachmentResult struct {
 
- 	Attachment
 
- 	IsExist       bool
 
- 	BookName      string
 
- 	DocumentName  string
 
- 	FileShortSize string
 
- 	Account       string
 
- 	LocalHttpPath string
 
- }
 
- func NewAttachmentResult() *AttachmentResult {
 
- 	return &AttachmentResult{IsExist: false}
 
- }
 
- func (m *AttachmentResult) Find(id int) (*AttachmentResult, error) {
 
- 	o := orm.NewOrm()
 
- 	attach := NewAttachment()
 
- 	err := o.QueryTable(m.TableNameWithPrefix()).Filter("attachment_id", id).One(attach)
 
- 	if err != nil {
 
- 		return m, err
 
- 	}
 
- 	m.Attachment = *attach
 
- 	if attach.BookId == 0 && attach.DocumentId > 0 {
 
- 		blog := NewBlog()
 
- 		if err := o.QueryTable(blog.TableNameWithPrefix()).Filter("blog_id", attach.DocumentId).One(blog, "blog_title"); err == nil {
 
- 			m.BookName = blog.BlogTitle
 
- 		} else {
 
- 			m.BookName = "[文章不存在]"
 
- 		}
 
- 	} else {
 
- 		book := NewBook()
 
- 		if e := o.QueryTable(book.TableNameWithPrefix()).Filter("book_id", attach.BookId).One(book, "book_name"); e == nil {
 
- 			m.BookName = book.BookName
 
- 		} else {
 
- 			m.BookName = "[不存在]"
 
- 		}
 
- 		doc := NewDocument()
 
- 		if e := o.QueryTable(doc.TableNameWithPrefix()).Filter("document_id", attach.DocumentId).One(doc, "document_name"); e == nil {
 
- 			m.DocumentName = doc.DocumentName
 
- 		} else {
 
- 			m.DocumentName = "[不存在]"
 
- 		}
 
- 	}
 
- 	if attach.CreateAt > 0 {
 
- 		member := NewMember()
 
- 		if e := o.QueryTable(member.TableNameWithPrefix()).Filter("member_id", attach.CreateAt).One(member, "account"); e == nil {
 
- 			m.Account = member.Account
 
- 		}
 
- 	}
 
- 	m.FileShortSize = filetil.FormatBytes(int64(attach.FileSize))
 
- 	m.LocalHttpPath = strings.Replace(m.FilePath, "\\", "/", -1)
 
- 	return m, nil
 
- }
 
 
  |