xdd-plus/models/user.go

45 lines
712 B
Go
Raw Normal View History

2021-08-19 19:50:25 +08:00
package models
import (
"fmt"
"time"
"gorm.io/gorm"
)
type User struct {
ID int
2021-08-19 21:39:56 +08:00
Number int `gorm:"unique"`
2021-08-19 19:50:25 +08:00
Class string
ActiveAt time.Time
Coin int
}
2021-08-19 21:51:45 +08:00
func AddCoin(uid int) int {
var u User
if db.Where("number = ?", uid).First(&u).Error != nil {
return 0
}
2021-08-19 22:09:26 +08:00
db.Model(u).Updates(map[string]interface{}{
2021-08-19 21:51:45 +08:00
"coin": gorm.Expr("coin+1"),
})
u.Coin++
return u.Coin
}
2021-08-19 21:57:16 +08:00
2021-08-23 10:46:39 +08:00
func RemCoin(uid int, num int) int {
2021-08-19 21:57:16 +08:00
var u User
db.Where("number = ?", uid).First(&u)
2021-08-19 22:09:26 +08:00
db.Model(u).Updates(map[string]interface{}{
2021-08-23 10:46:39 +08:00
"coin": gorm.Expr(fmt.Sprintf("coin-%d", num)),
2021-08-19 21:57:16 +08:00
})
2021-08-23 10:47:41 +08:00
u.Coin -= num
2021-08-19 21:57:16 +08:00
return u.Coin
}
2021-08-19 22:02:16 +08:00
func GetCoin(uid int) int {
var u User
db.Where("number = ?", uid).First(&u)
return u.Coin
}