1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00
This commit is contained in:
Hai Liang Wang 2020-12-10 18:16:06 +08:00
parent 88b1b92c89
commit 830d5760f3
4 changed files with 67 additions and 51 deletions

View File

@ -1,5 +1,5 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.chatopera.cc</groupId> <groupId>com.chatopera.cc</groupId>
<artifactId>contact-center</artifactId> <artifactId>contact-center</artifactId>
@ -118,7 +118,7 @@
<repository> <repository>
<id>chatopera</id> <id>chatopera</id>
<name>Chatopera Inc.</name> <name>Chatopera Inc.</name>
<url>https://nexus.chatopera.com/repository/maven-public/</url> <url>https://nexus.cskefu.com/repository/maven-public/</url>
<releases> <releases>
<enabled>true</enabled> <enabled>true</enabled>
</releases> </releases>

View File

@ -1,5 +1,5 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.chatopera.cc</groupId> <groupId>com.chatopera.cc</groupId>
<artifactId>cc-root</artifactId> <artifactId>cc-root</artifactId>
@ -379,14 +379,14 @@
<dependency> <dependency>
<groupId>com.chatopera.bot</groupId> <groupId>com.chatopera.bot</groupId>
<artifactId>sdk</artifactId> <artifactId>sdk</artifactId>
<version>3.1.0</version> <version>3.3.1</version>
</dependency> </dependency>
</dependencies> </dependencies>
<repositories> <repositories>
<repository> <repository>
<id>chatopera</id> <id>chatopera</id>
<name>Chatopera Inc.</name> <name>Chatopera Inc.</name>
<url>https://nexus.chatopera.com/repository/maven-public</url> <url>https://nexus.cskefu.com/repository/maven-public</url>
<releases> <releases>
<enabled>true</enabled> <enabled>true</enabled>
</releases> </releases>
@ -400,12 +400,12 @@
<repository> <repository>
<id>chatopera-releases</id> <id>chatopera-releases</id>
<name>Chatopera Nexus Releases</name> <name>Chatopera Nexus Releases</name>
<url>https://nexus.chatopera.com/repository/maven-releases/</url> <url>https://nexus.cskefu.com/repository/maven-releases/</url>
</repository> </repository>
<snapshotRepository> <snapshotRepository>
<id>chatopera-snapshots</id> <id>chatopera-snapshots</id>
<name>Chatopera Nexus Snapshots</name> <name>Chatopera Nexus Snapshots</name>
<url>https://nexus.chatopera.com/repository/maven-snapshots/</url> <url>https://nexus.cskefu.com/repository/maven-snapshots/</url>
</snapshotRepository> </snapshotRepository>
</distributionManagement> </distributionManagement>

View File

@ -16,6 +16,7 @@
package com.chatopera.cc.plugins.chatbot; package com.chatopera.cc.plugins.chatbot;
import com.chatopera.bot.exception.ChatbotException; import com.chatopera.bot.exception.ChatbotException;
import com.chatopera.bot.sdk.Response;
import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.Constants;
import com.chatopera.cc.basic.MainUtils; import com.chatopera.cc.basic.MainUtils;
import com.chatopera.cc.controller.Handler; import com.chatopera.cc.controller.Handler;
@ -205,7 +206,9 @@ public class ApiChatbotController extends Handler {
try { try {
com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(
c.getClientId(), c.getSecret(), botServiecProvider); c.getClientId(), c.getSecret(), botServiecProvider);
if (bot.exists()) { Response result = bot.command("GET", "/");
if (result.getRc() == 0) {
c.setEnabled(isEnabled); c.setEnabled(isEnabled);
chatbotRes.save(c); chatbotRes.save(c);
@ -327,18 +330,22 @@ public class ApiChatbotController extends Handler {
try { try {
com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(
c.getClientId(), c.getSecret(), botServiecProvider); 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); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC);
JsonObject data = new JsonObject(); JsonObject data = new JsonObject();
data.addProperty("id", c.getId()); data.addProperty("id", c.getId());
resp.add(RestUtils.RESP_KEY_DATA, data); resp.add(RestUtils.RESP_KEY_DATA, data);
resp.addProperty(RestUtils.RESP_KEY_MSG, "更新成功。"); resp.addProperty(RestUtils.RESP_KEY_MSG, "更新成功。");
JSONObject botDetails = bot.details(); JSONObject botDetails = (JSONObject) result.getData();
c.setDescription(botDetails.getJSONObject("data").getString("description")); c.setDescription(botDetails.getString("description"));
c.setFallback(botDetails.getJSONObject("data").getString("fallback")); c.setFallback(botDetails.getString("fallback"));
c.setWelcome(botDetails.getJSONObject("data").getString("welcome")); c.setWelcome(botDetails.getString("welcome"));
invite.setAisuccesstip(botDetails.getJSONObject("data").getString("welcome")); invite.setAisuccesstip(botDetails.getString("welcome"));
c.setName(botDetails.getJSONObject("data").getString("name")); c.setName(botDetails.getString("name"));
invite.setAiname(c.getName()); invite.setAiname(c.getName());
} else { } else {
resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6);
@ -541,22 +548,25 @@ public class ApiChatbotController extends Handler {
} }
try { 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); 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(); Chatbot c = new Chatbot();
JSONObject botDetails = bot.details(); JSONObject botDetails = (JSONObject) result.getData();
c.setId(MainUtils.getUUID()); c.setId(MainUtils.getUUID());
c.setClientId(clientId); c.setClientId(clientId);
c.setSecret(secret); c.setSecret(secret);
c.setBaseUrl(botServiecProvider); c.setBaseUrl(botServiecProvider);
c.setDescription(botDetails.getJSONObject("data").getString("description")); c.setDescription(botDetails.getString("description"));
c.setFallback(botDetails.getJSONObject("data").getString("fallback")); c.setFallback(botDetails.getString("fallback"));
c.setPrimaryLanguage(botDetails.getJSONObject("data").getString("primaryLanguage")); c.setPrimaryLanguage(botDetails.getString("primaryLanguage"));
c.setName(botDetails.getJSONObject("data").getString("name")); c.setName(botDetails.getString("name"));
c.setWelcome(botDetails.getJSONObject("data").getString("welcome")); c.setWelcome(botDetails.getString("welcome"));
c.setCreater(creater); c.setCreater(creater);
c.setOrgi(orgi); c.setOrgi(orgi);
c.setChannel(Constants.CHANNEL_TYPE_WEBIM); c.setChannel(Constants.CHANNEL_TYPE_WEBIM);

View File

@ -15,6 +15,7 @@
*/ */
package com.chatopera.cc.plugins.chatbot; package com.chatopera.cc.plugins.chatbot;
import com.chatopera.bot.sdk.Response;
import com.chatopera.cc.acd.ACDServiceRouter; import com.chatopera.cc.acd.ACDServiceRouter;
import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.Constants;
import com.chatopera.cc.basic.MainContext; 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.socketio.util.IMServiceUtils;
import com.chatopera.cc.util.IP; import com.chatopera.cc.util.IP;
import com.chatopera.cc.util.IPTools; import com.chatopera.cc.util.IPTools;
import com.chatopera.cc.util.SystemEnvHelper;
import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.SocketIOClient; import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.SocketIOServer;
@ -56,6 +58,9 @@ public class ChatbotEventHandler {
private static ChatbotRepository chatbotRes; private static ChatbotRepository chatbotRes;
private static ChatbotProxy chatbotProxy; private static ChatbotProxy chatbotProxy;
private final static String botServiecProvider = SystemEnvHelper.getenv(
ChatbotConstants.BOT_PROVIDER, ChatbotConstants.DEFAULT_BOT_PROVIDER);
@Autowired @Autowired
public ChatbotEventHandler(SocketIOServer server) { public ChatbotEventHandler(SocketIOServer server) {
this.server = server; this.server = server;
@ -107,14 +112,15 @@ public class ChatbotEventHandler {
if (invite != null) { if (invite != null) {
Chatbot chatbot = getChatbotRes().findOne(invite.getAiid()); Chatbot chatbot = getChatbotRes().findOne(invite.getAiid());
com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot( com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(
chatbot.getClientId(), chatbot.getSecret(), chatbot.getBaseUrl()); chatbot.getClientId(), chatbot.getSecret(), botServiecProvider);
JSONObject details = bot.details();
Response result = bot.command("GET", "/");
// 发送欢迎语 // 发送欢迎语
if (details.has("rc") && if (result.getRc() == 0) {
details.getInt("rc") == 0) {
ChatMessage welcome = new ChatMessage(); 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)) { if (StringUtils.isNotBlank(welcomeTextMessage)) {
welcome.setCalltype(MainContext.CallType.OUT.toString()); welcome.setCalltype(MainContext.CallType.OUT.toString());
welcome.setAppid(appid); welcome.setAppid(appid);