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() }