()
| 70 | } |
| 71 | |
| 72 | func SaveQuotaDataCache() { |
| 73 | CacheQuotaDataLock.Lock() |
| 74 | defer CacheQuotaDataLock.Unlock() |
| 75 | size := len(CacheQuotaData) |
| 76 | // 如果缓存中有数据,就保存到数据库中 |
| 77 | // 1. 先查询数据库中是否有数据 |
| 78 | // 2. 如果有数据,就更新数据 |
| 79 | // 3. 如果没有数据,就插入数据 |
| 80 | for _, quotaData := range CacheQuotaData { |
| 81 | quotaDataDB := &QuotaData{} |
| 82 | DB.Table("quota_data").Where("user_id = ? and username = ? and model_name = ? and created_at = ?", |
| 83 | quotaData.UserID, quotaData.Username, quotaData.ModelName, quotaData.CreatedAt).First(quotaDataDB) |
| 84 | if quotaDataDB.Id > 0 { |
| 85 | //quotaDataDB.Count += quotaData.Count |
| 86 | //quotaDataDB.Quota += quotaData.Quota |
| 87 | //DB.Table("quota_data").Save(quotaDataDB) |
| 88 | increaseQuotaData(quotaData.UserID, quotaData.Username, quotaData.ModelName, quotaData.Count, quotaData.Quota, quotaData.CreatedAt, quotaData.TokenUsed) |
| 89 | } else { |
| 90 | DB.Table("quota_data").Create(quotaData) |
| 91 | } |
| 92 | } |
| 93 | CacheQuotaData = make(map[string]*QuotaData) |
| 94 | common.SysLog(fmt.Sprintf("保存数据看板数据成功,共保存%d条数据", size)) |
| 95 | } |
| 96 | |
| 97 | func increaseQuotaData(userId int, username string, modelName string, count int, quota int, createdAt int64, tokenUsed int) { |
| 98 | err := DB.Table("quota_data").Where("user_id = ? and username = ? and model_name = ? and created_at = ?", |
no test coverage detected