70 lines
2.6 KiB
Go
70 lines
2.6 KiB
Go
|
|
// Package controller - 话术控制器
|
|||
|
|
// 功能:话术的增删改查、绑定/解绑客服账号
|
|||
|
|
package controller
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"context"
|
|||
|
|
"customer-server/model/dto"
|
|||
|
|
"customer-server/service"
|
|||
|
|
|
|||
|
|
"gitea.com/red-future/common/beans"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
var Speechcraft = new(speechcraft)
|
|||
|
|
|
|||
|
|
type speechcraft struct{}
|
|||
|
|
|
|||
|
|
// Add 添加话术
|
|||
|
|
// 参数: req - 添加话术请求,包含话术标题、内容等信息
|
|||
|
|
// 返回: res - 添加成功后的话术ID等信息
|
|||
|
|
// 功能: 创建新的话术记录并同步到RAGFlow知识库
|
|||
|
|
func (c *speechcraft) Add(ctx context.Context, req *dto.AddSpeechcraftReq) (res *dto.AddSpeechcraftRes, err error) {
|
|||
|
|
res, err = service.Speechcraft.Add(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Update 更新话术
|
|||
|
|
// 参数: req - 更新话术请求,包含话术ID和待更新字段
|
|||
|
|
// 返回: res - 空响应(成功则err为nil)
|
|||
|
|
// 功能: 更新话术内容并同步到RAGFlow
|
|||
|
|
func (c *speechcraft) Update(ctx context.Context, req *dto.UpdateSpeechcraftReq) (res *beans.ResponseEmpty, err error) {
|
|||
|
|
err = service.Speechcraft.Update(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Delete 删除话术
|
|||
|
|
// 参数: req - 删除话术请求,包含话术ID
|
|||
|
|
// 返回: res - 空响应(成功则err为nil)
|
|||
|
|
// 功能: 逻辑删除话术记录并从RAGFlow移除
|
|||
|
|
func (c *speechcraft) Delete(ctx context.Context, req *dto.DeleteSpeechcraftReq) (res *beans.ResponseEmpty, err error) {
|
|||
|
|
err = service.Speechcraft.Delete(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// List 获取话术列表
|
|||
|
|
// 参数: req - 列表查询请求,支持分页、关键词搜索
|
|||
|
|
// 返回: res - 话术列表及分页信息
|
|||
|
|
// 功能: 分页查询话术记录,支持按标题、内容搜索
|
|||
|
|
func (c *speechcraft) List(ctx context.Context, req *dto.ListSpeechcraftReq) (res *dto.ListSpeechcraftRes, err error) {
|
|||
|
|
res, err = service.Speechcraft.List(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Bind 绑定话术到客服账号
|
|||
|
|
// 参数: req - 绑定请求,包含话术ID和客服账号列表
|
|||
|
|
// 返回: res - 绑定结果,包含成功和失败的账号信息
|
|||
|
|
// 功能: 将话术绑定到指定客服账号,更新账号的RAGFlow配置
|
|||
|
|
func (c *speechcraft) Bind(ctx context.Context, req *dto.BindSpeechcraftReq) (res *dto.BindSpeechcraftRes, err error) {
|
|||
|
|
res, err = service.Speechcraft.BindToCustomerServices(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Unbind 解绑话术
|
|||
|
|
// 参数: req - 解绑请求,包含话术ID和客服账号
|
|||
|
|
// 返回: res - 解绑结果信息
|
|||
|
|
// 功能: 从客服账号解绑指定话术,更新RAGFlow配置
|
|||
|
|
func (c *speechcraft) Unbind(ctx context.Context, req *dto.UnbindSpeechcraftReq) (res *dto.UnbindSpeechcraftRes, err error) {
|
|||
|
|
res, err = service.Speechcraft.UnbindFromCustomerService(ctx, req)
|
|||
|
|
return
|
|||
|
|
}
|