fixed bug for sub user power to negtive nuber

This commit is contained in:
RockYang
2025-09-13 10:35:55 +08:00

View File

@@ -57,13 +57,19 @@ func (s *UserService) DecreasePower(userId uint, power int, log model.PowerLog)
defer s.lock.Unlock() defer s.lock.Unlock()
tx := s.db.Begin() tx := s.db.Begin()
var user model.User
tx.Where("id", userId).First(&user)
if user.Power < power {
tx.Rollback()
return fmt.Errorf("用户算力不足")
}
err := tx.Model(&model.User{}).Where("id", userId).UpdateColumn("power", gorm.Expr("power - ?", power)).Error err := tx.Model(&model.User{}).Where("id", userId).UpdateColumn("power", gorm.Expr("power - ?", power)).Error
if err != nil { if err != nil {
tx.Rollback() tx.Rollback()
return fmt.Errorf("扣减算力失败:%v", err) return fmt.Errorf("扣减算力失败:%v", err)
} }
var user model.User
tx.Where("id", userId).First(&user)
err = tx.Create(&model.PowerLog{ err = tx.Create(&model.PowerLog{
UserId: user.Id, UserId: user.Id,
Username: user.Username, Username: user.Username,