package ticket import "git.lxtend.com/qqbot/sqlite3" func init() { createTableQuery := `CREATE TABLE IF NOT EXISTS ticket ( id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT NOT NULL, fromQQ TEXT NOT NULL, fromGroup TEXT DEFAULT NULL, isDone BOOLEAN DEFAULT FALSE, isDeleted BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ` sqlite3.TryCreateTable(createTableQuery) } func storeTicket(content string, fromQQ int64, fromGroup int64) (int64, error) { ticket := Ticket{ Content: content, FromQQ: fromQQ, FromGroup: fromGroup, } tx, err := sqlite3.GetTran() if err != nil { return 0, err } defer tx.Rollback() res, err := tx.Exec("INSERT INTO ticket (content, fromQQ, fromGroup) VALUES (:content, :fromQQ, :fromGroup)", ticket.Content, ticket.FromQQ, ticket.FromGroup) if err != nil { return 0, err } id, _ := res.LastInsertId() tx.Commit() return id, nil } func setTicketDone(id int) error { tx, err := sqlite3.GetTran() if err != nil { return err } defer tx.Rollback() _, err = tx.Exec("UPDATE ticket SET isDone = TRUE WHERE id = ?", id) if err != nil { return err } tx.Commit() return nil }