| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package service
- import (
- "time"
- "xps/datamodel"
- "xps/datasource"
- "xps/repositories"
- minio "xps/three_party"
- )
- type TargetFile struct {
- FileName string
- FilePath string
- }
- type UploadService interface {
- UploadFile(ocId, userId, dirId int64, file TargetFile)(*datamodel.DocFile, error)
- UploadFiles(ocId, userId, dirId int64, files []TargetFile)([]datamodel.DocFile, error)
-
- }
- type uploadService struct {
- repo *repositories.DocFileRepo
- }
- func NewUploadService() UploadService {
- return &uploadService{
- repo: repositories.NewDocFileRepo(datasource.InstanceMaster()),
- }
- }
- func (s* uploadService) UploadFile(ocId, userId, dirId int64, file TargetFile) (*datamodel.DocFile, error) {
- dFile, err1 := minio.UploadFile(file.FileName, file.FilePath)
- if err1 != nil {
- return nil, err1
- }
-
- fileId := NewID()
- docFile := &datamodel.DocFile{
- OcId: ocId,
- FileId: fileId,
- FileTitle: dFile.FileName,
- FileIcon: "",
- FileExt: dFile.FileExt,
- DirId: dirId,
- FileUrl: dFile.FileUrl,
- FileSize: dFile.FileSize,
- FileAuthor: "",
- FileMimeType: dFile.FileMimeType,
- FileDesc: "",
- UploadedAt: time.Time{},
- UploadedBy: 0,
- CreatedBy: userId,
- CreatedAt: time.Time{},
- UpdatedBy: 0,
- UpdatedAt: time.Time{},
- DeletedFlag: 0,
- DeletedBy: 0,
- DeletedAt: time.Time{},
- }
-
- err2 := s.repo.Create(docFile)
- if err2 != nil {
- return nil, err2
- }
- return docFile, nil
- }
- func (s* uploadService) UploadFiles(ocId, userId, dirId int64, files []TargetFile) ([]datamodel.DocFile, error) {
- docFileList := make([]datamodel.DocFile, 0)
-
- for _, f := range files {
- // 1. Upload to minio
- dFile, err1 := minio.UploadFile(f.FileName, f.FilePath)
- if err1 != nil {
- return nil, err1
- }
-
- // 2. DocFile
- fileId := NewID()
- docFile := datamodel.DocFile{
- OcId: ocId,
- FileId: fileId,
- FileTitle: dFile.FileName,
- FileIcon: "",
- FileExt: dFile.FileExt,
- DirId: dirId,
- FileUrl: dFile.FileUrl,
- FileSize: dFile.FileSize,
- FileAuthor: "",
- FileMimeType: dFile.FileMimeType,
- FileDesc: "",
- UploadedAt: time.Time{},
- UploadedBy: 0,
- CreatedBy: userId,
- CreatedAt: time.Time{},
- UpdatedBy: 0,
- UpdatedAt: time.Time{},
- DeletedFlag: 0,
- DeletedBy: 0,
- DeletedAt: time.Time{},
- }
-
- err2 := s.repo.Create(&docFile)
- if err2 != nil {
- return nil, err2
- }
-
- // 3. DocFileList
- docFileList = append(docFileList, docFile)
- }
-
- return docFileList, nil
- }
|