🎨 新增AI客服相关接口
This commit is contained in:
32
service/app/ai_kefu.go
Normal file
32
service/app/ai_kefu.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
"miniapp/global"
|
||||
"miniapp/model/app/request"
|
||||
"miniapp/model/system"
|
||||
)
|
||||
|
||||
type AiKefuService struct{}
|
||||
|
||||
// MatchKeywordReplyContent 匹配关键词回复内容
|
||||
func (a *AiKefuService) MatchKeywordReplyContent(msg request.Msg) (kf system.Aikefu, err error) {
|
||||
math := global.GVA_Kp.ExtractKeywords(msg.Msg)
|
||||
if len(math) == 0 {
|
||||
return
|
||||
}
|
||||
err = global.GVA_DB.Where("key_word like ? ", "%"+math[0].MatchString()+"%").First(&kf).Error
|
||||
return
|
||||
}
|
||||
|
||||
func (a *AiKefuService) AddKeyWord() {
|
||||
var keyWords []system.Aikefu
|
||||
err := global.GVA_DB.Find(&keyWords).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("初始化分词器时查询关键词失败:", zap.Error(err))
|
||||
}
|
||||
for _, keyWord := range keyWords {
|
||||
global.GVA_Kp.AddKeyWord(keyWord.KeyWord)
|
||||
global.GVA_LOG.Info("初始化分词器时添加关键词", zap.String("keyWord", keyWord.KeyWord))
|
||||
}
|
||||
}
|
@@ -6,4 +6,5 @@ type ServiceGroup struct {
|
||||
FavoriteService
|
||||
VisionService
|
||||
TodesService
|
||||
AiKefuService
|
||||
}
|
||||
|
@@ -20,4 +20,5 @@ type ServiceGroup struct {
|
||||
HospitalService
|
||||
BannerService
|
||||
ArticleService
|
||||
AiKefuService
|
||||
}
|
||||
|
47
service/system/sys_ai_kefu.go
Normal file
47
service/system/sys_ai_kefu.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"miniapp/global"
|
||||
"miniapp/model/common/request"
|
||||
"miniapp/model/system"
|
||||
)
|
||||
|
||||
type AiKefuService struct{}
|
||||
|
||||
// CreateAiKefu 创建
|
||||
func (a *AiKefuService) CreateAiKefu(p *system.Aikefu) (err error) {
|
||||
err = global.GVA_DB.Create(p).Error
|
||||
if err == nil {
|
||||
global.GVA_Kp.AddKeyWord(p.KeyWord)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateAiKefu 更新
|
||||
func (a *AiKefuService) UpdateAiKefu(p *system.Aikefu) (err error) {
|
||||
err = global.GVA_DB.Save(p).Error
|
||||
return
|
||||
}
|
||||
|
||||
// DeleteAiKefu 删除
|
||||
func (a *AiKefuService) DeleteAiKefu(p *system.Aikefu) (err error) {
|
||||
err = global.GVA_DB.Delete(p).Error
|
||||
return
|
||||
}
|
||||
|
||||
// GetAiKefuList 获取列表
|
||||
func (a *AiKefuService) GetAiKefuList(info request.PageInfo) (list []system.Aikefu, total int64, err error) {
|
||||
db := global.GVA_DB.Model(&system.Aikefu{})
|
||||
err = db.Count(&total).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = db.Offset((info.Page - 1) * info.PageSize).Limit(info.PageSize).Find(&list).Error
|
||||
return
|
||||
}
|
||||
|
||||
// GetAiKefuById 根据id获取
|
||||
func (a *AiKefuService) GetAiKefuById(id string) (p system.Aikefu, err error) {
|
||||
err = global.GVA_DB.Where("id = ?", id).First(&p).Error
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user