|
|
@@ -3,15 +3,9 @@ package com.ruoyi.aicall.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.ruoyi.aicall.domain.CcCallPhone;
|
|
|
-import com.ruoyi.aicall.domain.CcCallTask;
|
|
|
-import com.ruoyi.aicall.domain.CcLlmAgentAccount;
|
|
|
-import com.ruoyi.aicall.domain.CcTtsAliyun;
|
|
|
+import com.ruoyi.aicall.domain.*;
|
|
|
import com.ruoyi.aicall.model.*;
|
|
|
-import com.ruoyi.aicall.service.ICcCallPhoneService;
|
|
|
-import com.ruoyi.aicall.service.ICcCallTaskService;
|
|
|
-import com.ruoyi.aicall.service.ICcLlmAgentAccountService;
|
|
|
-import com.ruoyi.aicall.service.ICcTtsAliyunService;
|
|
|
+import com.ruoyi.aicall.service.*;
|
|
|
import com.ruoyi.aicall.utils.ClientIpCheck;
|
|
|
import com.ruoyi.aicall.utils.DESUtil;
|
|
|
import com.ruoyi.cc.domain.*;
|
|
|
@@ -29,6 +23,8 @@ import com.ruoyi.common.utils.bean.BeanUtils;
|
|
|
import com.ruoyi.common.utils.uuid.UuidGenerator;
|
|
|
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
|
|
import com.ruoyi.framework.shiro.util.AuthorizationUtils;
|
|
|
+import com.ruoyi.system.domain.SysConfig;
|
|
|
+import com.ruoyi.system.service.ISysConfigService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.RandomUtils;
|
|
|
@@ -86,6 +82,10 @@ public class ApiController extends BaseController {
|
|
|
private ISysDivisionDataService sysDivisionDataService;
|
|
|
@Autowired
|
|
|
private ICcOutboundCdrService ccOutboundCdrService;
|
|
|
+ @Autowired
|
|
|
+ private ISysConfigService sysConfigService;
|
|
|
+ @Autowired
|
|
|
+ private ICcAsrLanguagesService asrLanguagesService;
|
|
|
|
|
|
/**
|
|
|
* 获取外呼网关列表接口
|
|
|
@@ -1991,4 +1991,148 @@ public class ApiController extends BaseController {
|
|
|
}
|
|
|
return AjaxResult.success("成功获取" + list.size() + "条数据",list);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询全部ttsprovider列表
|
|
|
+ */
|
|
|
+ @GetMapping("/tts/voiceSource/all")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult allTtsProvider()
|
|
|
+ {
|
|
|
+ SysConfig sysConfig = new SysConfig();
|
|
|
+ sysConfig.setConfigKey("config_tts_provider");
|
|
|
+ List<SysConfig> list = sysConfigService.selectConfigList(sysConfig);
|
|
|
+ Map<String, String> providerMap = new HashMap<>();
|
|
|
+ for (SysConfig data: list) {
|
|
|
+ providerMap.put(data.getConfigValue(), data.getConfigName());
|
|
|
+ }
|
|
|
+ return AjaxResult.success(providerMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询全部asrprovider列表
|
|
|
+ */
|
|
|
+ @GetMapping("/asr/provider/all")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult allAsrProvider()
|
|
|
+ {
|
|
|
+ SysConfig sysConfig = new SysConfig();
|
|
|
+ sysConfig.setConfigKey("config_asr_provider");
|
|
|
+ List<SysConfig> list = sysConfigService.selectConfigList(sysConfig);
|
|
|
+ Map<String, String> providerMap = new HashMap<>();
|
|
|
+ for (SysConfig data: list) {
|
|
|
+ providerMap.put(data.getConfigValue(), data.getConfigName());
|
|
|
+ }
|
|
|
+ return AjaxResult.success(providerMap);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 根据asr厂商获取语言
|
|
|
+ */
|
|
|
+ @GetMapping("/asr/language")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult getAsrLanguages(@RequestParam String asrProvider)
|
|
|
+ {
|
|
|
+ List<JSONObject> languageList = new ArrayList<>();
|
|
|
+ Map<String, String> languageCodeMap = new HashMap<>();
|
|
|
+ List<CcAsrLanguages> asrLanguagesList = asrLanguagesService.selectCcAsrLanguagesList(new CcAsrLanguages().setAsrProvider(asrProvider));
|
|
|
+ for (CcAsrLanguages asrLanguages: asrLanguagesList) {
|
|
|
+ if (StringUtils.isNotEmpty(asrLanguages.getLanguageCode())
|
|
|
+ && StringUtils.isEmpty(languageCodeMap.get(asrLanguages.getLanguageCode()))) {
|
|
|
+ languageCodeMap.put(asrLanguages.getLanguageCode(), asrLanguages.getLanguageName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(languageCodeMap)) {
|
|
|
+ languageCodeMap.put("zh-CN", "中文");
|
|
|
+ }
|
|
|
+ for (String key: languageCodeMap.keySet()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("key", key);
|
|
|
+ obj.put("value", languageCodeMap.get(key));
|
|
|
+ languageList.add(obj);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(languageList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据asr厂商和语言获取asr模型列表
|
|
|
+ */
|
|
|
+ @GetMapping("/asr/models")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult getAsrModels(@RequestParam String asrProvider, @RequestParam String asrLanguageCode)
|
|
|
+ {
|
|
|
+ List<JSONObject> modelsList = new ArrayList<>();
|
|
|
+ Map<String, String> asrModelsMap = new HashMap<>();
|
|
|
+ List<CcAsrLanguages> asrLanguagesList = asrLanguagesService.selectCcAsrLanguagesList(new CcAsrLanguages().setAsrProvider(asrProvider).setLanguageCode(asrLanguageCode));
|
|
|
+ for (CcAsrLanguages asrLanguages: asrLanguagesList) {
|
|
|
+ if (StringUtils.isNotEmpty(asrLanguages.getModels())
|
|
|
+ && StringUtils.isEmpty(asrModelsMap.get(asrLanguages.getModels()))) {
|
|
|
+ asrModelsMap.put(asrLanguages.getModels(), asrLanguages.getModels());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(asrModelsMap)) {
|
|
|
+ asrModelsMap.put("", "");
|
|
|
+ }
|
|
|
+ for (String key: asrModelsMap.keySet()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("key", key);
|
|
|
+ obj.put("value", asrModelsMap.get(key));
|
|
|
+ modelsList.add(obj);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(modelsList);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 根据tts厂商和语言获取asr模型列表
|
|
|
+ */
|
|
|
+ @GetMapping("/tts/models")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult getTtsModels(@RequestParam String voiceSource, @RequestParam String ttsLanguageCode)
|
|
|
+ {
|
|
|
+ List<JSONObject> modelsList = new ArrayList<>();
|
|
|
+ Map<String, String> ttsModelMap = new HashMap<>();
|
|
|
+ List<CcTtsAliyun> ccTtsAliyunList = ccTtsAliyunService.selectCcTtsAliyunList(new CcTtsAliyun().setVoiceSource(voiceSource).setLanguageCode(ttsLanguageCode));
|
|
|
+ for (CcTtsAliyun ccTtsAliyun: ccTtsAliyunList) {
|
|
|
+ if (StringUtils.isNotEmpty(ccTtsAliyun.getTtsModels())
|
|
|
+ && StringUtils.isEmpty(ttsModelMap.get(ccTtsAliyun.getTtsModels()))) {
|
|
|
+ ttsModelMap.put(ccTtsAliyun.getTtsModels(), ccTtsAliyun.getTtsModels());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(ttsModelMap)) {
|
|
|
+ ttsModelMap.put("", "");
|
|
|
+ }
|
|
|
+ for (String key: ttsModelMap.keySet()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("key", key);
|
|
|
+ obj.put("value", ttsModelMap.get(key));
|
|
|
+ modelsList.add(obj);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(modelsList);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 根据tts厂商获取支持语言
|
|
|
+ */
|
|
|
+ @GetMapping("/tts/language")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult getTtsLanguages(@RequestParam String voiceSource)
|
|
|
+ {
|
|
|
+ List<JSONObject> languageList = new ArrayList<>();
|
|
|
+ Map<String, String> languageCodeMap = new HashMap<>();
|
|
|
+ List<CcTtsAliyun> ccTtsAliyunList = ccTtsAliyunService.selectCcTtsAliyunList(new CcTtsAliyun().setVoiceSource(voiceSource));
|
|
|
+ for (CcTtsAliyun ccTtsAliyun: ccTtsAliyunList) {
|
|
|
+ if (StringUtils.isNotEmpty(ccTtsAliyun.getLanguageCode())
|
|
|
+ && StringUtils.isEmpty(languageCodeMap.get(ccTtsAliyun.getLanguageCode()))) {
|
|
|
+ languageCodeMap.put(ccTtsAliyun.getLanguageCode(), ccTtsAliyun.getLanguageName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(languageCodeMap)) {
|
|
|
+ languageCodeMap.put("zh-CN", "中文");
|
|
|
+ }
|
|
|
+ for (String key: languageCodeMap.keySet()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("key", key);
|
|
|
+ obj.put("value", languageCodeMap.get(key));
|
|
|
+ languageList.add(obj);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(languageList);
|
|
|
+ }
|
|
|
}
|