98 lines
2.0 KiB
Go
98 lines
2.0 KiB
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"strconv"
|
|
"time"
|
|
|
|
"git.lxtend.com/lixiangwuxian/qqbot/sqlite3"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// SSBind相关的GORM辅助函数
|
|
|
|
func CheckSSBindExists(qqid string) (bool, string, error) {
|
|
db := sqlite3.GetGormDB()
|
|
var bind SSBind
|
|
err := db.Where("qqid = ?", qqid).First(&bind).Error
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return false, "", nil
|
|
}
|
|
if err != nil {
|
|
return false, "", err
|
|
}
|
|
return true, bind.SSID, nil
|
|
}
|
|
|
|
func CheckSSIDExists(ssid string) (bool, error) {
|
|
db := sqlite3.GetGormDB()
|
|
var count int64
|
|
err := db.Model(&SSBind{}).Where("ssid = ?", ssid).Count(&count).Error
|
|
return count > 0, err
|
|
}
|
|
|
|
func CreateSSBind(qqid, ssid string) error {
|
|
db := sqlite3.GetGormDB()
|
|
bind := SSBind{
|
|
QQID: qqid,
|
|
SSID: ssid,
|
|
}
|
|
return db.Create(&bind).Error
|
|
}
|
|
|
|
func DeleteSSBind(qqid string) error {
|
|
db := sqlite3.GetGormDB()
|
|
return db.Where("qqid = ?", qqid).Delete(&SSBind{}).Error
|
|
}
|
|
|
|
// SSData相关的GORM辅助函数
|
|
|
|
func GetLatestSSData(id string) (*SSData, error) {
|
|
db := sqlite3.GetGormDB()
|
|
var data SSData
|
|
err := db.Where("id = ?", id).Order("generated_time DESC").First(&data).Error
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, nil
|
|
}
|
|
return &data, err
|
|
}
|
|
|
|
// BLData相关的GORM辅助函数
|
|
|
|
func GetLatestBLData(id string) (*BLData, error) {
|
|
db := sqlite3.GetGormDB()
|
|
var data BLData
|
|
err := db.Where("id = ?", id).Order("generated_time DESC").First(&data).Error
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, nil
|
|
}
|
|
return &data, err
|
|
}
|
|
|
|
func CreateBLData(data BLData) error {
|
|
db := sqlite3.GetGormDB()
|
|
return db.Create(&data).Error
|
|
}
|
|
|
|
// RecordData相关的GORM辅助函数
|
|
|
|
func CreateSSRecordData(data SSRecordData) error {
|
|
db := sqlite3.GetGormDB()
|
|
return db.Create(&data).Error
|
|
}
|
|
|
|
func CreateBLRecordData(data BLRecordData) error {
|
|
db := sqlite3.GetGormDB()
|
|
return db.Create(&data).Error
|
|
}
|
|
|
|
// 通用辅助函数
|
|
|
|
func ParseQQIDToInt64(qqidStr string) (int64, error) {
|
|
return strconv.ParseInt(qqidStr, 10, 64)
|
|
}
|
|
|
|
func FormatTimeNow() time.Time {
|
|
return time.Now()
|
|
}
|