上传完善

This commit is contained in:
Hiven 2023-08-02 11:50:16 +08:00
parent c08c1e7eba
commit 9363ca68b6
3 changed files with 36 additions and 8 deletions

View File

@ -22,13 +22,13 @@ func (p *FsResourceModel) FindOneById(ctx context.Context, resourceId string) (*
return &resp, nil
}
func (p *FsResourceModel) CreateOrUpdate(ctx context.Context, req *FsResource) (resp *FsResource, err error) {
rowBuilder := p.db.Table(p.name).WithContext(ctx)
if req.ResourceId != "" {
err = rowBuilder.Save(req).Error
} else {
err = rowBuilder.Create(req).Error
}
func (p *FsResourceModel) Create(ctx context.Context, req *FsResource) (resp *FsResource, err error) {
err = p.db.Table(p.name).WithContext(ctx).Create(req).Error
return req, err
}
func (p *FsResourceModel) Update(ctx context.Context, req *FsResource) (resp *FsResource, err error) {
err = p.db.Table(p.name).WithContext(ctx).Where("resource_id =?", req.ResourceId).Save(req).Error
return req, err
}

View File

@ -1,6 +1,7 @@
package logic
import (
"fusenapi/model/gmodel"
"fusenapi/utils/auth"
"fusenapi/utils/basic"
@ -10,6 +11,7 @@ import (
"fusenapi/server/upload/internal/types"
"github.com/zeromicro/go-zero/core/logx"
"gorm.io/gorm"
)
type UploadCallbackLogic struct {
@ -38,5 +40,31 @@ func NewUploadCallbackLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Up
func (l *UploadCallbackLogic) UploadCallback(req *types.UploadCallbackReq, userinfo *auth.UserInfo) (resp *basic.Response) {
// 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data)
// userinfo 传入值时, 一定不为null
resourceModel := gmodel.NewFsResourceModel(l.svcCtx.MysqlConn)
err := resourceModel.Trans(l.ctx, func(ctx context.Context, connGorm *gorm.DB) (err error) {
resourceModelTS := gmodel.NewFsResourceModel(l.svcCtx.MysqlConn)
resourceInfo, err := resourceModelTS.FindOneById(ctx, req.ResourceId)
if err != nil {
return err
}
var fsResource = &gmodel.FsResource{}
fsResource.ResourceId = req.ResourceId
fsResource.ResourceType = &req.ResourceType
fsResource.ResourceUrl = &req.ResourceUrl
fsResource.Metadata = &req.Metadata
fsResource.ApiType = &req.ApiType
if resourceInfo.ResourceId == "" {
_, err = resourceModelTS.Create(ctx, fsResource)
} else {
_, err = resourceModelTS.Update(ctx, fsResource)
}
return err
})
if err != nil {
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,UploadCallback failed")
}
return resp.SetStatus(basic.CodeOK)
}

View File

@ -185,7 +185,7 @@ func (l *UploadFilesBackendLogic) UploadFilesBackend(req *types.UploadFilesReq,
uploadUrl.ResourceUrl = url
var version string = "0.0.1"
var nowTime = time.Now()
_, err = resourceModel.CreateOrUpdate(l.ctx, &gmodel.FsResource{
_, err = resourceModel.Create(l.ctx, &gmodel.FsResource{
ResourceId: resourceId,
UserId: &userId,
GuestId: &guestId,