50 lines
1.4 KiB
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
|
|
}
|