|
@@ -275,6 +275,14 @@ func IncreaseUserQuota(id int, quota int) (err error) {
|
|
|
if quota < 0 {
|
|
if quota < 0 {
|
|
|
return errors.New("quota 不能为负数!")
|
|
return errors.New("quota 不能为负数!")
|
|
|
}
|
|
}
|
|
|
|
|
+ if common.BatchUpdateEnabled {
|
|
|
|
|
+ addNewRecord(BatchUpdateTypeUserQuota, id, quota)
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
|
|
+ return increaseUserQuota(id, quota)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func increaseUserQuota(id int, quota int) (err error) {
|
|
|
err = DB.Model(&User{}).Where("id = ?", id).Update("quota", gorm.Expr("quota + ?", quota)).Error
|
|
err = DB.Model(&User{}).Where("id = ?", id).Update("quota", gorm.Expr("quota + ?", quota)).Error
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
@@ -283,6 +291,14 @@ func DecreaseUserQuota(id int, quota int) (err error) {
|
|
|
if quota < 0 {
|
|
if quota < 0 {
|
|
|
return errors.New("quota 不能为负数!")
|
|
return errors.New("quota 不能为负数!")
|
|
|
}
|
|
}
|
|
|
|
|
+ if common.BatchUpdateEnabled {
|
|
|
|
|
+ addNewRecord(BatchUpdateTypeUserQuota, id, -quota)
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
|
|
+ return decreaseUserQuota(id, quota)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func decreaseUserQuota(id int, quota int) (err error) {
|
|
|
err = DB.Model(&User{}).Where("id = ?", id).Update("quota", gorm.Expr("quota - ?", quota)).Error
|
|
err = DB.Model(&User{}).Where("id = ?", id).Update("quota", gorm.Expr("quota - ?", quota)).Error
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
@@ -293,10 +309,18 @@ func GetRootUserEmail() (email string) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func UpdateUserUsedQuotaAndRequestCount(id int, quota int) {
|
|
func UpdateUserUsedQuotaAndRequestCount(id int, quota int) {
|
|
|
|
|
+ if common.BatchUpdateEnabled {
|
|
|
|
|
+ addNewRecord(BatchUpdateTypeUsedQuotaAndRequestCount, id, quota)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ updateUserUsedQuotaAndRequestCount(id, quota, 1)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func updateUserUsedQuotaAndRequestCount(id int, quota int, count int) {
|
|
|
err := DB.Model(&User{}).Where("id = ?", id).Updates(
|
|
err := DB.Model(&User{}).Where("id = ?", id).Updates(
|
|
|
map[string]interface{}{
|
|
map[string]interface{}{
|
|
|
"used_quota": gorm.Expr("used_quota + ?", quota),
|
|
"used_quota": gorm.Expr("used_quota + ?", quota),
|
|
|
- "request_count": gorm.Expr("request_count + ?", 1),
|
|
|
|
|
|
|
+ "request_count": gorm.Expr("request_count + ?", count),
|
|
|
},
|
|
},
|
|
|
).Error
|
|
).Error
|
|
|
if err != nil {
|
|
if err != nil {
|