MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / SaveQuotaDataCache

Function SaveQuotaDataCache

model/usedata.go:72–95  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

70}
71
72func 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
97func 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 = ?",

Callers 1

UpdateQuotaDataFunction · 0.85

Calls 2

SysLogFunction · 0.92
increaseQuotaDataFunction · 0.85

Tested by

no test coverage detected