1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package example
- import (
- "errors"
- "mime/multipart"
- "server/dao/example"
- "strings"
- "server/model/common/request"
- "server/utils/upload"
- )
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: Upload
- //@description: 创建文件上传记录
- //@param: file model.ExaFileUploadAndDownload
- //@return: error
- func (e *FileUploadAndDownloadService) Upload(file example.ExaFileUploadAndDownload) error {
- return file.CreateFile()
- }
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: FindFile
- //@description: 查询文件记录
- //@param: id uint
- //@return: model.ExaFileUploadAndDownload, error
- func (e *FileUploadAndDownloadService) FindFile(id uint) (example.ExaFileUploadAndDownload, error) {
- return example.QueryFileById(id)
- }
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: DeleteFile
- //@description: 删除文件记录
- //@param: file model.ExaFileUploadAndDownload
- //@return: err error
- func (e *FileUploadAndDownloadService) DeleteFile(file example.ExaFileUploadAndDownload) (err error) {
- var fileFromDb example.ExaFileUploadAndDownload
- fileFromDb, err = e.FindFile(file.ID)
- if err != nil {
- return
- }
- oss := upload.NewOss()
- if err = oss.DeleteFile(fileFromDb.Key); err != nil {
- return errors.New("文件删除失败")
- }
- err = file.DeleteFile()
- return err
- }
- // EditFileName 编辑文件名或者备注
- func (e *FileUploadAndDownloadService) EditFileName(file example.ExaFileUploadAndDownload) (err error) {
- _, err = file.EditFileName()
- return
- }
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: GetFileRecordInfoList
- //@description: 分页获取数据
- //@param: info request.PageInfo
- //@return: list interface{}, total int64, err error
- func (e *FileUploadAndDownloadService) GetFileRecordInfoList(info request.PageInfo) (list interface{}, total int64, err error) {
- limit := info.PageSize
- offset := info.PageSize * (info.Page - 1)
- keyword := info.Keyword
- return example.GetFileRecordInfoList(limit, offset, keyword)
- }
- //@author: [piexlmax](https://github.com/piexlmax)
- //@function: UploadFile
- //@description: 根据配置文件判断是文件上传到本地或者七牛云
- //@param: header *multipart.FileHeader, noSave string
- //@return: file model.ExaFileUploadAndDownload, err error
- func (e *FileUploadAndDownloadService) UploadFile(header *multipart.FileHeader, noSave string) (file example.ExaFileUploadAndDownload, err error) {
- oss := upload.NewOss()
- filePath, key, uploadErr := oss.UploadFile(header)
- if uploadErr != nil {
- panic(err)
- }
- if noSave == "0" {
- s := strings.Split(header.Filename, ".")
- f := example.ExaFileUploadAndDownload{
- Url: filePath,
- Name: header.Filename,
- Tag: s[len(s)-1],
- Key: key,
- }
- return f, e.Upload(f)
- }
- return
- }
|