Files
customer-server/service/account_http_service.go

57 lines
1.2 KiB
Go

package service
import (
"context"
"customer-server/model/dto"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
var (
AccountHttpService = new(accountHttpService)
)
type accountHttpService struct{}
func (s *accountHttpService) Connect(ctx context.Context, req *dto.AccountHttpConnectReq) (res *dto.AccountHttpConnectRes, err error) {
// 获取客服账号信息
accountInfo, err := SessionToolService.GetAccountInfo(ctx, req.AccountCode)
if err != nil {
return
}
if g.IsEmpty(accountInfo) {
return nil, fmt.Errorf("客服账号不存在")
}
// 设置用户信息
headers, err := SessionToolService.SetUserInfo(ctx, accountInfo.Creator, accountInfo.TenantId)
if err != nil {
return
}
content, err := SessionToolService.PushOpeningRemark(ctx, req.UserId, accountInfo, headers)
if err != nil {
return
}
if !g.IsEmpty(content) {
res = &dto.AccountHttpConnectRes{
Content: content,
}
return
}
dialogContent, err := SessionToolService.PushDialog(ctx, req.UserId, req.QuestionContent, accountInfo, headers)
if err != nil {
return
}
if !g.IsEmpty(dialogContent) {
res = &dto.AccountHttpConnectRes{
Content: dialogContent,
}
return
}
return
}