feat: 添加关键词回复
This commit is contained in:
111
service/kw/kw.go
Normal file
111
service/kw/kw.go
Normal file
@@ -0,0 +1,111 @@
|
||||
package kw
|
||||
|
||||
import "git.lxtend.com/qqbot/sqlite3"
|
||||
|
||||
func init() {
|
||||
kwTable := `
|
||||
CREATE TABLE IF NOT EXISTS kw (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
kw TEXT,
|
||||
reply TEXT,
|
||||
group_id TEXT,
|
||||
created_by TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
`
|
||||
sqlite3.TryCreateTable(kwTable)
|
||||
}
|
||||
|
||||
func AddKW(kw string, reply string, groupID string, createdBy string) (int64, error) {
|
||||
kwData := Kw{
|
||||
Kw: kw,
|
||||
Reply: reply,
|
||||
GroupID: groupID,
|
||||
CreatedBy: createdBy,
|
||||
}
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
res, err := tx.Exec("INSERT INTO kw (kw, reply, group_id, created_by) VALUES (:kw, :reply, :group_id, :created_by)", kwData.Kw, kwData.Reply, kwData.GroupID, kwData.CreatedBy)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
id, _ := res.LastInsertId()
|
||||
tx.Commit()
|
||||
return id, nil
|
||||
}
|
||||
|
||||
func DeleteKW(kw string, groupID string) error {
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
_, err = tx.Exec("DELETE FROM kw WHERE kw = ? AND group_id = ?", kw, groupID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tx.Commit()
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteKWReply(kw string, reply string, groupID string) error {
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
_, err = tx.Exec("DELETE FROM kw WHERE kw = ? AND reply = ? AND group_id = ?", kw, reply, groupID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tx.Commit()
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetKW(kw string, groupId string) ([]Kw, error) {
|
||||
var kws []Kw
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
err = tx.Select(&kws, "SELECT * FROM kw WHERE kw = ? AND group_id = ?", kw, groupId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tx.Commit()
|
||||
return kws, nil
|
||||
}
|
||||
|
||||
func GetGroupAllKW(groupID string) ([]Kw, error) {
|
||||
var kws []Kw
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
err = tx.Select(&kws, "SELECT * FROM kw WHERE group_id = ?", groupID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tx.Commit()
|
||||
return kws, nil
|
||||
}
|
||||
|
||||
func GetAllKW() ([]Kw, error) {
|
||||
var kws []Kw
|
||||
tx, err := sqlite3.GetTran()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
err = tx.Select(&kws, "SELECT * FROM kw")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tx.Commit()
|
||||
return kws, nil
|
||||
}
|
||||
Reference in New Issue
Block a user