feat: 添加客服账号管理及WebSocket功能
This commit is contained in:
64
controller/account_controller.go
Normal file
64
controller/account_controller.go
Normal file
@@ -0,0 +1,64 @@
|
||||
// Package controller - 客服账号控制器
|
||||
// 功能:客服账号的增删改查、状态切换
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"customer-server/model/dto"
|
||||
"customer-server/service"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
var Account = new(account)
|
||||
|
||||
type account struct{}
|
||||
|
||||
// Add 添加客服账号
|
||||
// 参数: req - 添加客服账号请求,包含客服账号名称、平台等信息
|
||||
// 返回: res - 添加成功后的客服账号ID等信息
|
||||
// 功能: 创建新的客服账号记录
|
||||
func (c *account) Add(ctx context.Context, req *dto.AddAccountReq) (res *dto.AddAccountRes, err error) {
|
||||
res, err = service.AccountService.Add(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Update 更新客服账号
|
||||
// 参数: req - 更新客服账号请求,包含客服账号ID和待更新字段
|
||||
// 返回: res - 空响应(成功则err为nil)
|
||||
// 功能: 更新客服账号信息
|
||||
func (c *account) Update(ctx context.Context, req *dto.UpdateAccountReq) (res *beans.ResponseEmpty, err error) {
|
||||
err = service.AccountService.Update(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete 删除客服账号
|
||||
// 参数: req - 删除客服账号请求,包含客服账号ID
|
||||
// 返回: res - 空响应(成功则err为nil)
|
||||
// 功能: 逻辑删除客服账号记录
|
||||
func (c *account) Delete(ctx context.Context, req *dto.DeleteAccountReq) (res *beans.ResponseEmpty, err error) {
|
||||
err = service.AccountService.Delete(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Get 获取单个客服账号
|
||||
// 参数: req - 获取客服账号请求,包含客服账号ID
|
||||
// 返回: res - 客服账号信息
|
||||
// 功能: 根据ID获取单个客服账号详情
|
||||
func (c *account) Get(ctx context.Context, req *dto.GetAccountReq) (res *dto.AccountVO, err error) {
|
||||
res, err = service.AccountService.Get(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// List 获取客服账号列表
|
||||
// 参数: req - 列表查询请求,支持分页、账号名称、状态、平台筛选
|
||||
// 返回: res - 客服账号列表及分页信息
|
||||
// 功能: 分页查询客服账号记录
|
||||
func (c *account) List(ctx context.Context, req *dto.ListAccountReq) (res *dto.ListAccountRes, err error) {
|
||||
if !g.IsEmpty(req.Page) {
|
||||
req.Page = &beans.Page{PageNum: 1, PageSize: 20}
|
||||
}
|
||||
res, err = service.AccountService.List(ctx, req)
|
||||
return
|
||||
}
|
||||
26
controller/account_websocket_controller.go
Normal file
26
controller/account_websocket_controller.go
Normal file
@@ -0,0 +1,26 @@
|
||||
// Package controller - WebSocket控制器
|
||||
// 功能:WebSocket连接管理、实时消息推送
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"customer-server/model/dto"
|
||||
"customer-server/service"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
var AccountWebsocket = new(accountWebSocket)
|
||||
|
||||
type accountWebSocket struct{}
|
||||
|
||||
// Connect WebSocket连接
|
||||
// 参数: req - WebSocket连接请求,包含用户ID和平台信息
|
||||
// 返回: res - 连接结果(实际通过WebSocket协议通信)
|
||||
// 功能: 升级HTTP连接为WebSocket,建立实时通信通道
|
||||
func (c *accountWebSocket) Connect(ctx context.Context, req *dto.AccountWebSocketConnectReq) (res *beans.ResponseEmpty, err error) {
|
||||
r := g.RequestFromCtx(ctx)
|
||||
err = service.AccountWebSocket.Connect(ctx, r, req.AccountName, req.Platform)
|
||||
return
|
||||
}
|
||||
64
controller/scripted_speech_controller.go
Normal file
64
controller/scripted_speech_controller.go
Normal file
@@ -0,0 +1,64 @@
|
||||
// Package controller - 预制话术控制器
|
||||
// 功能:预制话术的增删改查
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"customer-server/model/dto"
|
||||
"customer-server/service"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
var ScriptedSpeech = new(scriptedSpeech)
|
||||
|
||||
type scriptedSpeech struct{}
|
||||
|
||||
// Add 添加预制话术
|
||||
// 参数: req - 添加预制话术请求,包含账号ID、数据集ID、问题、回答等信息
|
||||
// 返回: res - 添加成功后的预制话术ID等信息
|
||||
// 功能: 创建新的预制话术记录
|
||||
func (c *scriptedSpeech) Add(ctx context.Context, req *dto.AddScriptedSpeechReq) (res *dto.AddScriptedSpeechRes, err error) {
|
||||
res, err = service.ScriptedSpeech.Add(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Update 更新预制话术
|
||||
// 参数: req - 更新预制话术请求,包含预制话术ID和待更新字段
|
||||
// 返回: res - 空响应(成功则err为nil)
|
||||
// 功能: 更新预制话术信息
|
||||
func (c *scriptedSpeech) Update(ctx context.Context, req *dto.UpdateScriptedSpeechReq) (res *beans.ResponseEmpty, err error) {
|
||||
err = service.ScriptedSpeech.Update(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete 删除预制话术
|
||||
// 参数: req - 删除预制话术请求,包含预制话术ID
|
||||
// 返回: res - 空响应(成功则err为nil)
|
||||
// 功能: 逻辑删除预制话术记录
|
||||
func (c *scriptedSpeech) Delete(ctx context.Context, req *dto.DeleteScriptedSpeechReq) (res *beans.ResponseEmpty, err error) {
|
||||
err = service.ScriptedSpeech.Delete(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Get 获取单个预制话术
|
||||
// 参数: req - 获取预制话术请求,包含预制话术ID
|
||||
// 返回: res - 预制话术信息
|
||||
// 功能: 根据ID获取单个预制话术详情
|
||||
func (c *scriptedSpeech) Get(ctx context.Context, req *dto.GetScriptedSpeechReq) (res *dto.ScriptedSpeechVO, err error) {
|
||||
res, err = service.ScriptedSpeech.Get(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// List 获取预制话术列表
|
||||
// 参数: req - 列表查询请求,支持分页、账号ID、数据集ID筛选
|
||||
// 返回: res - 预制话术列表及分页信息
|
||||
// 功能: 分页查询预制话术记录
|
||||
func (c *scriptedSpeech) List(ctx context.Context, req *dto.ListScriptedSpeechReq) (res *dto.ListScriptedSpeechRes, err error) {
|
||||
if g.IsEmpty(req.Page) {
|
||||
req.Page = &beans.Page{PageNum: 1, PageSize: 20}
|
||||
}
|
||||
res, err = service.ScriptedSpeech.List(ctx, req)
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user