diff --git a/contact-center/app/pom.xml b/contact-center/app/pom.xml index 5d48d555..ba92d513 100644 --- a/contact-center/app/pom.xml +++ b/contact-center/app/pom.xml @@ -1,5 +1,5 @@ - + 4.0.0 com.chatopera.cc contact-center @@ -17,17 +17,17 @@ contact-center - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + org.apache.maven.plugins maven-resources-plugin @@ -118,7 +118,7 @@ chatopera Chatopera Inc. - https://nexus.chatopera.com/repository/maven-public/ + https://nexus.cskefu.com/repository/maven-public/ true diff --git a/contact-center/root/pom.xml b/contact-center/root/pom.xml index cd9c25d9..e5f25d2a 100644 --- a/contact-center/root/pom.xml +++ b/contact-center/root/pom.xml @@ -1,5 +1,5 @@ - + 4.0.0 com.chatopera.cc cc-root @@ -245,11 +245,11 @@ 2.6.0 - - com.google.guava - guava - 25.1-jre - + + com.google.guava + guava + 25.1-jre + com.google.code.gson @@ -379,14 +379,14 @@ com.chatopera.bot sdk - 3.1.0 + 3.3.1 chatopera Chatopera Inc. - https://nexus.chatopera.com/repository/maven-public + https://nexus.cskefu.com/repository/maven-public true @@ -400,12 +400,12 @@ chatopera-releases Chatopera Nexus Releases - https://nexus.chatopera.com/repository/maven-releases/ + https://nexus.cskefu.com/repository/maven-releases/ chatopera-snapshots Chatopera Nexus Snapshots - https://nexus.chatopera.com/repository/maven-snapshots/ + https://nexus.cskefu.com/repository/maven-snapshots/ diff --git a/public/plugins/chatbot/classes/ApiChatbotController.java b/public/plugins/chatbot/classes/ApiChatbotController.java index d9feefd4..495c0c3d 100644 --- a/public/plugins/chatbot/classes/ApiChatbotController.java +++ b/public/plugins/chatbot/classes/ApiChatbotController.java @@ -16,6 +16,7 @@ package com.chatopera.cc.plugins.chatbot; import com.chatopera.bot.exception.ChatbotException; +import com.chatopera.bot.sdk.Response; import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.MainUtils; import com.chatopera.cc.controller.Handler; @@ -205,7 +206,9 @@ public class ApiChatbotController extends Handler { try { com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( c.getClientId(), c.getSecret(), botServiecProvider); - if (bot.exists()) { + Response result = bot.command("GET", "/"); + + if (result.getRc() == 0) { c.setEnabled(isEnabled); chatbotRes.save(c); @@ -327,24 +330,28 @@ public class ApiChatbotController extends Handler { try { com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( c.getClientId(), c.getSecret(), botServiecProvider); - if (bot.exists()) { + + Response result = bot.command("GET", "/"); + logger.info("[update] bot details response {}", result.toJSON().toString()); + + if (result.getRc() == 0) { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); JsonObject data = new JsonObject(); data.addProperty("id", c.getId()); resp.add(RestUtils.RESP_KEY_DATA, data); resp.addProperty(RestUtils.RESP_KEY_MSG, "更新成功。"); - JSONObject botDetails = bot.details(); - c.setDescription(botDetails.getJSONObject("data").getString("description")); - c.setFallback(botDetails.getJSONObject("data").getString("fallback")); - c.setWelcome(botDetails.getJSONObject("data").getString("welcome")); - invite.setAisuccesstip(botDetails.getJSONObject("data").getString("welcome")); - c.setName(botDetails.getJSONObject("data").getString("name")); + JSONObject botDetails = (JSONObject) result.getData(); + c.setDescription(botDetails.getString("description")); + c.setFallback(botDetails.getString("fallback")); + c.setWelcome(botDetails.getString("welcome")); + invite.setAisuccesstip(botDetails.getString("welcome")); + c.setName(botDetails.getString("name")); invite.setAiname(c.getName()); } else { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); resp.addProperty( RestUtils.RESP_KEY_ERROR, - "Chatopera云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。提示:该机器人不存在,请先创建机器人, 登录 https://bot.chatopera.com"); + "Chatopera 云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。提示:该机器人不存在,请先创建机器人, 登录 https://bot.chatopera.com"); return resp; } } catch (ChatbotException e) { @@ -352,7 +359,7 @@ public class ApiChatbotController extends Handler { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_5); resp.addProperty( RestUtils.RESP_KEY_ERROR, - "Chatopera云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。"); + "Chatopera 云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。"); return resp; } catch (MalformedURLException e) { logger.error("bot request error", e); @@ -541,22 +548,25 @@ public class ApiChatbotController extends Handler { } try { - logger.info("create bot with url {}", botServiecProvider); + logger.info("[create] bot with url {}", botServiecProvider); com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(clientId, secret, botServiecProvider); - if (bot.exists()) { // 该机器人存在,clientId 和 Secret配对成功 + Response result = bot.command("GET", "/"); + logger.info("[create] bot details response {}", result.toJSON().toString()); + + if (result.getRc() == 0) { // 该机器人存在,clientId 和 Secret配对成功 // 创建成功 Chatbot c = new Chatbot(); - JSONObject botDetails = bot.details(); + JSONObject botDetails = (JSONObject) result.getData(); c.setId(MainUtils.getUUID()); c.setClientId(clientId); c.setSecret(secret); c.setBaseUrl(botServiecProvider); - c.setDescription(botDetails.getJSONObject("data").getString("description")); - c.setFallback(botDetails.getJSONObject("data").getString("fallback")); - c.setPrimaryLanguage(botDetails.getJSONObject("data").getString("primaryLanguage")); - c.setName(botDetails.getJSONObject("data").getString("name")); - c.setWelcome(botDetails.getJSONObject("data").getString("welcome")); + c.setDescription(botDetails.getString("description")); + c.setFallback(botDetails.getString("fallback")); + c.setPrimaryLanguage(botDetails.getString("primaryLanguage")); + c.setName(botDetails.getString("name")); + c.setWelcome(botDetails.getString("welcome")); c.setCreater(creater); c.setOrgi(orgi); c.setChannel(Constants.CHANNEL_TYPE_WEBIM); @@ -590,7 +600,7 @@ public class ApiChatbotController extends Handler { // 创建失败 resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); resp.addProperty( - RestUtils.RESP_KEY_ERROR, "Chatopera云服务:该机器人不存在,请先创建机器人, 登录 https://bot.chatopera.com"); + RestUtils.RESP_KEY_ERROR, "Chatopera 云服务:该机器人不存在,请先创建机器人, 登录 https://bot.chatopera.com"); return resp; } } catch (ChatbotException e) { @@ -598,12 +608,12 @@ public class ApiChatbotController extends Handler { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_5); resp.addProperty( RestUtils.RESP_KEY_ERROR, - "Chatopera云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。"); + "Chatopera 云服务:无法访问该机器人,请确认【1】该服务器可以访问互联网,【2】该聊天机器人已经创建,【3】clientId和Secret正确设置。"); return resp; } catch (MalformedURLException e) { logger.error("bot request error", e); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_4); - resp.addProperty(RestUtils.RESP_KEY_ERROR, "Chatopera云服务:不合法的聊天机器人服务URL。"); + resp.addProperty(RestUtils.RESP_KEY_ERROR, "Chatopera 云服务:不合法的聊天机器人服务URL。"); return resp; } } diff --git a/public/plugins/chatbot/classes/ChatbotEventHandler.java b/public/plugins/chatbot/classes/ChatbotEventHandler.java index a2bd356f..e174f56d 100644 --- a/public/plugins/chatbot/classes/ChatbotEventHandler.java +++ b/public/plugins/chatbot/classes/ChatbotEventHandler.java @@ -15,6 +15,7 @@ */ package com.chatopera.cc.plugins.chatbot; +import com.chatopera.bot.sdk.Response; import com.chatopera.cc.acd.ACDServiceRouter; import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.MainContext; @@ -31,6 +32,7 @@ import com.chatopera.cc.socketio.message.Message; import com.chatopera.cc.socketio.util.IMServiceUtils; import com.chatopera.cc.util.IP; import com.chatopera.cc.util.IPTools; +import com.chatopera.cc.util.SystemEnvHelper; import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.SocketIOClient; import com.corundumstudio.socketio.SocketIOServer; @@ -56,6 +58,9 @@ public class ChatbotEventHandler { private static ChatbotRepository chatbotRes; private static ChatbotProxy chatbotProxy; + private final static String botServiecProvider = SystemEnvHelper.getenv( + ChatbotConstants.BOT_PROVIDER, ChatbotConstants.DEFAULT_BOT_PROVIDER); + @Autowired public ChatbotEventHandler(SocketIOServer server) { this.server = server; @@ -107,14 +112,15 @@ public class ChatbotEventHandler { if (invite != null) { Chatbot chatbot = getChatbotRes().findOne(invite.getAiid()); com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( - chatbot.getClientId(), chatbot.getSecret(), chatbot.getBaseUrl()); - JSONObject details = bot.details(); + chatbot.getClientId(), chatbot.getSecret(), botServiecProvider); + + Response result = bot.command("GET", "/"); // 发送欢迎语 - if (details.has("rc") && - details.getInt("rc") == 0) { + if (result.getRc() == 0) { ChatMessage welcome = new ChatMessage(); - String welcomeTextMessage = details.getJSONObject("data").getString("welcome"); + JSONObject details = (JSONObject) result.getData(); + String welcomeTextMessage = details.getString("welcome"); if (StringUtils.isNotBlank(welcomeTextMessage)) { welcome.setCalltype(MainContext.CallType.OUT.toString()); welcome.setAppid(appid);