吴树波 5 giorni fa
parent
commit
2d7f4757eb

+ 1 - 1
fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceRoboticWxMapper.java

@@ -63,6 +63,6 @@ public interface CompanyVoiceRoboticWxMapper extends BaseMapper<CompanyVoiceRobo
 
 
     void insertList(@Param("list") List<CompanyVoiceRoboticWx> list);
     void insertList(@Param("list") List<CompanyVoiceRoboticWx> list);
 
 
-    List<CompanyVoiceRoboticWx> selectByRoboticId(@Param("id") Long id);
+    List<CompanyVoiceRoboticWx> selectByRoboticId(@Param("id") Long id, @Param("intention") String intention);
 
 
 }
 }

+ 25 - 16
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java

@@ -1,11 +1,8 @@
 package com.fs.company.service.impl;
 package com.fs.company.service.impl;
 
 
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fs.aicall.domain.apiresult.Content;
 import com.fs.aicall.domain.apiresult.Notify;
 import com.fs.aicall.domain.apiresult.Notify;
 import com.fs.aicall.domain.apiresult.PushIIntentionResult;
 import com.fs.aicall.domain.apiresult.PushIIntentionResult;
 import com.fs.aicall.domain.param.CalleeDomain;
 import com.fs.aicall.domain.param.CalleeDomain;
@@ -14,8 +11,6 @@ import com.fs.aicall.domain.result.CalltaskcreateaiCustomizeResult;
 import com.fs.aicall.service.AiCallService;
 import com.fs.aicall.service.AiCallService;
 import com.fs.common.annotation.DataScope;
 import com.fs.common.annotation.DataScope;
 import com.fs.common.constant.Constants;
 import com.fs.common.constant.Constants;
-import com.fs.common.core.domain.entity.SysDictData;
-import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.redis.RedisCacheT;
 import com.fs.common.core.redis.RedisCacheT;
 import com.fs.common.exception.base.BaseException;
 import com.fs.common.exception.base.BaseException;
 import com.fs.common.utils.*;
 import com.fs.common.utils.*;
@@ -32,16 +27,13 @@ import com.fs.company.vo.RoboticWxVo;
 import com.fs.crm.domain.CrmCustomer;
 import com.fs.crm.domain.CrmCustomer;
 import com.fs.crm.mapper.CrmCustomerMapper;
 import com.fs.crm.mapper.CrmCustomerMapper;
 import com.fs.crm.service.impl.CrmCustomerServiceImpl;
 import com.fs.crm.service.impl.CrmCustomerServiceImpl;
-import com.fs.his.config.AddWxConfig;
 import com.fs.system.mapper.SysDictDataMapper;
 import com.fs.system.mapper.SysDictDataMapper;
 import com.fs.system.service.ISysConfigService;
 import com.fs.system.service.ISysConfigService;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.*;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 
 
@@ -242,19 +234,19 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         if(notify == null) return;
         if(notify == null) return;
         if("pushDialogContent".equals(notify.getType())) pushDialogContent(result);
         if("pushDialogContent".equals(notify.getType())) pushDialogContent(result);
         if("billing".equals(notify.getType())) pushBilling(result);
         if("billing".equals(notify.getType())) pushBilling(result);
-        // 是否全部回调完毕
-        CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
-        long count = companyVoiceRoboticCalleesMapper.countByRoboticIdNotUuid(callee.getRoboticId());
-        if(count == 0){
-            new Thread(() -> dispenseWx(callee.getRoboticId())).start();
-        }
+//        // 是否全部回调完毕
+//        CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
+//        long count = companyVoiceRoboticCalleesMapper.countByRoboticIdNotUuid(callee.getRoboticId());
+//        if(count == 0){
+//            new Thread(() -> dispenseWx(callee.getRoboticId())).start();
+//        }
     }
     }
 
 
     public void pushDialogContent(PushIIntentionResult result){
     public void pushDialogContent(PushIIntentionResult result){
         Notify notify = result.getNotify();
         Notify notify = result.getNotify();
         String intention = notify.getIntention();
         String intention = notify.getIntention();
         if(StringUtils.isEmpty(intention)){
         if(StringUtils.isEmpty(intention)){
-            intention = "";
+            intention = "0";
         }
         }
         CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
         CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
         callee.setUuid(notify.getUuid());
         callee.setUuid(notify.getUuid());
@@ -267,6 +259,23 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         CrmCustomer crmCustomer = crmCustomerMapper.selectCrmCustomerById(callee.getUserId());
         CrmCustomer crmCustomer = crmCustomerMapper.selectCrmCustomerById(callee.getUserId());
         crmCustomer.setIntention(intention);
         crmCustomer.setIntention(intention);
         crmCustomerMapper.updateById(crmCustomer);
         crmCustomerMapper.updateById(crmCustomer);
+        List<CompanyVoiceRoboticWx> roboticWxList = companyVoiceRoboticWxMapper.selectByRoboticId(callee.getRoboticId(), intention);
+        CompanyWxClient companyWxClient = companyWxClientServiceImpl.getOne(new QueryWrapper<CompanyWxClient>().eq("robotic_id", callee.getRoboticId()).eq("customer_id", callee.getUserId()));
+        if(companyWxClient == null){
+            companyWxClient = new CompanyWxClient();
+            // 任务ID
+            companyWxClient.setRoboticId(callee.getRoboticId());
+            // 客户名称
+            companyWxClient.setNickName(callee.getUserName());
+            // 手机号
+            companyWxClient.setPhone(callee.getPhone());
+            // 微信号
+            companyWxClient.setCustomerId(callee.getUserId());
+            // 意向
+            companyWxClient.setIntention(intention);
+        }
+        bindCompany(companyWxClient, roboticWxList);
+        companyWxClientServiceImpl.saveOrUpdate(companyWxClient);
     }
     }
     public void pushBilling(PushIIntentionResult result){
     public void pushBilling(PushIIntentionResult result){
         Notify notify = result.getNotify();
         Notify notify = result.getNotify();
@@ -295,7 +304,7 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         calleesList = calleesList.stream().filter(e -> StringUtils.isNotEmpty(e.getIntention())).collect(Collectors.toList());
         calleesList = calleesList.stream().filter(e -> StringUtils.isNotEmpty(e.getIntention())).collect(Collectors.toList());
         if(calleesList.isEmpty()) return;
         if(calleesList.isEmpty()) return;
         // 分配任务列表
         // 分配任务列表
-        List<CompanyVoiceRoboticWx> roboticWxList = companyVoiceRoboticWxMapper.selectByRoboticId(roboticId);
+        List<CompanyVoiceRoboticWx> roboticWxList = companyVoiceRoboticWxMapper.selectByRoboticId(roboticId, null);
         List<CompanyWxAccount> accountList = new ArrayList<>(companyWxAccountService.listByIds(PubFun.listToNewList(roboticWxList, CompanyVoiceRoboticWx::getAccountId)));
         List<CompanyWxAccount> accountList = new ArrayList<>(companyWxAccountService.listByIds(PubFun.listToNewList(roboticWxList, CompanyVoiceRoboticWx::getAccountId)));
         Map<Long, CompanyWxAccount> accountMap = PubFun.listToMapByGroupObject(accountList, CompanyWxAccount::getId);
         Map<Long, CompanyWxAccount> accountMap = PubFun.listToMapByGroupObject(accountList, CompanyWxAccount::getId);
         roboticWxList.forEach(e -> e.setAccount(accountMap.get(e.getAccountId())));
         roboticWxList.forEach(e -> e.setAccount(accountMap.get(e.getAccountId())));

+ 1 - 1
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticWxServiceImpl.java

@@ -97,7 +97,7 @@ public class CompanyVoiceRoboticWxServiceImpl extends ServiceImpl<CompanyVoiceRo
 
 
     @Override
     @Override
     public List<CompanyVoiceRoboticWx> selectWxList(Long id) {
     public List<CompanyVoiceRoboticWx> selectWxList(Long id) {
-        List<CompanyVoiceRoboticWx> list = companyVoiceRoboticWxMapper.selectByRoboticId(id);
+        List<CompanyVoiceRoboticWx> list = companyVoiceRoboticWxMapper.selectByRoboticId(id, null);
         return list;
         return list;
     }
     }
 }
 }

+ 3 - 0
fs-service/src/main/resources/mapper/company/CompanyVoiceRoboticWxMapper.xml

@@ -42,6 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         left join company_user b on account.company_user_id = b.user_id
         left join company_user b on account.company_user_id = b.user_id
         left join company_wx_dialog c on a.wx_dialog_id = c.id
         left join company_wx_dialog c on a.wx_dialog_id = c.id
         where a.robotic_id = #{id}
         where a.robotic_id = #{id}
+        <if test="intention != null and intention != ''">
+            a.intention = #{intention}
+        </if>
     </select>
     </select>
 
 
     <insert id="insertCompanyVoiceRoboticWx" parameterType="CompanyVoiceRoboticWx" useGeneratedKeys="true" keyProperty="id">
     <insert id="insertCompanyVoiceRoboticWx" parameterType="CompanyVoiceRoboticWx" useGeneratedKeys="true" keyProperty="id">