Files
customer-server/service/scripted_speech_service.go

91 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package service - 预制话术服务
// 功能:预制话术的增删改查
package service
import (
"context"
"customer-server/dao"
"customer-server/model/dto"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/util/gconv"
)
var (
ScriptedSpeech = new(scriptedSpeech)
)
type scriptedSpeech struct{}
// Add 添加预制话术
// 参数: ctx - 上下文req - 添加预制话术请求
// 返回: res - 添加成功后的预制话术IDerr - 错误信息
// 功能: 创建新的预制话术记录
func (s *scriptedSpeech) Add(ctx context.Context, req *dto.AddScriptedSpeechReq) (res *dto.AddScriptedSpeechRes, err error) {
// 检查账号是否存在
account, err := dao.Account.GetById(ctx, &dto.GetAccountReq{Id: req.AccountId})
if err != nil {
return
}
if account == nil {
err = gerror.New("客服账号不存在")
return
}
// 插入数据库
id, err := dao.ScriptedSpeech.Insert(ctx, req)
if err != nil {
return
}
res = &dto.AddScriptedSpeechRes{Id: id}
return
}
// Update 更新预制话术
// 参数: ctx - 上下文req - 更新预制话术请求
// 返回: err - 错误信息
// 功能: 更新预制话术信息
func (s *scriptedSpeech) Update(ctx context.Context, req *dto.UpdateScriptedSpeechReq) (err error) {
_, err = dao.ScriptedSpeech.Update(ctx, req)
return
}
// Delete 删除预制话术
// 参数: ctx - 上下文req - 删除预制话术请求
// 返回: err - 错误信息
// 功能: 逻辑删除预制话术记录
func (s *scriptedSpeech) Delete(ctx context.Context, req *dto.DeleteScriptedSpeechReq) (err error) {
_, err = dao.ScriptedSpeech.Delete(ctx, req)
return
}
// Get 获取单个预制话术
// 参数: ctx - 上下文req - 获取预制话术请求
// 返回: res - 预制话术信息err - 错误信息
// 功能: 根据ID获取单个预制话术详情
func (s *scriptedSpeech) 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 *scriptedSpeech) 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
}