59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package service
|
|
|
|
import (
|
|
"encoding/json"
|
|
"xiawan/wx/api/req"
|
|
"xiawan/wx/api/vo"
|
|
"xiawan/wx/db"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// SetKeywordReplyService 设置关键词回复
|
|
func SetKeywordReplyService(queryKey string, m req.SetKeywordReplyModel) vo.DTO {
|
|
// 将关键词回复对转换为JSON字符串
|
|
pairsJSON, err := json.Marshal(m.Pairs)
|
|
if err != nil {
|
|
return vo.NewFail("序列化关键词回复对失败")
|
|
}
|
|
|
|
// 更新B002和B002Str
|
|
enable := 0
|
|
if m.Enable {
|
|
enable = 1
|
|
}
|
|
|
|
_, err = db.UpdateCommand(queryKey, "B002", enable, "")
|
|
if err != nil {
|
|
return vo.NewFail("更新关键词回复状态失败")
|
|
}
|
|
|
|
_, err = db.UpdateCommand(queryKey, "B002Str", 0, string(pairsJSON))
|
|
if err != nil {
|
|
return vo.NewFail("更新关键词回复配置失败")
|
|
}
|
|
|
|
return vo.NewSuccess(gin.H{}, "设置成功")
|
|
}
|
|
|
|
// GetKeywordReplyService 获取关键词回复配置
|
|
func GetKeywordReplyService(queryKey string) vo.DTO {
|
|
command, err := db.QueryCommand(queryKey)
|
|
if err != nil {
|
|
return vo.NewFail("获取关键词回复配置失败")
|
|
}
|
|
|
|
var pairs []req.KeywordReplyPair
|
|
if command.B002Str != "" {
|
|
err = json.Unmarshal([]byte(command.B002Str), &pairs)
|
|
if err != nil {
|
|
return vo.NewFail("解析关键词回复配置失败")
|
|
}
|
|
}
|
|
|
|
return vo.NewSuccessObj(map[string]interface{}{
|
|
"enable": command.B002 == 1,
|
|
"pairs": pairs,
|
|
}, "获取成功")
|
|
}
|