qq_bot/handler/ticket/ticket.go
2024-10-20 02:46:56 +08:00

57 lines
1.3 KiB
Go

package ticket
import (
"fmt"
"strconv"
"git.lxtend.com/qqbot/constants"
"git.lxtend.com/qqbot/handler"
"git.lxtend.com/qqbot/model"
)
func init() {
// Register the handler with the server
handler.RegisterHandler("提单", newTicket, constants.LEVEL_USER)
handler.RegisterHandler("结单", doneTicket, constants.LEVEL_ROOT)
}
func newTicket(msg model.Message) model.Reply {
id, err := storeTicket(msg.RawMsg[len("提单 "):], msg.UserId, msg.GroupInfo.GroupId)
if err != nil {
return model.Reply{
ReplyMsg: fmt.Sprintf("提单失败: %s", err.Error()),
ReferOriginMsg: true,
FromMsg: msg,
}
}
return model.Reply{
ReplyMsg: fmt.Sprintf("提单成功,可以至 https://lxtend.com/qbot/ticket?id=%d 查看工单", id),
ReferOriginMsg: true,
FromMsg: msg,
}
}
func doneTicket(msg model.Message) model.Reply {
id, err := strconv.Atoi(msg.RawMsg[len("结单 "):])
if err != nil {
return model.Reply{
ReplyMsg: fmt.Sprintf("结单失败: %s", err.Error()),
ReferOriginMsg: true,
FromMsg: msg,
}
}
err = setTicketDone(id)
if err != nil {
return model.Reply{
ReplyMsg: fmt.Sprintf("结单失败: %s", err.Error()),
ReferOriginMsg: true,
FromMsg: msg,
}
}
return model.Reply{
ReplyMsg: "结单成功",
ReferOriginMsg: true,
FromMsg: msg,
}
}