|
|
@@ -4,15 +4,19 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
|
+import com.fs.company.mapper.CompanyMapper;
|
|
|
import com.fs.company.vo.easycall.*;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* EasyCallCenter365 外呼服务实现类
|
|
|
@@ -27,34 +31,60 @@ import java.util.List;
|
|
|
@Slf4j
|
|
|
public class EasyCallServiceImpl implements IEasyCallService {
|
|
|
|
|
|
- /** EasyCallCenter365 服务器基础地址,从配置文件 easycall.base-url 读取 */
|
|
|
+ /**
|
|
|
+ * EasyCallCenter365 服务器基础地址,从配置文件 easycall.base-url 读取
|
|
|
+ */
|
|
|
@Value("${easycall.base-url:http://129.28.164.235:8899}")
|
|
|
private String baseUrl;
|
|
|
|
|
|
// =================== EasyCallCenter365 接口路径常量 ===================
|
|
|
- /** 获取外呼网关列表 */
|
|
|
- private static final String API_GATEWAY_LIST = "/aicall/api/gateway/list";
|
|
|
- /** 获取大模型配置列表 */
|
|
|
- private static final String API_LLMACCOUNT_LIST = "/aicall/api/llmacount/list";
|
|
|
- /** 获取音色列表 */
|
|
|
- private static final String API_VOICECODE_LIST = "/aicall/api/voicecode/list";
|
|
|
- /** 获取技能组(业务组)列表 */
|
|
|
- private static final String API_BUSIGROUP_LIST = "/aicall/api/busigroup/list";
|
|
|
- /** 分页查询任务列表 */
|
|
|
- private static final String API_CALLTASK_LIST = "/aicall/api/calltask/list";
|
|
|
- /** 分页查询通话记录 */
|
|
|
- private static final String API_RECORDS_LIST = "/aicall/api/records/list";
|
|
|
- /** 创建外呼任务 */
|
|
|
- private static final String API_CREATE_TASK = "/aicall/api/ai/createTask";
|
|
|
- /** 启动外呼任务(GET,携带 batchId 参数) */
|
|
|
- private static final String API_START_TASK = "/aicall/api/ai/startTask";
|
|
|
- /** 停止外呼任务(GET,携带 batchId 参数) */
|
|
|
- private static final String API_STOP_TASK = "/aicall/api/ai/stopTask";
|
|
|
- /** AI外呼专用追加名单(仅支持 AI 外呼任务,phoneList 为纯号码列表) */
|
|
|
+ /**
|
|
|
+ * 获取外呼网关列表
|
|
|
+ */
|
|
|
+ private static final String API_GATEWAY_LIST = "/aicall/api/gateway/list";
|
|
|
+ /**
|
|
|
+ * 获取大模型配置列表
|
|
|
+ */
|
|
|
+ private static final String API_LLMACCOUNT_LIST = "/aicall/api/llmacount/list";
|
|
|
+ /**
|
|
|
+ * 获取音色列表
|
|
|
+ */
|
|
|
+ private static final String API_VOICECODE_LIST = "/aicall/api/voicecode/list";
|
|
|
+ /**
|
|
|
+ * 获取技能组(业务组)列表
|
|
|
+ */
|
|
|
+ private static final String API_BUSIGROUP_LIST = "/aicall/api/busigroup/list";
|
|
|
+ /**
|
|
|
+ * 分页查询任务列表
|
|
|
+ */
|
|
|
+ private static final String API_CALLTASK_LIST = "/aicall/api/calltask/list";
|
|
|
+ /**
|
|
|
+ * 分页查询通话记录
|
|
|
+ */
|
|
|
+ private static final String API_RECORDS_LIST = "/aicall/api/records/list";
|
|
|
+ /**
|
|
|
+ * 创建外呼任务
|
|
|
+ */
|
|
|
+ private static final String API_CREATE_TASK = "/aicall/api/ai/createTask";
|
|
|
+ /**
|
|
|
+ * 启动外呼任务(GET,携带 batchId 参数)
|
|
|
+ */
|
|
|
+ private static final String API_START_TASK = "/aicall/api/ai/startTask";
|
|
|
+ /**
|
|
|
+ * 停止外呼任务(GET,携带 batchId 参数)
|
|
|
+ */
|
|
|
+ private static final String API_STOP_TASK = "/aicall/api/ai/stopTask";
|
|
|
+ /**
|
|
|
+ * AI外呼专用追加名单(仅支持 AI 外呼任务,phoneList 为纯号码列表)
|
|
|
+ */
|
|
|
private static final String API_AI_ADD_CALL_LIST = "/aicall/api/ai/addCallList";
|
|
|
- /** 通用追加名单(同时支持 AI 外呼和通知提醒任务,支持传入提醒内容和业务数据) */
|
|
|
- private static final String API_COMMON_ADD_LIST = "/aicall/api/common/addCallList";
|
|
|
+ /**
|
|
|
+ * 通用追加名单(同时支持 AI 外呼和通知提醒任务,支持传入提醒内容和业务数据)
|
|
|
+ */
|
|
|
+ private static final String API_COMMON_ADD_LIST = "/aicall/api/common/addCallList";
|
|
|
|
|
|
+ @Autowired
|
|
|
+ CompanyMapper companyMapper;
|
|
|
// =================== 基础数据查询接口 ===================
|
|
|
|
|
|
/**
|
|
|
@@ -68,7 +98,15 @@ public class EasyCallServiceImpl implements IEasyCallService {
|
|
|
JSONObject result = doGet(url);
|
|
|
// 从响应的 data 字段中取出网关数组并转为 Java 对象列表
|
|
|
JSONArray data = result.getJSONArray("data");
|
|
|
- return data == null ? new ArrayList<>() : data.toJavaList(EasyCallGatewayVO.class);
|
|
|
+ List<EasyCallGatewayVO> resList = data == null ? new ArrayList<>() : data.toJavaList(EasyCallGatewayVO.class);
|
|
|
+ if (null != companyId && null != resList && !resList.isEmpty()) {
|
|
|
+ String gateWayList = companyMapper.getGateWayList(companyId);
|
|
|
+ if(StringUtils.isNotBlank(gateWayList)){
|
|
|
+ List<Long> collect = Arrays.stream(gateWayList.split(",")).map(item -> Long.valueOf(item.trim())).collect(Collectors.toList());
|
|
|
+ resList = resList.stream().filter(item -> collect.contains(item.getId())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resList;
|
|
|
}
|
|
|
|
|
|
/**
|