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
|
2021-08-28 09:52:25 +08:00
|
|
|
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
|
|
|
|
|
}
|