67 lines
2.0 KiB
Go
67 lines
2.0 KiB
Go
package batchimport
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/consts"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/dao"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/contexts"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model/do"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model/entity"
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/service"
|
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
)
|
|
|
|
func SaveUpload(ctx context.Context, file *ghttp.UploadFile, fileName, subDirName string) (*model.SysOssSaveContentModel, error) {
|
|
if file == nil {
|
|
return nil, gerror.New("upload file is required")
|
|
}
|
|
|
|
result, err := service.SysOss().UploadLocalWithFileName(
|
|
ctx,
|
|
file,
|
|
consts.SysUploadNewFileTypeUserFile,
|
|
strings.TrimSpace(fileName),
|
|
subDirName,
|
|
0,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
now := gtime.Now()
|
|
id, err := g.DB().Model(dao.SysOss.Table()).Data(do.SysOss{
|
|
TenantId: contexts.GetTenantId(ctx),
|
|
FileName: result.Name,
|
|
OriginalName: result.OriginalName,
|
|
FileSuffix: result.Ext,
|
|
Path: result.Path,
|
|
Url: result.FullPath,
|
|
CreatedDept: contexts.GetDeptId(ctx),
|
|
CreatedAt: now,
|
|
CreatedBy: contexts.GetUserId(ctx),
|
|
UpdatedAt: now,
|
|
UpdatedBy: contexts.GetUserId(ctx),
|
|
Service: "local",
|
|
Md5: result.Md5,
|
|
FileSize: result.Size,
|
|
FileCrc16: result.Crc16,
|
|
FileSum: result.Sum16,
|
|
}).InsertAndGetId()
|
|
if err != nil {
|
|
return nil, gerror.Wrap(err, "save uploaded file metadata failed")
|
|
}
|
|
|
|
oss := &entity.SysOss{}
|
|
if err = g.DB().Model(dao.SysOss.Table()).Where(dao.SysOss.Columns().OssId, id).Scan(oss); err != nil {
|
|
return nil, gerror.Wrap(err, "load uploaded file metadata failed")
|
|
}
|
|
return &model.SysOssSaveContentModel{SysOss: oss}, nil
|
|
}
|