6 Commits ddfb746c37 ... eadaafb636

Autor SHA1 Mensagem Data
  peicj eadaafb636 接口兼容医生端绑定分机 3 dias atrás
  peicj 10287729bb Merge branch 'master' of http://1.14.104.71:10880/wushubo/easycallcenter365-gui-dev 6 dias atrás
  peicj c31946f5d5 Merge branch 'master' of http://1.14.104.71:10880/wushubo/easycallcenter365-gui-dev 1 semana atrás
  peicj 7544c5f827 Merge branch 'master' of http://1.14.104.71:10880/wushubo/easycallcenter365-gui-dev 1 semana atrás
  peicj e07b5c474d Merge branch 'master' of http://1.14.104.71:10880/wushubo/easycallcenter365-gui-dev 2 semanas atrás
  peicj 76723f4961 增加外部调用自动外呼任务相关接口 2 semanas atrás

+ 153 - 9
ruoyi-admin/src/main/java/com/ruoyi/aicall/controller/ApiController.java

@@ -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;
 
     /**
      * 获取外呼网关列表接口
@@ -1438,7 +1438,7 @@ public class ApiController extends BaseController {
         int i = userService.updateUser(user);
         if(i>0){
             int cleanNum;
-            if(StringUtils.isNotBlank(user.getUserSource()) && user.getUserSource().equals("0")){
+            if(StringUtils.isNotBlank(user.getUserSource()) && (user.getUserSource().equals("0") || user.getUserSource().equals("2"))){
                 cleanNum = ccExtNumService.updateUserCodeByLoginName(user.getCompanyName(),user.getLoginName());
             }else{
                 //先清除原分机绑定
@@ -1992,4 +1992,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);
+    }
 }

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -111,7 +111,7 @@ public class SysUser extends BaseEntity
 
     /** 分机绑定用户 */
     private String userCode;
-    /** 用户来源0销售 1总后台 */
+    /** 用户来源0销售 1总后台 2医生 */
     private String userSource;
     /** 销售公司 */
     private String companyName;