feat: 添加客服账号管理及WebSocket功能
This commit is contained in:
92
service/account_service.go
Normal file
92
service/account_service.go
Normal file
@@ -0,0 +1,92 @@
|
||||
// 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 (
|
||||
AccountService = new(accountService)
|
||||
)
|
||||
|
||||
type accountService struct{}
|
||||
|
||||
// Add 添加客服账号
|
||||
// 参数: ctx - 上下文,req - 添加客服账号请求
|
||||
// 返回: res - 添加成功后的客服账号ID,err - 错误信息
|
||||
// 功能: 创建新的客服账号记录
|
||||
func (s *accountService) Add(ctx context.Context, req *dto.AddAccountReq) (res *dto.AddAccountRes, err error) {
|
||||
// 检查账号名称是否已存在
|
||||
count, err := dao.Account.Count(ctx, &dto.ListAccountReq{
|
||||
AccountName: req.AccountName,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if count > 0 {
|
||||
err = gerror.Newf("客服账号名称已存在:%s", req.AccountName)
|
||||
return
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.Account.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
res = &dto.AddAccountRes{Id: id}
|
||||
return
|
||||
}
|
||||
|
||||
// Update 更新客服账号
|
||||
// 参数: ctx - 上下文,req - 更新客服账号请求
|
||||
// 返回: err - 错误信息
|
||||
// 功能: 更新客服账号信息
|
||||
func (s *accountService) Update(ctx context.Context, req *dto.UpdateAccountReq) (err error) {
|
||||
_, err = dao.Account.Update(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete 删除客服账号
|
||||
// 参数: ctx - 上下文,req - 删除客服账号请求
|
||||
// 返回: err - 错误信息
|
||||
// 功能: 逻辑删除客服账号记录
|
||||
func (s *accountService) Delete(ctx context.Context, req *dto.DeleteAccountReq) (err error) {
|
||||
_, err = dao.Account.Delete(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// Get 获取单个客服账号
|
||||
// 参数: ctx - 上下文,req - 获取客服账号请求
|
||||
// 返回: res - 客服账号信息,err - 错误信息
|
||||
// 功能: 根据ID获取单个客服账号详情
|
||||
func (s *accountService) Get(ctx context.Context, req *dto.GetAccountReq) (res *dto.AccountVO, err error) {
|
||||
r, err := dao.Account.GetById(ctx, req)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = gconv.Struct(r, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// List 获取客服账号列表
|
||||
// 参数: ctx - 上下文,req - 列表查询请求
|
||||
// 返回: res - 客服账号列表及分页信息,err - 错误信息
|
||||
// 功能: 分页查询客服账号记录
|
||||
func (s *accountService) List(ctx context.Context, req *dto.ListAccountReq) (res *dto.ListAccountRes, err error) {
|
||||
list, total, err := dao.Account.List(ctx, req)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
res = &dto.ListAccountRes{
|
||||
Total: total,
|
||||
}
|
||||
err = gconv.Struct(list, &res.List)
|
||||
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user