Files
oss/dao/tenant_oss_total.go

50 lines
1.4 KiB
Go

package dao
import (
"context"
"oss/consts"
"oss/model/dto"
"oss/model/entity"
"gitea.com/red-future/common/db/gfdb"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/guid"
)
var TenantOssTotal = &tenantOssTotal{}
type tenantOssTotal struct{}
// SaveOrUpdate 增加或更新
func (d *tenantOssTotal) SaveOrUpdate(ctx context.Context, updateData []*dto.UpdateUsedOssReq) (err error) {
if !g.IsEmpty(updateData) {
data := make([]gdb.Map, 0, len(updateData))
for _, v := range updateData {
data = append(data, gdb.Map{
entity.TenantOssCol.Bid: guid.S(),
entity.TenantOssCol.TenantId: v.TenantId,
entity.TenantOssCol.UsedOssSize: v.UsedOssSize,
entity.TenantOssCol.TotalOssSize: v.TotalOssSize,
entity.TenantOssCol.Creator: v.Updater,
entity.TenantOssCol.Updater: v.Updater,
})
}
_, err = gfdb.DB(ctx).Model(ctx, consts.TenantOssTotalCollection).Data(data).OnConflict(entity.TenantOssCol.TenantId).Save()
if err != nil {
return err
}
}
return
}
func (d *tenantOssTotal) GetOneByTenantId(ctx context.Context, req *dto.GetByTenantIdReq) (res *entity.TenantOssTotal, err error) {
model := gfdb.DB(ctx).Model(ctx, consts.TenantOssTotalCollection).Where(entity.TenantOssCol.TenantId, req.TenantId)
record, err := model.One()
if err != nil {
return
}
err = record.Struct(&res)
return
}