Files
oss/service/tenant_oss_total_service.go

52 lines
1.0 KiB
Go

package service
import (
"context"
"oss/consts"
"oss/dao"
"oss/model/dto"
"gitea.com/red-future/common/beans"
"gitea.com/red-future/common/redis"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
)
type tenantOssTotal struct{}
// TenantOssTotal 存储文件服务
var TenantOssTotal = new(tenantOssTotal)
func (s *tenantOssTotal) UpdateUsedOssSize(ctx context.Context) (err error) {
ctx = context.WithValue(ctx, "user", &beans.User{
UserName: "admin",
})
// 使用 Keys 取出所有key
keys, err := redis.RedisClient().Keys(ctx, consts.OssTotalKey)
if err != nil {
return
}
updateData := make([]*dto.UpdateUsedOssReq, 0)
for _, key := range keys {
get, err := g.Redis().Get(ctx, key)
if err != nil {
return err
}
e := new(dto.UpdateUsedOssReq)
err = gconv.Struct(get, e)
if err != nil {
return err
}
updateData = append(updateData, e)
}
if len(updateData) != 0 {
// 更新数据库
_, err = dao.TenantOssTotal.SaveOrUpdate(ctx, updateData)
if err != nil {
return err
}
}
return err
}