吴树波 1 week ago
parent
commit
cc4e971e65
20 changed files with 321 additions and 119 deletions
  1. 9 9
      fs-admin/src/main/java/com/fs/company/controller/CompanyVoiceRoboticController.java
  2. 23 6
      fs-company/src/main/java/com/fs/company/controller/company/CompanyVoiceRoboticController.java
  3. 9 2
      fs-company/src/main/java/com/fs/company/controller/company/CompanyWxDialogController.java
  4. 0 26
      fs-service/src/main/java/com/fs/aicall/config/bean/AiCallBeanServiceConfig.java
  5. 1 1
      fs-service/src/main/java/com/fs/aicall/domain/param/CalltaskcreateaiCustomizeDomain.java
  6. 20 0
      fs-service/src/main/java/com/fs/aicall/domain/result/CIDGroupListResult.java
  7. 33 52
      fs-service/src/main/java/com/fs/aicall/service/AiCallService.java
  8. 21 17
      fs-service/src/main/java/com/fs/aicall/utils/AiCallUtils.java
  9. 28 0
      fs-service/src/main/java/com/fs/company/domain/CompanyVoiceApiTiantian.java
  10. 2 0
      fs-service/src/main/java/com/fs/company/domain/CompanyVoiceDialog.java
  11. 2 0
      fs-service/src/main/java/com/fs/company/domain/CompanyVoiceRobotic.java
  12. 2 0
      fs-service/src/main/java/com/fs/company/domain/CompanyWxDialog.java
  13. 17 0
      fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceApiTiantianMapper.java
  14. 29 0
      fs-service/src/main/java/com/fs/company/service/ICompanyVoiceApiTiantianService.java
  15. 2 0
      fs-service/src/main/java/com/fs/company/service/ICompanyVoiceRoboticService.java
  16. 105 0
      fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceApiTiantianServiceImpl.java
  17. 4 4
      fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceDialogServiceImpl.java
  18. 6 1
      fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java
  19. 1 1
      fs-service/src/main/java/com/fs/company/service/impl/CompanyWxDialogServiceImpl.java
  20. 7 0
      fs-service/src/main/resources/mapper/company/CompanyVoiceApiTiantianMapper.xml

+ 9 - 9
fs-admin/src/main/java/com/fs/company/controller/CompanyVoiceRoboticController.java

@@ -143,33 +143,33 @@ public class CompanyVoiceRoboticController extends BaseController
      * 删除机器人外呼任务
      */
 	@GetMapping("/getTypes")
-    public R getTypes(){
-        List<GetairobotResult> getairobotlist = aiCallService.getairobotlist();
-        List<EditDialogResult> editDialogResults = aiCallService.queryDialog();
+    public R getTypes(Long companyId){
+        List<GetairobotResult> getairobotlist = aiCallService.getairobotlist(companyId);
+        List<EditDialogResult> editDialogResults = aiCallService.queryDialog(companyId);
         return R.ok().put("robot", getairobotlist).put("dialog", editDialogResults);
     }
     /**
      * 查询状态
      */
     @GetMapping("/statusList")
-    public R statusList(String ids){
+    public R statusList(String ids, Long companyId){
         List<String> list = Arrays.stream(ids.split(",")).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
-        return R.ok().put("data", list.stream().map(e -> aiCallService.queryCallTaskInfo(TaskInfo.builder().taskID(e).build())).collect(Collectors.toMap(QueryCallTaskInfoResult::getTaskID, e -> e)));
+        return R.ok().put("data", list.stream().map(e -> aiCallService.queryCallTaskInfo(TaskInfo.builder().taskID(e).build(), companyId)).collect(Collectors.toMap(QueryCallTaskInfoResult::getTaskID, e -> e)));
     }
     /**
      * 启动任务
      */
 	@GetMapping("/startRobotic")
-    public R startRobotic(String taskId){
-        aiCallService.startCallTask(TaskInfo.builder().taskID(taskId).build());
+    public R startRobotic(String taskId, Long companyId){
+        aiCallService.startCallTask(TaskInfo.builder().taskID(taskId).build(), companyId);
         return R.ok();
     }
     /**
      * 停止任务
      */
 	@GetMapping("/stopRobotic")
-    public R stopRobotic(String taskId){
-        aiCallService.stopCallTask(TaskInfo.builder().taskID(taskId).build());
+    public R stopRobotic(String taskId, Long companyId){
+        aiCallService.stopCallTask(TaskInfo.builder().taskID(taskId).build(), companyId);
         return R.ok();
     }
     /**

+ 23 - 6
fs-company/src/main/java/com/fs/company/controller/company/CompanyVoiceRoboticController.java

@@ -150,8 +150,10 @@ public class CompanyVoiceRoboticController extends BaseController
      */
 	@GetMapping("/getTypes")
     public R getTypes(){
-        List<GetairobotResult> getairobotlist = aiCallService.getairobotlist();
-        List<EditDialogResult> editDialogResults = aiCallService.queryDialog();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
+        List<GetairobotResult> getairobotlist = aiCallService.getairobotlist(companyId);
+        List<EditDialogResult> editDialogResults = aiCallService.queryDialog(companyId);
         return R.ok().put("robot", getairobotlist).put("dialog", editDialogResults);
     }
     /**
@@ -159,15 +161,19 @@ public class CompanyVoiceRoboticController extends BaseController
      */
     @GetMapping("/statusList")
     public R statusList(String ids){
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
         List<String> list = Arrays.stream(ids.split(",")).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
-        return R.ok().put("data", list.stream().map(e -> aiCallService.queryCallTaskInfo(TaskInfo.builder().taskID(e).build())).collect(Collectors.toMap(QueryCallTaskInfoResult::getTaskID, e -> e)));
+        return R.ok().put("data", list.stream().map(e -> aiCallService.queryCallTaskInfo(TaskInfo.builder().taskID(e).build(), companyId)).collect(Collectors.toMap(QueryCallTaskInfoResult::getTaskID, e -> e)));
     }
     /**
      * 启动任务
      */
 	@GetMapping("/startRobotic")
     public R startRobotic(String taskId){
-        aiCallService.startCallTask(TaskInfo.builder().taskID(taskId).build());
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
+        aiCallService.startCallTask(TaskInfo.builder().taskID(taskId).build(), companyId);
         return R.ok();
     }
     /**
@@ -175,7 +181,9 @@ public class CompanyVoiceRoboticController extends BaseController
      */
 	@GetMapping("/stopRobotic")
     public R stopRobotic(String taskId){
-        aiCallService.stopCallTask(TaskInfo.builder().taskID(taskId).build());
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
+        aiCallService.stopCallTask(TaskInfo.builder().taskID(taskId).build(), companyId);
         return R.ok();
     }
     /**
@@ -199,8 +207,17 @@ public class CompanyVoiceRoboticController extends BaseController
      */
 	@GetMapping("/test")
     public R test(Long id){
-//        companyVoiceRoboticService.test(id);
         companyVoiceRoboticService.dispenseWx(id);
         return R.ok();
     }
+    /**
+     * 获取主叫
+     */
+    @GetMapping("/cidList")
+    public R cidList(){
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
+        companyVoiceRoboticService.cidList(companyId);
+        return R.ok();
+    }
 }

+ 9 - 2
fs-company/src/main/java/com/fs/company/controller/company/CompanyWxDialogController.java

@@ -6,9 +6,12 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyWxDialog;
 import com.fs.company.service.ICompanyWxDialogService;
+import com.fs.framework.security.LoginUser;
+import com.fs.framework.service.TokenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -27,6 +30,8 @@ public class CompanyWxDialogController extends BaseController
 {
     @Autowired
     private ICompanyWxDialogService companyWxDialogService;
+    @Autowired
+    private TokenService tokenService;
 
     /**
      * 查询添加微信话术列表
@@ -75,8 +80,10 @@ public class CompanyWxDialogController extends BaseController
     @PreAuthorize("@ss.hasPermi('company:wxDialog:add')")
     @Log(title = "添加微信话术", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody CompanyWxDialog companyWxDialog)
-    {
+    public AjaxResult add(@RequestBody CompanyWxDialog companyWxDialog){
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        companyWxDialog.setCompanyId(loginUser.getCompany().getCompanyId());
+        companyWxDialog.setCompanyUserId(loginUser.getUser().getUserId());
         return toAjax(companyWxDialogService.insertCompanyWxDialog(companyWxDialog));
     }
 

+ 0 - 26
fs-service/src/main/java/com/fs/aicall/config/bean/AiCallBeanServiceConfig.java

@@ -1,26 +0,0 @@
-package com.fs.aicall.config.bean;
-
-import com.fs.aicall.service.AiCallService;
-import com.fs.company.domain.CompanyVoiceApi;
-import com.fs.company.service.ICompanyVoiceApiService;
-import com.fs.company.service.impl.CompanyVoiceApiServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.List;
-
-@Configuration
-public class AiCallBeanServiceConfig {
-    @Autowired
-    private ICompanyVoiceApiService companyVoiceApiService;
-
-    @Bean
-    public AiCallService aiCallService() {
-        CompanyVoiceApi param = new CompanyVoiceApi();
-        param.setApiType("2");
-        List<CompanyVoiceApi> list = companyVoiceApiService.selectCompanyVoiceApiList(param);
-        if(list.isEmpty()) return null;
-        return AiCallService.builder().config(list.get(0)).build();
-    }
-}

+ 1 - 1
fs-service/src/main/java/com/fs/aicall/domain/param/CalltaskcreateaiCustomizeDomain.java

@@ -44,7 +44,7 @@ public class CalltaskcreateaiCustomizeDomain extends BaseDomain {
     主叫分组ID	Int	N	-	主叫号码 和 主叫分组ID 必传其中一个,都传情况下,以 主叫分组ID为主
      */
     @JsonProperty("CIDGroupID")
-    private String CIDGroupID = "3";
+    private String CIDGroupID = "2";
     /*
     任务名称	String	N	-	-
      */

+ 20 - 0
fs-service/src/main/java/com/fs/aicall/domain/result/CIDGroupListResult.java

@@ -0,0 +1,20 @@
+package com.fs.aicall.domain.result;
+
+import com.fs.aicall.domain.BaseDomain;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CIDGroupListResult extends BaseDomain {
+    /** 机器人ID */
+    private String id;
+    /** 名称 */
+    private String name;
+    private List<String> did;
+    private List<String> cid;
+    private List<String> channel;
+
+}

+ 33 - 52
fs-service/src/main/java/com/fs/aicall/service/AiCallService.java

@@ -8,50 +8,24 @@ import com.fs.aicall.domain.TaskInfo;
 import com.fs.aicall.domain.param.CalltaskcreateaiCustomizeDomain;
 import com.fs.aicall.domain.param.EditDialogDomain;
 import com.fs.aicall.domain.param.getDialogMapDomain;
-import com.fs.aicall.domain.result.CalltaskcreateaiCustomizeResult;
-import com.fs.aicall.domain.result.EditDialogResult;
-import com.fs.aicall.domain.result.GetairobotResult;
-import com.fs.aicall.domain.result.QueryCallTaskInfoResult;
+import com.fs.aicall.domain.result.*;
 import com.fs.aicall.utils.AiCallUtils;
 import com.fs.company.domain.CompanyVoiceApi;
+import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.function.Function;
 
+@Component
 public class AiCallService {
 
 
     private final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
-    private final AiCallUtils utils;
-    public AiCallService(AiCallUtils utils) {
-        this.utils = utils;
-    }
-    public static Builder builder(){
-        return new Builder();
-    }
-    public static class Builder {
-
-        private  AiCallUtils utils;
-
-        public Builder config(CompanyVoiceApi api) {
-            JSONObject jsonObject = JSONObject.parseObject(api.getApiJson());
-            AiCallConfig config = new AiCallConfig();
-            config.setCustomer(jsonObject.getString("account"));
-            config.setPassword(jsonObject.getString("password"));
-            config.setUrl(jsonObject.getString("url"));
-            config.setDialogUrl(jsonObject.getString("dialogUrl"));
-            this.utils = new AiCallUtils(config);
-            return this;
-        }
-
-        public AiCallService build() {
-            return new AiCallService(this.utils);
-        }
-    }
+    private AiCallUtils utils;
 
-    public String getDialogUrl(){
-        return utils.getDialogUrl();
+    public String getDialogUrl(Long companyId){
+        return utils.getConfig(companyId).getDialogUrl();
     }
 
 
@@ -85,71 +59,78 @@ public class AiCallService {
     /**
      * 登录
      */
-    public String getToken(){
-        return utils.send("login", e -> e.getString("token"));
+    public String getToken(Long companyId){
+        return utils.send("login", e -> e.getString("token"), companyId);
     }
 
     /**
      * 获取机器人列表
      */
-    public List<GetairobotResult> getairobotlist(){
-        return utils.send("getairobotlist", getList(GetairobotResult.class));
+    public List<GetairobotResult> getairobotlist(Long companyId){
+        return utils.send("getairobotlist", getList(GetairobotResult.class), companyId);
     }
 
     /**
      * 获取话术列表
      */
-    public List<EditDialogResult> queryDialog(){
-        return utils.send("queryDialog", getList("data", EditDialogResult.class));
+    public List<EditDialogResult> queryDialog(Long companyId){
+        return utils.send("queryDialog", getList("data", EditDialogResult.class), companyId);
     }
     /**
      * 获取话术详情
      */
-    public EditDialogResult getDialog(){
-        return utils.send("getDialog", getObj(EditDialogResult.class));
+    public EditDialogResult getDialog(Long companyId){
+        return utils.send("getDialog", getObj(EditDialogResult.class), companyId);
     }
 
     /**
      * 修改/添加话术
      * @param param 话术参数
      */
-    public EditDialogResult editDialog(EditDialogDomain param){
-        return utils.send("editDialog", OBJECT_MAPPER.valueToTree(param), getObj(EditDialogResult.class));
+    public EditDialogResult editDialog(EditDialogDomain param, Long companyId){
+        return utils.send("editDialog", OBJECT_MAPPER.valueToTree(param), getObj(EditDialogResult.class), companyId);
     }
 
     /**
      * 创建机器人外呼任务
      * @param param 参数
      */
-    public CalltaskcreateaiCustomizeResult calltaskcreateaiCustomize(CalltaskcreateaiCustomizeDomain param){
-        return utils.send("calltaskcreateaiCustomize", OBJECT_MAPPER.valueToTree(param), getObj(CalltaskcreateaiCustomizeResult.class));
+    public CalltaskcreateaiCustomizeResult calltaskcreateaiCustomize(CalltaskcreateaiCustomizeDomain param, Long companyId){
+        return utils.send("calltaskcreateaiCustomize", OBJECT_MAPPER.valueToTree(param), getObj(CalltaskcreateaiCustomizeResult.class), companyId);
     }
     /**
      * 查询外呼任务状态信息
      * @param param 参数
      */
-    public QueryCallTaskInfoResult queryCallTaskInfo(TaskInfo param){
-        return utils.send("queryCallTaskInfo", OBJECT_MAPPER.valueToTree(param), getObj(QueryCallTaskInfoResult.class));
+    public QueryCallTaskInfoResult queryCallTaskInfo(TaskInfo param, Long companyId){
+        return utils.send("queryCallTaskInfo", OBJECT_MAPPER.valueToTree(param), getObj(QueryCallTaskInfoResult.class), companyId);
     }
     /**
      * 启动外呼任务
      * @param param 参数
      */
-    public TaskInfo startCallTask(TaskInfo param){
-        return utils.send("startCallTask", OBJECT_MAPPER.valueToTree(param), getObj(TaskInfo.class));
+    public TaskInfo startCallTask(TaskInfo param, Long companyId){
+        return utils.send("startCallTask", OBJECT_MAPPER.valueToTree(param), getObj(TaskInfo.class), companyId);
     }
     /**
      * 停止外呼任务
      * @param param 参数
      */
-    public TaskInfo stopCallTask(TaskInfo param){
-        return utils.send("stopCallTask", OBJECT_MAPPER.valueToTree(param), getObj(TaskInfo.class));
+    public TaskInfo stopCallTask(TaskInfo param, Long companyId){
+        return utils.send("stopCallTask", OBJECT_MAPPER.valueToTree(param), getObj(TaskInfo.class), companyId);
     }
     /**
      * 对话图查询(uuid)
      * @param param 参数
      */
-    public TaskInfo getDialogMap(getDialogMapDomain param){
-        return utils.send("getDialogMap", OBJECT_MAPPER.valueToTree(param), getObj("telData", TaskInfo.class));
+    public TaskInfo getDialogMap(getDialogMapDomain param, Long companyId){
+        return utils.send("getDialogMap", OBJECT_MAPPER.valueToTree(param), getObj("telData", TaskInfo.class), companyId);
+    }
+    /**
+     * 获取主叫分组
+     * @param param 参数
+     */
+    public CIDGroupListResult getCIDGroupList(BaseDomain param, Long companyId){
+        return utils.send("getCIDGroupList", OBJECT_MAPPER.valueToTree(param), getObj("telData", CIDGroupListResult.class), companyId);
     }
 }

+ 21 - 17
fs-service/src/main/java/com/fs/aicall/utils/AiCallUtils.java

@@ -7,9 +7,13 @@ import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fs.aicall.config.AiCallConfig;
+import com.fs.common.utils.spring.SpringUtils;
+import com.fs.company.domain.CompanyVoiceApiTiantian;
+import com.fs.company.mapper.CompanyVoiceApiTiantianMapper;
 import lombok.extern.slf4j.Slf4j;
 
 import java.time.Instant;
@@ -18,17 +22,8 @@ import java.util.function.Function;
 @Slf4j
 public class AiCallUtils {
 
-    private final AiCallConfig config;
     private final static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
 
-    public AiCallUtils(AiCallConfig config) {
-        this.config = config;
-    }
-
-    public String getDialogUrl(){
-        return config.getDialogUrl();
-    }
-
     public String encrypt(String customer, long timestamp, int seq, String password) {
 
         // 获取输入字符串的字节数组
@@ -47,8 +42,9 @@ public class AiCallUtils {
         return hexString.toString();
     }
 
-    public String getParams(ObjectNode params){
+    public String getParams(ObjectNode params, Long companyId){
         try {
+            AiCallConfig config = getConfig(companyId);
             long timestamp = Instant.now().getEpochSecond();
             int seq = RandomUtil.randomInt(1000, 1000000);
             ObjectNode rootNode = OBJECT_MAPPER.createObjectNode();
@@ -68,12 +64,12 @@ public class AiCallUtils {
             throw new RuntimeException(e);
         }
     }
-    public <T> T send(String addr, Function<JSONObject, T> dataFun){
-        return send(addr, null, dataFun);
+    public <T> T send(String addr, Function<JSONObject, T> dataFun, Long companyId){
+        return send(addr, null, dataFun, companyId);
     }
-    public <T> T send(String addr, ObjectNode params, Function<JSONObject, T> dataFun){
-        String url = config.getUrl() + addr;
-        String body = getParams(params);
+    public <T> T send(String addr, ObjectNode params, Function<JSONObject, T> dataFun, Long companyId){
+        String url = getConfig(companyId).getUrl() + addr;
+        String body = getParams(params, companyId);
         HttpRequest request = HttpUtil.createPost(url).body(body);
         request.header("Accept", "application/json");
         request.header("Content-Type", "application/json");
@@ -87,6 +83,14 @@ public class AiCallUtils {
         return dataFun.apply(json.getJSONObject("data").getJSONObject("response"));
     }
 
-
-
+    public AiCallConfig getConfig(Long companyId) {
+        CompanyVoiceApiTiantianMapper mapper = SpringUtils.getBean(CompanyVoiceApiTiantianMapper.class);
+        CompanyVoiceApiTiantian config = mapper.selectOne(new QueryWrapper<CompanyVoiceApiTiantian>().eq("company_id", companyId));
+        AiCallConfig aiCallConfig = new AiCallConfig();
+        aiCallConfig.setCustomer(config.getAccount());
+        aiCallConfig.setPassword(config.getPassword());
+        aiCallConfig.setUrl(config.getUrl());
+        aiCallConfig.setDialogUrl(config.getDialogUrl());
+        return aiCallConfig;
+    }
 }

+ 28 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyVoiceApiTiantian.java

@@ -0,0 +1,28 @@
+package com.fs.company.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fs.common.annotation.Excel;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 呼叫接口对象 company_voice_api
+ * 
+ * @author fs
+ * @date 2021-10-04
+ */
+@Data
+public class CompanyVoiceApiTiantian {
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private String name;
+    private String account;
+    private String password;
+    private String url;
+    private String dialogUrl;
+    private Long companyId;
+    private Integer status;
+    private String remark;
+
+}

+ 2 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyVoiceDialog.java

@@ -39,6 +39,8 @@ public class CompanyVoiceDialog {
     /** 创建人 */
     @Excel(name = "创建人")
     private Long createUser;
+    private Long companyId;
+    private Long companyUserId;
 
 
     /** 创建时间 */

+ 2 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyVoiceRobotic.java

@@ -94,6 +94,8 @@ public class CompanyVoiceRobotic {
     /** 创建人 */
     @Excel(name = "创建人")
     private Long createUser;
+    private Long companyId;
+    private Long companyUserId;
     /** 创建人 */
     @Excel(name = "创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 2 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyWxDialog.java

@@ -28,6 +28,8 @@ public class CompanyWxDialog extends BaseEntityTow {
     /** 模板 */
     @Excel(name = "模板")
     private String templateDetails;
+    private Long companyId;
+    private Long companyUserId;
 
 
 }

+ 17 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceApiTiantianMapper.java

@@ -0,0 +1,17 @@
+package com.fs.company.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.company.domain.CompanyVoiceApi;
+import com.fs.company.domain.CompanyVoiceApiTiantian;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 呼叫接口Mapper接口
+ * 
+ * @author fs
+ * @date 2021-10-04
+ */
+public interface CompanyVoiceApiTiantianMapper extends BaseMapper<CompanyVoiceApiTiantian> {
+}

+ 29 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyVoiceApiTiantianService.java

@@ -0,0 +1,29 @@
+package com.fs.company.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.company.domain.CompanyVoiceApi;
+import com.fs.company.domain.CompanyVoiceApiTiantian;
+
+import java.util.List;
+
+/**
+ * 呼叫接口Service接口
+ * 
+ * @author fs
+ * @date 2021-10-04
+ */
+public interface ICompanyVoiceApiTiantianService extends IService<CompanyVoiceApiTiantian> {
+    public CompanyVoiceApiTiantian selectCompanyVoiceApiById(Long apiId);
+
+    public List<CompanyVoiceApiTiantian> selectCompanyVoiceApiList(CompanyVoiceApiTiantian companyVoiceApiTiantian);
+
+    public int insertCompanyVoiceApi(CompanyVoiceApiTiantian companyVoiceApiTiantian);
+
+    public int updateCompanyVoiceApi(CompanyVoiceApiTiantian companyVoiceApiTiantian);
+
+    public int deleteCompanyVoiceApiByIds(Long[] apiIds);
+
+    public int deleteCompanyVoiceApiById(Long apiId);
+
+    Integer selectCompanyVoiceApiCount();
+}

+ 2 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyVoiceRoboticService.java

@@ -73,4 +73,6 @@ public interface ICompanyVoiceRoboticService
     void dispenseWx(Long id);
 
     void addCompany(AddWxClientVo vo);
+
+    void cidList(Long companyId);
 }

+ 105 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceApiTiantianServiceImpl.java

@@ -0,0 +1,105 @@
+package com.fs.company.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.company.domain.CompanyVoiceApi;
+import com.fs.company.domain.CompanyVoiceApiTiantian;
+import com.fs.company.mapper.CompanyVoiceApiMapper;
+import com.fs.company.mapper.CompanyVoiceApiTiantianMapper;
+import com.fs.company.service.ICompanyVoiceApiService;
+import com.fs.company.service.ICompanyVoiceApiTiantianService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.lang.reflect.Array;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 呼叫接口Service业务层处理
+ * 
+ * @author fs
+ * @date 2021-10-04
+ */
+@Service
+public class CompanyVoiceApiTiantianServiceImpl extends ServiceImpl<CompanyVoiceApiTiantianMapper, CompanyVoiceApiTiantian> implements ICompanyVoiceApiTiantianService {
+    @Autowired
+    private CompanyVoiceApiTiantianMapper companyVoiceApiMapper;
+
+    /**
+     * 查询呼叫接口
+     * 
+     * @param apiId 呼叫接口ID
+     * @return 呼叫接口
+     */
+    @Override
+    public CompanyVoiceApiTiantian selectCompanyVoiceApiById(Long apiId)
+    {
+        return companyVoiceApiMapper.selectById(apiId);
+    }
+
+    /**
+     * 查询呼叫接口列表
+     * 
+     * @param companyVoiceApi 呼叫接口
+     * @return 呼叫接口
+     */
+    @Override
+    public List<CompanyVoiceApiTiantian> selectCompanyVoiceApiList(CompanyVoiceApiTiantian companyVoiceApi)
+    {
+        return list();
+    }
+
+    /**
+     * 新增呼叫接口
+     * 
+     * @param companyVoiceApi 呼叫接口
+     * @return 结果
+     */
+    @Override
+    public int insertCompanyVoiceApi(CompanyVoiceApiTiantian companyVoiceApi)
+    {
+        return companyVoiceApiMapper.insert(companyVoiceApi);
+    }
+
+    /**
+     * 修改呼叫接口
+     * 
+     * @param companyVoiceApi 呼叫接口
+     * @return 结果
+     */
+    @Override
+    public int updateCompanyVoiceApi(CompanyVoiceApiTiantian companyVoiceApi)
+    {
+        return companyVoiceApiMapper.updateById(companyVoiceApi);
+    }
+
+    /**
+     * 批量删除呼叫接口
+     * 
+     * @param apiIds 需要删除的呼叫接口ID
+     * @return 结果
+     */
+    @Override
+    public int deleteCompanyVoiceApiByIds(Long[] apiIds)
+    {
+        return companyVoiceApiMapper.deleteBatchIds(Arrays.asList(apiIds));
+    }
+
+    /**
+     * 删除呼叫接口信息
+     * 
+     * @param apiId 呼叫接口ID
+     * @return 结果
+     */
+    @Override
+    public int deleteCompanyVoiceApiById(Long apiId)
+    {
+        return companyVoiceApiMapper.deleteById(apiId);
+    }
+
+    @Override
+    public Integer selectCompanyVoiceApiCount() {
+        return companyVoiceApiMapper.selectCount(new QueryWrapper<>());
+    }
+}

+ 4 - 4
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceDialogServiceImpl.java

@@ -25,7 +25,7 @@ public class CompanyVoiceDialogServiceImpl implements ICompanyVoiceDialogService
     @Autowired
     private CompanyVoiceDialogMapper companyVoiceDialogMapper;
 
-    @Autowired
+    @Autowired(required = false)
     private AiCallService aiCallService;
 
     /**
@@ -64,7 +64,7 @@ public class CompanyVoiceDialogServiceImpl implements ICompanyVoiceDialogService
         EditDialogResult editDialogResult = aiCallService.editDialog(EditDialogDomain.builder()
                 .id(-1L)
                 .name(companyVoiceDialog.getName())
-                .remark(companyVoiceDialog.getRemark()).build());
+                .remark(companyVoiceDialog.getRemark()).build(), companyVoiceDialog.getCompanyId());
         // 话术回调
         companyVoiceDialog.setResultId(editDialogResult.getId());
         companyVoiceDialog.setResultName(editDialogResult.getName());
@@ -84,7 +84,7 @@ public class CompanyVoiceDialogServiceImpl implements ICompanyVoiceDialogService
         aiCallService.editDialog(EditDialogDomain.builder()
                 .id(companyVoiceDialog.getResultId())
                 .name(companyVoiceDialog.getName())
-                .remark(companyVoiceDialog.getRemark()).build());
+                .remark(companyVoiceDialog.getRemark()).build(), companyVoiceDialog.getCompanyId());
         return companyVoiceDialogMapper.updateCompanyVoiceDialog(companyVoiceDialog);
     }
 
@@ -115,6 +115,6 @@ public class CompanyVoiceDialogServiceImpl implements ICompanyVoiceDialogService
     @Override
     public String getConfigUrl(Long id) {
         CompanyVoiceDialog info = selectCompanyVoiceDialogById(id);
-        return aiCallService.getDialogUrl() + "?m=common&c=loginTransition&f=login1&token="+aiCallService.getToken()+"&dialog=" + info.getResultId();
+        return aiCallService.getDialogUrl(info.getCompanyId()) + "?m=common&c=loginTransition&f=login1&token="+aiCallService.getToken(info.getCompanyId())+"&dialog=" + info.getResultId();
     }
 }

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

@@ -154,7 +154,7 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
             param.setEndTime1(companyVoiceRobotic.getEndTime1() + ":00");
         }
         // 请求外呼接口
-        CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param);
+        CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, companyVoiceRobotic.getCompanyId());
         // 设置返回数据
         companyVoiceRobotic.setTaskId(result.getTaskID());
         companyVoiceRobotic.setTaskName(result.getTaskName());
@@ -369,6 +369,11 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         companyWxClientServiceImpl.updateBatchById(list);
     }
 
+    @Override
+    public void cidList(Long companyId) {
+
+    }
+
 
     // 绑定销售
     private static void bindCompany(CompanyWxClient client, List<CompanyVoiceRoboticWx> wxList, Integer addWxNum) {

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

@@ -55,7 +55,7 @@ public class CompanyWxDialogServiceImpl extends ServiceImpl<CompanyWxDialogMappe
     public int insertCompanyWxDialog(CompanyWxDialog companyWxDialog)
     {
         companyWxDialog.setCreateTime(DateUtils.getNowDate());
-        return companyWxDialogMapper.insertCompanyWxDialog(companyWxDialog);
+        return companyWxDialogMapper.insert(companyWxDialog);
     }
 
     /**

+ 7 - 0
fs-service/src/main/resources/mapper/company/CompanyVoiceApiTiantianMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.company.mapper.CompanyVoiceApiTiantianMapper">
+    
+</mapper>