63 lines
1.3 KiB
Go
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
|
|
}
|