92 lines
2.6 KiB
Go
92 lines
2.6 KiB
Go
// Package service - 预制话术服务
|
||
// 功能:预制话术的增删改查
|
||
package service
|
||
|
||
import (
|
||
"context"
|
||
"customer-server/dao"
|
||
"customer-server/model/dto"
|
||
"fmt"
|
||
|
||
"github.com/gogf/gf/v2/util/gconv"
|
||
)
|
||
|
||
var (
|
||
ScriptedSpeechService = new(scriptedSpeechService)
|
||
)
|
||
|
||
type scriptedSpeechService struct{}
|
||
|
||
// Add 添加预制话术
|
||
// 参数: ctx - 上下文,req - 添加预制话术请求
|
||
// 返回: res - 添加成功后的预制话术ID,err - 错误信息
|
||
// 功能: 创建新的预制话术记录
|
||
func (s *scriptedSpeechService) Add(ctx context.Context, req *dto.AddScriptedSpeechReq) (res *dto.AddScriptedSpeechRes, err error) {
|
||
count, err := dao.ScriptedSpeech.Count(ctx, &dto.ListScriptedSpeechReq{
|
||
DatasetId: req.DatasetId,
|
||
SceneType: req.SceneType,
|
||
})
|
||
if err != nil {
|
||
return
|
||
}
|
||
if count > 0 {
|
||
err = fmt.Errorf("话术场景已存在")
|
||
return
|
||
}
|
||
// 插入数据库
|
||
id, err := dao.ScriptedSpeech.Insert(ctx, req)
|
||
if err != nil {
|
||
return
|
||
}
|
||
res = &dto.AddScriptedSpeechRes{Id: id}
|
||
return
|
||
}
|
||
|
||
// Update 更新预制话术
|
||
// 参数: ctx - 上下文,req - 更新预制话术请求
|
||
// 返回: err - 错误信息
|
||
// 功能: 更新预制话术信息
|
||
func (s *scriptedSpeechService) Update(ctx context.Context, req *dto.UpdateScriptedSpeechReq) (err error) {
|
||
_, err = dao.ScriptedSpeech.Update(ctx, req)
|
||
return
|
||
}
|
||
|
||
// Delete 删除预制话术
|
||
// 参数: ctx - 上下文,req - 删除预制话术请求
|
||
// 返回: err - 错误信息
|
||
// 功能: 逻辑删除预制话术记录
|
||
func (s *scriptedSpeechService) Delete(ctx context.Context, req *dto.DeleteScriptedSpeechReq) (err error) {
|
||
_, err = dao.ScriptedSpeech.Delete(ctx, req)
|
||
return
|
||
}
|
||
|
||
// Get 获取单个预制话术
|
||
// 参数: ctx - 上下文,req - 获取预制话术请求
|
||
// 返回: res - 预制话术信息,err - 错误信息
|
||
// 功能: 根据ID获取单个预制话术详情
|
||
func (s *scriptedSpeechService) Get(ctx context.Context, req *dto.GetScriptedSpeechReq) (res *dto.ScriptedSpeechVO, err error) {
|
||
r, err := dao.ScriptedSpeech.GetById(ctx, req)
|
||
if err != nil {
|
||
return
|
||
}
|
||
err = gconv.Struct(r, &res)
|
||
return
|
||
}
|
||
|
||
// List 获取预制话术列表
|
||
// 参数: ctx - 上下文,req - 列表查询请求
|
||
// 返回: res - 预制话术列表及分页信息,err - 错误信息
|
||
// 功能: 分页查询预制话术记录
|
||
func (s *scriptedSpeechService) List(ctx context.Context, req *dto.ListScriptedSpeechReq) (res *dto.ListScriptedSpeechRes, err error) {
|
||
list, total, err := dao.ScriptedSpeech.List(ctx, req)
|
||
if err != nil {
|
||
return
|
||
}
|
||
res = &dto.ListScriptedSpeechRes{
|
||
Total: total,
|
||
}
|
||
err = gconv.Struct(list, &res.List)
|
||
|
||
return
|
||
}
|