qq_bot/handler/ticket/store_ticket.go
2025-07-05 15:46:36 +08:00

63 lines
1.3 KiB
Go

package ticket
import (
"strconv"
"git.lxtend.com/lixiangwuxian/qqbot/sqlite3"
)
func init() {
// 使用GORM自动迁移替代手写SQL
sqlite3.AutoMigrate(&Ticket{})
}
func storeTicket(content string, fromQQ int64, fromGroup int64) (int64, error) {
ticket := Ticket{
Content: content,
FromQQ: fromQQ,
FromGroup: fromGroup,
}
db := sqlite3.GetGormDB()
result := db.Create(&ticket)
if result.Error != nil {
return 0, result.Error
}
return ticket.Id, nil
}
func setTicketDone(id int) error {
db := sqlite3.GetGormDB()
result := db.Model(&Ticket{}).Where("id = ?", id).Update("isDone", true)
return result.Error
}
func getAllTicket() ([]WebTicketModel, error) {
db := sqlite3.GetGormDB()
var ticketList []Ticket
result := db.Where("isDone = ?", false).Find(&ticketList)
if result.Error != nil {
return nil, result.Error
}
var webTickets []WebTicketModel
for _, v := range ticketList {
var fromQQStr string
if v.FromQQ == 0 {
fromQQStr = "未知"
} else {
fromQQStr = strconv.Itoa(int(v.FromQQ/10000)) + "****"
}
webTicket := WebTicketModel{
Id: v.Id,
Content: v.Content,
FromQQ: fromQQStr,
CreatedAt: v.CreatedAt.Format("2006-01-02 15:04:05"),
}
webTickets = append(webTickets, webTicket)
}
return webTickets, nil
}