64 lines
1.6 KiB
Go
64 lines
1.6 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) {
|
|
for _, v := range updateData {
|
|
model := gfdb.DB(ctx).Model(ctx, consts.TenantOssTotalCollection).Where(gdb.Map{"tenant_id": v.TenantId})
|
|
// 检查是否存在
|
|
count, err := model.Count()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if count > 0 {
|
|
// 更新
|
|
_, err = model.Data(gdb.Map{
|
|
"used_oss_size": v.UsedOssSize,
|
|
"total_oss_size": v.TotalOssSize,
|
|
"updater": v.Updater,
|
|
}).Update()
|
|
} else {
|
|
// 插入
|
|
_, err = gfdb.DB(ctx).Model(ctx, consts.TenantOssTotalCollection).Data(gdb.Map{
|
|
"bid": guid.S(),
|
|
"tenant_id": v.TenantId,
|
|
"used_oss_size": v.UsedOssSize,
|
|
"total_oss_size": v.TotalOssSize,
|
|
"creator": v.Updater,
|
|
"updater": v.Updater,
|
|
}).Insert()
|
|
}
|
|
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
|
|
}
|