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 }