qq_bot/auth/service.go
2025-07-05 15:46:36 +08:00

48 lines
994 B
Go

package auth
import (
"errors"
"strconv"
"git.lxtend.com/lixiangwuxian/qqbot/constants"
"git.lxtend.com/lixiangwuxian/qqbot/sqlite3"
"gorm.io/gorm"
)
func getAuth(qqID int64) (auth Auth, err error) {
db := sqlite3.GetGormDB()
qqidStr := strconv.FormatInt(qqID, 10)
err = db.Where("qqid = ?", qqidStr).First(&auth).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
// 如果记录不存在,创建一个新的默认权限记录
auth = Auth{
Qqid: qqidStr,
Role: constants.LEVEL_USER,
}
err = db.Create(&auth).Error
if err != nil {
return Auth{}, err
}
} else if err != nil {
return Auth{}, err
}
return auth, nil
}
func setAuth(auth Auth) error {
db := sqlite3.GetGormDB()
result := db.Model(&Auth{}).Where("qqid = ?", auth.Qqid).Update("role", auth.Role)
if result.Error != nil {
return result.Error
}
// 如果没有找到记录进行更新,则创建新记录
if result.RowsAffected == 0 {
return db.Create(&auth).Error
}
return nil
}