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) } // 更新数据库 _, err = dao.TenantOssTotal.SaveOrUpdate(ctx, updateData) if err != nil { return err } return err }