package models import ( "errors" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" stgmod "gitlink.org.cn/cloudream/storage/common/models" "gorm.io/gorm" "log" ) func ProcessStorageStats(data stgmod.StorageStats) { repo := NewStorageRepository(DB) storage, err := repo.GetStorageByID(data.Body.StorageID) if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { // 插入新记录 newStorage := &Storage{ StorageID: cdssdk.StorageID(data.Body.StorageID), DataCount: data.Body.DataCount, NewDataCount: 0, } repo.CreateStorage(newStorage) } else { log.Printf("Error querying storage: %v", err) } } else { // 更新记录 newDataCount := data.Body.DataCount - storage.DataCount storage.DataCount = data.Body.DataCount storage.NewDataCount = newDataCount err := repo.UpdateStorage(storage) if err != nil { log.Printf("Error update storage: %v", err) } } }