From 9bf6681a6230a893b1b926490b26d86d159924fa Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 17:03:30 +0800 Subject: [PATCH 01/16] =?UTF-8?q?#74=20=E6=94=AF=E6=8C=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=81=8A=E5=A4=A9=E6=9C=BA=E5=99=A8=E4=BA=BA=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cc-chatbot/app/pom.xml | 12 +----- .../com/chatopera/chatbot/ChatbotAPI.java | 8 ++-- .../java/com/chatopera/chatbot/RestAPI.java | 4 -- .../com/chatopera/chatbot/ChatbotAPITest.java | 14 +++---- contact-center/app/pom.xml | 2 +- .../cc/webim/util/chatbot/ChatbotUtils.java | 4 +- .../admin/channel/SNSAccountIMController.java | 4 +- .../api/rest/ApiChatbotController.java | 3 +- .../cc/webim/web/model/SNSAccount.java | 2 + .../Chatopera_cc_v1.postman_collection.json | 39 +++++++++++++++++-- 10 files changed, 54 insertions(+), 38 deletions(-) diff --git a/cc-chatbot/app/pom.xml b/cc-chatbot/app/pom.xml index 64cc275d..09879747 100644 --- a/cc-chatbot/app/pom.xml +++ b/cc-chatbot/app/pom.xml @@ -6,7 +6,7 @@ com.chatopera.chatbot sdk - 1.0.3 + 1.1.0 jar sdk @@ -20,16 +20,6 @@ - - org.slf4j - slf4j-api - 1.7.25 - - - org.slf4j - slf4j-simple - 1.7.25 - org.apache.commons commons-lang3 diff --git a/cc-chatbot/app/src/main/java/com/chatopera/chatbot/ChatbotAPI.java b/cc-chatbot/app/src/main/java/com/chatopera/chatbot/ChatbotAPI.java index 2c1d5494..1a65bea7 100644 --- a/cc-chatbot/app/src/main/java/com/chatopera/chatbot/ChatbotAPI.java +++ b/cc-chatbot/app/src/main/java/com/chatopera/chatbot/ChatbotAPI.java @@ -18,15 +18,12 @@ package com.chatopera.chatbot; import com.mashape.unirest.http.exceptions.UnirestException; import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; public class ChatbotAPI { - private static final Logger logger = LoggerFactory.getLogger(ChatbotAPI.class); private String schema; private String hostname; private int port; @@ -179,6 +176,7 @@ public class ChatbotAPI { * @throws ChatbotAPIRuntimeException */ public boolean updateByChatbotID(final String chatbotID, + final String name, final String description, final String fallback, final String welcome) throws ChatbotAPIRuntimeException { @@ -192,6 +190,8 @@ public class ChatbotAPI { body.put("fallback", fallback); if (StringUtils.isNotBlank(welcome)) body.put("welcome", welcome); + if (StringUtils.isNotBlank(name)) + body.put("name", name); try { JSONObject result = RestAPI.put(this.baseUrl + "/chatbot/" + chatbotID, body, null); @@ -275,8 +275,6 @@ public class ChatbotAPI { body.put("textMessage", textMessage); body.put("isDebug", debug); - logger.info("conversation body {}", body); - try { JSONObject resp = RestAPI.post(this.getBaseUrl() + "/chatbot/" + chatbotID + "/conversation/query", body); return resp; diff --git a/cc-chatbot/app/src/main/java/com/chatopera/chatbot/RestAPI.java b/cc-chatbot/app/src/main/java/com/chatopera/chatbot/RestAPI.java index d85a693c..ee5f7e57 100644 --- a/cc-chatbot/app/src/main/java/com/chatopera/chatbot/RestAPI.java +++ b/cc-chatbot/app/src/main/java/com/chatopera/chatbot/RestAPI.java @@ -22,8 +22,6 @@ import com.mashape.unirest.http.exceptions.UnirestException; import com.mashape.unirest.request.GetRequest; import com.mashape.unirest.request.HttpRequestWithBody; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.HashMap; @@ -31,7 +29,6 @@ import java.util.HashMap; * RestAPI接口 */ public class RestAPI { - private static final Logger logger = LoggerFactory.getLogger(RestAPI.class); /** * patch headers @@ -66,7 +63,6 @@ public class RestAPI { */ public static JSONObject post(final String url, final HashMap body, final HashMap query, HashMap headers) throws UnirestException { HttpRequestWithBody request = Unirest.post(url); - logger.info("post body {}", body.toString()); x(headers); HttpResponse resp = request .headers(headers) diff --git a/cc-chatbot/app/src/test/java/com/chatopera/chatbot/ChatbotAPITest.java b/cc-chatbot/app/src/test/java/com/chatopera/chatbot/ChatbotAPITest.java index 7dfb4ec6..303ed688 100644 --- a/cc-chatbot/app/src/test/java/com/chatopera/chatbot/ChatbotAPITest.java +++ b/cc-chatbot/app/src/test/java/com/chatopera/chatbot/ChatbotAPITest.java @@ -19,8 +19,6 @@ import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.net.MalformedURLException; @@ -29,7 +27,6 @@ import java.net.MalformedURLException; */ public class ChatbotAPITest extends TestCase { - private static final Logger logger = LoggerFactory.getLogger(ChatbotAPITest.class); private ChatbotAPI cb; /** @@ -62,7 +59,7 @@ public class ChatbotAPITest public void testGetChatbot() { try { JSONObject resp = this.cb.getChatbot("co_bot_1"); - logger.info("[testGetChatbot] {}", resp.toString()); + System.out.println("[testGetChatbot] " + resp.toString()); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); } @@ -71,7 +68,7 @@ public class ChatbotAPITest public void testGetChatbots() { try { JSONObject resp = this.cb.getChatbots("name chatbotID", null, 0, 10); - logger.info("[testGetChatbots] resp {}", resp.toString()); + System.out.println("[testGetChatbots] resp " + resp.toString()); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); } @@ -80,7 +77,7 @@ public class ChatbotAPITest public void testConversation() { try { JSONObject resp = this.cb.conversation("co_bot_1", "sdktest", "华夏春松在哪里", false); - logger.info("[testConversation] resp {}", resp.toString()); + System.out.println("[testConversation] resp " + resp.toString()); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); } @@ -89,7 +86,7 @@ public class ChatbotAPITest public void testFaq() { try { JSONObject resp = this.cb.faq("co_bot_1", "sdktest", "华夏春松在哪里", false); - logger.info("[testFaq] resp {}", resp.toString()); + System.out.print("[testFaq] resp " + resp.toString()); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); } @@ -98,7 +95,7 @@ public class ChatbotAPITest public void testParseUrl() { try { ChatbotAPI c = new ChatbotAPI("https://local:8000/"); - logger.info("chatbot baseUrl {}", c.getBaseUrl()); + System.out.println("chatbot baseUrl " + c.getBaseUrl()); assertEquals("https://local:8000/api/v1", c.getBaseUrl()); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); @@ -124,7 +121,6 @@ public class ChatbotAPITest "我不了解。", "小云机器人", "你好,我是小云。"); - logger.info("[testCreateBot] {}", j); } catch (ChatbotAPIRuntimeException e) { e.printStackTrace(); } diff --git a/contact-center/app/pom.xml b/contact-center/app/pom.xml index 8c5efd09..e21195a8 100644 --- a/contact-center/app/pom.xml +++ b/contact-center/app/pom.xml @@ -312,7 +312,7 @@ com.chatopera.chatbot sdk - 1.0.3 + 1.1.0 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java index 29d54a16..955823a2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java @@ -32,7 +32,7 @@ public class ChatbotUtils { * @return */ public static String resolveChatbotIDWithSnsid(String snsid, String clientId) { - return clientId + "_" + snsid; + return (clientId + "_" + snsid).toLowerCase(); } /** @@ -42,6 +42,6 @@ public class ChatbotUtils { * @return */ public static String resolveSnsidWithChatbotID(String chatbotID, String clientId) { - return StringUtils.remove(chatbotID, clientId + "_"); + return StringUtils.remove(chatbotID, clientId.toLowerCase() + "_"); } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java index 57e7defb..61ab1da0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java @@ -50,7 +50,7 @@ import com.chatopera.cc.webim.web.model.Secret; @Controller @RequestMapping("/admin/im") public class SNSAccountIMController extends Handler{ - + @Autowired private SNSAccountRepository snsAccountRes; @@ -84,7 +84,7 @@ public class SNSAccountIMController extends Handler{ @Menu(type = "admin" , subtype = "weixin") public ModelAndView save(HttpServletRequest request ,@Valid SNSAccount snsAccount) throws NoSuchAlgorithmException { if(!StringUtils.isBlank(snsAccount.getBaseURL())){ - snsAccount.setSnsid(Base62.encode(snsAccount.getBaseURL())); + snsAccount.setSnsid(Base62.encode(snsAccount.getBaseURL()).toLowerCase()); int count = snsAccountRes.countBySnsidAndOrgi(snsAccount.getSnsid() , super.getOrgi(request)) ; if(count == 0){ snsAccount.setOrgi(super.getOrgi(request)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index 12c8d2c3..9bf0947c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -148,12 +148,13 @@ public class ApiChatbotController extends Handler { String description = j.has("description") ? j.get("description").getAsString() : null; String fallback = j.has("fallback") ? j.get("fallback").getAsString() : null; String welcome = j.has("welcome") ? j.get("welcome").getAsString() : null; + String name = j.has("name") ? j.get("name").getAsString() : null; if (StringUtils.isNotBlank(description) || StringUtils.isNotBlank(fallback) || StringUtils.isNotBlank(welcome)) { try { - if (c.getApi().updateByChatbotID(c.getChatbotID(), description, fallback, welcome)) { + if (c.getApi().updateByChatbotID(c.getChatbotID(), name, description, fallback, welcome)) { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_DATA, "更新成功。"); } else { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java index eb6cfb43..4a2ef9ba 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java @@ -33,6 +33,8 @@ import org.hibernate.annotations.GenericGenerator; @org.hibernate.annotations.Proxy(lazy = false) public class SNSAccount{ private String id ; + + @Column(unique=true) private String snsid ; //表示 SNSAccount private String name ; private String code ; diff --git a/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json b/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json index 546f257e..e97b8f47 100644 --- a/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json +++ b/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json @@ -533,7 +533,7 @@ "header": [ { "key": "authorization", - "value": "00bf99785103475c896435ef7216ebd1" + "value": "b641622ea4c54f1e9e45520e7fed266b" }, { "key": "Content-Type", @@ -542,7 +542,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"ops\": \"create\",\n \"primaryLanguage\": \"zh_CN\",\n \"snsid\": \"104EAc\",\n \"name\": \"小C\",\n \"baseUrl\": \"http://lhc-dev:8003\",\n \"description\": \"描述\",\n \"fallback\": \"我不理解。\",\n \"welcome\": \"你好\",\n \"workmode\": \"客服机器人优先\"\n}" + "raw": "{\n \"ops\": \"create\",\n \"primaryLanguage\": \"zh_CN\",\n \"snsid\": \"104eac\",\n \"name\": \"小C\",\n \"baseUrl\": \"http://lhc-dev:8003\",\n \"description\": \"描述\",\n \"fallback\": \"我不理解。\",\n \"welcome\": \"你好\",\n \"workmode\": \"客服机器人优先\"\n}" }, "url": { "raw": "http://{{IP}}:{{PORT}}/api/chatbot", @@ -566,7 +566,7 @@ "header": [ { "key": "authorization", - "value": "8b9567161da54400b994f141d119100b" + "value": "869c0e6dfd44421cabea7934d6fde218" }, { "key": "Content-Type", @@ -591,6 +591,39 @@ } }, "response": [] + }, + { + "name": "机器人客服:更新", + "request": { + "method": "POST", + "header": [ + { + "key": "authorization", + "value": "b641622ea4c54f1e9e45520e7fed266b" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"ops\": \"update\",\n \"id\": \"54509c828fcd4d0e9709a975a04bf190\",\n \"workmode\": \"\",\n \"enabled\": false,\n \"description\": \"描述\",\n \"fallback\": \"我不知道。\",\n \"welcome\": \"你好!\",\n \"name\": \"cc\"\n}" + }, + "url": { + "raw": "http://{{IP}}:{{PORT}}/api/chatbot", + "protocol": "http", + "host": [ + "{{IP}}" + ], + "port": "{{PORT}}", + "path": [ + "api", + "chatbot" + ] + } + }, + "response": [] } ], "event": [ From e042e1c6cd8c7a844fb273474aa9a84d8385283c Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 17:22:50 +0800 Subject: [PATCH 02/16] =?UTF-8?q?#74=20=E6=94=AF=E6=8C=81=E5=90=AF?= =?UTF-8?q?=E7=94=A8/=E7=A6=81=E7=94=A8=E5=AE=A2=E6=9C=8D=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/rest/ApiChatbotController.java | 55 ++++++++++++++++++- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index 9bf0947c..2aa6899f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -106,6 +106,12 @@ public class ApiChatbotController extends Handler { case "update": json = update(j); break; + case "enable": + json = enable(j, true); + break; + case "disable": + json = enable(j, false); + break; default: json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_2); json.addProperty(RestUtils.RESP_KEY_ERROR, "不合法的操作。"); @@ -114,6 +120,49 @@ public class ApiChatbotController extends Handler { return new ResponseEntity(json.toString(), headers, HttpStatus.OK); } + /** + * Enable Chatbot + * + * @param j + * @return + */ + private JsonObject enable(JsonObject j, boolean isEnabled) { + JsonObject resp = new JsonObject(); + if ((!j.has("id")) || StringUtils.isBlank(j.get("id").getAsString())) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_3); + resp.addProperty(RestUtils.RESP_KEY_ERROR, "不合法的操作,id不能为空。"); + return resp; + } + + final String id = j.get("id").getAsString(); + Chatbot c = chatbotRes.findOne(id); + + if (c == null) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_4); + resp.addProperty(RestUtils.RESP_KEY_ERROR, "该聊天机器人不存在。"); + return resp; + } + + try { + if (c.getApi().exists(c.getChatbotID())) { + c.setEnabled(isEnabled); + chatbotRes.save(c); + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); + resp.addProperty(RestUtils.RESP_KEY_DATA, "完成。"); + } else { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_7); + resp.addProperty(RestUtils.RESP_KEY_ERROR, "智能问答引擎不存在该聊天机器人,未能正确设置。"); + } + } catch (ChatbotAPIRuntimeException e) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_5); + resp.addProperty(RestUtils.RESP_KEY_DATA, "设置不成功,智能问答引擎服务异常。"); + } catch (MalformedURLException e) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); + resp.addProperty(RestUtils.RESP_KEY_DATA, "设置不成功,智能问答引擎地址不合法。"); + } + return resp; + } + /** * 更新聊天机器人 * @@ -173,13 +222,13 @@ public class ApiChatbotController extends Handler { } } - if(StringUtils.isNotBlank(description)) + if (StringUtils.isNotBlank(description)) c.setDescription(description); - if(StringUtils.isNotBlank(fallback)) + if (StringUtils.isNotBlank(fallback)) c.setFallback(fallback); - if(StringUtils.isNotBlank(welcome)) + if (StringUtils.isNotBlank(welcome)) c.setWelcome(welcome); c.setUpdatetime(new Date()); From 45bf5d6333f9a236626ed0d38b5d61835007ef3d Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 19:30:44 +0800 Subject: [PATCH 03/16] =?UTF-8?q?#75=20=E8=AE=BE=E7=BD=AE=E7=BD=91?= =?UTF-8?q?=E7=AB=99=E9=85=8D=E7=BD=AE=E7=9A=84=E8=81=8A=E5=A4=A9=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E5=85=B3=E8=81=94=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/chatopera/cc/webim/Application.java | 1 + .../cc/webim/util/chatbot/ChatbotUtils.java | 6 +- .../api/rest/ApiChatbotController.java | 66 +- .../handler/apps/internet/IMController.java | 1389 +++++++++-------- .../resources/templates/apps/im/point.html | 9 +- 5 files changed, 756 insertions(+), 715 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java index f7a1c9ed..72e53f08 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java @@ -58,6 +58,7 @@ public class Application { static{ UKDataContext.model.put("contacts", true) ; UKDataContext.model.put("sales", true); + UKDataContext.model.put("chatbot", true); } /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java index 955823a2..79a3ca2c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java @@ -22,9 +22,13 @@ import java.util.HashSet; public class ChatbotUtils { public static final HashSet VALID_LANGS = new HashSet(Arrays.asList(new String[]{"zh_CN", "en_US"})); - public static final HashSet VALID_WORKMODELS = new HashSet(Arrays.asList(new String[]{"客服机器人优先", "人工客服优先"})); + public static final String CHATBOT_FIRST = "客服机器人优先"; + public static final String HUMAN_FIRST = "人工客服优先"; + public static final HashSet VALID_WORKMODELS = new HashSet(Arrays.asList(new String[]{CHATBOT_FIRST, HUMAN_FIRST})); + public static final String SNS_TYPE_WEBIM = "webim"; + /** * 使用snsid得到ChatbotID * diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index 2aa6899f..c2d96a0b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -18,14 +18,13 @@ package com.chatopera.cc.webim.web.handler.api.rest; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.exception.CallOutRecordException; -import com.chatopera.cc.webim.service.repository.ChatbotRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; +import com.chatopera.cc.webim.service.repository.*; +import com.chatopera.cc.webim.util.OnlineUserUtils; import com.chatopera.cc.webim.util.chatbot.ChatbotUtils; import com.chatopera.cc.webim.web.handler.Handler; import com.chatopera.cc.webim.web.handler.api.request.RestUtils; import com.chatopera.cc.webim.web.model.Chatbot; +import com.chatopera.cc.webim.web.model.CousultInvite; import com.chatopera.cc.webim.web.model.Organ; import com.chatopera.cc.webim.web.model.User; import com.chatopera.chatbot.ChatbotAPI; @@ -79,6 +78,9 @@ public class ApiChatbotController extends Handler { @Autowired private OrganRepository organRes; + @Autowired + private ConsultInviteRepository consultInviteRes; + @RequestMapping(method = RequestMethod.POST) @Menu(type = "apps", subtype = "chatbot", access = true) @ApiOperation("聊天机器人") @@ -147,6 +149,12 @@ public class ApiChatbotController extends Handler { if (c.getApi().exists(c.getChatbotID())) { c.setEnabled(isEnabled); chatbotRes.save(c); + + // 更新访客网站配置 + CousultInvite invite = OnlineUserUtils.cousult(c.getSnsAccountIdentifier(), c.getOrgi(), consultInviteRes); + invite.setAi(isEnabled); + consultInviteRes.save(invite); + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_DATA, "完成。"); } else { @@ -186,12 +194,12 @@ public class ApiChatbotController extends Handler { return resp; } + // 更新访客网站配置 + CousultInvite invite = OnlineUserUtils.cousult(c.getSnsAccountIdentifier(), c.getOrgi(), consultInviteRes); + if (j.has("workmode") && ChatbotUtils.VALID_WORKMODELS.contains(j.get("workmode").getAsString())) { c.setWorkmode(j.get("workmode").getAsString()); - } - - if (j.has("enabled")) { - c.setEnabled(j.get("enabled").getAsBoolean()); + invite.setAifirst(StringUtils.equals(ChatbotUtils.CHATBOT_FIRST, c.getWorkmode())); } String description = j.has("description") ? j.get("description").getAsString() : null; @@ -199,6 +207,13 @@ public class ApiChatbotController extends Handler { String welcome = j.has("welcome") ? j.get("welcome").getAsString() : null; String name = j.has("name") ? j.get("name").getAsString() : null; + + if (j.has("enabled")) { + boolean enabled = j.get("enabled").getAsBoolean(); + c.setEnabled(enabled); + invite.setAi(enabled); + } + if (StringUtils.isNotBlank(description) || StringUtils.isNotBlank(fallback) || StringUtils.isNotBlank(welcome)) { @@ -228,11 +243,19 @@ public class ApiChatbotController extends Handler { if (StringUtils.isNotBlank(fallback)) c.setFallback(fallback); - if (StringUtils.isNotBlank(welcome)) + if (StringUtils.isNotBlank(welcome)) { c.setWelcome(welcome); + invite.setAimsg(welcome); + } + + if (StringUtils.isNotBlank(name)) { + c.setName(name); + invite.setAiname(name); + } c.setUpdatetime(new Date()); chatbotRes.save(c); + consultInviteRes.save(invite); return resp; } @@ -328,6 +351,16 @@ public class ApiChatbotController extends Handler { try { if (c.getApi().deleteByChatbotID(c.getChatbotID())) { + // 更新访客网站配置 + CousultInvite invite = OnlineUserUtils.cousult(c.getSnsAccountIdentifier(), c.getOrgi(), consultInviteRes); + if (invite != null) { + invite.setAi(false); + invite.setAiname(null); + invite.setAimsg(null); + invite.setAifirst(false); + invite.setAiid(null); + consultInviteRes.save(invite); + } chatbotRes.delete(c); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_DATA, "删除成功。"); @@ -464,9 +497,6 @@ public class ApiChatbotController extends Handler { c.setPrimaryLanguage(primaryLanguage); c.setName(name); c.setWelcome(result.getJSONObject("data").getString("welcome")); - - // 默认不开启 - c.setEnabled(false); c.setCreater(creater); c.setOrgan(organ); c.setOrgi(orgi); @@ -477,6 +507,18 @@ public class ApiChatbotController extends Handler { c.setUpdatetime(dt); c.setWorkmode(workmode); + // 默认不开启 + boolean enabled = false; + c.setEnabled(enabled); + + // 更新访客网站配置 + CousultInvite invite = OnlineUserUtils.cousult(c.getSnsAccountIdentifier(), c.getOrgi(), consultInviteRes); + invite.setAi(enabled); + invite.setAifirst(StringUtils.equals(ChatbotUtils.CHATBOT_FIRST, workmode)); + invite.setAiid(c.getId()); + invite.setAiname(c.getName()); + invite.setAimsg(c.getWelcome()); + consultInviteRes.save(invite); chatbotRes.save(c); JsonObject data = new JsonObject(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java index 68b345e0..c4546a07 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java @@ -17,27 +17,18 @@ package com.chatopera.cc.webim.web.handler.apps.internet; -import java.io.File; -import java.io.IOException; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.util.Date; -import java.util.List; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; - import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.util.*; import com.chatopera.cc.util.extra.DataExchangeInterface; import com.chatopera.cc.util.webim.WebIMClient; import com.chatopera.cc.webim.service.acd.ServiceQuene; import com.chatopera.cc.webim.service.cache.CacheHelper; import com.chatopera.cc.webim.service.es.ContactsRepository; +import com.chatopera.cc.webim.service.repository.*; import com.chatopera.cc.webim.util.MessageUtils; import com.chatopera.cc.webim.util.OnlineUserUtils; import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.webim.web.model.*; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -56,214 +47,198 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import com.chatopera.cc.util.BrowserClient; -import com.chatopera.cc.util.CheckMobile; -import com.chatopera.cc.util.IP; -import com.chatopera.cc.util.IPTools; -import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AgentServiceSatisRepository; -import com.chatopera.cc.webim.service.repository.AgentUserContactsRepository; -import com.chatopera.cc.webim.service.repository.AttachmentRepository; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.InviteRecordRepository; -import com.chatopera.cc.webim.service.repository.LeaveMsgRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.web.model.AgentReport; -import com.chatopera.cc.webim.web.model.AgentServiceSatis; -import com.chatopera.cc.webim.web.model.AgentUserContacts; -import com.chatopera.cc.webim.web.model.AiConfig; -import com.chatopera.cc.webim.web.model.AttachmentFile; -import com.chatopera.cc.webim.web.model.BlackEntity; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.InviteRecord; -import com.chatopera.cc.webim.web.model.KnowledgeType; -import com.chatopera.cc.webim.web.model.LeaveMsg; -import com.chatopera.cc.webim.web.model.SNSAccount; -import com.chatopera.cc.webim.web.model.SessionConfig; -import com.chatopera.cc.webim.web.model.SystemConfig; -import com.chatopera.cc.webim.web.model.Topic; -import com.chatopera.cc.webim.web.model.UKeFuDic; -import com.chatopera.cc.webim.web.model.UploadStatus; -import com.chatopera.cc.webim.web.model.User; -import com.chatopera.cc.webim.web.model.UserHistory; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.File; +import java.io.IOException; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.Date; +import java.util.List; @Controller @RequestMapping("/im") @EnableAsync public class IMController extends Handler { - - @Value("${uk.im.server.host}") - private String host; - - @Value("${uk.im.server.port}") - private Integer port; + + @Value("${uk.im.server.host}") + private String host; + + @Value("${uk.im.server.port}") + private Integer port; @Value("${cs.im.server.ssl.port}") private Integer sslPort; @Value("${web.upload-path}") private String path; - - @Autowired - private ConsultInviteRepository inviteRepository; - - @Autowired - private ChatMessageRepository chatMessageRes ; - - @Autowired - private AgentServiceSatisRepository agentServiceSatisRes ; - - @Autowired - private InviteRecordRepository inviteRecordRes ; - - @Autowired - private LeaveMsgRepository leaveMsgRes ; - - @Autowired - private AttachmentRepository attachementRes; - - @Autowired - private ContactsRepository contactsRes ; - - @Autowired - private AgentUserContactsRepository agentUserContactsRes ; - - @Autowired - private SNSAccountRepository snsAccountRepository ; - + @Autowired + private ConsultInviteRepository inviteRepository; + + @Autowired + private ChatMessageRepository chatMessageRes; + + @Autowired + private AgentServiceSatisRepository agentServiceSatisRes; + + @Autowired + private InviteRecordRepository inviteRecordRes; + + @Autowired + private LeaveMsgRepository leaveMsgRes; + + + @Autowired + private AttachmentRepository attachementRes; + + @Autowired + private ContactsRepository contactsRes; + + @Autowired + private AgentUserContactsRepository agentUserContactsRes; + + @Autowired + private SNSAccountRepository snsAccountRepository; + @RequestMapping("/{id}") - @Menu(type = "im" , subtype = "point" , access = true) - public ModelAndView point(HttpServletRequest request , HttpServletResponse response, @PathVariable String id , @Valid String orgi , @Valid String userid , @Valid String title, @Valid String aiid) { - ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/point")) ; - String sessionid = request.getSession().getId() ; - if(!StringUtils.isBlank(id)){ - view.addObject("hostname", request.getServerName()) ; - - SystemConfig systemConfig = UKTools.getSystemConfig(); - if(systemConfig!=null && systemConfig.isEnablessl()) { - view.addObject("schema","https") ; - if(request.getServerPort() == 80) { - view.addObject("port", 443) ; - }else { - view.addObject("port", request.getServerPort()) ; - } - }else { - view.addObject("schema",request.getScheme()) ; - view.addObject("port", request.getServerPort()) ; - } - view.addObject("appid", id) ; - - - view.addObject("client", UKTools.getUUID()) ; - view.addObject("sessionid", sessionid) ; - - view.addObject("ip", UKTools.md5(request.getRemoteAddr())) ; - - view.addObject("mobile", CheckMobile.check(request.getHeader("User-Agent"))) ; - - - CousultInvite invite = OnlineUserUtils.cousult(id,orgi, inviteRepository); - if(invite!=null){ - orgi = invite.getOrgi() ; - view.addObject("inviteData", invite); - view.addObject("orgi",invite.getOrgi()); - view.addObject("appid",id); - - if(!StringUtils.isBlank(aiid)) { - view.addObject("aiid", aiid) ; - }else if(!StringUtils.isBlank(invite.getAiid())){ - view.addObject("aiid", invite.getAiid()) ; - } - //记录用户行为日志 - UserHistory userHistory = new UserHistory() ; - String url = request.getHeader("referer"); - if(!StringUtils.isBlank(url)){ - if(url.length() >255){ - userHistory.setUrl(url.substring( 0 , 255)); - }else{ - userHistory.setUrl(url); - } - userHistory.setReferer(userHistory.getUrl()); - } - userHistory.setParam(UKTools.getParameter(request)); - if(userHistory!=null){ - userHistory.setMaintype("im"); - userHistory.setSubtype("point"); - userHistory.setName("online"); - userHistory.setAdmin(false); - userHistory.setAccessnum(true); - } - User imUser = super.getIMUser(request , userid, null) ; - if(imUser!=null){ - userHistory.setCreater(imUser.getId()); - userHistory.setUsername(imUser.getUsername()); - userHistory.setOrgi(orgi); - } - if(!StringUtils.isBlank(title)){ - if(title.length() > 255){ - userHistory.setTitle(title.substring(0 , 255)); - }else{ - userHistory.setTitle(title); - } - } - userHistory.setOrgi(invite.getOrgi()); - userHistory.setAppid(id); - userHistory.setSessionid(sessionid); - - String ip = UKTools.getIpAddr(request); - userHistory.setHostname(ip); - userHistory.setIp(ip); - IP ipdata = IPTools.getInstance().findGeography(ip); - userHistory.setCountry(ipdata.getCountry()); - userHistory.setProvince(ipdata.getProvince()); - userHistory.setCity(ipdata.getCity()); - userHistory.setIsp(ipdata.getIsp()); - - BrowserClient client = UKTools.parseClient(request) ; - userHistory.setOstype(client.getOs()); - userHistory.setBrowser(client.getBrowser()); - userHistory.setMobile(CheckMobile.check(request.getHeader("User-Agent")) ? "1" : "0"); - - if(invite.isSkill()){ - /*** - * 查询 技能组 , 缓存? - */ - view.addObject("skillList", OnlineUserUtils.organ(orgi, ipdata , invite,true)) ; - /** - * 查询坐席 , 缓存? - */ - view.addObject("agentList", OnlineUserUtils.agents(orgi,true)) ; - } - view.addObject("traceid", userHistory.getId()) ; - if(invite.isRecordhis()){ - UKTools.published(userHistory); - } - - view.addObject("pointAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.POINT.toString(),orgi)) ; - view.addObject("inviteAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.INVITE.toString(),orgi)) ; - } - } - + @Menu(type = "im", subtype = "point", access = true) + public ModelAndView point(HttpServletRequest request, HttpServletResponse response, + @PathVariable String id, + @Valid String orgi, + @Valid String userid, + @Valid String title, + @Valid String aiid) { + ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/point")); + String sessionid = request.getSession().getId(); + if (!StringUtils.isBlank(id)) { + view.addObject("hostname", request.getServerName()); + + SystemConfig systemConfig = UKTools.getSystemConfig(); + if (systemConfig != null && systemConfig.isEnablessl()) { + view.addObject("schema", "https"); + if (request.getServerPort() == 80) { + view.addObject("port", 443); + } else { + view.addObject("port", request.getServerPort()); + } + } else { + view.addObject("schema", request.getScheme()); + view.addObject("port", request.getServerPort()); + } + view.addObject("appid", id); + + + view.addObject("client", UKTools.getUUID()); + view.addObject("sessionid", sessionid); + + view.addObject("ip", UKTools.md5(request.getRemoteAddr())); + + view.addObject("mobile", CheckMobile.check(request.getHeader("User-Agent"))); + + CousultInvite invite = OnlineUserUtils.cousult(id, orgi, inviteRepository); + if (invite != null) { + orgi = invite.getOrgi(); + view.addObject("inviteData", invite); + view.addObject("orgi", invite.getOrgi()); + view.addObject("appid", id); + + if (!StringUtils.isBlank(aiid)) { + view.addObject("aiid", aiid); + } else if (!StringUtils.isBlank(invite.getAiid())) { + view.addObject("aiid", invite.getAiid()); + } + //记录用户行为日志 + UserHistory userHistory = new UserHistory(); + String url = request.getHeader("referer"); + if (!StringUtils.isBlank(url)) { + if (url.length() > 255) { + userHistory.setUrl(url.substring(0, 255)); + } else { + userHistory.setUrl(url); + } + userHistory.setReferer(userHistory.getUrl()); + } + userHistory.setParam(UKTools.getParameter(request)); + if (userHistory != null) { + userHistory.setMaintype("im"); + userHistory.setSubtype("point"); + userHistory.setName("online"); + userHistory.setAdmin(false); + userHistory.setAccessnum(true); + } + User imUser = super.getIMUser(request, userid, null); + if (imUser != null) { + userHistory.setCreater(imUser.getId()); + userHistory.setUsername(imUser.getUsername()); + userHistory.setOrgi(orgi); + } + if (!StringUtils.isBlank(title)) { + if (title.length() > 255) { + userHistory.setTitle(title.substring(0, 255)); + } else { + userHistory.setTitle(title); + } + } + userHistory.setOrgi(invite.getOrgi()); + userHistory.setAppid(id); + userHistory.setSessionid(sessionid); + + String ip = UKTools.getIpAddr(request); + userHistory.setHostname(ip); + userHistory.setIp(ip); + IP ipdata = IPTools.getInstance().findGeography(ip); + userHistory.setCountry(ipdata.getCountry()); + userHistory.setProvince(ipdata.getProvince()); + userHistory.setCity(ipdata.getCity()); + userHistory.setIsp(ipdata.getIsp()); + + BrowserClient client = UKTools.parseClient(request); + userHistory.setOstype(client.getOs()); + userHistory.setBrowser(client.getBrowser()); + userHistory.setMobile(CheckMobile.check(request.getHeader("User-Agent")) ? "1" : "0"); + + if (invite.isSkill()) { + /*** + * 查询 技能组 , 缓存? + */ + view.addObject("skillList", OnlineUserUtils.organ(orgi, ipdata, invite, true)); + /** + * 查询坐席 , 缓存? + */ + view.addObject("agentList", OnlineUserUtils.agents(orgi, true)); + } + view.addObject("traceid", userHistory.getId()); + if (invite.isRecordhis()) { + UKTools.published(userHistory); + } + + view.addObject("pointAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.POINT.toString(), orgi)); + view.addObject("inviteAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.INVITE.toString(), orgi)); + } + } + return view; } - + @RequestMapping("/{id}/userlist") - @Menu(type = "im" , subtype = "inlist" , access = true) - public void inlist(HttpServletRequest request , HttpServletResponse response, @PathVariable String id , @Valid String userid) throws IOException { - response.setHeader("Content-Type", "text/html;charset=utf-8"); - if(!StringUtils.isBlank(userid)){ - BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI) ; - if((black != null && (black.getEndtime()==null || black.getEndtime().after(new Date()))) ){ - response.getWriter().write("in");; - } - } + @Menu(type = "im", subtype = "inlist", access = true) + public void inlist(HttpServletRequest request, HttpServletResponse response, @PathVariable String id, @Valid String userid) throws IOException { + response.setHeader("Content-Type", "text/html;charset=utf-8"); + if (!StringUtils.isBlank(userid)) { + BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); + if ((black != null && (black.getEndtime() == null || black.getEndtime().after(new Date())))) { + response.getWriter().write("in"); + ; + } + } } + /** * 延时获取用户端浏览器的跟踪ID + * * @param request * @param response * @param orgi @@ -273,519 +248,545 @@ public class IMController extends Handler { * @return */ @RequestMapping("/online") - @Menu(type = "im" , subtype = "online" , access = true) - public SseEmitter callable(HttpServletRequest request , HttpServletResponse response , @Valid Contacts contacts, final @Valid String orgi , final @Valid String sessionid, @Valid String appid, final @Valid String userid , @Valid String sign , final @Valid String client, final @Valid String title, final @Valid String traceid) { - BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi) ; - SseEmitter retSseEmitter = null ; - if((black == null || (black.getEndtime()!=null && black.getEndtime().before(new Date()))) ){ - final SseEmitter emitter = new SseEmitter(30000L); - if(CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi) == null){ - if(!StringUtils.isBlank(userid)){ - emitter.onCompletion(new Runnable() { - @Override - public void run() { - try { - OnlineUserUtils.webIMClients.removeClient(userid , client , false) ; //执行了 邀请/再次邀请后终端的 - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - emitter.onTimeout(new Runnable() { - @Override - public void run() { - try { - if(emitter!=null){ - emitter.complete(); - } - OnlineUserUtils.webIMClients.removeClient(userid , client , true) ; //正常的超时断开 - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); - if(invite!=null && invite.isTraceuser()){ - contacts = processContacts(orgi, contacts, appid, userid); - } - if(!StringUtils.isBlank(sign)){ - OnlineUserUtils.online(super.getIMUser(request , sign , contacts!=null ? contacts.getName() : null) , orgi , sessionid , UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), request , UKDataContext.ChannelTypeEnum.WEBIM.toString() , appid , contacts , invite); - } - - OnlineUserUtils.webIMClients.putClient(userid, new WebIMClient(userid , client , emitter)) ; - } - } - retSseEmitter = emitter ; - } - return retSseEmitter; - } - - @RequestMapping("/index") - @Menu(type = "im" , subtype = "index" , access = true) - public ModelAndView index(ModelMap map ,HttpServletRequest request , HttpServletResponse response, @Valid String orgi, @Valid String aiid, @Valid String traceid ,@Valid String exchange, @Valid String title ,@Valid String url,@Valid String mobile ,@Valid String phone , @Valid String ai , @Valid String client , @Valid String type, @Valid String appid, @Valid String userid, @Valid String sessionid , @Valid String skill, @Valid String agent , @Valid Contacts contacts,@Valid String product,@Valid String description,@Valid String imgurl,@Valid String pid,@Valid String purl) throws Exception { - ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/index")) ; - BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI) ; - if(!StringUtils.isBlank(appid) && (black == null || (black.getEndtime()!=null && black.getEndtime().before(new Date()))) ){ - CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); - String userID = null; - if(!StringUtils.isBlank(userid)){ - userID = UKTools.genIDByKey(userid) ; - }else{ - userID = UKTools.genIDByKey(sessionid); - } - String nickname = "Guest_" + userID; - boolean consult = true ; //是否已收集用户信息 - SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi) ; - - map.addAttribute("sessionConfig", sessionConfig); - - - map.addAttribute("hostname", request.getServerName()) ; + @Menu(type = "im", subtype = "online", access = true) + public SseEmitter callable(HttpServletRequest request, HttpServletResponse response, @Valid Contacts contacts, final @Valid String orgi, final @Valid String sessionid, @Valid String appid, final @Valid String userid, @Valid String sign, final @Valid String client, final @Valid String title, final @Valid String traceid) { + BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi); + SseEmitter retSseEmitter = null; + if ((black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { + final SseEmitter emitter = new SseEmitter(30000L); + if (CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi) == null) { + if (!StringUtils.isBlank(userid)) { + emitter.onCompletion(new Runnable() { + @Override + public void run() { + try { + OnlineUserUtils.webIMClients.removeClient(userid, client, false); //执行了 邀请/再次邀请后终端的 + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + emitter.onTimeout(new Runnable() { + @Override + public void run() { + try { + if (emitter != null) { + emitter.complete(); + } + OnlineUserUtils.webIMClients.removeClient(userid, client, true); //正常的超时断开 + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); + if (invite != null && invite.isTraceuser()) { + contacts = processContacts(orgi, contacts, appid, userid); + } + if (!StringUtils.isBlank(sign)) { + OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), orgi, sessionid, UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), request, UKDataContext.ChannelTypeEnum.WEBIM.toString(), appid, contacts, invite); + } - if(sslPort != null){ - map.addAttribute("port", sslPort) ; + OnlineUserUtils.webIMClients.putClient(userid, new WebIMClient(userid, client, emitter)); + } + } + retSseEmitter = emitter; + } + return retSseEmitter; + } + + @RequestMapping("/index") + @Menu(type = "im", subtype = "index", access = true) + public ModelAndView index(ModelMap map, HttpServletRequest request, + HttpServletResponse response, + @Valid String orgi, + @Valid String aiid, + @Valid String traceid, + @Valid String exchange, + @Valid String title, + @Valid String url, + @Valid String mobile, + @Valid String phone, + @Valid String ai, + @Valid String client, + @Valid String type, + @Valid String appid, + @Valid String userid, + @Valid String sessionid, + @Valid String skill, + @Valid String agent, + @Valid Contacts contacts, + @Valid String product, + @Valid String description, + @Valid String imgurl, + @Valid String pid, + @Valid String purl) throws Exception { + ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/index")); + BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); + if (!StringUtils.isBlank(appid) && (black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); + String userID = null; + if (!StringUtils.isBlank(userid)) { + userID = UKTools.genIDByKey(userid); } else { - map.addAttribute("port", port); + userID = UKTools.genIDByKey(sessionid); + } + String nickname = "Guest_" + userID; + boolean consult = true; //是否已收集用户信息 + SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); + + map.addAttribute("sessionConfig", sessionConfig); + + + map.addAttribute("hostname", request.getServerName()); + + if (sslPort != null) { + map.addAttribute("port", sslPort); + } else { + map.addAttribute("port", port); } - map.addAttribute("appid", appid) ; - map.addAttribute("userid", userid) ; - map.addAttribute("schema", request.getScheme()) ; - map.addAttribute("sessionid", sessionid) ; - - view.addObject("product", product) ; - view.addObject("description", description) ; - view.addObject("imgurl", imgurl) ; - view.addObject("pid", pid) ; - view.addObject("purl", purl) ; - - map.addAttribute("ip", UKTools.md5(request.getRemoteAddr())) ; - - if(!StringUtils.isBlank(traceid)){ - map.addAttribute("traceid", traceid) ; - } - if(!StringUtils.isBlank(exchange)){ - map.addAttribute("exchange", exchange) ; - } - if(!StringUtils.isBlank(title)){ - map.addAttribute("title", title) ; - } - if(!StringUtils.isBlank(traceid)){ - map.addAttribute("url", url) ; - } - - map.addAttribute("ukefport", request.getServerPort()) ; - /** - * 先检查 invite不为空 - */ - if(invite!=null) { - map.addAttribute("orgi",invite.getOrgi()); - map.addAttribute("inviteData", invite); - - if(!StringUtils.isBlank(aiid)) { - map.addAttribute("aiid", aiid) ; - }else if(!StringUtils.isBlank(invite.getAiid())){ - map.addAttribute("aiid", invite.getAiid()) ; - } - - AgentReport report = ServiceQuene.getAgentReport(invite.getOrgi()) ; - - if(report.getAgents() ==0 || (sessionConfig.isHourcheck() && !UKTools.isInWorkingHours(sessionConfig.getWorkinghours()) && invite.isLeavemessage())){ - view = request(super.createRequestPageTempletResponse("/apps/im/leavemsg")) ; - }else if(invite.isConsult_info()){ //启用了信息收集 , 从Request获取 , 或从 Cookies 里去 - //验证 OnlineUser 信息 - if(contacts!=null && !StringUtils.isBlank(contacts.getName())){ //contacts用于传递信息,并不和 联系人表发生 关联,contacts信息传递给 Socket.IO,然后赋值给 AgentUser,最终赋值给 AgentService永久存储 - consult = true ; - //存入 Cookies - if(invite.isConsult_info_cookies()){ - Cookie name = new Cookie("name",UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); - response.addCookie(name); - name.setMaxAge(3600); - if(!StringUtils.isBlank(contacts.getPhone())){ - Cookie phonecookie = new Cookie("phone",UKTools.encryption(URLEncoder.encode(contacts.getPhone(), "UTF-8"))); - phonecookie.setMaxAge(3600); - response.addCookie(phonecookie); - } - if(!StringUtils.isBlank(contacts.getEmail())){ - Cookie email = new Cookie("email",UKTools.encryption(URLEncoder.encode(contacts.getEmail(), "UTF-8"))); - email.setMaxAge(3600); - response.addCookie(email); - } - if(!StringUtils.isBlank(contacts.getMemo())){ - Cookie memo = new Cookie("memo",UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); - memo.setMaxAge(3600); - response.addCookie(memo); - } - } - }else{ - //从 Cookies里尝试读取 - if(invite.isConsult_info_cookies()){ - Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组 - contacts = new Contacts(); - if(cookies!=null){ - for(Cookie cookie : cookies){ - if(cookie!=null && !StringUtils.isBlank(cookie.getName()) && !StringUtils.isBlank(cookie.getValue())){ - if(cookie.getName().equals("name")){ - contacts.setName(URLDecoder.decode(UKTools.decryption(cookie.getValue()) , "UTF-8")); - } - if(cookie.getName().equals("phone")){ - contacts.setPhone(URLDecoder.decode(UKTools.decryption(cookie.getValue()) , "UTF-8")); - } - if(cookie.getName().equals("email")){ - contacts.setEmail(URLDecoder.decode(UKTools.decryption(cookie.getValue()) , "UTF-8")); - } - if(cookie.getName().equals("memo")){ - contacts.setMemo(URLDecoder.decode(UKTools.decryption(cookie.getValue()) , "UTF-8")); - } - } - } - } - } - if(StringUtils.isBlank(contacts.getName())){ - consult = false ; - view = request(super.createRequestPageTempletResponse("/apps/im/collecting")) ; - } - } - }else{ - contacts = processContacts(invite.getOrgi(), contacts, appid, userid); - } - - if(!StringUtils.isBlank(client)){ - map.addAttribute("client", client) ; - } - if(!StringUtils.isBlank(skill)){ - map.addAttribute("skill", skill) ; - } - if(!StringUtils.isBlank(agent)){ - map.addAttribute("agent", agent) ; - } - - map.addAttribute("contacts", contacts) ; - - if(!StringUtils.isBlank(type)){ - map.addAttribute("type", type) ; - } - IP ipdata = IPTools.getInstance().findGeography(UKTools.getIpAddr(request)); - map.addAttribute("skillList", OnlineUserUtils.organ(invite.getOrgi() , ipdata , invite,true)) ; - - if(invite!=null && consult){ - if(contacts!=null && !StringUtils.isBlank(contacts.getName())){ - nickname = contacts.getName() ; - } - map.addAttribute("username", nickname) ; - if(UKDataContext.model.get("xiaoe")!=null && !StringUtils.isBlank(invite.getAiid()) && invite.isAi() && ((!StringUtils.isBlank(ai) && ai.equals("true")) || (invite.isAifirst() && ai == null))){ //启用 AI , 并且 AI优先 接待 - DataExchangeInterface dataInterface = (DataExchangeInterface) UKDataContext.getContext().getBean("aiconfig") ; - AiConfig aiConfig = (AiConfig) dataInterface.getDataByIdAndOrgi(aiid, invite.getOrgi()) ; - if(aiConfig!=null){ - map.addAttribute("aiConfig", aiConfig) ; - } - view = request(super.createRequestPageTempletResponse("/apps/im/ai/index")) ; - if(CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)){ - view = request(super.createRequestPageTempletResponse("/apps/im/ai/mobile")) ; //智能机器人 移动端 - } - if(UKDataContext.model.get("xiaoe")!=null){ - List topicList = OnlineUserUtils.cacheHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic") , super.getUser(request) , orgi , aiid) ; - - /** - * 初步按照地区匹配分类筛选 - */ - List topicTypeList = OnlineUserUtils.topicType(orgi,ipdata,OnlineUserUtils.cacheHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype") , super.getUser(request) , orgi , aiid)) ; - - /** - * 第二步按照 有 热点主题的 分类做筛选 - */ - map.addAttribute("topicList", OnlineUserUtils.topic(orgi, topicTypeList, topicList)) ; - /** - * 第三步筛选 分类,如果无热点知识,则不显示分类 - */ - map.addAttribute("topicTypeList",OnlineUserUtils.filterTopicType(topicTypeList, topicList)) ; - } - }else{ - if(CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)){ - view = request(super.createRequestPageTempletResponse("/apps/im/mobile")) ; //WebIM移动端。再次点选技能组? - } - } - map.addAttribute("chatMessageList", chatMessageRes.findByUsessionAndOrgi(userid , orgi, new PageRequest(0, 20, Direction.DESC , "updatetime"))) ; - } - view.addObject("commentList" , UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_DIC)) ; - view.addObject("commentItemList" , UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_ITEM_DIC)) ; - view.addObject("welcomeAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.WELCOME.toString(),orgi)) ; - view.addObject("imageAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.IMAGE.toString(),orgi)) ; - // OnlineUserUtils.sendWebIMClients(userid , "accept"); - - if(invite.isTraceuser()){ - Page inviteRecordList = inviteRecordRes.findByUseridAndOrgi(userid, orgi , new PageRequest(0, 1, Direction.DESC, "createtime")) ; - if(inviteRecordList.getContent()!=null && inviteRecordList.getContent().size()>0){ - InviteRecord record = inviteRecordList.getContent().get(0) ; - record.setUpdatetime(new Date()); - record.setTraceid(traceid); - record.setTitle(title); - record.setUrl(url); - record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); - record.setResult(UKDataContext.OnlineUserInviteStatus.ACCEPT.toString()); - inviteRecordRes.save(record) ; - } - } - } - } + map.addAttribute("appid", appid); + map.addAttribute("userid", userid); + map.addAttribute("schema", request.getScheme()); + map.addAttribute("sessionid", sessionid); + + view.addObject("product", product); + view.addObject("description", description); + view.addObject("imgurl", imgurl); + view.addObject("pid", pid); + view.addObject("purl", purl); + + map.addAttribute("ip", UKTools.md5(request.getRemoteAddr())); + + if (!StringUtils.isBlank(traceid)) { + map.addAttribute("traceid", traceid); + } + if (!StringUtils.isBlank(exchange)) { + map.addAttribute("exchange", exchange); + } + if (!StringUtils.isBlank(title)) { + map.addAttribute("title", title); + } + if (!StringUtils.isBlank(traceid)) { + map.addAttribute("url", url); + } + + map.addAttribute("ukefport", request.getServerPort()); + /** + * 先检查 invite不为空 + */ + if (invite != null) { + map.addAttribute("orgi", invite.getOrgi()); + map.addAttribute("inviteData", invite); + + if (!StringUtils.isBlank(aiid)) { + map.addAttribute("aiid", aiid); + } else if (!StringUtils.isBlank(invite.getAiid())) { + map.addAttribute("aiid", invite.getAiid()); + } + + AgentReport report = ServiceQuene.getAgentReport(invite.getOrgi()); + + if (report.getAgents() == 0 || (sessionConfig.isHourcheck() && !UKTools.isInWorkingHours(sessionConfig.getWorkinghours()) && invite.isLeavemessage())) { + view = request(super.createRequestPageTempletResponse("/apps/im/leavemsg")); + } else if (invite.isConsult_info()) { //启用了信息收集 , 从Request获取 , 或从 Cookies 里去 + //验证 OnlineUser 信息 + if (contacts != null && !StringUtils.isBlank(contacts.getName())) { //contacts用于传递信息,并不和 联系人表发生 关联,contacts信息传递给 Socket.IO,然后赋值给 AgentUser,最终赋值给 AgentService永久存储 + consult = true; + //存入 Cookies + if (invite.isConsult_info_cookies()) { + Cookie name = new Cookie("name", UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); + response.addCookie(name); + name.setMaxAge(3600); + if (!StringUtils.isBlank(contacts.getPhone())) { + Cookie phonecookie = new Cookie("phone", UKTools.encryption(URLEncoder.encode(contacts.getPhone(), "UTF-8"))); + phonecookie.setMaxAge(3600); + response.addCookie(phonecookie); + } + if (!StringUtils.isBlank(contacts.getEmail())) { + Cookie email = new Cookie("email", UKTools.encryption(URLEncoder.encode(contacts.getEmail(), "UTF-8"))); + email.setMaxAge(3600); + response.addCookie(email); + } + if (!StringUtils.isBlank(contacts.getMemo())) { + Cookie memo = new Cookie("memo", UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); + memo.setMaxAge(3600); + response.addCookie(memo); + } + } + } else { + //从 Cookies里尝试读取 + if (invite.isConsult_info_cookies()) { + Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组 + contacts = new Contacts(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if (cookie != null && !StringUtils.isBlank(cookie.getName()) && !StringUtils.isBlank(cookie.getValue())) { + if (cookie.getName().equals("name")) { + contacts.setName(URLDecoder.decode(UKTools.decryption(cookie.getValue()), "UTF-8")); + } + if (cookie.getName().equals("phone")) { + contacts.setPhone(URLDecoder.decode(UKTools.decryption(cookie.getValue()), "UTF-8")); + } + if (cookie.getName().equals("email")) { + contacts.setEmail(URLDecoder.decode(UKTools.decryption(cookie.getValue()), "UTF-8")); + } + if (cookie.getName().equals("memo")) { + contacts.setMemo(URLDecoder.decode(UKTools.decryption(cookie.getValue()), "UTF-8")); + } + } + } + } + } + if (StringUtils.isBlank(contacts.getName())) { + consult = false; + view = request(super.createRequestPageTempletResponse("/apps/im/collecting")); + } + } + } else { + contacts = processContacts(invite.getOrgi(), contacts, appid, userid); + } + + if (!StringUtils.isBlank(client)) { + map.addAttribute("client", client); + } + if (!StringUtils.isBlank(skill)) { + map.addAttribute("skill", skill); + } + if (!StringUtils.isBlank(agent)) { + map.addAttribute("agent", agent); + } + + map.addAttribute("contacts", contacts); + + if (!StringUtils.isBlank(type)) { + map.addAttribute("type", type); + } + IP ipdata = IPTools.getInstance().findGeography(UKTools.getIpAddr(request)); + map.addAttribute("skillList", OnlineUserUtils.organ(invite.getOrgi(), ipdata, invite, true)); + + if (invite != null && consult) { + if (contacts != null && !StringUtils.isBlank(contacts.getName())) { + nickname = contacts.getName(); + } + map.addAttribute("username", nickname); + if (UKDataContext.model.get("chatbot") != null && + StringUtils.isNotBlank(invite.getAiid()) && + invite.isAi() && + (StringUtils.equals(ai, "true") || (invite.isAifirst() && ai == null))) { //启用 AI , 并且 AI优先 接待 + DataExchangeInterface dataInterface = (DataExchangeInterface) UKDataContext.getContext().getBean("aiconfig"); + AiConfig aiConfig = (AiConfig) dataInterface.getDataByIdAndOrgi(aiid, invite.getOrgi()); + if (aiConfig != null) { + map.addAttribute("aiConfig", aiConfig); + } + view = request(super.createRequestPageTempletResponse("/apps/im/ai/index")); + if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { + view = request(super.createRequestPageTempletResponse("/apps/im/ai/mobile")); //智能机器人 移动端 + } + if (UKDataContext.model.get("xiaoe") != null) { + List topicList = OnlineUserUtils.cacheHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic"), super.getUser(request), orgi, aiid); + + /** + * 初步按照地区匹配分类筛选 + */ + List topicTypeList = OnlineUserUtils.topicType(orgi, ipdata, OnlineUserUtils.cacheHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype"), super.getUser(request), orgi, aiid)); + + /** + * 第二步按照 有 热点主题的 分类做筛选 + */ + map.addAttribute("topicList", OnlineUserUtils.topic(orgi, topicTypeList, topicList)); + /** + * 第三步筛选 分类,如果无热点知识,则不显示分类 + */ + map.addAttribute("topicTypeList", OnlineUserUtils.filterTopicType(topicTypeList, topicList)); + } + } else { + if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { + view = request(super.createRequestPageTempletResponse("/apps/im/mobile")); //WebIM移动端。再次点选技能组? + } + } + map.addAttribute("chatMessageList", chatMessageRes.findByUsessionAndOrgi(userid, orgi, new PageRequest(0, 20, Direction.DESC, "updatetime"))); + } + view.addObject("commentList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_DIC)); + view.addObject("commentItemList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_ITEM_DIC)); + view.addObject("welcomeAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.WELCOME.toString(), orgi)); + view.addObject("imageAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.IMAGE.toString(), orgi)); + // OnlineUserUtils.sendWebIMClients(userid , "accept"); + + if (invite.isTraceuser()) { + Page inviteRecordList = inviteRecordRes.findByUseridAndOrgi(userid, orgi, new PageRequest(0, 1, Direction.DESC, "createtime")); + if (inviteRecordList.getContent() != null && inviteRecordList.getContent().size() > 0) { + InviteRecord record = inviteRecordList.getContent().get(0); + record.setUpdatetime(new Date()); + record.setTraceid(traceid); + record.setTitle(title); + record.setUrl(url); + record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); + record.setResult(UKDataContext.OnlineUserInviteStatus.ACCEPT.toString()); + inviteRecordRes.save(record); + } + } + } + } return view; } - - private Contacts processContacts(String orgi ,Contacts contacts , String appid , String userid){ - if(contacts!=null){ - if(contacts != null && (!StringUtils.isBlank(contacts.getName()) || !StringUtils.isBlank(contacts.getPhone()) || !StringUtils.isBlank(contacts.getEmail()))){ - StringBuffer query = new StringBuffer(); - query.append(contacts.getName()) ; - if(!StringUtils.isBlank(contacts.getPhone())){ - query.append(" OR ").append(contacts.getPhone()) ; - } - if(!StringUtils.isBlank(contacts.getEmail())){ - query.append(" OR ").append(contacts.getEmail()) ; - } - Page contactsList = contactsRes.findByOrgi(orgi, false, query.toString(), new PageRequest(0, 1)) ; - if(contactsList.getContent().size() > 0){ - contacts = contactsList.getContent().get(0) ; - }else{ + + private Contacts processContacts(String orgi, Contacts contacts, String appid, String userid) { + if (contacts != null) { + if (contacts != null && (!StringUtils.isBlank(contacts.getName()) || !StringUtils.isBlank(contacts.getPhone()) || !StringUtils.isBlank(contacts.getEmail()))) { + StringBuffer query = new StringBuffer(); + query.append(contacts.getName()); + if (!StringUtils.isBlank(contacts.getPhone())) { + query.append(" OR ").append(contacts.getPhone()); + } + if (!StringUtils.isBlank(contacts.getEmail())) { + query.append(" OR ").append(contacts.getEmail()); + } + Page contactsList = contactsRes.findByOrgi(orgi, false, query.toString(), new PageRequest(0, 1)); + if (contactsList.getContent().size() > 0) { + contacts = contactsList.getContent().get(0); + } else { // contactsRes.save(contacts) ; //需要增加签名验证,避免随便产生垃圾信息,也可以自行修改? - contacts.setId(null); - } - }else{ - contacts.setId(null); - } - if(contacts!=null && !StringUtils.isBlank(contacts.getId())){ - List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi) ; - if(agentUserContactsList.size() == 0){ - AgentUserContacts agentUserContacts = new AgentUserContacts() ; - agentUserContacts.setAppid(appid); - agentUserContacts.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); - agentUserContacts.setContactsid(contacts.getId()); - agentUserContacts.setUserid(userid); - agentUserContacts.setOrgi(orgi); - agentUserContacts.setCreatetime(new Date()); - agentUserContactsRes.save(agentUserContacts) ; - } - }else if(!StringUtils.isBlank(userid)){ - List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi) ; - if(agentUserContactsList.size() > 0){ - AgentUserContacts agentUserContacts = agentUserContactsList.get(0) ; - contacts = contactsRes.findOne(agentUserContacts.getContactsid()) ; - } - } - } - return contacts ; + contacts.setId(null); + } + } else { + contacts.setId(null); + } + if (contacts != null && !StringUtils.isBlank(contacts.getId())) { + List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi); + if (agentUserContactsList.size() == 0) { + AgentUserContacts agentUserContacts = new AgentUserContacts(); + agentUserContacts.setAppid(appid); + agentUserContacts.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + agentUserContacts.setContactsid(contacts.getId()); + agentUserContacts.setUserid(userid); + agentUserContacts.setOrgi(orgi); + agentUserContacts.setCreatetime(new Date()); + agentUserContactsRes.save(agentUserContacts); + } + } else if (!StringUtils.isBlank(userid)) { + List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi); + if (agentUserContactsList.size() > 0) { + AgentUserContacts agentUserContacts = agentUserContactsList.get(0); + contacts = contactsRes.findOne(agentUserContacts.getContactsid()); + } + } + } + return contacts; } - + @RequestMapping("/text/{appid}") - @Menu(type = "im" , subtype = "index" , access = true) - public ModelAndView text(HttpServletRequest request , HttpServletResponse response, @PathVariable String appid ,@Valid String traceid,@Valid String aiid ,@Valid String exchange, @Valid String title ,@Valid String url, @Valid String skill, @Valid String id , @Valid String userid , @Valid String agent , @Valid String name , @Valid String email ,@Valid String phone,@Valid String ai,@Valid String orgi ,@Valid String product,@Valid String description,@Valid String imgurl,@Valid String pid,@Valid String purl) throws Exception { - ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/text")) ; - - view.addObject("hostname", request.getServerName()) ; - view.addObject("port", request.getServerPort()) ; - view.addObject("schema", request.getScheme()) ; - view.addObject("appid", appid) ; - - - view.addObject("ip", UKTools.md5(request.getRemoteAddr())) ; - - if(!StringUtils.isBlank(skill)){ - view.addObject("skill", skill) ; - } - if(!StringUtils.isBlank(agent)){ - view.addObject("agent", agent) ; - } - - view.addObject("client", UKTools.getUUID()) ; - view.addObject("sessionid", request.getSession().getId()) ; - - view.addObject("id", id) ; - if(!StringUtils.isBlank(ai)){ - view.addObject("ai", ai) ; - } - if(!StringUtils.isBlank(exchange)){ - view.addObject("exchange", exchange) ; - } - - view.addObject("name", name) ; - view.addObject("email", email) ; - view.addObject("phone", phone) ; - view.addObject("userid", userid) ; - - view.addObject("product", product) ; - view.addObject("description", description) ; - view.addObject("imgurl", imgurl) ; - view.addObject("pid", pid) ; - view.addObject("purl", purl) ; - - - - if(!StringUtils.isBlank(traceid)){ - view.addObject("traceid", traceid) ; - } - if(!StringUtils.isBlank(title)){ - view.addObject("title", title) ; - } - if(!StringUtils.isBlank(traceid)){ - view.addObject("url", url) ; - } - CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); - if(invite!=null){ - view.addObject("inviteData", invite); - view.addObject("orgi",invite.getOrgi()); - view.addObject("appid",appid); - - if(!StringUtils.isBlank(aiid)) { - view.addObject("aiid", aiid) ; - }else if(!StringUtils.isBlank(invite.getAiid())){ - view.addObject("aiid", invite.getAiid()) ; - } - } - - return view; + @Menu(type = "im", subtype = "index", access = true) + public ModelAndView text(HttpServletRequest request, HttpServletResponse response, @PathVariable String appid, @Valid String traceid, @Valid String aiid, @Valid String exchange, @Valid String title, @Valid String url, @Valid String skill, @Valid String id, @Valid String userid, @Valid String agent, @Valid String name, @Valid String email, @Valid String phone, @Valid String ai, @Valid String orgi, @Valid String product, @Valid String description, @Valid String imgurl, @Valid String pid, @Valid String purl) throws Exception { + ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/text")); + + view.addObject("hostname", request.getServerName()); + view.addObject("port", request.getServerPort()); + view.addObject("schema", request.getScheme()); + view.addObject("appid", appid); + + + view.addObject("ip", UKTools.md5(request.getRemoteAddr())); + + if (!StringUtils.isBlank(skill)) { + view.addObject("skill", skill); + } + if (!StringUtils.isBlank(agent)) { + view.addObject("agent", agent); + } + + view.addObject("client", UKTools.getUUID()); + view.addObject("sessionid", request.getSession().getId()); + + view.addObject("id", id); + if (!StringUtils.isBlank(ai)) { + view.addObject("ai", ai); + } + if (!StringUtils.isBlank(exchange)) { + view.addObject("exchange", exchange); + } + + view.addObject("name", name); + view.addObject("email", email); + view.addObject("phone", phone); + view.addObject("userid", userid); + + view.addObject("product", product); + view.addObject("description", description); + view.addObject("imgurl", imgurl); + view.addObject("pid", pid); + view.addObject("purl", purl); + + + if (!StringUtils.isBlank(traceid)) { + view.addObject("traceid", traceid); + } + if (!StringUtils.isBlank(title)) { + view.addObject("title", title); + } + if (!StringUtils.isBlank(traceid)) { + view.addObject("url", url); + } + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); + if (invite != null) { + view.addObject("inviteData", invite); + view.addObject("orgi", invite.getOrgi()); + view.addObject("appid", appid); + + if (!StringUtils.isBlank(aiid)) { + view.addObject("aiid", aiid); + } else if (!StringUtils.isBlank(invite.getAiid())) { + view.addObject("aiid", invite.getAiid()); + } + } + + return view; } - - + + @RequestMapping("/leavemsg/save") - @Menu(type = "admin" , subtype = "user") - public ModelAndView leavemsgsave(HttpServletRequest request ,@Valid String appid ,@Valid LeaveMsg msg) { - if(!StringUtils.isBlank(appid)){ - SNSAccount snsAccount = snsAccountRepository.findBySnsid(appid); - String orgi = snsAccount.getOrgi(); - CousultInvite invite = inviteRepository.findBySnsaccountidAndOrgi(appid, orgi) ; ; - List msgList = leaveMsgRes.findByOrgiAndUserid(invite.getOrgi(), msg.getUserid()) ; - // if(msg!=null && msgList.size() == 0){ - if(msg!=null){ - msg.setOrgi(invite.getOrgi()); - leaveMsgRes.save(msg); - } - } - return request(super.createRequestPageTempletResponse("/apps/im/leavemsgsave")); + @Menu(type = "admin", subtype = "user") + public ModelAndView leavemsgsave(HttpServletRequest request, @Valid String appid, @Valid LeaveMsg msg) { + if (!StringUtils.isBlank(appid)) { + SNSAccount snsAccount = snsAccountRepository.findBySnsid(appid); + String orgi = snsAccount.getOrgi(); + CousultInvite invite = inviteRepository.findBySnsaccountidAndOrgi(appid, orgi); + ; + List msgList = leaveMsgRes.findByOrgiAndUserid(invite.getOrgi(), msg.getUserid()); + // if(msg!=null && msgList.size() == 0){ + if (msg != null) { + msg.setOrgi(invite.getOrgi()); + leaveMsgRes.save(msg); + } + } + return request(super.createRequestPageTempletResponse("/apps/im/leavemsgsave")); } - + @RequestMapping("/refuse") - @Menu(type = "im" , subtype = "refuse" , access = true) - public void refuse(HttpServletRequest request , HttpServletResponse response, @Valid String orgi , @Valid String appid, @Valid String userid, @Valid String sessionid, @Valid String client) throws Exception { - OnlineUserUtils.refuseInvite(userid, orgi); + @Menu(type = "im", subtype = "refuse", access = true) + public void refuse(HttpServletRequest request, HttpServletResponse response, @Valid String orgi, @Valid String appid, @Valid String userid, @Valid String sessionid, @Valid String client) throws Exception { + OnlineUserUtils.refuseInvite(userid, orgi); // OnlineUserUtils.sendWebIMClients(userid , "refuse"); - Page inviteRecordList = inviteRecordRes.findByUseridAndOrgi(userid, orgi , new PageRequest(0, 1, Direction.DESC, "createtime")) ; - if(inviteRecordList.getContent()!=null && inviteRecordList.getContent().size()>0){ - InviteRecord record = inviteRecordList.getContent().get(0) ; - record.setUpdatetime(new Date()); - record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); - record.setResult(UKDataContext.OnlineUserInviteStatus.REFUSE.toString()); - inviteRecordRes.save(record) ; - } + Page inviteRecordList = inviteRecordRes.findByUseridAndOrgi(userid, orgi, new PageRequest(0, 1, Direction.DESC, "createtime")); + if (inviteRecordList.getContent() != null && inviteRecordList.getContent().size() > 0) { + InviteRecord record = inviteRecordList.getContent().get(0); + record.setUpdatetime(new Date()); + record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); + record.setResult(UKDataContext.OnlineUserInviteStatus.REFUSE.toString()); + inviteRecordRes.save(record); + } return; } - + @RequestMapping("/satis") - @Menu(type = "im" , subtype = "satis" , access = true) - public void satis(HttpServletRequest request , HttpServletResponse response, @Valid AgentServiceSatis satis) throws Exception { - if(satis!=null && !StringUtils.isBlank(satis.getId())){ - int count = agentServiceSatisRes.countById(satis.getId()) ; - if(count == 1){ - if(!StringUtils.isBlank(satis.getSatiscomment()) && satis.getSatiscomment().length() > 255){ - satis.setSatiscomment(satis.getSatiscomment().substring(0 , 255)); - } - satis.setSatisfaction(true); - satis.setSatistime(new Date()); - agentServiceSatisRes.save(satis) ; - } - } + @Menu(type = "im", subtype = "satis", access = true) + public void satis(HttpServletRequest request, HttpServletResponse response, @Valid AgentServiceSatis satis) throws Exception { + if (satis != null && !StringUtils.isBlank(satis.getId())) { + int count = agentServiceSatisRes.countById(satis.getId()); + if (count == 1) { + if (!StringUtils.isBlank(satis.getSatiscomment()) && satis.getSatiscomment().length() > 255) { + satis.setSatiscomment(satis.getSatiscomment().substring(0, 255)); + } + satis.setSatisfaction(true); + satis.setSatistime(new Date()); + agentServiceSatisRes.save(satis); + } + } return; } - + @RequestMapping("/image/upload") - @Menu(type = "im" , subtype = "image" , access = true) - public ModelAndView upload(ModelMap map,HttpServletRequest request , @RequestParam(value = "imgFile", required = false) MultipartFile imgFile , @Valid String channel, @Valid String userid, @Valid String username , @Valid String appid , @Valid String orgi, @Valid String paste) throws IOException { - ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/upload")) ; - UploadStatus upload = null ; - String fileName = null ; - if(imgFile!=null && imgFile.getOriginalFilename().lastIndexOf(".") > 0 && !StringUtils.isBlank(userid)){ - File uploadDir = new File(path , "upload"); - if(!uploadDir.exists()){ - uploadDir.mkdirs() ; - } - String fileid = UKTools.md5(imgFile.getBytes()) ; - if(imgFile.getContentType()!=null && imgFile.getContentType().indexOf("image") >= 0){ - fileName = "upload/"+fileid+"_original" ; - File imageFile = new File(path , fileName) ; - FileCopyUtils.copy(imgFile.getBytes(), imageFile); - String thumbnailsFileName = "upload/"+fileid ; - UKTools.processImage(new File(path , thumbnailsFileName), imageFile) ; - - - upload = new UploadStatus("0" , "/res/image.html?id="+thumbnailsFileName); - - String image = "/res/image.html?id="+thumbnailsFileName ; - if(request.getServerPort() == 80){ - image = "/res/image.html?id="+thumbnailsFileName; - }else{ - image = "/res/image.html?id="+thumbnailsFileName; - } - if(paste == null){ - if(!StringUtils.isBlank(channel)){ - MessageUtils.uploadImage(image , fileid ,(int)imgFile.getSize() , imgFile.getName() , channel, userid , username , appid , orgi); - }else{ - MessageUtils.uploadImage(image , fileid ,(int)imgFile.getSize() , imgFile.getName() , userid); - } - } - }else{ - - String id = processAttachmentFile(imgFile, request); - - upload = new UploadStatus("0" , "/res/file.html?id="+id); - String file = "/res/file.html?id="+id ; - if(request.getServerPort() == 80){ - file = "/res/file.html?id="+id; - }else{ - file = "/res/file.html?id="+id; - } - File tempFile = new File(imgFile.getOriginalFilename()); - if(!StringUtils.isBlank(channel)){ - MessageUtils.uploadFile(file ,(int)imgFile.getSize() , tempFile.getName() , channel, userid , username , appid , orgi , id); - }else{ - MessageUtils.uploadFile(file ,(int)imgFile.getSize() , tempFile.getName() , userid , id); - } - } - }else{ - upload = new UploadStatus("请选择文件"); - } - map.addAttribute("upload", upload) ; - return view ; + @Menu(type = "im", subtype = "image", access = true) + public ModelAndView upload(ModelMap map, HttpServletRequest request, @RequestParam(value = "imgFile", required = false) MultipartFile imgFile, @Valid String channel, @Valid String userid, @Valid String username, @Valid String appid, @Valid String orgi, @Valid String paste) throws IOException { + ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/upload")); + UploadStatus upload = null; + String fileName = null; + if (imgFile != null && imgFile.getOriginalFilename().lastIndexOf(".") > 0 && !StringUtils.isBlank(userid)) { + File uploadDir = new File(path, "upload"); + if (!uploadDir.exists()) { + uploadDir.mkdirs(); + } + String fileid = UKTools.md5(imgFile.getBytes()); + if (imgFile.getContentType() != null && imgFile.getContentType().indexOf("image") >= 0) { + fileName = "upload/" + fileid + "_original"; + File imageFile = new File(path, fileName); + FileCopyUtils.copy(imgFile.getBytes(), imageFile); + String thumbnailsFileName = "upload/" + fileid; + UKTools.processImage(new File(path, thumbnailsFileName), imageFile); + + + upload = new UploadStatus("0", "/res/image.html?id=" + thumbnailsFileName); + + String image = "/res/image.html?id=" + thumbnailsFileName; + if (request.getServerPort() == 80) { + image = "/res/image.html?id=" + thumbnailsFileName; + } else { + image = "/res/image.html?id=" + thumbnailsFileName; + } + if (paste == null) { + if (!StringUtils.isBlank(channel)) { + MessageUtils.uploadImage(image, fileid, (int) imgFile.getSize(), imgFile.getName(), channel, userid, username, appid, orgi); + } else { + MessageUtils.uploadImage(image, fileid, (int) imgFile.getSize(), imgFile.getName(), userid); + } + } + } else { + + String id = processAttachmentFile(imgFile, request); + + upload = new UploadStatus("0", "/res/file.html?id=" + id); + String file = "/res/file.html?id=" + id; + if (request.getServerPort() == 80) { + file = "/res/file.html?id=" + id; + } else { + file = "/res/file.html?id=" + id; + } + File tempFile = new File(imgFile.getOriginalFilename()); + if (!StringUtils.isBlank(channel)) { + MessageUtils.uploadFile(file, (int) imgFile.getSize(), tempFile.getName(), channel, userid, username, appid, orgi, id); + } else { + MessageUtils.uploadFile(file, (int) imgFile.getSize(), tempFile.getName(), userid, id); + } + } + } else { + upload = new UploadStatus("请选择文件"); + } + map.addAttribute("upload", upload); + return view; } - - private String processAttachmentFile(MultipartFile file , HttpServletRequest request) throws IOException{ - String id = null ; - if(file.getSize() > 0){ //文件尺寸 限制 ?在 启动 配置中 设置 的最大值,其他地方不做限制 - String fileid = UKTools.md5(file.getBytes()) ; //使用 文件的 MD5作为 ID,避免重复上传大文件 - if(!StringUtils.isBlank(fileid)){ - AttachmentFile attachmentFile = new AttachmentFile() ; - attachmentFile.setCreater(super.getUser(request).getId()); - attachmentFile.setOrgi(super.getOrgi(request)); - attachmentFile.setOrgan(super.getUser(request).getOrgan()); - attachmentFile.setModel(UKDataContext.ModelType.WEBIM.toString()); - attachmentFile.setFilelength((int) file.getSize()); - if(file.getContentType()!=null && file.getContentType().length() > 255){ - attachmentFile.setFiletype(file.getContentType().substring(0 , 255)); - }else{ - attachmentFile.setFiletype(file.getContentType()); - } - File uploadFile = new File(file.getOriginalFilename()); - if(uploadFile.getName()!=null && uploadFile.getName().length() > 255){ - attachmentFile.setTitle(uploadFile.getName().substring(0 , 255)); - }else{ - attachmentFile.setTitle(uploadFile.getName()); - } - if(!StringUtils.isBlank(attachmentFile.getFiletype()) && attachmentFile.getFiletype().indexOf("image") >= 0){ - attachmentFile.setImage(true); - } - attachmentFile.setFileid(fileid); - attachementRes.save(attachmentFile) ; - FileUtils.writeByteArrayToFile(new File(path , "app/webim/"+fileid), file.getBytes()); - id = attachmentFile.getId(); - } - } - return id ; + + private String processAttachmentFile(MultipartFile file, HttpServletRequest request) throws IOException { + String id = null; + if (file.getSize() > 0) { //文件尺寸 限制 ?在 启动 配置中 设置 的最大值,其他地方不做限制 + String fileid = UKTools.md5(file.getBytes()); //使用 文件的 MD5作为 ID,避免重复上传大文件 + if (!StringUtils.isBlank(fileid)) { + AttachmentFile attachmentFile = new AttachmentFile(); + attachmentFile.setCreater(super.getUser(request).getId()); + attachmentFile.setOrgi(super.getOrgi(request)); + attachmentFile.setOrgan(super.getUser(request).getOrgan()); + attachmentFile.setModel(UKDataContext.ModelType.WEBIM.toString()); + attachmentFile.setFilelength((int) file.getSize()); + if (file.getContentType() != null && file.getContentType().length() > 255) { + attachmentFile.setFiletype(file.getContentType().substring(0, 255)); + } else { + attachmentFile.setFiletype(file.getContentType()); + } + File uploadFile = new File(file.getOriginalFilename()); + if (uploadFile.getName() != null && uploadFile.getName().length() > 255) { + attachmentFile.setTitle(uploadFile.getName().substring(0, 255)); + } else { + attachmentFile.setTitle(uploadFile.getName()); + } + if (!StringUtils.isBlank(attachmentFile.getFiletype()) && attachmentFile.getFiletype().indexOf("image") >= 0) { + attachmentFile.setImage(true); + } + attachmentFile.setFileid(fileid); + attachementRes.save(attachmentFile); + FileUtils.writeByteArrayToFile(new File(path, "app/webim/" + fileid), file.getBytes()); + id = attachmentFile.getId(); + } + } + return id; } } \ No newline at end of file diff --git a/contact-center/app/src/main/resources/templates/apps/im/point.html b/contact-center/app/src/main/resources/templates/apps/im/point.html index 0fbab9af..0af88ee1 100644 --- a/contact-center/app/src/main/resources/templates/apps/im/point.html +++ b/contact-center/app/src/main/resources/templates/apps/im/point.html @@ -1,11 +1,4 @@ var data = {}; -/****** - id:"xxxxxxxxxxxx", - name:'UKeFu', - email:'ukefu@ukewo.cn', - phone:'18588888888' -****/ - <#if inviteData??> !function(e,t,r){"use strict";"function"==typeof window.define&&window.define.amd?window.define(r):"undefined"!=typeof module&&module.exports?module.exports=r():t.exports?t.exports=r():t.Fingerprint2=r()}(0,this,function(){"use strict";var e=function(t){if(!(this instanceof e))return new e(t);this.options=this.extend(t,{swfContainerId:"fingerprintjs2",swfPath:"flash/compiled/FontList.swf",detectScreenOrientation:!0,sortPluginsFor:[/palemoon/i],userDefinedFonts:[],excludeDoNotTrack:!0,excludePixelRatio:!0}),this.nativeForEach=Array.prototype.forEach,this.nativeMap=Array.prototype.map};return e.prototype={extend:function(e,t){if(null==e)return t;for(var r in e)null!=e[r]&&t[r]!==e[r]&&(t[r]=e[r]);return t},get:function(e){var t=this,r={data:[],addPreprocessedComponent:function(e){var n=e.value;"function"==typeof t.options.preprocessor&&(n=t.options.preprocessor(e.key,n)),r.data.push({key:e.key,value:n})}};r=this.userAgentKey(r),r=this.languageKey(r),r=this.colorDepthKey(r),r=this.deviceMemoryKey(r),r=this.pixelRatioKey(r),r=this.hardwareConcurrencyKey(r),r=this.screenResolutionKey(r),r=this.availableScreenResolutionKey(r),r=this.timezoneOffsetKey(r),r=this.sessionStorageKey(r),r=this.localStorageKey(r),r=this.indexedDbKey(r),r=this.addBehaviorKey(r),r=this.openDatabaseKey(r),r=this.cpuClassKey(r),r=this.platformKey(r),r=this.doNotTrackKey(r),r=this.pluginsKey(r),r=this.canvasKey(r),r=this.webglKey(r),r=this.webglVendorAndRendererKey(r),r=this.adBlockKey(r),r=this.hasLiedLanguagesKey(r),r=this.hasLiedResolutionKey(r),r=this.hasLiedOsKey(r),r=this.hasLiedBrowserKey(r),r=this.touchSupportKey(r),r=this.customEntropyFunction(r),this.fontsKey(r,function(r){var n=[];t.each(r.data,function(e){var t=e.value;t&&"function"==typeof t.join&&(t=t.join(";")),n.push(t)});var i=t.x64hash128(n.join("~~~"),31);return e(i,r.data)})},customEntropyFunction:function(e){return"function"==typeof this.options.customFunction&&e.addPreprocessedComponent({key:"custom",value:this.options.customFunction()}),e},userAgentKey:function(e){return this.options.excludeUserAgent||e.addPreprocessedComponent({key:"user_agent",value:this.getUserAgent()}),e},getUserAgent:function(){return navigator.userAgent},languageKey:function(e){return this.options.excludeLanguage||e.addPreprocessedComponent({key:"language",value:navigator.language||navigator.userLanguage||navigator.browserLanguage||navigator.systemLanguage||""}),e},colorDepthKey:function(e){return this.options.excludeColorDepth||e.addPreprocessedComponent({key:"color_depth",value:window.screen.colorDepth||-1}),e},deviceMemoryKey:function(e){return this.options.excludeDeviceMemory||e.addPreprocessedComponent({key:"device_memory",value:this.getDeviceMemory()}),e},getDeviceMemory:function(){return navigator.deviceMemory||-1},pixelRatioKey:function(e){return this.options.excludePixelRatio||e.addPreprocessedComponent({key:"pixel_ratio",value:this.getPixelRatio()}),e},getPixelRatio:function(){return window.devicePixelRatio||""},screenResolutionKey:function(e){return this.options.excludeScreenResolution?e:this.getScreenResolution(e)},getScreenResolution:function(e){var t;return t=this.options.detectScreenOrientation&&window.screen.height>window.screen.width?[window.screen.height,window.screen.width]:[window.screen.width,window.screen.height],e.addPreprocessedComponent({key:"resolution",value:t}),e},availableScreenResolutionKey:function(e){return this.options.excludeAvailableScreenResolution?e:this.getAvailableScreenResolution(e)},getAvailableScreenResolution:function(e){var t;return window.screen.availWidth&&window.screen.availHeight&&(t=this.options.detectScreenOrientation?window.screen.availHeight>window.screen.availWidth?[window.screen.availHeight,window.screen.availWidth]:[window.screen.availWidth,window.screen.availHeight]:[window.screen.availHeight,window.screen.availWidth]),void 0!==t&&e.addPreprocessedComponent({key:"available_resolution",value:t}),e},timezoneOffsetKey:function(e){return this.options.excludeTimezoneOffset||e.addPreprocessedComponent({key:"timezone_offset",value:(new Date).getTimezoneOffset()}),e},sessionStorageKey:function(e){return!this.options.excludeSessionStorage&&this.hasSessionStorage()&&e.addPreprocessedComponent({key:"session_storage",value:1}),e},localStorageKey:function(e){return!this.options.excludeSessionStorage&&this.hasLocalStorage()&&e.addPreprocessedComponent({key:"local_storage",value:1}),e},indexedDbKey:function(e){return!this.options.excludeIndexedDB&&this.hasIndexedDB()&&e.addPreprocessedComponent({key:"indexed_db",value:1}),e},addBehaviorKey:function(e){return!this.options.excludeAddBehavior&&document.body&&document.body.addBehavior&&e.addPreprocessedComponent({key:"add_behavior",value:1}),e},openDatabaseKey:function(e){return!this.options.excludeOpenDatabase&&window.openDatabase&&e.addPreprocessedComponent({key:"open_database",value:1}),e},cpuClassKey:function(e){return this.options.excludeCpuClass||e.addPreprocessedComponent({key:"cpu_class",value:this.getNavigatorCpuClass()}),e},platformKey:function(e){return this.options.excludePlatform||e.addPreprocessedComponent({key:"navigator_platform",value:this.getNavigatorPlatform()}),e},doNotTrackKey:function(e){return this.options.excludeDoNotTrack||e.addPreprocessedComponent({key:"do_not_track",value:this.getDoNotTrack()}),e},canvasKey:function(e){return!this.options.excludeCanvas&&this.isCanvasSupported()&&e.addPreprocessedComponent({key:"canvas",value:this.getCanvasFp()}),e},webglKey:function(e){return!this.options.excludeWebGL&&this.isWebGlSupported()&&e.addPreprocessedComponent({key:"webgl",value:this.getWebglFp()}),e},webglVendorAndRendererKey:function(e){return!this.options.excludeWebGLVendorAndRenderer&&this.isWebGlSupported()&&e.addPreprocessedComponent({key:"webgl_vendor",value:this.getWebglVendorAndRenderer()}),e},adBlockKey:function(e){return this.options.excludeAdBlock||e.addPreprocessedComponent({key:"adblock",value:this.getAdBlock()}),e},hasLiedLanguagesKey:function(e){return this.options.excludeHasLiedLanguages||e.addPreprocessedComponent({key:"has_lied_languages",value:this.getHasLiedLanguages()}),e},hasLiedResolutionKey:function(e){return this.options.excludeHasLiedResolution||e.addPreprocessedComponent({key:"has_lied_resolution",value:this.getHasLiedResolution()}),e},hasLiedOsKey:function(e){return this.options.excludeHasLiedOs||e.addPreprocessedComponent({key:"has_lied_os",value:this.getHasLiedOs()}),e},hasLiedBrowserKey:function(e){return this.options.excludeHasLiedBrowser||e.addPreprocessedComponent({key:"has_lied_browser",value:this.getHasLiedBrowser()}),e},fontsKey:function(e,t){return this.options.excludeJsFonts?this.flashFontsKey(e,t):this.jsFontsKey(e,t)},flashFontsKey:function(e,t){return this.options.excludeFlashFonts?t(e):this.hasSwfObjectLoaded()&&this.hasMinFlashInstalled()?void 0===this.options.swfPath?t(e):void this.loadSwfAndDetectFonts(function(r){e.addPreprocessedComponent({key:"swf_fonts",value:r.join(";")}),t(e)}):t(e)},jsFontsKey:function(e,t){var r=this;return setTimeout(function(){var n=["monospace","sans-serif","serif"],i=["Andale Mono","Arial","Arial Black","Arial Hebrew","Arial MT","Arial Narrow","Arial Rounded MT Bold","Arial Unicode MS","Bitstream Vera Sans Mono","Book Antiqua","Bookman Old Style","Calibri","Cambria","Cambria Math","Century","Century Gothic","Century Schoolbook","Comic Sans","Comic Sans MS","Consolas","Courier","Courier New","Geneva","Georgia","Helvetica","Helvetica Neue","Impact","Lucida Bright","Lucida Calligraphy","Lucida Console","Lucida Fax","LUCIDA GRANDE","Lucida Handwriting","Lucida Sans","Lucida Sans Typewriter","Lucida Sans Unicode","Microsoft Sans Serif","Monaco","Monotype Corsiva","MS Gothic","MS Outlook","MS PGothic","MS Reference Sans Serif","MS Sans Serif","MS Serif","MYRIAD","MYRIAD PRO","Palatino","Palatino Linotype","Segoe Print","Segoe Script","Segoe UI","Segoe UI Light","Segoe UI Semibold","Segoe UI Symbol","Tahoma","Times","Times New Roman","Times New Roman PS","Trebuchet MS","Verdana","Wingdings","Wingdings 2","Wingdings 3"];r.options.extendedJsFonts&&(i=i.concat(["Abadi MT Condensed Light","Academy Engraved LET","ADOBE CASLON PRO","Adobe Garamond","ADOBE GARAMOND PRO","Agency FB","Aharoni","Albertus Extra Bold","Albertus Medium","Algerian","Amazone BT","American Typewriter","American Typewriter Condensed","AmerType Md BT","Andalus","Angsana New","AngsanaUPC","Antique Olive","Aparajita","Apple Chancery","Apple Color Emoji","Apple SD Gothic Neo","Arabic Typesetting","ARCHER","ARNO PRO","Arrus BT","Aurora Cn BT","AvantGarde Bk BT","AvantGarde Md BT","AVENIR","Ayuthaya","Bandy","Bangla Sangam MN","Bank Gothic","BankGothic Md BT","Baskerville","Baskerville Old Face","Batang","BatangChe","Bauer Bodoni","Bauhaus 93","Bazooka","Bell MT","Bembo","Benguiat Bk BT","Berlin Sans FB","Berlin Sans FB Demi","Bernard MT Condensed","BernhardFashion BT","BernhardMod BT","Big Caslon","BinnerD","Blackadder ITC","BlairMdITC TT","Bodoni 72","Bodoni 72 Oldstyle","Bodoni 72 Smallcaps","Bodoni MT","Bodoni MT Black","Bodoni MT Condensed","Bodoni MT Poster Compressed","Bookshelf Symbol 7","Boulder","Bradley Hand","Bradley Hand ITC","Bremen Bd BT","Britannic Bold","Broadway","Browallia New","BrowalliaUPC","Brush Script MT","Californian FB","Calisto MT","Calligrapher","Candara","CaslonOpnface BT","Castellar","Centaur","Cezanne","CG Omega","CG Times","Chalkboard","Chalkboard SE","Chalkduster","Charlesworth","Charter Bd BT","Charter BT","Chaucer","ChelthmITC Bk BT","Chiller","Clarendon","Clarendon Condensed","CloisterBlack BT","Cochin","Colonna MT","Constantia","Cooper Black","Copperplate","Copperplate Gothic","Copperplate Gothic Bold","Copperplate Gothic Light","CopperplGoth Bd BT","Corbel","Cordia New","CordiaUPC","Cornerstone","Coronet","Cuckoo","Curlz MT","DaunPenh","Dauphin","David","DB LCD Temp","DELICIOUS","Denmark","DFKai-SB","Didot","DilleniaUPC","DIN","DokChampa","Dotum","DotumChe","Ebrima","Edwardian Script ITC","Elephant","English 111 Vivace BT","Engravers MT","EngraversGothic BT","Eras Bold ITC","Eras Demi ITC","Eras Light ITC","Eras Medium ITC","EucrosiaUPC","Euphemia","Euphemia UCAS","EUROSTILE","Exotc350 Bd BT","FangSong","Felix Titling","Fixedsys","FONTIN","Footlight MT Light","Forte","FrankRuehl","Fransiscan","Freefrm721 Blk BT","FreesiaUPC","Freestyle Script","French Script MT","FrnkGothITC Bk BT","Fruitger","FRUTIGER","Futura","Futura Bk BT","Futura Lt BT","Futura Md BT","Futura ZBlk BT","FuturaBlack BT","Gabriola","Galliard BT","Gautami","Geeza Pro","Geometr231 BT","Geometr231 Hv BT","Geometr231 Lt BT","GeoSlab 703 Lt BT","GeoSlab 703 XBd BT","Gigi","Gill Sans","Gill Sans MT","Gill Sans MT Condensed","Gill Sans MT Ext Condensed Bold","Gill Sans Ultra Bold","Gill Sans Ultra Bold Condensed","Gisha","Gloucester MT Extra Condensed","GOTHAM","GOTHAM BOLD","Goudy Old Style","Goudy Stout","GoudyHandtooled BT","GoudyOLSt BT","Gujarati Sangam MN","Gulim","GulimChe","Gungsuh","GungsuhChe","Gurmukhi MN","Haettenschweiler","Harlow Solid Italic","Harrington","Heather","Heiti SC","Heiti TC","HELV","Herald","High Tower Text","Hiragino Kaku Gothic ProN","Hiragino Mincho ProN","Hoefler Text","Humanst 521 Cn BT","Humanst521 BT","Humanst521 Lt BT","Imprint MT Shadow","Incised901 Bd BT","Incised901 BT","Incised901 Lt BT","INCONSOLATA","Informal Roman","Informal011 BT","INTERSTATE","IrisUPC","Iskoola Pota","JasmineUPC","Jazz LET","Jenson","Jester","Jokerman","Juice ITC","Kabel Bk BT","Kabel Ult BT","Kailasa","KaiTi","Kalinga","Kannada Sangam MN","Kartika","Kaufmann Bd BT","Kaufmann BT","Khmer UI","KodchiangUPC","Kokila","Korinna BT","Kristen ITC","Krungthep","Kunstler Script","Lao UI","Latha","Leelawadee","Letter Gothic","Levenim MT","LilyUPC","Lithograph","Lithograph Light","Long Island","Lydian BT","Magneto","Maiandra GD","Malayalam Sangam MN","Malgun Gothic","Mangal","Marigold","Marion","Marker Felt","Market","Marlett","Matisse ITC","Matura MT Script Capitals","Meiryo","Meiryo UI","Microsoft Himalaya","Microsoft JhengHei","Microsoft New Tai Lue","Microsoft PhagsPa","Microsoft Tai Le","Microsoft Uighur","Microsoft YaHei","Microsoft Yi Baiti","MingLiU","MingLiU_HKSCS","MingLiU_HKSCS-ExtB","MingLiU-ExtB","Minion","Minion Pro","Miriam","Miriam Fixed","Mistral","Modern","Modern No. 20","Mona Lisa Solid ITC TT","Mongolian Baiti","MONO","MoolBoran","Mrs Eaves","MS LineDraw","MS Mincho","MS PMincho","MS Reference Specialty","MS UI Gothic","MT Extra","MUSEO","MV Boli","Nadeem","Narkisim","NEVIS","News Gothic","News GothicMT","NewsGoth BT","Niagara Engraved","Niagara Solid","Noteworthy","NSimSun","Nyala","OCR A Extended","Old Century","Old English Text MT","Onyx","Onyx BT","OPTIMA","Oriya Sangam MN","OSAKA","OzHandicraft BT","Palace Script MT","Papyrus","Parchment","Party LET","Pegasus","Perpetua","Perpetua Titling MT","PetitaBold","Pickwick","Plantagenet Cherokee","Playbill","PMingLiU","PMingLiU-ExtB","Poor Richard","Poster","PosterBodoni BT","PRINCETOWN LET","Pristina","PTBarnum BT","Pythagoras","Raavi","Rage Italic","Ravie","Ribbon131 Bd BT","Rockwell","Rockwell Condensed","Rockwell Extra Bold","Rod","Roman","Sakkal Majalla","Santa Fe LET","Savoye LET","Sceptre","Script","Script MT Bold","SCRIPTINA","Serifa","Serifa BT","Serifa Th BT","ShelleyVolante BT","Sherwood","Shonar Bangla","Showcard Gothic","Shruti","Signboard","SILKSCREEN","SimHei","Simplified Arabic","Simplified Arabic Fixed","SimSun","SimSun-ExtB","Sinhala Sangam MN","Sketch Rockwell","Skia","Small Fonts","Snap ITC","Snell Roundhand","Socket","Souvenir Lt BT","Staccato222 BT","Steamer","Stencil","Storybook","Styllo","Subway","Swis721 BlkEx BT","Swiss911 XCm BT","Sylfaen","Synchro LET","System","Tamil Sangam MN","Technical","Teletype","Telugu Sangam MN","Tempus Sans ITC","Terminal","Thonburi","Traditional Arabic","Trajan","TRAJAN PRO","Tristan","Tubular","Tunga","Tw Cen MT","Tw Cen MT Condensed","Tw Cen MT Condensed Extra Bold","TypoUpright BT","Unicorn","Univers","Univers CE 55 Medium","Univers Condensed","Utsaah","Vagabond","Vani","Vijaya","Viner Hand ITC","VisualUI","Vivaldi","Vladimir Script","Vrinda","Westminster","WHITNEY","Wide Latin","ZapfEllipt BT","ZapfHumnst BT","ZapfHumnst Dm BT","Zapfino","Zurich BlkEx BT","Zurich Ex BT","ZWAdobeF"])),i=(i=i.concat(r.options.userDefinedFonts)).filter(function(e,t){return i.indexOf(e)===t});var a=document.getElementsByTagName("body")[0],o=document.createElement("div"),s=document.createElement("div"),l={},d={},h=function(){var e=document.createElement("span");return e.style.position="absolute",e.style.left="-9999px",e.style.fontSize="72px",e.style.fontStyle="normal",e.style.fontWeight="normal",e.style.letterSpacing="normal",e.style.lineBreak="auto",e.style.lineHeight="normal",e.style.textTransform="none",e.style.textAlign="left",e.style.textDecoration="none",e.style.textShadow="none",e.style.whiteSpace="normal",e.style.wordBreak="normal",e.style.wordSpacing="normal",e.innerHTML="mmmmmmmmmmlli",e},c=function(e){for(var t=!1,r=0;rt.name?1:e.name=0?"Windows Phone":t.indexOf("win")>=0?"Windows":t.indexOf("android")>=0?"Android":t.indexOf("linux")>=0?"Linux":t.indexOf("iphone")>=0||t.indexOf("ipad")>=0?"iOS":t.indexOf("mac")>=0?"Mac":"Other",("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)&&"Windows Phone"!==e&&"Android"!==e&&"iOS"!==e&&"Other"!==e)return!0;if(void 0!==r){if((r=r.toLowerCase()).indexOf("win")>=0&&"Windows"!==e&&"Windows Phone"!==e)return!0;if(r.indexOf("linux")>=0&&"Linux"!==e&&"Android"!==e)return!0;if(r.indexOf("mac")>=0&&"Mac"!==e&&"iOS"!==e)return!0;if((-1===r.indexOf("win")&&-1===r.indexOf("linux")&&-1===r.indexOf("mac"))!=("Other"===e))return!0}return n.indexOf("win")>=0&&"Windows"!==e&&"Windows Phone"!==e||((n.indexOf("linux")>=0||n.indexOf("android")>=0||n.indexOf("pike")>=0)&&"Linux"!==e&&"Android"!==e||((n.indexOf("mac")>=0||n.indexOf("ipad")>=0||n.indexOf("ipod")>=0||n.indexOf("iphone")>=0)&&"Mac"!==e&&"iOS"!==e||((-1===n.indexOf("win")&&-1===n.indexOf("linux")&&-1===n.indexOf("mac"))!=("Other"===e)||void 0===navigator.plugins&&"Windows"!==e&&"Windows Phone"!==e)))},getHasLiedBrowser:function(){var e,t=navigator.userAgent.toLowerCase(),r=navigator.productSub;if(("Chrome"===(e=t.indexOf("firefox")>=0?"Firefox":t.indexOf("opera")>=0||t.indexOf("opr")>=0?"Opera":t.indexOf("chrome")>=0?"Chrome":t.indexOf("safari")>=0?"Safari":t.indexOf("trident")>=0?"Internet Explorer":"Other")||"Safari"===e||"Opera"===e)&&"20030107"!==r)return!0;var n,i=eval.toString().length;if(37===i&&"Safari"!==e&&"Firefox"!==e&&"Other"!==e)return!0;if(39===i&&"Internet Explorer"!==e&&"Other"!==e)return!0;if(33===i&&"Chrome"!==e&&"Opera"!==e&&"Other"!==e)return!0;try{throw"a"}catch(e){try{e.toSource(),n=!0}catch(e){n=!1}}return!(!n||"Firefox"===e||"Other"===e)},isCanvasSupported:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},isWebGlSupported:function(){if(!this.isCanvasSupported())return!1;var e=this.getWebglCanvas();return!!window.WebGLRenderingContext&&!!e},isIE:function(){return"Microsoft Internet Explorer"===navigator.appName||!("Netscape"!==navigator.appName||!/Trident/.test(navigator.userAgent))},hasSwfObjectLoaded:function(){return void 0!==window.swfobject},hasMinFlashInstalled:function(){return window.swfobject.hasFlashPlayerVersion("9.0.0")},addFlashDivNode:function(){var e=document.createElement("div");e.setAttribute("id",this.options.swfContainerId),document.body.appendChild(e)},loadSwfAndDetectFonts:function(e){var t="___fp_swf_loaded";window[t]=function(t){e(t)};var r=this.options.swfContainerId;this.addFlashDivNode();var n={onReady:t};window.swfobject.embedSWF(this.options.swfPath,r,"1","1","9.0.0",!1,n,{allowScriptAccess:"always",menu:"false"},{})},getWebglCanvas:function(){var e=document.createElement("canvas"),t=null;try{t=e.getContext("webgl")||e.getContext("experimental-webgl")}catch(e){}return t||(t=null),t},each:function(e,t,r){if(null!==e)if(this.nativeForEach&&e.forEach===this.nativeForEach)e.forEach(t,r);else if(e.length===+e.length){for(var n=0,i=e.length;n>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var r=[0,0,0,0];return r[3]+=e[3]+t[3],r[2]+=r[3]>>>16,r[3]&=65535,r[2]+=e[2]+t[2],r[1]+=r[2]>>>16,r[2]&=65535,r[1]+=e[1]+t[1],r[0]+=r[1]>>>16,r[1]&=65535,r[0]+=e[0]+t[0],r[0]&=65535,[r[0]<<16|r[1],r[2]<<16|r[3]]},x64Multiply:function(e,t){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var r=[0,0,0,0];return r[3]+=e[3]*t[3],r[2]+=r[3]>>>16,r[3]&=65535,r[2]+=e[2]*t[3],r[1]+=r[2]>>>16,r[2]&=65535,r[2]+=e[3]*t[2],r[1]+=r[2]>>>16,r[2]&=65535,r[1]+=e[1]*t[3],r[0]+=r[1]>>>16,r[1]&=65535,r[1]+=e[2]*t[2],r[0]+=r[1]>>>16,r[1]&=65535,r[1]+=e[3]*t[1],r[0]+=r[1]>>>16,r[1]&=65535,r[0]+=e[0]*t[3]+e[1]*t[2]+e[2]*t[1]+e[3]*t[0],r[0]&=65535,[r[0]<<16|r[1],r[2]<<16|r[3]]},x64Rotl:function(e,t){return 32===(t%=64)?[e[1],e[0]]:t<32?[e[0]<>>32-t,e[1]<>>32-t]:(t-=32,[e[1]<>>32-t,e[0]<>>32-t])},x64LeftShift:function(e,t){return 0===(t%=64)?e:t<32?[e[0]<>>32-t,e[1]<>>1]),e=this.x64Multiply(e,[4283543511,3981806797]),e=this.x64Xor(e,[0,e[0]>>>1]),e=this.x64Multiply(e,[3301882366,444984403]),e=this.x64Xor(e,[0,e[0]>>>1])},x64hash128:function(e,t){e=e||"",t=t||0;for(var r=e.length%16,n=e.length-r,i=[0,t],a=[0,t],o=[0,0],s=[0,0],l=[2277735313,289559509],d=[1291169091,658871167],h=0;h>>0).toString(16)).slice(-8)+("00000000"+(i[1]>>>0).toString(16)).slice(-8)+("00000000"+(a[0]>>>0).toString(16)).slice(-8)+("00000000"+(a[1]>>>0).toString(16)).slice(-8)}},e.VERSION="1.8.0",e}); @@ -331,7 +324,7 @@ var ukefu = { signal = 0 ; checkTimes = 0 ; ukefu.ping(); - console.log("优客服客户端信息校对"); + console.log("春松客服客户端信息校对"); } },5000) ; } From 546b8e6ddc486d40f6d27b23da7abc519c4dcd37 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 20:25:27 +0800 Subject: [PATCH 04/16] =?UTF-8?q?#75=20=E5=A2=9E=E5=8A=A0chatbot=20socket.?= =?UTF-8?q?io=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/chatopera/cc/core/UKDataContext.java | 2 +- .../service/repository/ChatbotRepository.java | 2 + .../cc/webim/util/server/ServerRunner.java | 14 +- .../server/handler/ChatbotEventHandler.java | 198 ++++++ .../handler/apps/internet/IMController.java | 37 +- .../chatopera/cc/webim/web/model/Chatbot.java | 1 + .../templates/apps/im/chatbot/index.html | 581 ++++++++++++++++++ .../templates/apps/im/chatbot/mobile.html | 431 +++++++++++++ 8 files changed, 1234 insertions(+), 32 deletions(-) create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java create mode 100644 contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html create mode 100644 contact-center/app/src/main/resources/templates/apps/im/chatbot/mobile.html diff --git a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java index 55ee0066..5394f5f5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java @@ -705,7 +705,7 @@ public class UKDataContext { IM("/im/user"), AGENT("/im/agent"), ENTIM("/im/ent"), - AIIM("/im/ai"), + CHATBOT("/im/chatbot"), CALLCENTER("/callcenter/event"), CALLOUT("/callout/event"); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java index 831ff212..9e7a7d87 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java @@ -15,6 +15,8 @@ public abstract interface ChatbotRepository extends JpaRepository findByIdAndOrgi(String id, String orgi); + @Query(value = "select c from Chatbot c where " + "(:myorgans is null or c.organ IN :myorgans)") public Page findByOrgans(@Param("myorgans") List myorgans, Pageable pageRequest); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java index 00aa4519..34269faa 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java @@ -19,7 +19,7 @@ package com.chatopera.cc.webim.util.server; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; -import com.chatopera.cc.webim.util.server.handler.AiIMEventHandler; +import com.chatopera.cc.webim.util.server.handler.ChatbotEventHandler; import com.chatopera.cc.webim.util.server.handler.EntIMEventHandler; import com.chatopera.cc.webim.util.server.handler.IMEventHandler; import org.springframework.beans.factory.annotation.Autowired; @@ -38,7 +38,7 @@ public class ServerRunner implements CommandLineRunner { private final SocketIONamespace imSocketNameSpace ; private final SocketIONamespace agentSocketIONameSpace ; private final SocketIONamespace entIMSocketIONameSpace ; - private final SocketIONamespace aiIMSocketIONameSpace ; + private final SocketIONamespace chatbotSocketIONameSpace ; private final SocketIONamespace callCenterSocketIONameSpace ; private final SocketIONamespace calloutSocketIONameSpace ; @@ -48,7 +48,7 @@ public class ServerRunner implements CommandLineRunner { imSocketNameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.IM.getNamespace()) ; agentSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.AGENT.getNamespace()) ; entIMSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.ENTIM.getNamespace()) ; - aiIMSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.AIIM.getNamespace()) ; + chatbotSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CHATBOT.getNamespace()) ; if(UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true){ calloutSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLOUT.getNamespace()); @@ -81,10 +81,10 @@ public class ServerRunner implements CommandLineRunner { return entIMSocketIONameSpace; } - @Bean(name="aiimNamespace") - public SocketIONamespace getAiIMSocketIONameSpace(SocketIOServer server){ - aiIMSocketIONameSpace.addListeners(new AiIMEventHandler(server)); - return aiIMSocketIONameSpace; + @Bean(name="chatbotNamespace") + public SocketIONamespace getChatbotSocketIONameSpace(SocketIOServer server){ + chatbotSocketIONameSpace.addListeners(new ChatbotEventHandler(server)); + return chatbotSocketIONameSpace; } @Bean(name="callCenterNamespace") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java new file mode 100644 index 00000000..b6347f0a --- /dev/null +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2018 Chatopera Inc, + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chatopera.cc.webim.util.server.handler; + +import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.util.IPTools; +import com.chatopera.cc.util.UKTools; +import com.chatopera.cc.util.client.NettyClients; +import com.chatopera.cc.webim.service.acd.ServiceQuene; +import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; +import com.chatopera.cc.webim.util.MessageUtils; +import com.chatopera.cc.webim.util.OnlineUserUtils; +import com.chatopera.cc.webim.util.router.OutMessageRouter; +import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; +import com.chatopera.cc.webim.util.server.message.ChatMessage; +import com.chatopera.cc.webim.util.server.message.NewRequestMessage; +import com.chatopera.cc.webim.web.model.AgentService; +import com.chatopera.cc.webim.web.model.AiUser; +import com.chatopera.cc.webim.web.model.CousultInvite; +import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.corundumstudio.socketio.AckRequest; +import com.corundumstudio.socketio.SocketIOClient; +import com.corundumstudio.socketio.SocketIOServer; +import com.corundumstudio.socketio.annotation.OnConnect; +import com.corundumstudio.socketio.annotation.OnDisconnect; +import com.corundumstudio.socketio.annotation.OnEvent; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import java.net.InetSocketAddress; +import java.util.Date; + +public class ChatbotEventHandler +{ + protected SocketIOServer server; + + @Autowired + public ChatbotEventHandler(SocketIOServer server) + { + this.server = server ; + } + + @OnConnect + public void onConnect(SocketIOClient client) + { + try { + String user = client.getHandshakeData().getSingleUrlParam("userid") ; + String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; +// String session = client.getHandshakeData().getSingleUrlParam("session") ; + String appid = client.getHandshakeData().getSingleUrlParam("appid") ; + String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; +// String agent = client.getHandshakeData().getSingleUrlParam("agent") ; +// String skill = client.getHandshakeData().getSingleUrlParam("skill") ; + + if(!StringUtils.isBlank(user)){ +// /** +// * 加入到 缓存列表 +// */ + NettyClients.getInstance().putIMEventClient(user, client); + MessageOutContent outMessage = new MessageOutContent() ; + CousultInvite invite = OnlineUserUtils.cousult(appid , orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if(invite!=null && !StringUtils.isBlank(invite.getAisuccesstip())) { + outMessage.setMessage(invite.getAisuccesstip()); + }else{ + outMessage.setMessage("欢迎使用优客服小E,我来帮您解答问题"); + } + + outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setNickName("AI"); + outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); + + client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); + + InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress() ; + String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()) ; + AiUser aiUser = new AiUser(user, user, System.currentTimeMillis() , orgi,IPTools.getInstance().findGeography(ip)) ; + aiUser.setSessionid(UKTools.getContextID(client.getSessionId().toString())); + aiUser.setAppid(appid); + aiUser.setAiid(aiid); + aiUser.setUsername(UKDataContext.GUEST_USER+"_"+UKTools.genIDByKey(aiUser.getId())); + aiUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + + AgentService agentService = ServiceQuene.processAiService(aiUser, orgi) ; + aiUser.setAgentserviceid(agentService.getId()); + + CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + //添加@OnDisconnect事件,客户端断开连接时调用,刷新客户端信息 + @OnDisconnect + public void onDisconnect(SocketIOClient client) throws Exception + { + String user = client.getHandshakeData().getSingleUrlParam("userid") ; + String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; + if(!StringUtils.isBlank(user)){ + NettyClients.getInstance().removeIMEventClient(user , UKTools.getContextID(client.getSessionId().toString())); + AiUser aiUser = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi) ; + if(aiUser!=null) { + ServiceQuene.processAiService(aiUser, orgi) ; + CacheHelper.getOnlineUserCacheBean().delete(user,UKDataContext.SYSTEM_ORGI) ; + } + } + client.disconnect(); + } + + //消息接收入口,网站有新用户接入对话 + @OnEvent(value = "new") + public void onEvent(SocketIOClient client, AckRequest request, NewRequestMessage data) + { + + } + + //消息接收入口,坐席状态更新 + @OnEvent(value = "agentstatus") + public void onEvent(SocketIOClient client, AckRequest request, AgentStatusMessage data) + { + System.out.println(data.getMessage()); + } + + //消息接收入口,收发消息,用户向坐席发送消息和 坐席向用户发送消息 + @OnEvent(value = "message") + public void onEvent(SocketIOClient client, AckRequest request, ChatMessage data) + { + String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; + String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; + String user = client.getHandshakeData().getSingleUrlParam("userid") ; + if(data.getType() == null){ + data.setType("message"); + } + /** + * 以下代码主要用于检查 访客端的字数限制 + */ + CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(),data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if(invite!=null && invite.getMaxwordsnum() > 0) { + if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()){ + data.setMessage(data.getMessage().substring(0 , invite.getMaxwordsnum())); + } + }else if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > 300){ + data.setMessage(data.getMessage().substring(0 , 300)); + } + data.setSessionid(UKTools.getContextID(client.getSessionId().toString())); + /** + * 处理表情 + */ + data.setMessage(UKTools.processEmoti(data.getMessage())); + data.setTousername(UKDataContext.ChannelTypeEnum.AI.toString()); + + data.setAiid(aiid); + + Object cacheData = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user,orgi) ; + if(cacheData!=null && cacheData instanceof AiUser){ + AiUser aiUser = (AiUser)cacheData ; + data.setAgentserviceid(aiUser.getAgentserviceid()); + data.setChannel(aiUser.getChannel()); + /** + * 一定要设置 ContextID + */ + data.setContextid(aiUser.getAgentserviceid()); + } + MessageOutContent outMessage = MessageUtils.createAiMessage(data , data.getAppid() , data.getChannel() , UKDataContext.CallTypeEnum.IN.toString() , UKDataContext.AiItemType.USERINPUT.toString() , UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()) ; + if(!StringUtils.isBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())){ + if(!StringUtils.isBlank(data.getTouser())){ + OutMessageRouter router = null ; + router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()) ; + if(router!=null){ + router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); + } + } + if(cacheData!=null && cacheData instanceof AiUser){ + AiUser aiUser = (AiUser)cacheData ; + aiUser.setTime(System.currentTimeMillis()); + CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + } + } + UKTools.ai(data); + } +} \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java index c4546a07..96eac4d5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java @@ -56,6 +56,8 @@ import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; @Controller @@ -474,32 +476,19 @@ public class IMController extends Handler { if (UKDataContext.model.get("chatbot") != null && StringUtils.isNotBlank(invite.getAiid()) && invite.isAi() && - (StringUtils.equals(ai, "true") || (invite.isAifirst() && ai == null))) { //启用 AI , 并且 AI优先 接待 - DataExchangeInterface dataInterface = (DataExchangeInterface) UKDataContext.getContext().getBean("aiconfig"); - AiConfig aiConfig = (AiConfig) dataInterface.getDataByIdAndOrgi(aiid, invite.getOrgi()); - if (aiConfig != null) { - map.addAttribute("aiConfig", aiConfig); + invite.isAifirst()) { //启用 AI , 并且 AI优先 接待 + HashMap chatbotConfig = new HashMap(); + chatbotConfig.put("botname", invite.getAiname()); + chatbotConfig.put("botid", invite.getAiid()); + chatbotConfig.put("botwelcome", invite.getAimsg()); + chatbotConfig.put("botfirst", Boolean.toString(invite.isAifirst())); + chatbotConfig.put("isai", Boolean.toString(invite.isAi())); + if (chatbotConfig != null) { + map.addAttribute("chatbotConfig", chatbotConfig); } - view = request(super.createRequestPageTempletResponse("/apps/im/ai/index")); + view = request(super.createRequestPageTempletResponse("/apps/im/chatbot/index")); if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { - view = request(super.createRequestPageTempletResponse("/apps/im/ai/mobile")); //智能机器人 移动端 - } - if (UKDataContext.model.get("xiaoe") != null) { - List topicList = OnlineUserUtils.cacheHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic"), super.getUser(request), orgi, aiid); - - /** - * 初步按照地区匹配分类筛选 - */ - List topicTypeList = OnlineUserUtils.topicType(orgi, ipdata, OnlineUserUtils.cacheHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype"), super.getUser(request), orgi, aiid)); - - /** - * 第二步按照 有 热点主题的 分类做筛选 - */ - map.addAttribute("topicList", OnlineUserUtils.topic(orgi, topicTypeList, topicList)); - /** - * 第三步筛选 分类,如果无热点知识,则不显示分类 - */ - map.addAttribute("topicTypeList", OnlineUserUtils.filterTopicType(topicTypeList, topicList)); + view = request(super.createRequestPageTempletResponse("/apps/im/chatbot/mobile")); //智能机器人 移动端 } } else { if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Chatbot.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Chatbot.java index 38a681e0..b642b084 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Chatbot.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Chatbot.java @@ -20,6 +20,7 @@ import com.chatopera.chatbot.ChatbotAPIRuntimeException; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; +import java.io.Serializable; import java.net.MalformedURLException; import java.util.Date; diff --git a/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html new file mode 100644 index 00000000..22566be4 --- /dev/null +++ b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html @@ -0,0 +1,581 @@ + + + + + + + + + 在线咨询 + + + + + + + + + + + + + + + +
+
+ +
+
+ <#if welcomeAd> +
+ + <#if welcomeAd.adtype =="image"> + + <#else> + + + +
+ +
+ ${(inviteData.dialog_message!'欢迎您来咨询!欢迎使用春松客服!如需帮助请联系 info@chatopera.com')?no_esc}
+ <#if chatMessageList?? && chatMessageList.content??> + <#list chatMessageList.content?reverse as chatMessage> + <#if chatMessage.userid?? && userid?? && chatMessage.calltype?? && chatMessage.calltype = "呼入"> +
+
+ +
+ + +
+
+ +
<#include "/apps/im/media/message.html">
+
+
+
+ <#else> +
+
+ +
+ + +
+
+ +
<#include "/apps/im/media/message.html">
+
+
+
+ + + +
+
+ +
+
0/200
+ +
+
+
+
+
+
+

信息提示

+
+
    + <#if inviteData.dialog_name?? && inviteData.dialog_name != ""> +
  • +

    名称:${inviteData.dialog_name!''}

    +
  • + + <#if inviteData.dialog_address?? && inviteData.dialog_address != ""> +
  • +

    地址:${inviteData.dialog_address!''}

    +
  • + + <#if inviteData.dialog_phone?? && inviteData.dialog_phone != ""> +
  • +

    电话:${inviteData.dialog_phone!''}

    +
  • + +<#if inviteData.dialog_mail?? && inviteData.dialog_mail != ""> +
  • +

    邮件:${inviteData.dialog_mail!''}

    +
  • + +<#if inviteData.dialog_mail?? && inviteData.dialog_introduction != ""> +
  • +

    ${(inviteData.dialog_introduction!'')?no_esc}

    +
  • + +
+
+
+ <#if imageAd> + <#if imageAd.adtype =="image"> + + <#else> + + +<#elseif inviteData.dialog_ad??> + + +
+
+
+ +
+<#if sessionConfig?? && sessionConfig.satisfaction?? && sessionConfig.satisfaction> + + + + + + + diff --git a/contact-center/app/src/main/resources/templates/apps/im/chatbot/mobile.html b/contact-center/app/src/main/resources/templates/apps/im/chatbot/mobile.html new file mode 100644 index 00000000..9f749aab --- /dev/null +++ b/contact-center/app/src/main/resources/templates/apps/im/chatbot/mobile.html @@ -0,0 +1,431 @@ + + + + + + + + 智能客服 + + + + + + + + + + + + + + + + + + + + + + +
+
+ ${(inviteData.dialog_message!'欢迎您来咨询!欢迎使用春松客服!如需帮助请联系 info@chatopera.com')?no_esc} +
+ <#if chatMessageList?? && chatMessageList.content??> + <#list chatMessageList.content?reverse as chatMessage> + <#if chatMessage.userid?? && userid?? && chatMessage.calltype?? && chatMessage.calltype = "呼入"> +
+
+ +
+ +
+
+ +
<#include + "/apps/im/media/message.html">
+
+
+
+ <#else> +
+
+ +
+ +
+
+ +
<#include "/apps/im/media/message.html">
+
+
+
+ +
+ +
+
+ + + + +
+ +
+ + +
+ + +
+ + + + + From 1891891e4ad069185b50a769d6fd433b271c7e5b Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 22:12:09 +0800 Subject: [PATCH 05/16] #75 enable chatbox for chatbot in client HTML Pages --- .../com/chatopera/cc/core/UKDataContext.java | 4 +- .../cc/webim/util/OnlineUserUtils.java | 2210 ++++++++--------- .../cc/webim/util/chatbot/ChatbotUtils.java | 2 +- .../util/server/handler/AiIMEventHandler.java | 200 -- .../api/rest/ApiChatbotController.java | 5 +- .../handler/apps/internet/IMController.java | 113 +- .../templates/apps/im/chatbot/index.html | 12 +- .../resources/templates/apps/im/index.html | 2 +- .../Chatopera_cc_v1.postman_collection.json | 112 +- 9 files changed, 1272 insertions(+), 1388 deletions(-) delete mode 100644 contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AiIMEventHandler.java diff --git a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java index 5394f5f5..6df22979 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java @@ -928,7 +928,7 @@ public class UKDataContext { } } - public enum AiType { + public enum ChatbotType { SMARTAI, BUSINESSAI; @@ -938,7 +938,7 @@ public class UKDataContext { } - public enum AiBussType { + public enum ChatbotBussType { SALE, QUESURVEY; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java index 241a8a2a..fabc4421 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java @@ -16,734 +16,707 @@ */ package com.chatopera.cc.webim.util; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; - -import com.chatopera.cc.util.CheckMobile; +import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.util.*; +import com.chatopera.cc.util.extra.DataExchangeInterface; +import com.chatopera.cc.util.webim.WebIMClient; +import com.chatopera.cc.webim.service.acd.ServiceQuene; import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.webim.service.impl.AgentUserService; +import com.chatopera.cc.webim.service.repository.*; +import com.chatopera.cc.webim.util.router.RouterHelper; import com.chatopera.cc.webim.util.server.message.NewRequestMessage; import com.chatopera.cc.webim.util.server.message.OtherMessageItem; +import com.chatopera.cc.webim.web.model.*; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; +import freemarker.template.TemplateException; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.util.BrowserClient; -import com.chatopera.cc.util.IP; -import com.chatopera.cc.util.IPTools; -import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.util.webim.WebIMClient; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.impl.AgentUserService; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserHisRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.service.repository.TenantRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.util.router.RouterHelper; -import com.chatopera.cc.webim.web.model.AgentReport; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.AiConfig; -import com.chatopera.cc.webim.web.model.AreaType; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.KnowledgeType; -import com.chatopera.cc.webim.web.model.MessageDataBean; -import com.chatopera.cc.webim.web.model.MessageInContent; -import com.chatopera.cc.webim.web.model.OnlineUser; -import com.chatopera.cc.webim.web.model.OnlineUserHis; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.SceneType; -import com.chatopera.cc.webim.web.model.SessionConfig; -import com.chatopera.cc.webim.web.model.SystemConfig; -import com.chatopera.cc.webim.web.model.Template; -import com.chatopera.cc.webim.web.model.Tenant; -import com.chatopera.cc.webim.web.model.Topic; -import com.chatopera.cc.webim.web.model.User; -import com.chatopera.cc.webim.web.model.UserTraceHistory; - -import freemarker.template.TemplateException; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.*; public class OnlineUserUtils { private final static Logger logger = LoggerFactory.getLogger(OnlineUserUtils.class); - public static WebSseEmitterClient webIMClients = new WebSseEmitterClient(); - public static ObjectMapper objectMapper = new ObjectMapper(); - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - public static OnlineUser user(User user, - String orgi, String id, OnlineUserRepository service) - throws Exception { - List onlineUserList = service.findByUseridAndOrgi(id , orgi); - return onlineUserList.size() > 0 ? onlineUserList.get(0) : null; - } - - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - public static CousultInvite cousult(String id ,String orgi, ConsultInviteRepository consultRes){ - CousultInvite consultInvite = (CousultInvite) CacheHelper.getSystemCacheBean().getCacheObject(id, orgi) ; - if(consultInvite == null){ - logger.info("CousultInvite {}", id); - if(consultRes == null){ - logger.info("NULL consultRes!!!!"); - } - - List consultInviteList = consultRes.findBySnsaccountid(id) ; - if(consultInviteList.size() > 0){ - consultInvite = consultInviteList.get(0) ; - CacheHelper.getSystemCacheBean().put(id ,consultInvite , orgi) ; - } - } - return consultInvite; - } - - - /** - * 在Cache中查询OnlineUser,或者从数据库中根据UserId,Orgi和Invite查询 - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - public static OnlineUser onlineuser(String userid ,String orgi , CousultInvite invite){ - OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(userid, orgi) ; - if(onlineUser == null && invite != null && invite.isTraceuser()){ - OnlineUserRepository service = (OnlineUserRepository) UKDataContext.getContext().getBean(OnlineUserRepository.class); - - List tempOnlineUserList = service.findByUseridAndOrgi(userid , orgi); - if(tempOnlineUserList.size() > 0){ - onlineUser = tempOnlineUserList.get(0) ; - } - } - return onlineUser; - } - - - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @param isJudgeShare 是否判断是否共享租户 - * @return - * @throws Exception - */ - @SuppressWarnings("unchecked") - public static List organ(String orgi , IP ipdata , CousultInvite invite,boolean isJudgeShare){ - String origOrig = orgi; - boolean isShare = false; - if(isJudgeShare) { - SystemConfig systemConfig = UKTools.getSystemConfig(); - if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) { - orgi = UKDataContext.SYSTEM_ORGI; - isShare =true; - } - } - List skillList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_SKILL+origOrig, origOrig) ; - if(skillList == null){ - OrganRepository service = (OrganRepository) UKDataContext.getContext().getBean(OrganRepository.class); - skillList = service.findByOrgiAndSkill(orgi, true) ; - //租户共享时 查出该租住要显的绑定的技能组 - if(isShare&&!invite.getOrgi().equals(UKDataContext.SYSTEM_ORGI)) { - OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); - List orgiSkillRelList = null; - orgiSkillRelList = orgiSkillRelService.findByOrgi(invite.getOrgi()) ; - List skillTempList = new ArrayList<>(); - if(!orgiSkillRelList.isEmpty()) { - for(Organ organ:skillList) { - for(OrgiSkillRel rel:orgiSkillRelList) { - if(organ.getId().equals(rel.getSkillid())) { - skillTempList.add(organ); - } - } - } - } - skillList = skillTempList; - } - - if(skillList.size() > 0){ - CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_SKILL+origOrig, skillList, origOrig); - } - } - List regOrganList = new ArrayList() ; - for(Organ organ : skillList){ - if(StringUtils.isNotBlank(organ.getArea())) { - if(organ.getArea().indexOf(ipdata.getProvince()) >= 0 || organ.getArea().indexOf(ipdata.getCity()) >= 0 ){ - regOrganList.add(organ) ; - } - }else{ - regOrganList.add(organ) ; - } - } - return regOrganList; - } - - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - @SuppressWarnings("unchecked") - public static List organ(String orgi,boolean isJudgeShare){ - String origOrig = orgi; - boolean isShare = false; - if(isJudgeShare) { - SystemConfig systemConfig = UKTools.getSystemConfig(); - if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) { - orgi = UKDataContext.SYSTEM_ORGI; - isShare =true; - } - } - List skillList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_SKILL+origOrig, origOrig) ; - if(skillList == null){ - OrganRepository service = (OrganRepository) UKDataContext.getContext().getBean(OrganRepository.class); - skillList = service.findByOrgiAndSkill(orgi, true) ; - //租户共享时 查出该租住要显的绑定的技能组 - if(isShare&&!origOrig.equals(UKDataContext.SYSTEM_ORGI)) { - OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); - List orgiSkillRelList = null; - orgiSkillRelList = orgiSkillRelService.findByOrgi(origOrig) ; - List skillTempList = new ArrayList<>(); - if(!orgiSkillRelList.isEmpty()) { - for(Organ organ:skillList) { - for(OrgiSkillRel rel:orgiSkillRelList) { - if(organ.getId().equals(rel.getSkillid())) { - skillTempList.add(organ); - } - } - } - } - skillList = skillTempList; - } - if(skillList.size() > 0){ - CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_SKILL+origOrig, skillList, origOrig); - } - - } - return skillList; - } - - private static List getAreaTypeList(String area , List areaTypeList){ - List atList = new ArrayList() ; - if(areaTypeList!=null && areaTypeList.size() > 0){ - for(AreaType areaType : areaTypeList){ - if(!StringUtils.isBlank(area) && area.indexOf(areaType.getId()) >= 0){ - atList.add(areaType) ; - } - } - } - return atList; - } - /** - * 只要有一级 地区命中就就返回 - * @param orgi - * @param ipdata - * @param topicTypeList - * @return - */ - public static List topicType(String orgi , IP ipdata , List topicTypeList){ - List tempTopicTypeList = new ArrayList(); - for(KnowledgeType topicType : topicTypeList){ - if(getParentArea(ipdata, topicType, topicTypeList) != null){ - tempTopicTypeList.add(topicType) ; - } - } - return tempTopicTypeList ; - } - /** - * - * @param topicType - * @param topicTypeList - * @return - */ - private static KnowledgeType getParentArea(IP ipdata , KnowledgeType topicType , List topicTypeList){ - KnowledgeType area = null ; - if(!StringUtils.isBlank(topicType.getArea())){ - if((topicType.getArea().indexOf(ipdata.getProvince()) >=0 || topicType.getArea().indexOf(ipdata.getCity()) >= 0)){ - area = topicType; - } - }else{ - if(!StringUtils.isBlank(topicType.getParentid()) && !topicType.getParentid().equals("0")){ - for(KnowledgeType temp : topicTypeList){ - if(temp.getId().equals(topicType.getParentid())){ - if(!StringUtils.isBlank(temp.getArea())){ - if((temp.getArea().indexOf(ipdata.getProvince()) >=0 || temp.getArea().indexOf(ipdata.getCity()) >= 0)){ - area = temp ; break ; - }else{ - break ; - } - }else{ - area = getParentArea(ipdata , temp, topicTypeList) ; - } - } - } - }else{ - area = topicType ; - } - } - return area ; - } - - public static List topic(String orgi , List topicTypeList , List topicList){ - List tempTopicList = new ArrayList(); - if(topicList!=null){ - for(Topic topic : topicList){ - if(StringUtils.isBlank(topic.getCate()) || UKDataContext.DEFAULT_TYPE.equals(topic.getCate()) || getTopicType(topic.getCate(), topicTypeList)!=null){ - tempTopicList.add(topic) ; - } - } - } - return tempTopicList; - } - /** - * 根据热点知识找到 非空的 分类 - * @param topicTypeList - * @param topicList - * @return - */ - public static List filterTopicType(List topicTypeList , List topicList){ - List tempTopicTypeList = new ArrayList(); - if(topicTypeList!=null){ - for(KnowledgeType knowledgeType : topicTypeList){ - boolean hasTopic = false ; - for(Topic topic : topicList){ - if(knowledgeType.getId().equals(topic.getCate())){ - hasTopic = true ; break ; - } - } - if(hasTopic){ - tempTopicTypeList.add(knowledgeType) ; - } - } - } - return tempTopicTypeList ; - } - - /** - * 找到知识点对应的 分类 - * @param cate - * @param topicTypeList - * @return - */ - private static KnowledgeType getTopicType(String cate , List topicTypeList){ - KnowledgeType kt = null ; - for(KnowledgeType knowledgeType : topicTypeList){ - if(knowledgeType.getId().equals(cate)){ - kt = knowledgeType ; break ; - } - } - return kt ; - } - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - @SuppressWarnings("unchecked") - public static List agents(String orgi,boolean isJudgeShare){ - String origOrig = orgi; - boolean isShare = false; - if(isJudgeShare) { - SystemConfig systemConfig = UKTools.getSystemConfig(); - if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) { - orgi = UKDataContext.SYSTEM_ORGI; - isShare = true; - } - } - List agentList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_AGENT+origOrig, origOrig) ; - List agentTempList = null; - if(agentList == null){ - UserRepository service = (UserRepository) UKDataContext.getContext().getBean(UserRepository.class); - agentList = service.findByOrgiAndAgentAndDatastatus(orgi, true,false) ; - agentTempList = new ArrayList(); - //共享的话 查出绑定的组织 - if(isShare) { - OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); - List orgiSkillRelList = orgiSkillRelService.findByOrgi(origOrig) ; - if(!orgiSkillRelList.isEmpty()) { - for(User user:agentList) { - for(OrgiSkillRel rel:orgiSkillRelList) { - if(user.getOrgan()!=null && user.getOrgan().equals(rel.getSkillid())) { - agentTempList.add(user); - } - } - } - } - agentList = agentTempList; - } - if(agentList.size() > 0){ - CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_AGENT+origOrig, agentList, origOrig); - } - } - return agentList; - } - - - public static void clean(String orgi){ - //共享 查出机构下所有产品 - SystemConfig systemConfig = UKTools.getSystemConfig(); - if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) { - TenantRepository tenantRes = UKDataContext.getContext().getBean(TenantRepository.class) ; - Tenant tenant = tenantRes.findById(orgi); - if(tenant!=null) { - List tenantList = tenantRes.findByOrgid(tenant.getOrgid()); - if(!tenantList.isEmpty()) { - for(Tenant t:tenantList) { - String orgiT = t.getId(); - CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_SKILL+orgiT, orgiT) ; - CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_AGENT+orgiT, orgiT) ; - } - } - } - }else { - CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_SKILL+orgi, orgi) ; - CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_AGENT+orgi, orgi) ; - } - } - /** - * - * @param user - * @param orgi - * @param id - * @param service - * @return - * @throws Exception - */ - public static void cacheOnlineUser(OnlineUser onlineUser ,String orgi , CousultInvite invite){ - if(onlineUser!=null && !StringUtils.isBlank(onlineUser.getUserid())){ - CacheHelper.getOnlineUserCacheBean().put(onlineUser.getUserid() , onlineUser , orgi) ; - } - if(invite.isTraceuser()){ - UKTools.published(onlineUser); - } - } - - /** - * - * @param user - * @param orgi - * @param optype - * @param request - * @param service - * @throws Exception - */ - public static OnlineUser online(User user, String orgi, String sessionid,String optype, HttpServletRequest request , String channel , String appid , Contacts contacts , CousultInvite invite) { - OnlineUser onlineUser = null; - if (UKDataContext.getContext() != null && invite != null) { - onlineUser = onlineuser(user.getId(), orgi , invite) ; - if (onlineUser == null) { - onlineUser = new OnlineUser(); - onlineUser.setId(user.getId()); - onlineUser.setCreater(user.getId()); - onlineUser.setUsername(user.getUsername()); - onlineUser.setCreatetime(new Date()); - onlineUser.setUpdatetime(new Date()); - onlineUser.setUpdateuser(user.getUsername()); - onlineUser.setSessionid(sessionid); - - if(contacts!=null){ - onlineUser.setContactsid(contacts.getId()); - } - - onlineUser.setOrgi(orgi); - onlineUser.setChannel(channel); - - String cookie = getCookie(request, "R3GUESTUSEKEY"); - if ((StringUtils.isBlank(cookie)) - || (user.getSessionid().equals(cookie))) { - onlineUser.setOlduser("0"); - } else { - onlineUser.setOlduser("1"); - } - onlineUser.setMobile(CheckMobile.check(request - .getHeader("User-Agent")) ? "1" : "0"); - - // onlineUser.setSource(user.getId()); - - String url = request.getHeader("referer"); - onlineUser.setUrl(url); - if (!StringUtils.isBlank(url)) { - try { - URL referer = new URL(url); - onlineUser.setSource(referer.getHost()); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - onlineUser.setAppid(appid); - onlineUser.setUserid(user.getId()); - onlineUser.setUsername(user.getUsername()); - - if(!StringUtils.isBlank(request.getParameter("title"))){ - String title = request.getParameter("title") ; - if(title.length() > 255){ - onlineUser.setTitle(title.substring(0,255)); - }else{ - onlineUser.setTitle(title); - } - } - - String ip = UKTools.getIpAddr(request); - - onlineUser.setLogintime(new Date()); - onlineUser.setIp(ip); - - IP ipdata = IPTools.getInstance().findGeography(ip); - onlineUser.setCountry(ipdata.getCountry()); - onlineUser.setProvince(ipdata.getProvince()); - onlineUser.setCity(ipdata.getCity()); - onlineUser.setIsp(ipdata.getIsp()); - onlineUser.setRegion(ipdata.toString() + "(" - + ip + ")"); - - onlineUser.setDatestr(new SimpleDateFormat("yyyMMdd") - .format(new Date())); - - onlineUser.setHostname(ip); - onlineUser.setSessionid(sessionid); - onlineUser.setOptype(optype); - onlineUser - .setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE - .toString()); - BrowserClient client = UKTools.parseClient(request); - onlineUser.setOpersystem(client.getOs()); - onlineUser.setBrowser(client.getBrowser()); - onlineUser.setUseragent(client.getUseragent()); - }else{ - onlineUser.setCreatetime(new Date()); - if((!StringUtils.isBlank(onlineUser.getSessionid()) && !onlineUser.getSessionid().equals(sessionid)) || !UKDataContext.OnlineUserOperatorStatus.ONLINE.toString().equals(onlineUser.getStatus())){ - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()); - onlineUser.setChannel(channel); - onlineUser.setAppid(appid); - onlineUser.setUpdatetime(new Date()); - if(!StringUtils.isBlank(onlineUser.getSessionid()) && !onlineUser.getSessionid().equals(sessionid)){ - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); - onlineUser.setSessionid(sessionid); - onlineUser.setLogintime(new Date()); - onlineUser.setInvitetimes(0); - } - }else if(contacts!=null){ - if(!StringUtils.isBlank(contacts.getId()) && !StringUtils.isBlank(contacts.getName()) &&(StringUtils.isBlank(onlineUser.getContactsid()) || !contacts.getName().equals(onlineUser.getUsername()))){ - if(StringUtils.isBlank(onlineUser.getContactsid())){ - onlineUser.setContactsid(contacts.getId()); - } - if(!contacts.getName().equals(onlineUser.getUsername())){ - onlineUser.setUsername(contacts.getName()); - } - onlineUser.setUpdatetime(new Date()); - } - } - if(StringUtils.isBlank(onlineUser.getUsername()) && !StringUtils.isBlank(user.getUsername())){ - onlineUser.setUseragent(user.getUsername()); - onlineUser.setUpdatetime(new Date()); - } - } - if(invite.isRecordhis() && !StringUtils.isBlank(request.getParameter("traceid"))){ - UserTraceHistory trace = new UserTraceHistory(); - trace.setId(request.getParameter("traceid")); - trace.setTitle(request.getParameter("title")); - trace.setUrl(request.getParameter("url")); - trace.setOrgi(invite.getOrgi()); - trace.setUpdatetime(new Date()); - trace.setUsername(onlineUser.getUsername()); - - UKTools.published(trace); - } - cacheOnlineUser(onlineUser, orgi , invite); - } - return onlineUser; - } - - /** - * - * @param request - * @param key - * @return - */ - public static String getCookie(HttpServletRequest request, String key) { - Cookie data = null; - if (request != null && request.getCookies() != null) { - for (Cookie cookie : request.getCookies()) { - if (cookie.getName().equals(key)) { - data = cookie; - break; - } - } - } - return data != null ? data.getValue() : null; - } - - /** - * - * @param user - * @param orgi - * @throws Exception - */ - public static void offline(String user, String orgi) throws Exception { - if(UKDataContext.getContext()!=null){ - OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi) ; - if(onlineUser!=null){ - CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(),onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if(invite.isTraceuser()){ - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); - onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); - onlineUser.setUpdatetime(new Date()); - OnlineUserRepository service = UKDataContext.getContext().getBean( - OnlineUserRepository.class); - service.save(onlineUser) ; - - OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class) ; - { - List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid() , orgi) ; - OnlineUserHis his = null ; - if(hisList.size() > 0){ - his = hisList.get(0) ; - }else{ - his = new OnlineUserHis(); - } - - UKTools.copyProperties(onlineUser, his); - his.setDataid(onlineUser.getId()); - onlineHisUserRes.save(his); - } - } - } - CacheHelper.getOnlineUserCacheBean().delete(user, orgi) ; - } - } - - public static void offline(OnlineUser onlineUser) throws Exception { - if(UKDataContext.getContext()!=null){ - OnlineUserRepository service = UKDataContext.getContext().getBean( - OnlineUserRepository.class); - OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class) ; - if (onlineUser != null) { - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); - onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); - onlineUser.setUpdatetime(new Date()); - service.save(onlineUser) ; - CacheHelper.getOnlineUserCacheBean().delete(onlineUser.getUserid(), onlineUser.getOrgi()) ; - if(onlineUser!=null){ - List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid() , onlineUser.getOrgi()) ; - OnlineUserHis his = null ; - if(hisList.size() > 0){ - his = hisList.get(0) ; - }else{ - his = new OnlineUserHis(); - } - - UKTools.copyProperties(onlineUser, his); - his.setDataid(onlineUser.getId()); - onlineHisUserRes.save(his); - } - } - } - } - - /** - * - * @param user - * @param orgi - * @throws Exception - */ - public static void refuseInvite(String user, String orgi) { - OnlineUserRepository service = UKDataContext.getContext().getBean( - OnlineUserRepository.class); - - List onlineUserList = service.findByUseridAndOrgi(user , orgi); - if (onlineUserList.size() > 0) { - OnlineUser onlineUser = onlineUserList.get(0); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.REFUSE.toString()); - onlineUser.setRefusetimes(onlineUser.getRefusetimes()+1); - service.save(onlineUser) ; - } - } - - public static String unescape(String src) { - StringBuffer tmp = new StringBuffer(); - try { - tmp.append(java.net.URLDecoder.decode(src, "UTF-8")); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - - return tmp.toString(); - } - - public static String getKeyword(String url) { - Map values = new HashMap(); - try { - parseParameters(values, url, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - StringBuffer strb = new StringBuffer(); - String[] data = values.get("q"); - if (data != null) { - for (String v : data) { - strb.append(v); - } - } - return strb.toString(); - } - - public static String getSource(String url) { - String source = "0"; - try { - URL addr = new URL(url); - source = addr.getHost(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - return source; - } + public static WebSseEmitterClient webIMClients = new WebSseEmitterClient(); + public static ObjectMapper objectMapper = new ObjectMapper(); /** + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + public static OnlineUser user(User user, + String orgi, String id, OnlineUserRepository service) + throws Exception { + List onlineUserList = service.findByUseridAndOrgi(id, orgi); + return onlineUserList.size() > 0 ? onlineUserList.get(0) : null; + } + + /** + * 更新cache + * @param id + * @param cousultInvite + */ + public static void cacheCousult(final CousultInvite cousultInvite) { + CacheHelper.getSystemCacheBean().put(cousultInvite.getSnsaccountid(), cousultInvite, cousultInvite.getOrgi()); + } + + /** + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + public static CousultInvite cousult(String id, String orgi, ConsultInviteRepository consultRes) { + CousultInvite consultInvite = (CousultInvite) CacheHelper.getSystemCacheBean().getCacheObject(id, orgi); + if (consultInvite == null) { + logger.info("CousultInvite {}", id); + if (consultRes == null) { + logger.info("NULL consultRes!!!!"); + } + + List consultInviteList = consultRes.findBySnsaccountid(id); + if (consultInviteList.size() > 0) { + consultInvite = consultInviteList.get(0); + CacheHelper.getSystemCacheBean().put(id, consultInvite, orgi); + } + } + return consultInvite; + } + + + /** + * 在Cache中查询OnlineUser,或者从数据库中根据UserId,Orgi和Invite查询 * + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + public static OnlineUser onlineuser(String userid, String orgi, CousultInvite invite) { + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(userid, orgi); + if (onlineUser == null && invite != null && invite.isTraceuser()) { + OnlineUserRepository service = (OnlineUserRepository) UKDataContext.getContext().getBean(OnlineUserRepository.class); + + List tempOnlineUserList = service.findByUseridAndOrgi(userid, orgi); + if (tempOnlineUserList.size() > 0) { + onlineUser = tempOnlineUserList.get(0); + } + } + return onlineUser; + } + + + /** + * @param user + * @param orgi + * @param id + * @param service + * @param isJudgeShare 是否判断是否共享租户 + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public static List organ(String orgi, IP ipdata, CousultInvite invite, boolean isJudgeShare) { + String origOrig = orgi; + boolean isShare = false; + if (isJudgeShare) { + SystemConfig systemConfig = UKTools.getSystemConfig(); + if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) { + orgi = UKDataContext.SYSTEM_ORGI; + isShare = true; + } + } + List skillList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_SKILL + origOrig, origOrig); + if (skillList == null) { + OrganRepository service = (OrganRepository) UKDataContext.getContext().getBean(OrganRepository.class); + skillList = service.findByOrgiAndSkill(orgi, true); + //租户共享时 查出该租住要显的绑定的技能组 + if (isShare && !invite.getOrgi().equals(UKDataContext.SYSTEM_ORGI)) { + OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); + List orgiSkillRelList = null; + orgiSkillRelList = orgiSkillRelService.findByOrgi(invite.getOrgi()); + List skillTempList = new ArrayList<>(); + if (!orgiSkillRelList.isEmpty()) { + for (Organ organ : skillList) { + for (OrgiSkillRel rel : orgiSkillRelList) { + if (organ.getId().equals(rel.getSkillid())) { + skillTempList.add(organ); + } + } + } + } + skillList = skillTempList; + } + + if (skillList.size() > 0) { + CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_SKILL + origOrig, skillList, origOrig); + } + } + List regOrganList = new ArrayList(); + for (Organ organ : skillList) { + if (StringUtils.isNotBlank(organ.getArea())) { + if (organ.getArea().indexOf(ipdata.getProvince()) >= 0 || organ.getArea().indexOf(ipdata.getCity()) >= 0) { + regOrganList.add(organ); + } + } else { + regOrganList.add(organ); + } + } + return regOrganList; + } + + /** + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public static List organ(String orgi, boolean isJudgeShare) { + String origOrig = orgi; + boolean isShare = false; + if (isJudgeShare) { + SystemConfig systemConfig = UKTools.getSystemConfig(); + if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) { + orgi = UKDataContext.SYSTEM_ORGI; + isShare = true; + } + } + List skillList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_SKILL + origOrig, origOrig); + if (skillList == null) { + OrganRepository service = (OrganRepository) UKDataContext.getContext().getBean(OrganRepository.class); + skillList = service.findByOrgiAndSkill(orgi, true); + //租户共享时 查出该租住要显的绑定的技能组 + if (isShare && !origOrig.equals(UKDataContext.SYSTEM_ORGI)) { + OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); + List orgiSkillRelList = null; + orgiSkillRelList = orgiSkillRelService.findByOrgi(origOrig); + List skillTempList = new ArrayList<>(); + if (!orgiSkillRelList.isEmpty()) { + for (Organ organ : skillList) { + for (OrgiSkillRel rel : orgiSkillRelList) { + if (organ.getId().equals(rel.getSkillid())) { + skillTempList.add(organ); + } + } + } + } + skillList = skillTempList; + } + if (skillList.size() > 0) { + CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_SKILL + origOrig, skillList, origOrig); + } + + } + return skillList; + } + + private static List getAreaTypeList(String area, List areaTypeList) { + List atList = new ArrayList(); + if (areaTypeList != null && areaTypeList.size() > 0) { + for (AreaType areaType : areaTypeList) { + if (!StringUtils.isBlank(area) && area.indexOf(areaType.getId()) >= 0) { + atList.add(areaType); + } + } + } + return atList; + } + + /** + * 只要有一级 地区命中就就返回 + * + * @param orgi + * @param ipdata + * @param topicTypeList + * @return + */ + public static List topicType(String orgi, IP ipdata, List topicTypeList) { + List tempTopicTypeList = new ArrayList(); + for (KnowledgeType topicType : topicTypeList) { + if (getParentArea(ipdata, topicType, topicTypeList) != null) { + tempTopicTypeList.add(topicType); + } + } + return tempTopicTypeList; + } + + /** + * @param topicType + * @param topicTypeList + * @return + */ + private static KnowledgeType getParentArea(IP ipdata, KnowledgeType topicType, List topicTypeList) { + KnowledgeType area = null; + if (!StringUtils.isBlank(topicType.getArea())) { + if ((topicType.getArea().indexOf(ipdata.getProvince()) >= 0 || topicType.getArea().indexOf(ipdata.getCity()) >= 0)) { + area = topicType; + } + } else { + if (!StringUtils.isBlank(topicType.getParentid()) && !topicType.getParentid().equals("0")) { + for (KnowledgeType temp : topicTypeList) { + if (temp.getId().equals(topicType.getParentid())) { + if (!StringUtils.isBlank(temp.getArea())) { + if ((temp.getArea().indexOf(ipdata.getProvince()) >= 0 || temp.getArea().indexOf(ipdata.getCity()) >= 0)) { + area = temp; + break; + } else { + break; + } + } else { + area = getParentArea(ipdata, temp, topicTypeList); + } + } + } + } else { + area = topicType; + } + } + return area; + } + + public static List topic(String orgi, List topicTypeList, List topicList) { + List tempTopicList = new ArrayList(); + if (topicList != null) { + for (Topic topic : topicList) { + if (StringUtils.isBlank(topic.getCate()) || UKDataContext.DEFAULT_TYPE.equals(topic.getCate()) || getTopicType(topic.getCate(), topicTypeList) != null) { + tempTopicList.add(topic); + } + } + } + return tempTopicList; + } + + /** + * 根据热点知识找到 非空的 分类 + * + * @param topicTypeList + * @param topicList + * @return + */ + public static List filterTopicType(List topicTypeList, List topicList) { + List tempTopicTypeList = new ArrayList(); + if (topicTypeList != null) { + for (KnowledgeType knowledgeType : topicTypeList) { + boolean hasTopic = false; + for (Topic topic : topicList) { + if (knowledgeType.getId().equals(topic.getCate())) { + hasTopic = true; + break; + } + } + if (hasTopic) { + tempTopicTypeList.add(knowledgeType); + } + } + } + return tempTopicTypeList; + } + + /** + * 找到知识点对应的 分类 + * + * @param cate + * @param topicTypeList + * @return + */ + private static KnowledgeType getTopicType(String cate, List topicTypeList) { + KnowledgeType kt = null; + for (KnowledgeType knowledgeType : topicTypeList) { + if (knowledgeType.getId().equals(cate)) { + kt = knowledgeType; + break; + } + } + return kt; + } + + /** + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public static List agents(String orgi, boolean isJudgeShare) { + String origOrig = orgi; + boolean isShare = false; + if (isJudgeShare) { + SystemConfig systemConfig = UKTools.getSystemConfig(); + if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) { + orgi = UKDataContext.SYSTEM_ORGI; + isShare = true; + } + } + List agentList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.CACHE_AGENT + origOrig, origOrig); + List agentTempList = null; + if (agentList == null) { + UserRepository service = (UserRepository) UKDataContext.getContext().getBean(UserRepository.class); + agentList = service.findByOrgiAndAgentAndDatastatus(orgi, true, false); + agentTempList = new ArrayList(); + //共享的话 查出绑定的组织 + if (isShare) { + OrgiSkillRelRepository orgiSkillRelService = (OrgiSkillRelRepository) UKDataContext.getContext().getBean(OrgiSkillRelRepository.class); + List orgiSkillRelList = orgiSkillRelService.findByOrgi(origOrig); + if (!orgiSkillRelList.isEmpty()) { + for (User user : agentList) { + for (OrgiSkillRel rel : orgiSkillRelList) { + if (user.getOrgan() != null && user.getOrgan().equals(rel.getSkillid())) { + agentTempList.add(user); + } + } + } + } + agentList = agentTempList; + } + if (agentList.size() > 0) { + CacheHelper.getSystemCacheBean().put(UKDataContext.CACHE_AGENT + origOrig, agentList, origOrig); + } + } + return agentList; + } + + + public static void clean(String orgi) { + //共享 查出机构下所有产品 + SystemConfig systemConfig = UKTools.getSystemConfig(); + if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) { + TenantRepository tenantRes = UKDataContext.getContext().getBean(TenantRepository.class); + Tenant tenant = tenantRes.findById(orgi); + if (tenant != null) { + List tenantList = tenantRes.findByOrgid(tenant.getOrgid()); + if (!tenantList.isEmpty()) { + for (Tenant t : tenantList) { + String orgiT = t.getId(); + CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_SKILL + orgiT, orgiT); + CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_AGENT + orgiT, orgiT); + } + } + } + } else { + CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_SKILL + orgi, orgi); + CacheHelper.getSystemCacheBean().delete(UKDataContext.CACHE_AGENT + orgi, orgi); + } + } + + /** + * @param user + * @param orgi + * @param id + * @param service + * @return + * @throws Exception + */ + public static void cacheOnlineUser(OnlineUser onlineUser, String orgi, CousultInvite invite) { + if (onlineUser != null && !StringUtils.isBlank(onlineUser.getUserid())) { + CacheHelper.getOnlineUserCacheBean().put(onlineUser.getUserid(), onlineUser, orgi); + } + if (invite.isTraceuser()) { + UKTools.published(onlineUser); + } + } + + /** + * @param user + * @param orgi + * @param optype + * @param request + * @param service + * @throws Exception + */ + public static OnlineUser online(User user, String orgi, String sessionid, String optype, HttpServletRequest request, String channel, String appid, Contacts contacts, CousultInvite invite) { + OnlineUser onlineUser = null; + if (UKDataContext.getContext() != null && invite != null) { + onlineUser = onlineuser(user.getId(), orgi, invite); + if (onlineUser == null) { + onlineUser = new OnlineUser(); + onlineUser.setId(user.getId()); + onlineUser.setCreater(user.getId()); + onlineUser.setUsername(user.getUsername()); + onlineUser.setCreatetime(new Date()); + onlineUser.setUpdatetime(new Date()); + onlineUser.setUpdateuser(user.getUsername()); + onlineUser.setSessionid(sessionid); + + if (contacts != null) { + onlineUser.setContactsid(contacts.getId()); + } + + onlineUser.setOrgi(orgi); + onlineUser.setChannel(channel); + + String cookie = getCookie(request, "R3GUESTUSEKEY"); + if ((StringUtils.isBlank(cookie)) + || (user.getSessionid().equals(cookie))) { + onlineUser.setOlduser("0"); + } else { + onlineUser.setOlduser("1"); + } + onlineUser.setMobile(CheckMobile.check(request + .getHeader("User-Agent")) ? "1" : "0"); + + // onlineUser.setSource(user.getId()); + + String url = request.getHeader("referer"); + onlineUser.setUrl(url); + if (!StringUtils.isBlank(url)) { + try { + URL referer = new URL(url); + onlineUser.setSource(referer.getHost()); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } + onlineUser.setAppid(appid); + onlineUser.setUserid(user.getId()); + onlineUser.setUsername(user.getUsername()); + + if (!StringUtils.isBlank(request.getParameter("title"))) { + String title = request.getParameter("title"); + if (title.length() > 255) { + onlineUser.setTitle(title.substring(0, 255)); + } else { + onlineUser.setTitle(title); + } + } + + String ip = UKTools.getIpAddr(request); + + onlineUser.setLogintime(new Date()); + onlineUser.setIp(ip); + + IP ipdata = IPTools.getInstance().findGeography(ip); + onlineUser.setCountry(ipdata.getCountry()); + onlineUser.setProvince(ipdata.getProvince()); + onlineUser.setCity(ipdata.getCity()); + onlineUser.setIsp(ipdata.getIsp()); + onlineUser.setRegion(ipdata.toString() + "(" + + ip + ")"); + + onlineUser.setDatestr(new SimpleDateFormat("yyyMMdd") + .format(new Date())); + + onlineUser.setHostname(ip); + onlineUser.setSessionid(sessionid); + onlineUser.setOptype(optype); + onlineUser + .setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE + .toString()); + BrowserClient client = UKTools.parseClient(request); + onlineUser.setOpersystem(client.getOs()); + onlineUser.setBrowser(client.getBrowser()); + onlineUser.setUseragent(client.getUseragent()); + } else { + onlineUser.setCreatetime(new Date()); + if ((!StringUtils.isBlank(onlineUser.getSessionid()) && !onlineUser.getSessionid().equals(sessionid)) || !UKDataContext.OnlineUserOperatorStatus.ONLINE.toString().equals(onlineUser.getStatus())) { + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()); + onlineUser.setChannel(channel); + onlineUser.setAppid(appid); + onlineUser.setUpdatetime(new Date()); + if (!StringUtils.isBlank(onlineUser.getSessionid()) && !onlineUser.getSessionid().equals(sessionid)) { + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setSessionid(sessionid); + onlineUser.setLogintime(new Date()); + onlineUser.setInvitetimes(0); + } + } else if (contacts != null) { + if (!StringUtils.isBlank(contacts.getId()) && !StringUtils.isBlank(contacts.getName()) && (StringUtils.isBlank(onlineUser.getContactsid()) || !contacts.getName().equals(onlineUser.getUsername()))) { + if (StringUtils.isBlank(onlineUser.getContactsid())) { + onlineUser.setContactsid(contacts.getId()); + } + if (!contacts.getName().equals(onlineUser.getUsername())) { + onlineUser.setUsername(contacts.getName()); + } + onlineUser.setUpdatetime(new Date()); + } + } + if (StringUtils.isBlank(onlineUser.getUsername()) && !StringUtils.isBlank(user.getUsername())) { + onlineUser.setUseragent(user.getUsername()); + onlineUser.setUpdatetime(new Date()); + } + } + if (invite.isRecordhis() && !StringUtils.isBlank(request.getParameter("traceid"))) { + UserTraceHistory trace = new UserTraceHistory(); + trace.setId(request.getParameter("traceid")); + trace.setTitle(request.getParameter("title")); + trace.setUrl(request.getParameter("url")); + trace.setOrgi(invite.getOrgi()); + trace.setUpdatetime(new Date()); + trace.setUsername(onlineUser.getUsername()); + + UKTools.published(trace); + } + cacheOnlineUser(onlineUser, orgi, invite); + } + return onlineUser; + } + + /** + * @param request + * @param key + * @return + */ + public static String getCookie(HttpServletRequest request, String key) { + Cookie data = null; + if (request != null && request.getCookies() != null) { + for (Cookie cookie : request.getCookies()) { + if (cookie.getName().equals(key)) { + data = cookie; + break; + } + } + } + return data != null ? data.getValue() : null; + } + + /** + * @param user + * @param orgi + * @throws Exception + */ + public static void offline(String user, String orgi) throws Exception { + if (UKDataContext.getContext() != null) { + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (onlineUser != null) { + CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(), onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite.isTraceuser()) { + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); + onlineUser.setUpdatetime(new Date()); + OnlineUserRepository service = UKDataContext.getContext().getBean( + OnlineUserRepository.class); + service.save(onlineUser); + + OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); + { + List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), orgi); + OnlineUserHis his = null; + if (hisList.size() > 0) { + his = hisList.get(0); + } else { + his = new OnlineUserHis(); + } + + UKTools.copyProperties(onlineUser, his); + his.setDataid(onlineUser.getId()); + onlineHisUserRes.save(his); + } + } + } + CacheHelper.getOnlineUserCacheBean().delete(user, orgi); + } + } + + public static void offline(OnlineUser onlineUser) throws Exception { + if (UKDataContext.getContext() != null) { + OnlineUserRepository service = UKDataContext.getContext().getBean( + OnlineUserRepository.class); + OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); + if (onlineUser != null) { + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); + onlineUser.setUpdatetime(new Date()); + service.save(onlineUser); + CacheHelper.getOnlineUserCacheBean().delete(onlineUser.getUserid(), onlineUser.getOrgi()); + if (onlineUser != null) { + List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), onlineUser.getOrgi()); + OnlineUserHis his = null; + if (hisList.size() > 0) { + his = hisList.get(0); + } else { + his = new OnlineUserHis(); + } + + UKTools.copyProperties(onlineUser, his); + his.setDataid(onlineUser.getId()); + onlineHisUserRes.save(his); + } + } + } + } + + /** + * @param user + * @param orgi + * @throws Exception + */ + public static void refuseInvite(String user, String orgi) { + OnlineUserRepository service = UKDataContext.getContext().getBean( + OnlineUserRepository.class); + + List onlineUserList = service.findByUseridAndOrgi(user, orgi); + if (onlineUserList.size() > 0) { + OnlineUser onlineUser = onlineUserList.get(0); + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.REFUSE.toString()); + onlineUser.setRefusetimes(onlineUser.getRefusetimes() + 1); + service.save(onlineUser); + } + } + + public static String unescape(String src) { + StringBuffer tmp = new StringBuffer(); + try { + tmp.append(java.net.URLDecoder.decode(src, "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + return tmp.toString(); + } + + public static String getKeyword(String url) { + Map values = new HashMap(); + try { + parseParameters(values, url, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + StringBuffer strb = new StringBuffer(); + String[] data = values.get("q"); + if (data != null) { + for (String v : data) { + strb.append(v); + } + } + return strb.toString(); + } + + public static String getSource(String url) { + String source = "0"; + try { + URL addr = new URL(url); + source = addr.getHost(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + return source; + } + + /** * @param user * @param nickname * @param orgi @@ -765,103 +738,103 @@ public class OnlineUserUtils { * @return * @throws Exception */ - public static NewRequestMessage newRequestMessage(String user , - String nickname, + public static NewRequestMessage newRequestMessage(String user, + String nickname, String orgi, String session, String appid, String ip, String osname, String browser, - String headimg , - IP ipdata , - String channel , - String skill , + String headimg, + IP ipdata, + String channel, + String skill, String agent, String title, - String url , + String url, String traceid, - String initiator , + String initiator, String eventid) throws Exception { - // 坐席服务请求,分配 坐席 - NewRequestMessage data = new NewRequestMessage(); - data.setAppid(appid); - data.setOrgi(orgi); - data.setUserid(user); - data.setSession(session); - data.setType(UKDataContext.MessageTypeEnum.NEW.toString()); - data.setId(UKTools.genID()); + // 坐席服务请求,分配 坐席 + NewRequestMessage data = new NewRequestMessage(); + data.setAppid(appid); + data.setOrgi(orgi); + data.setUserid(user); + data.setSession(session); + data.setType(UKDataContext.MessageTypeEnum.NEW.toString()); + data.setId(UKTools.genID()); - AgentUserService service = UKDataContext.getContext().getBean( - AgentUserService.class); - AgentUser agentUser = service.findByUseridAndOrgi(user , orgi); - if (agentUser == null) { - agentUser = new AgentUser(data.getUserid(),channel, - data.getUserid(), null, data.getOrgi(), data.getAppid()); // 创建排队用户的信息,当前用户只能在队列里存在一次,用 - // UserID作为主键ID存储 - agentUser.setNickname(nickname); - agentUser.setUsername(nickname); - // agentUser.setId(data.getUserid()); - }else if(!agentUser.getUsername().equals(nickname)){ - agentUser.setUsername(nickname); - agentUser.setNickname(nickname); - } - - agentUser.setOsname(osname); - agentUser.setBrowser(browser); - agentUser.setAppid(appid); - agentUser.setSessionid(session); - - if (ipdata != null) { - agentUser.setCountry(ipdata.getCountry()); - agentUser.setProvince(ipdata.getProvince()); - agentUser.setCity(ipdata.getCity()); - if(!StringUtils.isBlank(ip)){ - agentUser.setRegion(ipdata.toString() + "[" + ip + "]"); - }else{ - agentUser.setRegion(ipdata.toString()); - } - } + AgentUserService service = UKDataContext.getContext().getBean( + AgentUserService.class); + AgentUser agentUser = service.findByUseridAndOrgi(user, orgi); + if (agentUser == null) { + agentUser = new AgentUser(data.getUserid(), channel, + data.getUserid(), null, data.getOrgi(), data.getAppid()); // 创建排队用户的信息,当前用户只能在队列里存在一次,用 + // UserID作为主键ID存储 + agentUser.setNickname(nickname); + agentUser.setUsername(nickname); + // agentUser.setId(data.getUserid()); + } else if (!agentUser.getUsername().equals(nickname)) { + agentUser.setUsername(nickname); + agentUser.setNickname(nickname); + } - agentUser.setOwner(eventid); - agentUser.setHeadimgurl(headimg); - - agentUser.setStatus(null); // 修改状态 - agentUser.setTitle(title); - agentUser.setUrl(url); - agentUser.setTraceid(traceid); - agentUser.setOwner(eventid); //智能IVR的 EventID - - CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)) ; - if(invite!=null && !invite.isTraceuser()){ - OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi) ; - if(onlineUser!=null){ - OnlineUserRepository onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class) ; - if(onlineUserRes.countByUseridAndOrgi(user, orgi) == 0){ - onlineUserRes.save(onlineUser) ; - } - } - } + agentUser.setOsname(osname); + agentUser.setBrowser(browser); + agentUser.setAppid(appid); + agentUser.setSessionid(session); + + if (ipdata != null) { + agentUser.setCountry(ipdata.getCountry()); + agentUser.setProvince(ipdata.getProvince()); + agentUser.setCity(ipdata.getCity()); + if (!StringUtils.isBlank(ip)) { + agentUser.setRegion(ipdata.toString() + "[" + ip + "]"); + } else { + agentUser.setRegion(ipdata.toString()); + } + } + + agentUser.setOwner(eventid); + agentUser.setHeadimgurl(headimg); + + agentUser.setStatus(null); // 修改状态 + agentUser.setTitle(title); + agentUser.setUrl(url); + agentUser.setTraceid(traceid); + agentUser.setOwner(eventid); //智能IVR的 EventID + + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite != null && !invite.isTraceuser()) { + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (onlineUser != null) { + OnlineUserRepository onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class); + if (onlineUserRes.countByUseridAndOrgi(user, orgi) == 0) { + onlineUserRes.save(onlineUser); + } + } + } + + MessageInContent inMessage = new MessageInContent(); + inMessage.setChannelMessage(data); + inMessage.setAgentUser(agentUser); + inMessage.setMessage(data.getMessage()); + inMessage.setFromUser(data.getUserid()); + inMessage.setToUser(data.getAppid()); + inMessage.setId(data.getId()); + inMessage.setMessageType(data.getType()); + inMessage.setNickName(agentUser.getNickname()); + inMessage.setOrgi(data.getOrgi()); + inMessage.setUser(agentUser); + + /** + * 技能组 和 坐席 + */ + + agentUser.setSkill(skill); + agentUser.setAgent(agent); - MessageInContent inMessage = new MessageInContent(); - inMessage.setChannelMessage(data); - inMessage.setAgentUser(agentUser); - inMessage.setMessage(data.getMessage()); - inMessage.setFromUser(data.getUserid()); - inMessage.setToUser(data.getAppid()); - inMessage.setId(data.getId()); - inMessage.setMessageType(data.getType()); - inMessage.setNickName(agentUser.getNickname()); - inMessage.setOrgi(data.getOrgi()); - inMessage.setUser(agentUser); - - /** - * 技能组 和 坐席 - */ - - agentUser.setSkill(skill); - agentUser.setAgent(agent); - // if(!StringUtils.isBlank(skill)){ // agentUser.setSkill(skill); // }else{ @@ -873,32 +846,31 @@ public class OnlineUserUtils { // agentUser.setAgent(UKDataContext.SERVICE_QUENE_NULL_STR); // } - MessageDataBean outMessageDataBean = null ; - - SessionConfig sessionConfig = ServiceQuene.initSessionConfig(data.getOrgi()) ; - AgentReport report = ServiceQuene.getAgentReport(data.getOrgi()) ; - - if(sessionConfig.isHourcheck() && !UKTools.isInWorkingHours(sessionConfig.getWorkinghours())){ - data.setMessage(sessionConfig.getNotinwhmsg()); - }else{ - if(report.getAgents() == 0){ - data.setNoagent(true); - } - outMessageDataBean = RouterHelper.getRouteInstance().handler(inMessage); - if (outMessageDataBean != null) { - data.setMessage(outMessageDataBean.getMessage()); - - if(outMessageDataBean.getAgentUser()!=null){ - data.setAgentserviceid(outMessageDataBean.getAgentUser().getAgentserviceid()); - } - } - } - - return data; - } + MessageDataBean outMessageDataBean = null; + + SessionConfig sessionConfig = ServiceQuene.initSessionConfig(data.getOrgi()); + AgentReport report = ServiceQuene.getAgentReport(data.getOrgi()); + + if (sessionConfig.isHourcheck() && !UKTools.isInWorkingHours(sessionConfig.getWorkinghours())) { + data.setMessage(sessionConfig.getNotinwhmsg()); + } else { + if (report.getAgents() == 0) { + data.setNoagent(true); + } + outMessageDataBean = RouterHelper.getRouteInstance().handler(inMessage); + if (outMessageDataBean != null) { + data.setMessage(outMessageDataBean.getMessage()); + + if (outMessageDataBean.getAgentUser() != null) { + data.setAgentserviceid(outMessageDataBean.getAgentUser().getAgentserviceid()); + } + } + } + + return data; + } /** - * * @param userid * @param orgi * @param session @@ -917,7 +889,7 @@ public class OnlineUserUtils { * @return * @throws Exception */ - public static NewRequestMessage newRequestMessage(String userid, + public static NewRequestMessage newRequestMessage(String userid, String orgi, String session, String appid, @@ -932,20 +904,20 @@ public class OnlineUserUtils { String url, String traceid, String initiator) throws Exception { - IP ipdata = null ; - if(!StringUtils.isBlank(ip)){ - ipdata = IPTools.getInstance().findGeography(ip); - } - if(StringUtils.isBlank(nickname)){ - nickname = "Guest_" + userid; - } - - return newRequestMessage(userid , nickname, orgi, session, appid, ip, osname, browser , "" , ipdata , channel , skill , agent , title ,url , traceid , initiator , session) ; - } + IP ipdata = null; + if (!StringUtils.isBlank(ip)) { + ipdata = IPTools.getInstance().findGeography(ip); + } + if (StringUtils.isBlank(nickname)) { + nickname = "Guest_" + userid; + } + + return newRequestMessage(userid, nickname, orgi, session, appid, ip, osname, browser, "", ipdata, channel, skill, agent, title, url, traceid, initiator, session); + } /** - * * Create agentuser object for Wechat Channel + * * @param openid * @param nickname * @param orgi @@ -962,301 +934,305 @@ public class OnlineUserUtils { * @return * @throws Exception */ - public static NewRequestMessage newRequestMessage(String openid , + public static NewRequestMessage newRequestMessage(String openid, String nickname, String orgi, String session, - String appid , - String headimg , - String country , - String province , - String city , - String channel , - String skill , + String appid, + String headimg, + String country, + String province, + String city, + String channel, + String skill, String agent, String initiator) throws Exception { - IP ipdata = new IP() ; - ipdata.setCountry(country); - ipdata.setProvince(province); - ipdata.setCity(city); - return newRequestMessage(openid , nickname , orgi, session, appid, null , null , null , headimg , ipdata , channel , skill , agent , null , null , null , initiator , session) ; - } + IP ipdata = new IP(); + ipdata.setCountry(country); + ipdata.setProvince(province); + ipdata.setCity(city); + return newRequestMessage(openid, nickname, orgi, session, appid, null, null, null, headimg, ipdata, channel, skill, agent, null, null, null, initiator, session); + } - public static void parseParameters(Map map, String data, - String encoding) throws UnsupportedEncodingException { - if ((data == null) || (data.length() <= 0)) { - return; - } + public static void parseParameters(Map map, String data, + String encoding) throws UnsupportedEncodingException { + if ((data == null) || (data.length() <= 0)) { + return; + } - byte[] bytes = null; - try { - if (encoding == null) - bytes = data.getBytes(); - else - bytes = data.getBytes(encoding); - } catch (UnsupportedEncodingException uee) { - } - parseParameters(map, bytes, encoding); - } + byte[] bytes = null; + try { + if (encoding == null) + bytes = data.getBytes(); + else + bytes = data.getBytes(encoding); + } catch (UnsupportedEncodingException uee) { + } + parseParameters(map, bytes, encoding); + } - public static void parseParameters(Map map, byte[] data, - String encoding) throws UnsupportedEncodingException { - if ((data != null) && (data.length > 0)) { - int ix = 0; - int ox = 0; - String key = null; - String value = null; - while (ix < data.length) { - byte c = data[(ix++)]; - switch ((char) c) { - case '&': - value = new String(data, 0, ox, encoding); - if (key != null) { - putMapEntry(map, key, value); - key = null; - } - ox = 0; - break; - case '=': - if (key == null) { - key = new String(data, 0, ox, encoding); - ox = 0; - } else { - data[(ox++)] = c; - } - break; - case '+': - data[(ox++)] = 32; - break; - case '%': - data[(ox++)] = (byte) ((convertHexDigit(data[(ix++)]) << 4) + convertHexDigit(data[(ix++)])); + public static void parseParameters(Map map, byte[] data, + String encoding) throws UnsupportedEncodingException { + if ((data != null) && (data.length > 0)) { + int ix = 0; + int ox = 0; + String key = null; + String value = null; + while (ix < data.length) { + byte c = data[(ix++)]; + switch ((char) c) { + case '&': + value = new String(data, 0, ox, encoding); + if (key != null) { + putMapEntry(map, key, value); + key = null; + } + ox = 0; + break; + case '=': + if (key == null) { + key = new String(data, 0, ox, encoding); + ox = 0; + } else { + data[(ox++)] = c; + } + break; + case '+': + data[(ox++)] = 32; + break; + case '%': + data[(ox++)] = (byte) ((convertHexDigit(data[(ix++)]) << 4) + convertHexDigit(data[(ix++)])); - break; - default: - data[(ox++)] = c; - } - } + break; + default: + data[(ox++)] = c; + } + } - if (key != null) { - value = new String(data, 0, ox, encoding); - putMapEntry(map, key, value); - } - } - } + if (key != null) { + value = new String(data, 0, ox, encoding); + putMapEntry(map, key, value); + } + } + } - private static void putMapEntry(Map map, String name, - String value) { - String[] newValues = null; - String[] oldValues = (String[]) (String[]) map.get(name); - if (oldValues == null) { - newValues = new String[1]; - newValues[0] = value; - } else { - newValues = new String[oldValues.length + 1]; - System.arraycopy(oldValues, 0, newValues, 0, oldValues.length); - newValues[oldValues.length] = value; - } - map.put(name, newValues); - } + private static void putMapEntry(Map map, String name, + String value) { + String[] newValues = null; + String[] oldValues = (String[]) (String[]) map.get(name); + if (oldValues == null) { + newValues = new String[1]; + newValues[0] = value; + } else { + newValues = new String[oldValues.length + 1]; + System.arraycopy(oldValues, 0, newValues, 0, oldValues.length); + newValues[oldValues.length] = value; + } + map.put(name, newValues); + } - private static byte convertHexDigit(byte b) { - if ((b >= 48) && (b <= 57)) - return (byte) (b - 48); - if ((b >= 97) && (b <= 102)) - return (byte) (b - 97 + 10); - if ((b >= 65) && (b <= 70)) - return (byte) (b - 65 + 10); - return 0; - } + private static byte convertHexDigit(byte b) { + if ((b >= 48) && (b <= 57)) + return (byte) (b - 48); + if ((b >= 97) && (b <= 102)) + return (byte) (b - 97 + 10); + if ((b >= 65) && (b <= 70)) + return (byte) (b - 65 + 10); + return 0; + } - // public static void main(String[] args){ - // System.out.println(getKeyword("http://www.so.com/link?url=http%3A%2F%2Fwww.r3yun.com%2F&q=R3+Query%E5%AE%98%E7%BD%91&ts=1484181457&t=e2ad49617cd5de0eb0937f3e2a84669&src=haosou")) - // ; - // System.out.println(getSource("https://www.google.com.hk/")) ; - // } - - /** - * 发送邀请 - * @param userid - * @throws Exception - */ - public static void sendWebIMClients(String userid , String msg) throws Exception{ - List clients = OnlineUserUtils.webIMClients.getClients(userid) ; - if(clients!=null && clients.size()>0){ - for(WebIMClient client : clients){ - try{ - client.getSse().send(SseEmitter.event().reconnectTime(0).data(msg)); - }catch(Exception ex){ - OnlineUserUtils.webIMClients.removeClient(userid , client.getClient() , true) ; - }finally{ - client.getSse().complete(); - } - } - } - } - public static void resetHotTopic(DataExchangeInterface dataExchange,User user , String orgi , String aiid) { - if(CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopic", orgi)!=null){ - CacheHelper.getSystemCacheBean().delete("xiaoeTopic", orgi) ; - } - cacheHotTopic(dataExchange,user , orgi , aiid) ; - } + // public static void main(String[] args){ + // System.out.println(getKeyword("http://www.so.com/link?url=http%3A%2F%2Fwww.r3yun.com%2F&q=R3+Query%E5%AE%98%E7%BD%91&ts=1484181457&t=e2ad49617cd5de0eb0937f3e2a84669&src=haosou")) + // ; + // System.out.println(getSource("https://www.google.com.hk/")) ; + // } - @SuppressWarnings("unchecked") - public static List cacheHotTopic(DataExchangeInterface dataExchange,User user , String orgi , String aiid) { - List topicList = null ; - if((topicList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopic", orgi))==null){ - topicList = (List) dataExchange.getListDataByIdAndOrgi(aiid, null, orgi) ; - //CacheHelper.getSystemCacheBean().put("xiaoeTopic" , topicList , orgi) ; - } - return topicList; - } - - public static void resetHotTopicType(DataExchangeInterface dataExchange,User user , String orgi, String aiid) { - if(CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopicType"+"."+orgi, orgi)!=null){ - CacheHelper.getSystemCacheBean().delete("xiaoeTopicType"+"."+orgi, orgi) ; - } - cacheHotTopicType(dataExchange,user , orgi , aiid) ; - } - @SuppressWarnings("unchecked") - public static List cacheHotTopicType(DataExchangeInterface dataExchange,User user , String orgi , String aiid) { - List topicTypeList = null ; - if((topicTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopicType"+"."+orgi, orgi))==null){ - topicTypeList = (List) dataExchange.getListDataByIdAndOrgi(aiid, null, orgi) ; - CacheHelper.getSystemCacheBean().put("xiaoeTopicType"+"."+orgi , topicTypeList , orgi) ; - } - return topicTypeList; - } - - @SuppressWarnings("unchecked") - public static List cacheSceneType(DataExchangeInterface dataExchange,User user , String orgi) { - List sceneTypeList = null ; - if((sceneTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeSceneType", orgi))==null){ - sceneTypeList = (List) dataExchange.getListDataByIdAndOrgi(null, null, orgi) ; - //CacheHelper.getSystemCacheBean().put("xiaoeSceneType" , sceneTypeList , orgi) ; - } - return sceneTypeList; - } - - @SuppressWarnings("unchecked") - public static boolean filterSceneType(String cate ,String orgi , IP ipdata) { - boolean result = false ; - List sceneTypeList = cacheSceneType((DataExchangeInterface) UKDataContext.getContext().getBean("scenetype"), null, orgi) ; - List areaTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.UKEFU_SYSTEM_AREA, UKDataContext.SYSTEM_ORGI) ; - if(sceneTypeList!=null && cate != null && !UKDataContext.DEFAULT_TYPE.equals(cate)){ - for(SceneType sceneType : sceneTypeList){ - if(cate.equals(sceneType.getId())){ - if(!StringUtils.isBlank(sceneType.getArea())){ - if(ipdata!=null){ - List atList = getAreaTypeList(sceneType.getArea(), areaTypeList) ; //找到技能组配置的地区信息 - for(AreaType areaType : atList){ - if(areaType.getArea().indexOf(ipdata.getProvince()) >= 0 || areaType.getArea().indexOf(ipdata.getCity()) >= 0 ){ - result = true ; break ; - } - } - } - }else{ - result = true ; - } - } - if(result){ - break ; - } - } - }else{ - result = true; - } - return result; - } - - public static List search(String q , String orgi , User user) throws IOException, TemplateException { - List otherMessageItemList = null ; - String param = "" ; - SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi) ; - if(!StringUtils.isBlank(sessionConfig.getOqrsearchurl())) { - Template templet = UKTools.getTemplate(sessionConfig.getOqrsearchinput()) ; - Map values = new HashMap(); - values.put("q", q) ; - values.put("user", user) ; - param = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - String result = HttpClientUtil.doPost(sessionConfig.getOqrsearchurl(), param) , text = null; - if(!StringUtils.isBlank(result) && !StringUtils.isBlank(sessionConfig.getOqrsearchoutput()) && !result.equals("error")) { - Template templet = UKTools.getTemplate(sessionConfig.getOqrsearchoutput()) ; - @SuppressWarnings("unchecked") - Map jsonData = objectMapper.readValue(result, Map.class) ; - Map values = new HashMap(); - values.put("q", q) ; - values.put("user", user) ; - values.put("data", jsonData) ; - text = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - if(!StringUtils.isBlank(text)){ - JavaType javaType = getCollectionType(ArrayList.class, OtherMessageItem.class); - otherMessageItemList = objectMapper.readValue(text, javaType) ; - } - return otherMessageItemList ; - } - - public static OtherMessageItem suggestdetail(AiConfig aiCofig , String id , String orgi , User user) throws IOException, TemplateException { - OtherMessageItem otherMessageItem = null ; - String param = "" ; - if(!StringUtils.isBlank(aiCofig.getOqrdetailinput())) { - Template templet = UKTools.getTemplate(aiCofig.getOqrdetailinput()) ; - Map values = new HashMap(); - values.put("id", id) ; - values.put("user", user) ; - param = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - if(!StringUtils.isBlank(aiCofig.getOqrdetailurl())) { - String result = HttpClientUtil.doPost(aiCofig.getOqrdetailurl(), param) , text = null; - if(!StringUtils.isBlank(aiCofig.getOqrdetailoutput()) && !result.equals("error")) { - Template templet = UKTools.getTemplate(aiCofig.getOqrdetailoutput()) ; - @SuppressWarnings("unchecked") - Map jsonData = objectMapper.readValue(result, Map.class) ; - Map values = new HashMap(); - values.put("id",id) ; - values.put("user", user) ; - values.put("data", jsonData) ; - text = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - if(!StringUtils.isBlank(text)){ - otherMessageItem = objectMapper.readValue(text, OtherMessageItem.class) ; - } - } - return otherMessageItem ; - } - - public static OtherMessageItem detail(String id , String orgi , User user) throws IOException, TemplateException { - OtherMessageItem otherMessageItem = null ; - String param = "" ; - SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi) ; - if(!StringUtils.isBlank(sessionConfig.getOqrdetailinput())) { - Template templet = UKTools.getTemplate(sessionConfig.getOqrdetailinput()) ; - Map values = new HashMap(); - values.put("id", id) ; - values.put("user", user) ; - param = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - if(!StringUtils.isBlank(sessionConfig.getOqrdetailurl())) { - String result = HttpClientUtil.doPost(sessionConfig.getOqrdetailurl(), param) , text = null; - if(!StringUtils.isBlank(sessionConfig.getOqrdetailoutput()) && !result.equals("error")) { - Template templet = UKTools.getTemplate(sessionConfig.getOqrdetailoutput()) ; - @SuppressWarnings("unchecked") - Map jsonData = objectMapper.readValue(result, Map.class) ; - Map values = new HashMap(); - values.put("id",id) ; - values.put("user", user) ; - values.put("data", jsonData) ; - text = UKTools.getTemplet(templet.getTemplettext(), values) ; - } - if(!StringUtils.isBlank(text)){ - otherMessageItem = objectMapper.readValue(text, OtherMessageItem.class) ; - } - } - return otherMessageItem ; - } - - public static JavaType getCollectionType(Class collectionClass, Class... elementClasses) { - return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); - } + /** + * 发送邀请 + * + * @param userid + * @throws Exception + */ + public static void sendWebIMClients(String userid, String msg) throws Exception { + List clients = OnlineUserUtils.webIMClients.getClients(userid); + if (clients != null && clients.size() > 0) { + for (WebIMClient client : clients) { + try { + client.getSse().send(SseEmitter.event().reconnectTime(0).data(msg)); + } catch (Exception ex) { + OnlineUserUtils.webIMClients.removeClient(userid, client.getClient(), true); + } finally { + client.getSse().complete(); + } + } + } + } + + public static void resetHotTopic(DataExchangeInterface dataExchange, User user, String orgi, String aiid) { + if (CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopic", orgi) != null) { + CacheHelper.getSystemCacheBean().delete("xiaoeTopic", orgi); + } + cacheHotTopic(dataExchange, user, orgi, aiid); + } + + @SuppressWarnings("unchecked") + public static List cacheHotTopic(DataExchangeInterface dataExchange, User user, String orgi, String aiid) { + List topicList = null; + if ((topicList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopic", orgi)) == null) { + topicList = (List) dataExchange.getListDataByIdAndOrgi(aiid, null, orgi); + //CacheHelper.getSystemCacheBean().put("xiaoeTopic" , topicList , orgi) ; + } + return topicList; + } + + public static void resetHotTopicType(DataExchangeInterface dataExchange, User user, String orgi, String aiid) { + if (CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopicType" + "." + orgi, orgi) != null) { + CacheHelper.getSystemCacheBean().delete("xiaoeTopicType" + "." + orgi, orgi); + } + cacheHotTopicType(dataExchange, user, orgi, aiid); + } + + @SuppressWarnings("unchecked") + public static List cacheHotTopicType(DataExchangeInterface dataExchange, User user, String orgi, String aiid) { + List topicTypeList = null; + if ((topicTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeTopicType" + "." + orgi, orgi)) == null) { + topicTypeList = (List) dataExchange.getListDataByIdAndOrgi(aiid, null, orgi); + CacheHelper.getSystemCacheBean().put("xiaoeTopicType" + "." + orgi, topicTypeList, orgi); + } + return topicTypeList; + } + + @SuppressWarnings("unchecked") + public static List cacheSceneType(DataExchangeInterface dataExchange, User user, String orgi) { + List sceneTypeList = null; + if ((sceneTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject("xiaoeSceneType", orgi)) == null) { + sceneTypeList = (List) dataExchange.getListDataByIdAndOrgi(null, null, orgi); + //CacheHelper.getSystemCacheBean().put("xiaoeSceneType" , sceneTypeList , orgi) ; + } + return sceneTypeList; + } + + @SuppressWarnings("unchecked") + public static boolean filterSceneType(String cate, String orgi, IP ipdata) { + boolean result = false; + List sceneTypeList = cacheSceneType((DataExchangeInterface) UKDataContext.getContext().getBean("scenetype"), null, orgi); + List areaTypeList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.UKEFU_SYSTEM_AREA, UKDataContext.SYSTEM_ORGI); + if (sceneTypeList != null && cate != null && !UKDataContext.DEFAULT_TYPE.equals(cate)) { + for (SceneType sceneType : sceneTypeList) { + if (cate.equals(sceneType.getId())) { + if (!StringUtils.isBlank(sceneType.getArea())) { + if (ipdata != null) { + List atList = getAreaTypeList(sceneType.getArea(), areaTypeList); //找到技能组配置的地区信息 + for (AreaType areaType : atList) { + if (areaType.getArea().indexOf(ipdata.getProvince()) >= 0 || areaType.getArea().indexOf(ipdata.getCity()) >= 0) { + result = true; + break; + } + } + } + } else { + result = true; + } + } + if (result) { + break; + } + } + } else { + result = true; + } + return result; + } + + public static List search(String q, String orgi, User user) throws IOException, TemplateException { + List otherMessageItemList = null; + String param = ""; + SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); + if (!StringUtils.isBlank(sessionConfig.getOqrsearchurl())) { + Template templet = UKTools.getTemplate(sessionConfig.getOqrsearchinput()); + Map values = new HashMap(); + values.put("q", q); + values.put("user", user); + param = UKTools.getTemplet(templet.getTemplettext(), values); + } + String result = HttpClientUtil.doPost(sessionConfig.getOqrsearchurl(), param), text = null; + if (!StringUtils.isBlank(result) && !StringUtils.isBlank(sessionConfig.getOqrsearchoutput()) && !result.equals("error")) { + Template templet = UKTools.getTemplate(sessionConfig.getOqrsearchoutput()); + @SuppressWarnings("unchecked") + Map jsonData = objectMapper.readValue(result, Map.class); + Map values = new HashMap(); + values.put("q", q); + values.put("user", user); + values.put("data", jsonData); + text = UKTools.getTemplet(templet.getTemplettext(), values); + } + if (!StringUtils.isBlank(text)) { + JavaType javaType = getCollectionType(ArrayList.class, OtherMessageItem.class); + otherMessageItemList = objectMapper.readValue(text, javaType); + } + return otherMessageItemList; + } + + public static OtherMessageItem suggestdetail(AiConfig aiCofig, String id, String orgi, User user) throws IOException, TemplateException { + OtherMessageItem otherMessageItem = null; + String param = ""; + if (!StringUtils.isBlank(aiCofig.getOqrdetailinput())) { + Template templet = UKTools.getTemplate(aiCofig.getOqrdetailinput()); + Map values = new HashMap(); + values.put("id", id); + values.put("user", user); + param = UKTools.getTemplet(templet.getTemplettext(), values); + } + if (!StringUtils.isBlank(aiCofig.getOqrdetailurl())) { + String result = HttpClientUtil.doPost(aiCofig.getOqrdetailurl(), param), text = null; + if (!StringUtils.isBlank(aiCofig.getOqrdetailoutput()) && !result.equals("error")) { + Template templet = UKTools.getTemplate(aiCofig.getOqrdetailoutput()); + @SuppressWarnings("unchecked") + Map jsonData = objectMapper.readValue(result, Map.class); + Map values = new HashMap(); + values.put("id", id); + values.put("user", user); + values.put("data", jsonData); + text = UKTools.getTemplet(templet.getTemplettext(), values); + } + if (!StringUtils.isBlank(text)) { + otherMessageItem = objectMapper.readValue(text, OtherMessageItem.class); + } + } + return otherMessageItem; + } + + public static OtherMessageItem detail(String id, String orgi, User user) throws IOException, TemplateException { + OtherMessageItem otherMessageItem = null; + String param = ""; + SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); + if (!StringUtils.isBlank(sessionConfig.getOqrdetailinput())) { + Template templet = UKTools.getTemplate(sessionConfig.getOqrdetailinput()); + Map values = new HashMap(); + values.put("id", id); + values.put("user", user); + param = UKTools.getTemplet(templet.getTemplettext(), values); + } + if (!StringUtils.isBlank(sessionConfig.getOqrdetailurl())) { + String result = HttpClientUtil.doPost(sessionConfig.getOqrdetailurl(), param), text = null; + if (!StringUtils.isBlank(sessionConfig.getOqrdetailoutput()) && !result.equals("error")) { + Template templet = UKTools.getTemplate(sessionConfig.getOqrdetailoutput()); + @SuppressWarnings("unchecked") + Map jsonData = objectMapper.readValue(result, Map.class); + Map values = new HashMap(); + values.put("id", id); + values.put("user", user); + values.put("data", jsonData); + text = UKTools.getTemplet(templet.getTemplettext(), values); + } + if (!StringUtils.isBlank(text)) { + otherMessageItem = objectMapper.readValue(text, OtherMessageItem.class); + } + } + return otherMessageItem; + } + + public static JavaType getCollectionType(Class collectionClass, Class... elementClasses) { + return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); + } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java index 79a3ca2c..9df97cad 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/chatbot/ChatbotUtils.java @@ -22,7 +22,7 @@ import java.util.HashSet; public class ChatbotUtils { public static final HashSet VALID_LANGS = new HashSet(Arrays.asList(new String[]{"zh_CN", "en_US"})); - public static final String CHATBOT_FIRST = "客服机器人优先"; + public static final String CHATBOT_FIRST = "机器人客服优先"; public static final String HUMAN_FIRST = "人工客服优先"; public static final HashSet VALID_WORKMODELS = new HashSet(Arrays.asList(new String[]{CHATBOT_FIRST, HUMAN_FIRST})); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AiIMEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AiIMEventHandler.java deleted file mode 100644 index 1c36d980..00000000 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AiIMEventHandler.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (C) 2017 优客服-多渠道客服系统 - * Modifications copyright (C) 2018 Chatopera Inc, - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.chatopera.cc.webim.util.server.handler; - -import java.net.InetSocketAddress; -import java.util.Date; - -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; - -import com.corundumstudio.socketio.AckRequest; -import com.corundumstudio.socketio.SocketIOClient; -import com.corundumstudio.socketio.SocketIOServer; -import com.corundumstudio.socketio.annotation.OnConnect; -import com.corundumstudio.socketio.annotation.OnDisconnect; -import com.corundumstudio.socketio.annotation.OnEvent; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.util.IPTools; -import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.util.MessageUtils; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.router.OutMessageRouter; -import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; -import com.chatopera.cc.webim.util.server.message.ChatMessage; -import com.chatopera.cc.webim.util.server.message.NewRequestMessage; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.AiUser; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.MessageOutContent; - -public class AiIMEventHandler -{ - protected SocketIOServer server; - - @Autowired - public AiIMEventHandler(SocketIOServer server) - { - this.server = server ; - } - - @OnConnect - public void onConnect(SocketIOClient client) - { - try { - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; -// String session = client.getHandshakeData().getSingleUrlParam("session") ; - String appid = client.getHandshakeData().getSingleUrlParam("appid") ; - String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; -// String agent = client.getHandshakeData().getSingleUrlParam("agent") ; -// String skill = client.getHandshakeData().getSingleUrlParam("skill") ; - - if(!StringUtils.isBlank(user)){ -// /** -// * 加入到 缓存列表 -// */ - NettyClients.getInstance().putIMEventClient(user, client); - MessageOutContent outMessage = new MessageOutContent() ; - CousultInvite invite = OnlineUserUtils.cousult(appid , orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if(invite!=null && !StringUtils.isBlank(invite.getAisuccesstip())) { - outMessage.setMessage(invite.getAisuccesstip()); - }else{ - outMessage.setMessage("欢迎使用优客服小E,我来帮您解答问题"); - } - - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); - outMessage.setNickName("AI"); - outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); - - client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); - - InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress() ; - String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()) ; - AiUser aiUser = new AiUser(user, user, System.currentTimeMillis() , orgi,IPTools.getInstance().findGeography(ip)) ; - aiUser.setSessionid(UKTools.getContextID(client.getSessionId().toString())); - aiUser.setAppid(appid); - aiUser.setAiid(aiid); - aiUser.setUsername(UKDataContext.GUEST_USER+"_"+UKTools.genIDByKey(aiUser.getId())); - aiUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); - - AgentService agentService = ServiceQuene.processAiService(aiUser, orgi) ; - aiUser.setAgentserviceid(agentService.getId()); - - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); - - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - - //添加@OnDisconnect事件,客户端断开连接时调用,刷新客户端信息 - @OnDisconnect - public void onDisconnect(SocketIOClient client) throws Exception - { - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; - if(!StringUtils.isBlank(user)){ - NettyClients.getInstance().removeIMEventClient(user , UKTools.getContextID(client.getSessionId().toString())); - AiUser aiUser = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi) ; - if(aiUser!=null) { - ServiceQuene.processAiService(aiUser, orgi) ; - CacheHelper.getOnlineUserCacheBean().delete(user,UKDataContext.SYSTEM_ORGI) ; - } - } - client.disconnect(); - } - - //消息接收入口,网站有新用户接入对话 - @OnEvent(value = "new") - public void onEvent(SocketIOClient client, AckRequest request, NewRequestMessage data) - { - - } - - //消息接收入口,坐席状态更新 - @OnEvent(value = "agentstatus") - public void onEvent(SocketIOClient client, AckRequest request, AgentStatusMessage data) - { - System.out.println(data.getMessage()); - } - - //消息接收入口,收发消息,用户向坐席发送消息和 坐席向用户发送消息 - @OnEvent(value = "message") - public void onEvent(SocketIOClient client, AckRequest request, ChatMessage data) - { - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; - String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - if(data.getType() == null){ - data.setType("message"); - } - /** - * 以下代码主要用于检查 访客端的字数限制 - */ - CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(),data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if(invite!=null && invite.getMaxwordsnum() > 0) { - if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()){ - data.setMessage(data.getMessage().substring(0 , invite.getMaxwordsnum())); - } - }else if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > 300){ - data.setMessage(data.getMessage().substring(0 , 300)); - } - data.setSessionid(UKTools.getContextID(client.getSessionId().toString())); - /** - * 处理表情 - */ - data.setMessage(UKTools.processEmoti(data.getMessage())); - data.setTousername(UKDataContext.ChannelTypeEnum.AI.toString()); - - data.setAiid(aiid); - - Object cacheData = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user,orgi) ; - if(cacheData!=null && cacheData instanceof AiUser){ - AiUser aiUser = (AiUser)cacheData ; - data.setAgentserviceid(aiUser.getAgentserviceid()); - data.setChannel(aiUser.getChannel()); - /** - * 一定要设置 ContextID - */ - data.setContextid(aiUser.getAgentserviceid()); - } - MessageOutContent outMessage = MessageUtils.createAiMessage(data , data.getAppid() , data.getChannel() , UKDataContext.CallTypeEnum.IN.toString() , UKDataContext.AiItemType.USERINPUT.toString() , UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()) ; - if(!StringUtils.isBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())){ - if(!StringUtils.isBlank(data.getTouser())){ - OutMessageRouter router = null ; - router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()) ; - if(router!=null){ - router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); - } - } - if(cacheData!=null && cacheData instanceof AiUser){ - AiUser aiUser = (AiUser)cacheData ; - aiUser.setTime(System.currentTimeMillis()); - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); - } - } - UKTools.ai(data); - } -} \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index c2d96a0b..41b9c986 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -154,6 +154,7 @@ public class ApiChatbotController extends Handler { CousultInvite invite = OnlineUserUtils.cousult(c.getSnsAccountIdentifier(), c.getOrgi(), consultInviteRes); invite.setAi(isEnabled); consultInviteRes.save(invite); + OnlineUserUtils.cacheCousult(invite); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_DATA, "完成。"); @@ -256,6 +257,7 @@ public class ApiChatbotController extends Handler { c.setUpdatetime(new Date()); chatbotRes.save(c); consultInviteRes.save(invite); + OnlineUserUtils.cacheCousult(invite); return resp; } @@ -321,7 +323,6 @@ public class ApiChatbotController extends Handler { resp.addProperty("totalElements", records.getTotalElements()); // 所有检索结果数量 return resp; - } /** @@ -360,6 +361,7 @@ public class ApiChatbotController extends Handler { invite.setAifirst(false); invite.setAiid(null); consultInviteRes.save(invite); + OnlineUserUtils.cacheCousult(invite); } chatbotRes.delete(c); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); @@ -519,6 +521,7 @@ public class ApiChatbotController extends Handler { invite.setAiname(c.getName()); invite.setAimsg(c.getWelcome()); consultInviteRes.save(invite); + OnlineUserUtils.cacheCousult(invite); chatbotRes.save(c); JsonObject data = new JsonObject(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java index 96eac4d5..261dd514 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java @@ -19,7 +19,6 @@ package com.chatopera.cc.webim.web.handler.apps.internet; import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.*; -import com.chatopera.cc.util.extra.DataExchangeInterface; import com.chatopera.cc.util.webim.WebIMClient; import com.chatopera.cc.webim.service.acd.ServiceQuene; import com.chatopera.cc.webim.service.cache.CacheHelper; @@ -31,6 +30,8 @@ import com.chatopera.cc.webim.web.handler.Handler; import com.chatopera.cc.webim.web.model.*; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; @@ -57,13 +58,14 @@ import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.List; @Controller @RequestMapping("/im") @EnableAsync public class IMController extends Handler { + private final static Logger logger = LoggerFactory.getLogger(IMController.class); + @Value("${uk.im.server.host}") private String host; @@ -115,7 +117,7 @@ public class IMController extends Handler { @Valid String aiid) { ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/point")); String sessionid = request.getSession().getId(); - if (!StringUtils.isBlank(id)) { + if (StringUtils.isNotBlank(id)) { view.addObject("hostname", request.getServerName()); SystemConfig systemConfig = UKTools.getSystemConfig(); @@ -147,15 +149,15 @@ public class IMController extends Handler { view.addObject("orgi", invite.getOrgi()); view.addObject("appid", id); - if (!StringUtils.isBlank(aiid)) { + if (StringUtils.isNotBlank(aiid)) { view.addObject("aiid", aiid); - } else if (!StringUtils.isBlank(invite.getAiid())) { + } else if (StringUtils.isNotBlank(invite.getAiid())) { view.addObject("aiid", invite.getAiid()); } //记录用户行为日志 UserHistory userHistory = new UserHistory(); String url = request.getHeader("referer"); - if (!StringUtils.isBlank(url)) { + if (StringUtils.isNotBlank(url)) { if (url.length() > 255) { userHistory.setUrl(url.substring(0, 255)); } else { @@ -177,7 +179,7 @@ public class IMController extends Handler { userHistory.setUsername(imUser.getUsername()); userHistory.setOrgi(orgi); } - if (!StringUtils.isBlank(title)) { + if (StringUtils.isNotBlank(title)) { if (title.length() > 255) { userHistory.setTitle(title.substring(0, 255)); } else { @@ -229,7 +231,7 @@ public class IMController extends Handler { @Menu(type = "im", subtype = "inlist", access = true) public void inlist(HttpServletRequest request, HttpServletResponse response, @PathVariable String id, @Valid String userid) throws IOException { response.setHeader("Content-Type", "text/html;charset=utf-8"); - if (!StringUtils.isBlank(userid)) { + if (StringUtils.isNotBlank(userid)) { BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); if ((black != null && (black.getEndtime() == null || black.getEndtime().after(new Date())))) { response.getWriter().write("in"); @@ -257,7 +259,7 @@ public class IMController extends Handler { if ((black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { final SseEmitter emitter = new SseEmitter(30000L); if (CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi) == null) { - if (!StringUtils.isBlank(userid)) { + if (StringUtils.isNotBlank(userid)) { emitter.onCompletion(new Runnable() { @Override public void run() { @@ -285,7 +287,7 @@ public class IMController extends Handler { if (invite != null && invite.isTraceuser()) { contacts = processContacts(orgi, contacts, appid, userid); } - if (!StringUtils.isBlank(sign)) { + if (StringUtils.isNotBlank(sign)) { OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), orgi, sessionid, UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), request, UKDataContext.ChannelTypeEnum.WEBIM.toString(), appid, contacts, invite); } @@ -325,10 +327,10 @@ public class IMController extends Handler { @Valid String purl) throws Exception { ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/index")); BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); - if (!StringUtils.isBlank(appid) && (black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { + if (StringUtils.isNotBlank(appid) && (black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); String userID = null; - if (!StringUtils.isBlank(userid)) { + if (StringUtils.isNotBlank(userid)) { userID = UKTools.genIDByKey(userid); } else { userID = UKTools.genIDByKey(sessionid); @@ -338,8 +340,6 @@ public class IMController extends Handler { SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); map.addAttribute("sessionConfig", sessionConfig); - - map.addAttribute("hostname", request.getServerName()); if (sslPort != null) { @@ -361,16 +361,16 @@ public class IMController extends Handler { map.addAttribute("ip", UKTools.md5(request.getRemoteAddr())); - if (!StringUtils.isBlank(traceid)) { + if (StringUtils.isNotBlank(traceid)) { map.addAttribute("traceid", traceid); } - if (!StringUtils.isBlank(exchange)) { + if (StringUtils.isNotBlank(exchange)) { map.addAttribute("exchange", exchange); } - if (!StringUtils.isBlank(title)) { + if (StringUtils.isNotBlank(title)) { map.addAttribute("title", title); } - if (!StringUtils.isBlank(traceid)) { + if (StringUtils.isNotBlank(traceid)) { map.addAttribute("url", url); } @@ -382,9 +382,9 @@ public class IMController extends Handler { map.addAttribute("orgi", invite.getOrgi()); map.addAttribute("inviteData", invite); - if (!StringUtils.isBlank(aiid)) { + if (StringUtils.isNotBlank(aiid)) { map.addAttribute("aiid", aiid); - } else if (!StringUtils.isBlank(invite.getAiid())) { + } else if (StringUtils.isNotBlank(invite.getAiid())) { map.addAttribute("aiid", invite.getAiid()); } @@ -394,24 +394,24 @@ public class IMController extends Handler { view = request(super.createRequestPageTempletResponse("/apps/im/leavemsg")); } else if (invite.isConsult_info()) { //启用了信息收集 , 从Request获取 , 或从 Cookies 里去 //验证 OnlineUser 信息 - if (contacts != null && !StringUtils.isBlank(contacts.getName())) { //contacts用于传递信息,并不和 联系人表发生 关联,contacts信息传递给 Socket.IO,然后赋值给 AgentUser,最终赋值给 AgentService永久存储 + if (contacts != null && StringUtils.isNotBlank(contacts.getName())) { //contacts用于传递信息,并不和 联系人表发生 关联,contacts信息传递给 Socket.IO,然后赋值给 AgentUser,最终赋值给 AgentService永久存储 consult = true; //存入 Cookies if (invite.isConsult_info_cookies()) { Cookie name = new Cookie("name", UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); response.addCookie(name); name.setMaxAge(3600); - if (!StringUtils.isBlank(contacts.getPhone())) { + if (StringUtils.isNotBlank(contacts.getPhone())) { Cookie phonecookie = new Cookie("phone", UKTools.encryption(URLEncoder.encode(contacts.getPhone(), "UTF-8"))); phonecookie.setMaxAge(3600); response.addCookie(phonecookie); } - if (!StringUtils.isBlank(contacts.getEmail())) { + if (StringUtils.isNotBlank(contacts.getEmail())) { Cookie email = new Cookie("email", UKTools.encryption(URLEncoder.encode(contacts.getEmail(), "UTF-8"))); email.setMaxAge(3600); response.addCookie(email); } - if (!StringUtils.isBlank(contacts.getMemo())) { + if (StringUtils.isNotBlank(contacts.getMemo())) { Cookie memo = new Cookie("memo", UKTools.encryption(URLEncoder.encode(contacts.getName(), "UTF-8"))); memo.setMaxAge(3600); response.addCookie(memo); @@ -424,7 +424,7 @@ public class IMController extends Handler { contacts = new Contacts(); if (cookies != null) { for (Cookie cookie : cookies) { - if (cookie != null && !StringUtils.isBlank(cookie.getName()) && !StringUtils.isBlank(cookie.getValue())) { + if (cookie != null && StringUtils.isNotBlank(cookie.getName()) && StringUtils.isNotBlank(cookie.getValue())) { if (cookie.getName().equals("name")) { contacts.setName(URLDecoder.decode(UKTools.decryption(cookie.getValue()), "UTF-8")); } @@ -450,33 +450,33 @@ public class IMController extends Handler { contacts = processContacts(invite.getOrgi(), contacts, appid, userid); } - if (!StringUtils.isBlank(client)) { + if (StringUtils.isNotBlank(client)) { map.addAttribute("client", client); } - if (!StringUtils.isBlank(skill)) { + if (StringUtils.isNotBlank(skill)) { map.addAttribute("skill", skill); } - if (!StringUtils.isBlank(agent)) { + if (StringUtils.isNotBlank(agent)) { map.addAttribute("agent", agent); } map.addAttribute("contacts", contacts); - if (!StringUtils.isBlank(type)) { + if (StringUtils.isNotBlank(type)) { map.addAttribute("type", type); } IP ipdata = IPTools.getInstance().findGeography(UKTools.getIpAddr(request)); map.addAttribute("skillList", OnlineUserUtils.organ(invite.getOrgi(), ipdata, invite, true)); if (invite != null && consult) { - if (contacts != null && !StringUtils.isBlank(contacts.getName())) { + if (contacts != null && StringUtils.isNotBlank(contacts.getName())) { nickname = contacts.getName(); } map.addAttribute("username", nickname); if (UKDataContext.model.get("chatbot") != null && StringUtils.isNotBlank(invite.getAiid()) && invite.isAi() && - invite.isAifirst()) { //启用 AI , 并且 AI优先 接待 + ((StringUtils.equals(ai, "true")) || (invite.isAifirst() && ai == null))) { //启用 AI , 并且 AI优先 接待 HashMap chatbotConfig = new HashMap(); chatbotConfig.put("botname", invite.getAiname()); chatbotConfig.put("botid", invite.getAiid()); @@ -487,11 +487,11 @@ public class IMController extends Handler { map.addAttribute("chatbotConfig", chatbotConfig); } view = request(super.createRequestPageTempletResponse("/apps/im/chatbot/index")); - if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { + if (CheckMobile.check(request.getHeader("User-Agent")) || StringUtils.isNotBlank(mobile)) { view = request(super.createRequestPageTempletResponse("/apps/im/chatbot/mobile")); //智能机器人 移动端 } } else { - if (CheckMobile.check(request.getHeader("User-Agent")) || !StringUtils.isBlank(mobile)) { + if (CheckMobile.check(request.getHeader("User-Agent")) || StringUtils.isNotBlank(mobile)) { view = request(super.createRequestPageTempletResponse("/apps/im/mobile")); //WebIM移动端。再次点选技能组? } } @@ -523,13 +523,16 @@ public class IMController extends Handler { private Contacts processContacts(String orgi, Contacts contacts, String appid, String userid) { if (contacts != null) { - if (contacts != null && (!StringUtils.isBlank(contacts.getName()) || !StringUtils.isBlank(contacts.getPhone()) || !StringUtils.isBlank(contacts.getEmail()))) { + if (contacts != null && + (StringUtils.isNotBlank(contacts.getName()) || + StringUtils.isNotBlank(contacts.getPhone()) || + StringUtils.isNotBlank(contacts.getEmail()))) { StringBuffer query = new StringBuffer(); query.append(contacts.getName()); - if (!StringUtils.isBlank(contacts.getPhone())) { + if (StringUtils.isNotBlank(contacts.getPhone())) { query.append(" OR ").append(contacts.getPhone()); } - if (!StringUtils.isBlank(contacts.getEmail())) { + if (StringUtils.isNotBlank(contacts.getEmail())) { query.append(" OR ").append(contacts.getEmail()); } Page contactsList = contactsRes.findByOrgi(orgi, false, query.toString(), new PageRequest(0, 1)); @@ -542,7 +545,7 @@ public class IMController extends Handler { } else { contacts.setId(null); } - if (contacts != null && !StringUtils.isBlank(contacts.getId())) { + if (contacts != null && StringUtils.isNotBlank(contacts.getId())) { List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi); if (agentUserContactsList.size() == 0) { AgentUserContacts agentUserContacts = new AgentUserContacts(); @@ -554,7 +557,7 @@ public class IMController extends Handler { agentUserContacts.setCreatetime(new Date()); agentUserContactsRes.save(agentUserContacts); } - } else if (!StringUtils.isBlank(userid)) { + } else if (StringUtils.isNotBlank(userid)) { List agentUserContactsList = agentUserContactsRes.findByUseridAndOrgi(userid, orgi); if (agentUserContactsList.size() > 0) { AgentUserContacts agentUserContacts = agentUserContactsList.get(0); @@ -578,10 +581,10 @@ public class IMController extends Handler { view.addObject("ip", UKTools.md5(request.getRemoteAddr())); - if (!StringUtils.isBlank(skill)) { + if (StringUtils.isNotBlank(skill)) { view.addObject("skill", skill); } - if (!StringUtils.isBlank(agent)) { + if (StringUtils.isNotBlank(agent)) { view.addObject("agent", agent); } @@ -589,10 +592,10 @@ public class IMController extends Handler { view.addObject("sessionid", request.getSession().getId()); view.addObject("id", id); - if (!StringUtils.isBlank(ai)) { + if (StringUtils.isNotBlank(ai)) { view.addObject("ai", ai); } - if (!StringUtils.isBlank(exchange)) { + if (StringUtils.isNotBlank(exchange)) { view.addObject("exchange", exchange); } @@ -608,13 +611,13 @@ public class IMController extends Handler { view.addObject("purl", purl); - if (!StringUtils.isBlank(traceid)) { + if (StringUtils.isNotBlank(traceid)) { view.addObject("traceid", traceid); } - if (!StringUtils.isBlank(title)) { + if (StringUtils.isNotBlank(title)) { view.addObject("title", title); } - if (!StringUtils.isBlank(traceid)) { + if (StringUtils.isNotBlank(traceid)) { view.addObject("url", url); } CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); @@ -623,9 +626,9 @@ public class IMController extends Handler { view.addObject("orgi", invite.getOrgi()); view.addObject("appid", appid); - if (!StringUtils.isBlank(aiid)) { + if (StringUtils.isNotBlank(aiid)) { view.addObject("aiid", aiid); - } else if (!StringUtils.isBlank(invite.getAiid())) { + } else if (StringUtils.isNotBlank(invite.getAiid())) { view.addObject("aiid", invite.getAiid()); } } @@ -637,7 +640,7 @@ public class IMController extends Handler { @RequestMapping("/leavemsg/save") @Menu(type = "admin", subtype = "user") public ModelAndView leavemsgsave(HttpServletRequest request, @Valid String appid, @Valid LeaveMsg msg) { - if (!StringUtils.isBlank(appid)) { + if (StringUtils.isNotBlank(appid)) { SNSAccount snsAccount = snsAccountRepository.findBySnsid(appid); String orgi = snsAccount.getOrgi(); CousultInvite invite = inviteRepository.findBySnsaccountidAndOrgi(appid, orgi); @@ -671,10 +674,10 @@ public class IMController extends Handler { @RequestMapping("/satis") @Menu(type = "im", subtype = "satis", access = true) public void satis(HttpServletRequest request, HttpServletResponse response, @Valid AgentServiceSatis satis) throws Exception { - if (satis != null && !StringUtils.isBlank(satis.getId())) { + if (satis != null && StringUtils.isNotBlank(satis.getId())) { int count = agentServiceSatisRes.countById(satis.getId()); if (count == 1) { - if (!StringUtils.isBlank(satis.getSatiscomment()) && satis.getSatiscomment().length() > 255) { + if (StringUtils.isNotBlank(satis.getSatiscomment()) && satis.getSatiscomment().length() > 255) { satis.setSatiscomment(satis.getSatiscomment().substring(0, 255)); } satis.setSatisfaction(true); @@ -691,7 +694,7 @@ public class IMController extends Handler { ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/upload")); UploadStatus upload = null; String fileName = null; - if (imgFile != null && imgFile.getOriginalFilename().lastIndexOf(".") > 0 && !StringUtils.isBlank(userid)) { + if (imgFile != null && imgFile.getOriginalFilename().lastIndexOf(".") > 0 && StringUtils.isNotBlank(userid)) { File uploadDir = new File(path, "upload"); if (!uploadDir.exists()) { uploadDir.mkdirs(); @@ -714,7 +717,7 @@ public class IMController extends Handler { image = "/res/image.html?id=" + thumbnailsFileName; } if (paste == null) { - if (!StringUtils.isBlank(channel)) { + if (StringUtils.isNotBlank(channel)) { MessageUtils.uploadImage(image, fileid, (int) imgFile.getSize(), imgFile.getName(), channel, userid, username, appid, orgi); } else { MessageUtils.uploadImage(image, fileid, (int) imgFile.getSize(), imgFile.getName(), userid); @@ -732,7 +735,7 @@ public class IMController extends Handler { file = "/res/file.html?id=" + id; } File tempFile = new File(imgFile.getOriginalFilename()); - if (!StringUtils.isBlank(channel)) { + if (StringUtils.isNotBlank(channel)) { MessageUtils.uploadFile(file, (int) imgFile.getSize(), tempFile.getName(), channel, userid, username, appid, orgi, id); } else { MessageUtils.uploadFile(file, (int) imgFile.getSize(), tempFile.getName(), userid, id); @@ -749,7 +752,7 @@ public class IMController extends Handler { String id = null; if (file.getSize() > 0) { //文件尺寸 限制 ?在 启动 配置中 设置 的最大值,其他地方不做限制 String fileid = UKTools.md5(file.getBytes()); //使用 文件的 MD5作为 ID,避免重复上传大文件 - if (!StringUtils.isBlank(fileid)) { + if (StringUtils.isNotBlank(fileid)) { AttachmentFile attachmentFile = new AttachmentFile(); attachmentFile.setCreater(super.getUser(request).getId()); attachmentFile.setOrgi(super.getOrgi(request)); @@ -767,7 +770,7 @@ public class IMController extends Handler { } else { attachmentFile.setTitle(uploadFile.getName()); } - if (!StringUtils.isBlank(attachmentFile.getFiletype()) && attachmentFile.getFiletype().indexOf("image") >= 0) { + if (StringUtils.isNotBlank(attachmentFile.getFiletype()) && attachmentFile.getFiletype().indexOf("image") >= 0) { attachmentFile.setImage(true); } attachmentFile.setFileid(fileid); diff --git a/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html index 22566be4..63b0c747 100644 --- a/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html +++ b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html @@ -264,14 +264,14 @@
diff --git a/contact-center/app/src/main/resources/templates/apps/im/index.html b/contact-center/app/src/main/resources/templates/apps/im/index.html index 95644bce..5f7f611e 100644 --- a/contact-center/app/src/main/resources/templates/apps/im/index.html +++ b/contact-center/app/src/main/resources/templates/apps/im/index.html @@ -264,7 +264,7 @@
    - <#if models?? && models["xiaoe"]?? && models["xiaoe"] == true && inviteData.ai && aiid??> + <#if models?? && models["chatbot"]?? && models["chatbot"] == true && inviteData.ai && aiid??> <#if !exchange?? || exchange == "true">
  • 智能客服
  • diff --git a/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json b/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json index e97b8f47..9e6f3af9 100644 --- a/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json +++ b/contact-center/config/postman/Chatopera_cc_v1.postman_collection.json @@ -1,6 +1,6 @@ { "info": { - "_postman_id": "845f31e9-eedd-4168-b2d7-f56e7ff40f58", + "_postman_id": "fa86aeb9-fcf2-4843-ab4c-c97132a46f8f", "name": "Chatopera_cc_v1", "description": "Chatopera Contact Center API", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" @@ -58,7 +58,10 @@ "value": "{{AUTH}}" } ], - "body": {}, + "body": { + "mode": "raw", + "raw": "" + }, "url": { "raw": "http://{{IP}}:{{PORT}}/api/user", "protocol": "http", @@ -533,7 +536,7 @@ "header": [ { "key": "authorization", - "value": "b641622ea4c54f1e9e45520e7fed266b" + "value": "{{AUTH}}" }, { "key": "Content-Type", @@ -542,7 +545,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"ops\": \"create\",\n \"primaryLanguage\": \"zh_CN\",\n \"snsid\": \"104eac\",\n \"name\": \"小C\",\n \"baseUrl\": \"http://lhc-dev:8003\",\n \"description\": \"描述\",\n \"fallback\": \"我不理解。\",\n \"welcome\": \"你好\",\n \"workmode\": \"客服机器人优先\"\n}" + "raw": "{\n \"ops\": \"create\",\n \"primaryLanguage\": \"zh_CN\",\n \"snsid\": \"104eac\",\n \"name\": \"小C\",\n \"baseUrl\": \"http://lhc-dev:8003\",\n \"description\": \"描述\",\n \"fallback\": \"我不理解。\",\n \"welcome\": \"你好\",\n \"workmode\": \"机器人客服优先\"\n}" }, "url": { "raw": "http://{{IP}}:{{PORT}}/api/chatbot", @@ -566,7 +569,7 @@ "header": [ { "key": "authorization", - "value": "869c0e6dfd44421cabea7934d6fde218" + "value": "{{AUTH}}" }, { "key": "Content-Type", @@ -624,6 +627,105 @@ } }, "response": [] + }, + { + "name": "机器人客服:删除", + "request": { + "method": "POST", + "header": [ + { + "key": "authorization", + "value": "{{AUTH}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"ops\": \"delete\",\n \"id\": \"fdf372d7ffb0456f8bd7fdfc1a054beb\"\n}" + }, + "url": { + "raw": "http://{{IP}}:{{PORT}}/api/chatbot", + "protocol": "http", + "host": [ + "{{IP}}" + ], + "port": "{{PORT}}", + "path": [ + "api", + "chatbot" + ] + } + }, + "response": [] + }, + { + "name": "机器人客服:启用", + "request": { + "method": "POST", + "header": [ + { + "key": "authorization", + "value": "{{AUTH}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"ops\": \"enable\",\n \"id\": \"eb53580ddbe3473bb112ade4eeeb3b45\"\n}" + }, + "url": { + "raw": "http://{{IP}}:{{PORT}}/api/chatbot", + "protocol": "http", + "host": [ + "{{IP}}" + ], + "port": "{{PORT}}", + "path": [ + "api", + "chatbot" + ] + } + }, + "response": [] + }, + { + "name": "机器人客服:禁用", + "request": { + "method": "POST", + "header": [ + { + "key": "authorization", + "value": "{{AUTH}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"ops\": \"disable\",\n \"id\": \"eb53580ddbe3473bb112ade4eeeb3b45\"\n}" + }, + "url": { + "raw": "http://{{IP}}:{{PORT}}/api/chatbot", + "protocol": "http", + "host": [ + "{{IP}}" + ], + "port": "{{PORT}}", + "path": [ + "api", + "chatbot" + ] + } + }, + "response": [] } ], "event": [ From 7bc572ae2ec4c663cba2397b0ad38de5c2decf8e Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Sep 2018 23:32:13 +0800 Subject: [PATCH 06/16] =?UTF-8?q?#75=20=E5=A4=84=E7=90=86AiUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/webim/util/OnlineUserUtils.java | 53 ++-- .../cc/webim/util/server/ServerRunner.java | 157 +++++----- .../server/handler/ChatbotEventHandler.java | 272 +++++++++--------- .../handler/apps/internet/IMController.java | 28 +- 4 files changed, 272 insertions(+), 238 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java index fabc4421..861e4917 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java @@ -67,6 +67,7 @@ public class OnlineUserUtils { /** * 更新cache + * * @param id * @param cousultInvite */ @@ -598,33 +599,39 @@ public class OnlineUserUtils { */ public static void offline(String user, String orgi) throws Exception { if (UKDataContext.getContext() != null) { - OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); - if (onlineUser != null) { - CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(), onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if (invite.isTraceuser()) { - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); - onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); - onlineUser.setUpdatetime(new Date()); - OnlineUserRepository service = UKDataContext.getContext().getBean( - OnlineUserRepository.class); - service.save(onlineUser); + try { + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (onlineUser != null) { + CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(), onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite.isTraceuser()) { + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); + onlineUser.setUpdatetime(new Date()); + OnlineUserRepository service = UKDataContext.getContext().getBean( + OnlineUserRepository.class); + service.save(onlineUser); - OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); - { - List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), orgi); - OnlineUserHis his = null; - if (hisList.size() > 0) { - his = hisList.get(0); - } else { - his = new OnlineUserHis(); + OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); + { + List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), orgi); + OnlineUserHis his = null; + if (hisList.size() > 0) { + his = hisList.get(0); + } else { + his = new OnlineUserHis(); + } + + UKTools.copyProperties(onlineUser, his); + his.setDataid(onlineUser.getId()); + onlineHisUserRes.save(his); } - - UKTools.copyProperties(onlineUser, his); - his.setDataid(onlineUser.getId()); - onlineHisUserRes.save(his); } } + } catch (ClassCastException e) { + // #TODO workaround for + // https://github.com/chatopera/cosin/issues/75 + // AiUser is not saved, just remove from cache. } CacheHelper.getOnlineUserCacheBean().delete(user, orgi); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java index 34269faa..a0e418d6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java @@ -16,95 +16,108 @@ */ package com.chatopera.cc.webim.util.server; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; - -import com.chatopera.cc.webim.util.server.handler.ChatbotEventHandler; +import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.webim.util.server.handler.AgentEventHandler; import com.chatopera.cc.webim.util.server.handler.EntIMEventHandler; import com.chatopera.cc.webim.util.server.handler.IMEventHandler; +import com.corundumstudio.socketio.SocketIONamespace; +import com.corundumstudio.socketio.SocketIOServer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; -import com.corundumstudio.socketio.SocketIONamespace; -import com.corundumstudio.socketio.SocketIOServer; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.util.server.handler.AgentEventHandler; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; -@Component -public class ServerRunner implements CommandLineRunner { +@Component +public class ServerRunner implements CommandLineRunner { private final SocketIOServer server; - private final SocketIONamespace imSocketNameSpace ; - private final SocketIONamespace agentSocketIONameSpace ; - private final SocketIONamespace entIMSocketIONameSpace ; - private final SocketIONamespace chatbotSocketIONameSpace ; - private final SocketIONamespace callCenterSocketIONameSpace ; - private final SocketIONamespace calloutSocketIONameSpace ; - - @Autowired - public ServerRunner(SocketIOServer server) { - this.server = server; - imSocketNameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.IM.getNamespace()) ; - agentSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.AGENT.getNamespace()) ; - entIMSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.ENTIM.getNamespace()) ; - chatbotSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CHATBOT.getNamespace()) ; + private final SocketIONamespace imSocketNameSpace; + private final SocketIONamespace agentSocketIONameSpace; + private final SocketIONamespace entIMSocketIONameSpace; + private final SocketIONamespace chatbotSocketIONameSpace; + private final SocketIONamespace callCenterSocketIONameSpace; + private final SocketIONamespace calloutSocketIONameSpace; - if(UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true){ + @Autowired + public ServerRunner(SocketIOServer server) { + this.server = server; + imSocketNameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.IM.getNamespace()); + agentSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.AGENT.getNamespace()); + entIMSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.ENTIM.getNamespace()); + + if (UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true) { calloutSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLOUT.getNamespace()); } else { calloutSocketIONameSpace = null; } - if(UKDataContext.model.get("callcenter") !=null && UKDataContext.model.get("callcenter") == true){ - callCenterSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLCENTER.getNamespace()) ; - }else{ - callCenterSocketIONameSpace = null ; + if (UKDataContext.model.get("callcenter") != null && UKDataContext.model.get("callcenter") == true) { + callCenterSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLCENTER.getNamespace()); + } else { + callCenterSocketIONameSpace = null; + } + + if (UKDataContext.model.get("chatbot") != null && UKDataContext.model.get("chatbot") == true) { + chatbotSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CHATBOT.getNamespace()); + } else { + chatbotSocketIONameSpace = null; } } - - @Bean(name="imNamespace") - public SocketIONamespace getIMSocketIONameSpace(SocketIOServer server ){ - imSocketNameSpace.addListeners(new IMEventHandler(server)); - return imSocketNameSpace ; - } - - @Bean(name="agentNamespace") - public SocketIONamespace getAgentSocketIONameSpace(SocketIOServer server){ - agentSocketIONameSpace.addListeners(new AgentEventHandler(server)); - return agentSocketIONameSpace; + + @Bean(name = "imNamespace") + public SocketIONamespace getIMSocketIONameSpace(SocketIOServer server) { + imSocketNameSpace.addListeners(new IMEventHandler(server)); + return imSocketNameSpace; } - @Bean(name="entimNamespace") - public SocketIONamespace getEntIMSocketIONameSpace(SocketIOServer server){ - entIMSocketIONameSpace.addListeners(new EntIMEventHandler(server)); - return entIMSocketIONameSpace; - } - - @Bean(name="chatbotNamespace") - public SocketIONamespace getChatbotSocketIONameSpace(SocketIOServer server){ - chatbotSocketIONameSpace.addListeners(new ChatbotEventHandler(server)); - return chatbotSocketIONameSpace; - } - - @Bean(name="callCenterNamespace") - public SocketIONamespace getCallCenterIMSocketIONameSpace(SocketIOServer server){ - if(UKDataContext.model.get("callcenter") !=null && UKDataContext.model.get("callcenter") == true){ - Constructor constructor; - try { - constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.CallCenterEventHandler").getConstructor(new Class[]{SocketIOServer.class}); - callCenterSocketIONameSpace.addListeners(constructor.newInstance(server)); - } catch (NoSuchMethodException | SecurityException - | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - return callCenterSocketIONameSpace; + @Bean(name = "agentNamespace") + public SocketIONamespace getAgentSocketIONameSpace(SocketIOServer server) { + agentSocketIONameSpace.addListeners(new AgentEventHandler(server)); + return agentSocketIONameSpace; } - @Bean(name="calloutNamespace") - public SocketIONamespace getCalloutIMSocketIONameSpace(SocketIOServer server){ - if(UKDataContext.model.get("sales") !=null && UKDataContext.model.get("sales") == true){ + @Bean(name = "entimNamespace") + public SocketIONamespace getEntIMSocketIONameSpace(SocketIOServer server) { + entIMSocketIONameSpace.addListeners(new EntIMEventHandler(server)); + return entIMSocketIONameSpace; + } + + @Bean(name = "chatbotNamespace") + public SocketIONamespace getChatbotSocketIONameSpace(SocketIOServer server) { + if (UKDataContext.model.get("chatbot") != null && UKDataContext.model.get("chatbot") == true) { + Constructor constructor; + try { + constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.ChatbotEventHandler").getConstructor(new Class[]{SocketIOServer.class}); + chatbotSocketIONameSpace.addListeners(constructor.newInstance(server)); + } catch (NoSuchMethodException | SecurityException + | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + } + } + return chatbotSocketIONameSpace; + + } + + @Bean(name = "callCenterNamespace") + public SocketIONamespace getCallCenterIMSocketIONameSpace(SocketIOServer server) { + if (UKDataContext.model.get("callcenter") != null && UKDataContext.model.get("callcenter") == true) { + Constructor constructor; + try { + constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.CallCenterEventHandler").getConstructor(new Class[]{SocketIOServer.class}); + callCenterSocketIONameSpace.addListeners(constructor.newInstance(server)); + } catch (NoSuchMethodException | SecurityException + | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + } + } + return callCenterSocketIONameSpace; + } + + @Bean(name = "calloutNamespace") + public SocketIONamespace getCalloutIMSocketIONameSpace(SocketIOServer server) { + if (UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true) { Constructor constructor; try { constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.CalloutEventHandler").getConstructor(new Class[]{SocketIOServer.class}); @@ -117,8 +130,8 @@ public class ServerRunner implements CommandLineRunner { return calloutSocketIONameSpace; } - public void run(String... args) throws Exception { - server.start(); - UKDataContext.setIMServerStatus(true); //IMServer 启动成功 - } + public void run(String... args) throws Exception { + server.start(); + UKDataContext.setIMServerStatus(true); //IMServer 启动成功 + } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java index b6347f0a..979d858a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java @@ -44,155 +44,147 @@ import org.springframework.beans.factory.annotation.Autowired; import java.net.InetSocketAddress; import java.util.Date; -public class ChatbotEventHandler -{ - protected SocketIOServer server; +public class ChatbotEventHandler { + protected SocketIOServer server; @Autowired - public ChatbotEventHandler(SocketIOServer server) - { - this.server = server ; - } - - @OnConnect - public void onConnect(SocketIOClient client) - { - try { - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; + public ChatbotEventHandler(SocketIOServer server) { + this.server = server; + } + + @OnConnect + public void onConnect(SocketIOClient client) { + try { + String user = client.getHandshakeData().getSingleUrlParam("userid"); + String orgi = client.getHandshakeData().getSingleUrlParam("orgi"); // String session = client.getHandshakeData().getSingleUrlParam("session") ; - String appid = client.getHandshakeData().getSingleUrlParam("appid") ; - String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; + String appid = client.getHandshakeData().getSingleUrlParam("appid"); + String aiid = client.getHandshakeData().getSingleUrlParam("aiid"); // String agent = client.getHandshakeData().getSingleUrlParam("agent") ; // String skill = client.getHandshakeData().getSingleUrlParam("skill") ; - - if(!StringUtils.isBlank(user)){ + + if (StringUtils.isNotBlank(user)) { // /** // * 加入到 缓存列表 // */ - NettyClients.getInstance().putIMEventClient(user, client); - MessageOutContent outMessage = new MessageOutContent() ; - CousultInvite invite = OnlineUserUtils.cousult(appid , orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if(invite!=null && !StringUtils.isBlank(invite.getAisuccesstip())) { - outMessage.setMessage(invite.getAisuccesstip()); - }else{ - outMessage.setMessage("欢迎使用优客服小E,我来帮您解答问题"); - } - - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); - outMessage.setNickName("AI"); - outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); - - client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); - - InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress() ; - String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()) ; - AiUser aiUser = new AiUser(user, user, System.currentTimeMillis() , orgi,IPTools.getInstance().findGeography(ip)) ; - aiUser.setSessionid(UKTools.getContextID(client.getSessionId().toString())); - aiUser.setAppid(appid); - aiUser.setAiid(aiid); - aiUser.setUsername(UKDataContext.GUEST_USER+"_"+UKTools.genIDByKey(aiUser.getId())); - aiUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); - - AgentService agentService = ServiceQuene.processAiService(aiUser, orgi) ; - aiUser.setAgentserviceid(agentService.getId()); - - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); - - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - + NettyClients.getInstance().putIMEventClient(user, client); + MessageOutContent outMessage = new MessageOutContent(); + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite != null && !StringUtils.isBlank(invite.getAisuccesstip())) { + outMessage.setMessage(invite.getAisuccesstip()); + } else { + outMessage.setMessage("欢迎使用华夏春松机器人客服!"); + } + + outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setNickName("AI"); + outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); + + client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); + + InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress(); + String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()); + AiUser aiUser = new AiUser(user, user, System.currentTimeMillis(), orgi, IPTools.getInstance().findGeography(ip)); + aiUser.setSessionid(UKTools.getContextID(client.getSessionId().toString())); + aiUser.setAppid(appid); + aiUser.setAiid(aiid); + aiUser.setUsername(UKDataContext.GUEST_USER + "_" + UKTools.genIDByKey(aiUser.getId())); + aiUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + + AgentService agentService = ServiceQuene.processAiService(aiUser, orgi); + aiUser.setAgentserviceid(agentService.getId()); + + CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + //添加@OnDisconnect事件,客户端断开连接时调用,刷新客户端信息 - @OnDisconnect - public void onDisconnect(SocketIOClient client) throws Exception - { - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; - if(!StringUtils.isBlank(user)){ - NettyClients.getInstance().removeIMEventClient(user , UKTools.getContextID(client.getSessionId().toString())); - AiUser aiUser = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi) ; - if(aiUser!=null) { - ServiceQuene.processAiService(aiUser, orgi) ; - CacheHelper.getOnlineUserCacheBean().delete(user,UKDataContext.SYSTEM_ORGI) ; - } - } - client.disconnect(); - } - + @OnDisconnect + public void onDisconnect(SocketIOClient client) throws Exception { + String user = client.getHandshakeData().getSingleUrlParam("userid"); + String orgi = client.getHandshakeData().getSingleUrlParam("orgi"); + if (!StringUtils.isBlank(user)) { + NettyClients.getInstance().removeIMEventClient(user, UKTools.getContextID(client.getSessionId().toString())); + AiUser aiUser = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (aiUser != null) { + ServiceQuene.processAiService(aiUser, orgi); + CacheHelper.getOnlineUserCacheBean().delete(user, UKDataContext.SYSTEM_ORGI); + } + } + client.disconnect(); + } + //消息接收入口,网站有新用户接入对话 - @OnEvent(value = "new") - public void onEvent(SocketIOClient client, AckRequest request, NewRequestMessage data) - { - - } - - //消息接收入口,坐席状态更新 - @OnEvent(value = "agentstatus") - public void onEvent(SocketIOClient client, AckRequest request, AgentStatusMessage data) - { - System.out.println(data.getMessage()); - } - + @OnEvent(value = "new") + public void onEvent(SocketIOClient client, AckRequest request, NewRequestMessage data) { + + } + + //消息接收入口,坐席状态更新 + @OnEvent(value = "agentstatus") + public void onEvent(SocketIOClient client, AckRequest request, AgentStatusMessage data) { + System.out.println(data.getMessage()); + } + //消息接收入口,收发消息,用户向坐席发送消息和 坐席向用户发送消息 - @OnEvent(value = "message") - public void onEvent(SocketIOClient client, AckRequest request, ChatMessage data) - { - String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; - String aiid = client.getHandshakeData().getSingleUrlParam("aiid") ; - String user = client.getHandshakeData().getSingleUrlParam("userid") ; - if(data.getType() == null){ - data.setType("message"); - } - /** - * 以下代码主要用于检查 访客端的字数限制 - */ - CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(),data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if(invite!=null && invite.getMaxwordsnum() > 0) { - if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()){ - data.setMessage(data.getMessage().substring(0 , invite.getMaxwordsnum())); - } - }else if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > 300){ - data.setMessage(data.getMessage().substring(0 , 300)); - } - data.setSessionid(UKTools.getContextID(client.getSessionId().toString())); - /** - * 处理表情 - */ - data.setMessage(UKTools.processEmoti(data.getMessage())); - data.setTousername(UKDataContext.ChannelTypeEnum.AI.toString()); - - data.setAiid(aiid); - - Object cacheData = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user,orgi) ; - if(cacheData!=null && cacheData instanceof AiUser){ - AiUser aiUser = (AiUser)cacheData ; - data.setAgentserviceid(aiUser.getAgentserviceid()); - data.setChannel(aiUser.getChannel()); - /** - * 一定要设置 ContextID - */ - data.setContextid(aiUser.getAgentserviceid()); - } - MessageOutContent outMessage = MessageUtils.createAiMessage(data , data.getAppid() , data.getChannel() , UKDataContext.CallTypeEnum.IN.toString() , UKDataContext.AiItemType.USERINPUT.toString() , UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()) ; - if(!StringUtils.isBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())){ - if(!StringUtils.isBlank(data.getTouser())){ - OutMessageRouter router = null ; - router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()) ; - if(router!=null){ - router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); - } - } - if(cacheData!=null && cacheData instanceof AiUser){ - AiUser aiUser = (AiUser)cacheData ; - aiUser.setTime(System.currentTimeMillis()); - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); - } - } - UKTools.ai(data); - } + @OnEvent(value = "message") + public void onEvent(SocketIOClient client, AckRequest request, ChatMessage data) { + String orgi = client.getHandshakeData().getSingleUrlParam("orgi"); + String aiid = client.getHandshakeData().getSingleUrlParam("aiid"); + String user = client.getHandshakeData().getSingleUrlParam("userid"); + if (data.getType() == null) { + data.setType("message"); + } + /** + * 以下代码主要用于检查 访客端的字数限制 + */ + CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(), data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite != null && invite.getMaxwordsnum() > 0) { + if (!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()) { + data.setMessage(data.getMessage().substring(0, invite.getMaxwordsnum())); + } + } else if (!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > 300) { + data.setMessage(data.getMessage().substring(0, 300)); + } + data.setSessionid(UKTools.getContextID(client.getSessionId().toString())); + /** + * 处理表情 + */ + data.setMessage(UKTools.processEmoti(data.getMessage())); + data.setTousername(UKDataContext.ChannelTypeEnum.AI.toString()); + + data.setAiid(aiid); + + Object cacheData = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (cacheData != null && cacheData instanceof AiUser) { + AiUser aiUser = (AiUser) cacheData; + data.setAgentserviceid(aiUser.getAgentserviceid()); + data.setChannel(aiUser.getChannel()); + /** + * 一定要设置 ContextID + */ + data.setContextid(aiUser.getAgentserviceid()); + } + MessageOutContent outMessage = MessageUtils.createAiMessage(data, data.getAppid(), data.getChannel(), UKDataContext.CallTypeEnum.IN.toString(), UKDataContext.AiItemType.USERINPUT.toString(), UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); + if (!StringUtils.isBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())) { + if (!StringUtils.isBlank(data.getTouser())) { + OutMessageRouter router = null; + router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()); + if (router != null) { + router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); + } + } + if (cacheData != null && cacheData instanceof AiUser) { + AiUser aiUser = (AiUser) cacheData; + aiUser.setTime(System.currentTimeMillis()); + CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + } + } + } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java index 261dd514..2362342e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java @@ -253,7 +253,17 @@ public class IMController extends Handler { */ @RequestMapping("/online") @Menu(type = "im", subtype = "online", access = true) - public SseEmitter callable(HttpServletRequest request, HttpServletResponse response, @Valid Contacts contacts, final @Valid String orgi, final @Valid String sessionid, @Valid String appid, final @Valid String userid, @Valid String sign, final @Valid String client, final @Valid String title, final @Valid String traceid) { + public SseEmitter callable(HttpServletRequest request, + HttpServletResponse response, + @Valid Contacts contacts, + final @Valid String orgi, + final @Valid String sessionid, + @Valid String appid, + final @Valid String userid, + @Valid String sign, + final @Valid String client, + final @Valid String title, + final @Valid String traceid) { BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, orgi); SseEmitter retSseEmitter = null; if ((black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { @@ -288,9 +298,21 @@ public class IMController extends Handler { contacts = processContacts(orgi, contacts, appid, userid); } if (StringUtils.isNotBlank(sign)) { - OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), orgi, sessionid, UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), request, UKDataContext.ChannelTypeEnum.WEBIM.toString(), appid, contacts, invite); + try { + OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), + orgi, + sessionid, + UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), + request, + UKDataContext.ChannelTypeEnum.WEBIM.toString(), + appid, + contacts, + invite); + } catch (java.lang.ClassCastException e) { + // #TODO workaround for + // https://github.com/chatopera/cosin/issues/75 + } } - OnlineUserUtils.webIMClients.putClient(userid, new WebIMClient(userid, client, emitter)); } } From b4dbc68109c373cfd7234a5c4743720b2a60a1e3 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Wed, 12 Sep 2018 09:56:56 +0800 Subject: [PATCH 07/16] #76 enable fetch vacant chatbots --- .../repository/SNSAccountRepository.java | 8 + .../admin/channel/SNSAccountIMController.java | 238 +++++++++--------- .../api/rest/ApiChatbotController.java | 43 +++- .../cc/webim/web/model/SNSAccount.java | 18 ++ .../config/sql/cskefu-MySQL-slim.sql | 2 + 5 files changed, 191 insertions(+), 118 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/SNSAccountRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/SNSAccountRepository.java index 1481f5f7..a25dd399 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/SNSAccountRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/SNSAccountRepository.java @@ -22,6 +22,8 @@ import com.chatopera.cc.webim.web.model.SNSAccount; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public abstract interface SNSAccountRepository extends JpaRepository @@ -43,4 +45,10 @@ public abstract interface SNSAccountRepository public abstract List findBySnstype(String snsType); public abstract Page findBySnstypeAndOrgi(String paramString ,String orgi, Pageable page); + + @Query(value = "select s from SNSAccount s where " + + "(:orgi is null or s.orgi = :orgi) and " + + "(:snsType is null or s.snstype = :snsType) and " + + "(:myorgans is null or s.organ IN :myorgans)") + public List findBySnstypeAndOrgiAndOrgans(@Param("snsType") String snsType, @Param("orgi") String orgi, @Param("myorgans") List organs); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java index 61ab1da0..3910b0f8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java @@ -16,17 +16,19 @@ */ package com.chatopera.cc.webim.web.handler.admin.channel; -import java.security.NoSuchAlgorithmException; -import java.util.Date; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; - +import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.util.Base62; import com.chatopera.cc.util.Menu; +import com.chatopera.cc.util.UKTools; +import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; +import com.chatopera.cc.webim.service.repository.OrganRepository; +import com.chatopera.cc.webim.service.repository.SNSAccountRepository; import com.chatopera.cc.webim.service.repository.SecretRepository; +import com.chatopera.cc.webim.web.handler.Handler; import com.chatopera.cc.webim.web.model.CousultInvite; import com.chatopera.cc.webim.web.model.SNSAccount; +import com.chatopera.cc.webim.web.model.Secret; +import com.chatopera.cc.webim.web.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -35,13 +37,11 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.util.Base62; -import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Secret; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.security.NoSuchAlgorithmException; +import java.util.Date; +import java.util.List; /** * @@ -49,120 +49,130 @@ import com.chatopera.cc.webim.web.model.Secret; */ @Controller @RequestMapping("/admin/im") -public class SNSAccountIMController extends Handler{ +public class SNSAccountIMController extends Handler { - @Autowired - private SNSAccountRepository snsAccountRes; - - @Autowired - private ConsultInviteRepository invite; - - @Autowired - private SecretRepository secRes ; + @Autowired + private SNSAccountRepository snsAccountRes; + + @Autowired + private ConsultInviteRepository invite; + + @Autowired + private SecretRepository secRes; + + @Autowired + private OrganRepository organRes; @RequestMapping("/index") - @Menu(type = "admin" , subtype = "im" , access = false ,admin = true) - public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String execute) { - map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi( UKDataContext.ChannelTypeEnum.WEBIM.toString() , super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))) ; - List secretConfig = secRes.findByOrgi(super.getOrgi(request)) ; - if(secretConfig!=null && secretConfig.size() > 0){ - map.addAttribute("secret", secretConfig.get(0)) ; - } - if(!StringUtils.isBlank(execute) && execute.equals("false")){ - map.addAttribute("execute", execute) ; - } - return request(super.createAdminTempletResponse("/admin/channel/im/index")); + @Menu(type = "admin", subtype = "im", access = false, admin = true) + public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String execute) { + map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.WEBIM.toString(), super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))); + List secretConfig = secRes.findByOrgi(super.getOrgi(request)); + if (secretConfig != null && secretConfig.size() > 0) { + map.addAttribute("secret", secretConfig.get(0)); + } + if (!StringUtils.isBlank(execute) && execute.equals("false")) { + map.addAttribute("execute", execute); + } + return request(super.createAdminTempletResponse("/admin/channel/im/index")); } - + @RequestMapping("/add") - @Menu(type = "admin" , subtype = "im" , access = false ,admin = true) - public ModelAndView add(ModelMap map , HttpServletRequest request) { + @Menu(type = "admin", subtype = "im", access = false, admin = true) + public ModelAndView add(ModelMap map, HttpServletRequest request) { return request(super.createRequestPageTempletResponse("/admin/channel/im/add")); } - + @RequestMapping("/save") - @Menu(type = "admin" , subtype = "weixin") - public ModelAndView save(HttpServletRequest request ,@Valid SNSAccount snsAccount) throws NoSuchAlgorithmException { - if(!StringUtils.isBlank(snsAccount.getBaseURL())){ - snsAccount.setSnsid(Base62.encode(snsAccount.getBaseURL()).toLowerCase()); - int count = snsAccountRes.countBySnsidAndOrgi(snsAccount.getSnsid() , super.getOrgi(request)) ; - if(count == 0){ - snsAccount.setOrgi(super.getOrgi(request)); - snsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); - snsAccount.setCreatetime(new Date()); - snsAccountRes.save(snsAccount) ; - - /** - * 同时创建CousultInvite 记录 - */ - CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)) ; - if(coultInvite ==null){ - coultInvite = new CousultInvite() ; - coultInvite.setSnsaccountid(snsAccount.getSnsid()); - coultInvite.setCreate_time(new Date()); - coultInvite.setOrgi(super.getOrgi(request)); - coultInvite.setName(snsAccount.getName()); - invite.save(coultInvite) ; - } - } - } - return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html")); + @Menu(type = "admin", subtype = "weixin") + public ModelAndView save(HttpServletRequest request, @Valid SNSAccount snsAccount) throws NoSuchAlgorithmException { + if (!StringUtils.isBlank(snsAccount.getBaseURL())) { + snsAccount.setSnsid(Base62.encode(snsAccount.getBaseURL()).toLowerCase()); + int count = snsAccountRes.countBySnsidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)); + if (count == 0) { + snsAccount.setOrgi(super.getOrgi(request)); + snsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + snsAccount.setCreatetime(new Date()); + User curr = super.getUser(request); + snsAccount.setCreater(curr.getId()); + if (curr.getOrgan() != null) { + snsAccount.setOrgan(curr.getOrgan()); + } + + snsAccountRes.save(snsAccount); + + /** + * 同时创建CousultInvite 记录 + */ + CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)); + if (coultInvite == null) { + coultInvite = new CousultInvite(); + coultInvite.setSnsaccountid(snsAccount.getSnsid()); + coultInvite.setCreate_time(new Date()); + coultInvite.setOrgi(super.getOrgi(request)); + coultInvite.setName(snsAccount.getName()); + coultInvite.setOwner(snsAccount.getCreater()); + invite.save(coultInvite); + } + } + } + return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html")); } - + @RequestMapping("/delete") - @Menu(type = "weixin" , subtype = "delete") - public ModelAndView delete(ModelMap map , HttpServletRequest request , @Valid String id , @Valid String confirm) { - boolean execute = false ; - if(execute = UKTools.secConfirm(secRes, super.getOrgi(request), confirm)){ - SNSAccount snsAccount = snsAccountRes.findByIdAndOrgi(id , super.getOrgi(request)) ; - if(snsAccountRes!=null){ - snsAccountRes.delete(snsAccount); - CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)) ; - if(coultInvite != null){ - invite.delete(coultInvite); - } - } - } - - return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html?execute="+execute)); + @Menu(type = "weixin", subtype = "delete") + public ModelAndView delete(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String confirm) { + boolean execute = false; + if (execute = UKTools.secConfirm(secRes, super.getOrgi(request), confirm)) { + SNSAccount snsAccount = snsAccountRes.findByIdAndOrgi(id, super.getOrgi(request)); + if (snsAccountRes != null) { + snsAccountRes.delete(snsAccount); + CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)); + if (coultInvite != null) { + invite.delete(coultInvite); + } + } + } + + return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html?execute=" + execute)); } - + @RequestMapping("/edit") - @Menu(type = "admin" , subtype = "im" , access = false ,admin = true) - public ModelAndView edit(ModelMap map , HttpServletRequest request , @Valid String id) { - map.addAttribute("snsAccount", snsAccountRes.findByIdAndOrgi(id , super.getOrgi(request))) ; + @Menu(type = "admin", subtype = "im", access = false, admin = true) + public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id) { + map.addAttribute("snsAccount", snsAccountRes.findByIdAndOrgi(id, super.getOrgi(request))); return request(super.createRequestPageTempletResponse("/admin/channel/im/edit")); } - + @RequestMapping("/update") - @Menu(type = "admin" , subtype = "im" , access = false ,admin = true) - public ModelAndView update(HttpServletRequest request ,@Valid SNSAccount snsAccount) throws NoSuchAlgorithmException { - SNSAccount oldSnsAccount = snsAccountRes.findByIdAndOrgi(snsAccount.getId() , super.getOrgi(request)); - if(oldSnsAccount!=null){ - oldSnsAccount.setName(snsAccount.getName()); - oldSnsAccount.setBaseURL(snsAccount.getBaseURL()); - oldSnsAccount.setUpdatetime(new Date()); - /** - * SNSID如果有变更,需要同时变更 CoultInvite 表的 记录 - */ - if(!StringUtils.isBlank(oldSnsAccount.getSnsid())){ - CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(oldSnsAccount.getSnsid(), super.getOrgi(request)) ; - if(coultInvite ==null){ - /** - * 同时创建CousultInvite 记录 - */ - coultInvite = new CousultInvite() ; - coultInvite.setSnsaccountid(oldSnsAccount.getSnsid()); - coultInvite.setCreate_time(new Date()); - coultInvite.setOrgi(super.getOrgi(request)); - coultInvite.setName(snsAccount.getName()); - invite.save(coultInvite) ; - } - } - - oldSnsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); - snsAccountRes.save(oldSnsAccount) ; - } - return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html")); + @Menu(type = "admin", subtype = "im", access = false, admin = true) + public ModelAndView update(HttpServletRequest request, @Valid SNSAccount snsAccount) throws NoSuchAlgorithmException { + SNSAccount oldSnsAccount = snsAccountRes.findByIdAndOrgi(snsAccount.getId(), super.getOrgi(request)); + if (oldSnsAccount != null) { + oldSnsAccount.setName(snsAccount.getName()); + oldSnsAccount.setBaseURL(snsAccount.getBaseURL()); + oldSnsAccount.setUpdatetime(new Date()); + /** + * SNSID如果有变更,需要同时变更 CoultInvite 表的 记录 + */ + if (!StringUtils.isBlank(oldSnsAccount.getSnsid())) { + CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(oldSnsAccount.getSnsid(), super.getOrgi(request)); + if (coultInvite == null) { + /** + * 同时创建CousultInvite 记录 + */ + coultInvite = new CousultInvite(); + coultInvite.setSnsaccountid(oldSnsAccount.getSnsid()); + coultInvite.setCreate_time(new Date()); + coultInvite.setOrgi(super.getOrgi(request)); + coultInvite.setName(snsAccount.getName()); + invite.save(coultInvite); + } + } + + oldSnsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + snsAccountRes.save(oldSnsAccount); + } + return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html")); } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index 41b9c986..464c090f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -23,10 +23,7 @@ import com.chatopera.cc.webim.util.OnlineUserUtils; import com.chatopera.cc.webim.util.chatbot.ChatbotUtils; import com.chatopera.cc.webim.web.handler.Handler; import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.Chatbot; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.webim.web.model.*; import com.chatopera.chatbot.ChatbotAPI; import com.chatopera.chatbot.ChatbotAPIRuntimeException; import com.google.gson.JsonArray; @@ -56,6 +53,7 @@ import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; +import java.util.List; @RestController @RequestMapping("/api/chatbot") @@ -114,6 +112,9 @@ public class ApiChatbotController extends Handler { case "disable": json = enable(j, false); break; + case "vacant": + json = vacant(j, curruser.getOrgi(), curruser.isSuperuser(), curruser.getMyorgans()); + break; default: json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_2); json.addProperty(RestUtils.RESP_KEY_ERROR, "不合法的操作。"); @@ -122,6 +123,40 @@ public class ApiChatbotController extends Handler { return new ResponseEntity(json.toString(), headers, HttpStatus.OK); } + /** + * 获取空缺聊天机器人的网站渠道列表 + * + * @param j + * @param orgi + * @param myorgans + * @return + */ + private JsonObject vacant(final JsonObject j, String orgi, boolean isSuperuser, final HashSet myorgans) { + JsonObject resp = new JsonObject(); + if ((!isSuperuser) && (myorgans == null || myorgans.size() == 0)) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); + resp.addProperty(RestUtils.RESP_KEY_ERROR, "您还未属于任何【部门】,不具有访问该资源的权限。"); + return resp; + } + + List records = snsAccountRes.findBySnstypeAndOrgiAndOrgans(ChatbotUtils.SNS_TYPE_WEBIM, orgi, myorgans != null ? new ArrayList(myorgans) : null); + JsonArray ja = new JsonArray(); + + for (SNSAccount r : records) { + if (!chatbotRes.existsBySnsAccountIdentifierAndOrgi(r.getSnsid(), orgi)) { + JsonObject o = new JsonObject(); + o.addProperty("id", r.getId()); + o.addProperty("snsid", r.getSnsid()); + o.addProperty("snsType", r.getSnstype()); + ja.add(o); + } + } + + resp.add("data", ja); + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); + return resp; + } + /** * Enable Chatbot * diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java index 4a2ef9ba..3dfa5ba5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java @@ -76,6 +76,8 @@ public class SNSAccount{ private boolean defaultaccount ; private String moreparam ; //改变用处,用于记录 爬虫的 爬取位置(微博)/如果是微信记录Secret private String orgi ; + private String organ; + private String creater; private String lastatupdate ; private String lastprimsgupdate ; @@ -331,4 +333,20 @@ public class SNSAccount{ public void setBaseURL(String baseURL) { this.baseURL = baseURL; } + + public String getOrgan() { + return organ; + } + + public void setOrgan(String organ) { + this.organ = organ; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } } diff --git a/contact-center/config/sql/cskefu-MySQL-slim.sql b/contact-center/config/sql/cskefu-MySQL-slim.sql index 3c7ec841..7425c7f7 100644 --- a/contact-center/config/sql/cskefu-MySQL-slim.sql +++ b/contact-center/config/sql/cskefu-MySQL-slim.sql @@ -3411,6 +3411,8 @@ CREATE TABLE `uk_snsaccount` ( `SESSIONKEY` varchar(255) DEFAULT NULL COMMENT '会话Key', `MOREPARAM` varchar(255) DEFAULT NULL COMMENT '更多参数', `ORGI` varchar(255) DEFAULT NULL COMMENT '租户ID', + `ORGAN` varchar(32) DEFAULT NULL COMMENT '组织机构ID', + `CREATER` varchar(32) DEFAULT NULL COMMENT '创建人ID', `DEFAULTACCOUNT` smallint(6) DEFAULT NULL COMMENT '默认账号', `lastatupdate` varchar(96) DEFAULT NULL COMMENT '最后更新时间', `lastprimsgupdate` varchar(96) DEFAULT NULL, From 6942be43f3c8594dc8c5f70adda8245e75e09eb1 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Wed, 12 Sep 2018 13:05:44 +0800 Subject: [PATCH 08/16] =?UTF-8?q?#1=20=E6=9B=B4=E6=96=B0=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 38 ++++++++----- .../cc/util/client/NettyChatbotClient.java | 54 +++++++++++++++++++ .../cc/util/client/NettyClients.java | 22 +++++++- 3 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java diff --git a/README.md b/README.md index cd35bb8e..9dcc7782 100644 --- a/README.md +++ b/README.md @@ -59,50 +59,61 @@ 序号 内容 - 视频地址 + 腾讯视频 + 百度网盘 No. 1 产品概述 - 链接 + 观看 + 下载 No. 2 安装部署 - 链接 + 观看 + 下载 No. 3 功能演示 - 链接 + 观看 + 下载 No. 4 账号体系 - 链接 + 观看 + 下载 No. 5 客户关系管理 - 链接 + 观看 + 下载 No. 6 即时通信 - 链接 + 观看 + 下载 No. 7 呼叫中心 - 链接 + 观看 + 下载 No. 8 数据报表 - 链接 + 观看 + 下载 +[*下载视频合集*](https://pan.baidu.com/s/1YH7d7nMm5wZQp7P8kID3KA) + ## 开发文档

    @@ -144,11 +155,14 @@

    - ## 产品体系 - - +

    + 观看视频介绍
    + + + +

    ## 鸣谢 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java b/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java new file mode 100644 index 00000000..804405f0 --- /dev/null +++ b/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2018 Chatopera Inc, + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chatopera.cc.util.client; + +import com.chatopera.cc.util.UKTools; +import com.corundumstudio.socketio.SocketIOClient; +import com.google.common.collect.ArrayListMultimap; + +import java.util.List; + +/** + * 呼叫中心登录坐席 + * @author Hai Liang Wang + * @date + * + */ +public class NettyChatbotClient implements NettyClient{ + + private ArrayListMultimap _map = ArrayListMultimap.create(); + + public List getClients(String key){ + return _map.get(key) ; + } + + public void putClient(String key , SocketIOClient client){ + _map.put(key, client) ; + } + + public void removeClient(String key , String id){ + List keyClients = this.getClients(key) ; + for(SocketIOClient client : keyClients){ + if(UKTools.getContextID(client.getSessionId().toString()).equals(id)){ + keyClients.remove(client) ; + break ; + } + } + if(keyClients.size() == 0){ + _map.removeAll(key) ; + } + } +} diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java b/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java index e7c14a44..2c30e48a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java @@ -34,6 +34,7 @@ public class NettyClients { private NettyIMClient entIMClients = new NettyIMClient(); private NettyCallCenterClient callCenterClients = new NettyCallCenterClient(); private NettyCalloutClient calloutClients = new NettyCalloutClient(); + private NettyChatbotClient chatbotClients = new NettyChatbotClient(); public int size(){ return imClients.size(); @@ -114,10 +115,29 @@ public class NettyClients { } } + + /** + * Chatbot Event Server Methods. + */ + public void putChatbotEventClient(String id, SocketIOClient client){ + chatbotClients.putClient(id, client); + } + + public void removeChatbotEventClient(String id, String sessionId) { + chatbotClients.removeClient(id, sessionId); + } + + public void sendChatbotEventMessage(String id, String event, Object data){ + List _clients = chatbotClients.getClients(id); + logger.info("sendChatbotEventMessage get clients size {}", _clients.size()); + for(SocketIOClient c: _clients){ + c.sendEvent(event, data); + } + } + /** * Callout Event Server Methods. */ - public void putCalloutEventClient(String id, SocketIOClient client){ calloutClients.putClient(id, client); } From 0266d4e35373af229db77c418ae34b9d3df58b23 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Wed, 12 Sep 2018 14:07:15 +0800 Subject: [PATCH 09/16] =?UTF-8?q?#75=20=E5=A2=9E=E5=8A=A0=E6=AC=A2?= =?UTF-8?q?=E8=BF=8E=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webim/util/server/handler/ChatbotEventHandler.java | 10 ++++++---- .../web/handler/api/rest/ApiChatbotController.java | 6 +++--- .../resources/templates/apps/im/chatbot/index.html | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java index 979d858a..e3967678 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java @@ -28,10 +28,7 @@ import com.chatopera.cc.webim.util.router.OutMessageRouter; import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; import com.chatopera.cc.webim.util.server.message.ChatMessage; import com.chatopera.cc.webim.util.server.message.NewRequestMessage; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.AiUser; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.webim.web.model.*; import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.SocketIOClient; import com.corundumstudio.socketio.SocketIOServer; @@ -39,12 +36,16 @@ import com.corundumstudio.socketio.annotation.OnConnect; import com.corundumstudio.socketio.annotation.OnDisconnect; import com.corundumstudio.socketio.annotation.OnEvent; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.net.InetSocketAddress; import java.util.Date; public class ChatbotEventHandler { + private static final Logger logger = LoggerFactory.getLogger(ChatbotEventHandler.class); + protected SocketIOServer server; @Autowired @@ -62,6 +63,7 @@ public class ChatbotEventHandler { String aiid = client.getHandshakeData().getSingleUrlParam("aiid"); // String agent = client.getHandshakeData().getSingleUrlParam("agent") ; // String skill = client.getHandshakeData().getSingleUrlParam("skill") ; + logger.info("[chatbot socket.io] onConnect user {}, orgi {}, appid {}, aiid {}", user, orgi, appid, aiid); if (StringUtils.isNotBlank(user)) { // /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java index 464c090f..9052d35e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java @@ -281,7 +281,7 @@ public class ApiChatbotController extends Handler { if (StringUtils.isNotBlank(welcome)) { c.setWelcome(welcome); - invite.setAimsg(welcome); + invite.setAisuccesstip(welcome); } if (StringUtils.isNotBlank(name)) { @@ -392,7 +392,7 @@ public class ApiChatbotController extends Handler { if (invite != null) { invite.setAi(false); invite.setAiname(null); - invite.setAimsg(null); + invite.setAisuccesstip(null); invite.setAifirst(false); invite.setAiid(null); consultInviteRes.save(invite); @@ -554,7 +554,7 @@ public class ApiChatbotController extends Handler { invite.setAifirst(StringUtils.equals(ChatbotUtils.CHATBOT_FIRST, workmode)); invite.setAiid(c.getId()); invite.setAiname(c.getName()); - invite.setAimsg(c.getWelcome()); + invite.setAisuccesstip(c.getWelcome()); consultInviteRes.save(invite); OnlineUserUtils.cacheCousult(invite); chatbotRes.save(c); diff --git a/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html index 63b0c747..d3fdeee9 100644 --- a/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html +++ b/contact-center/app/src/main/resources/templates/apps/im/chatbot/index.html @@ -452,7 +452,7 @@ // 参数连接 var hostname = location.hostname ; var protocol = window.location.protocol.replace(/:/g,''); - var socket = io.connect(protocol + '://'+hostname+':${port}/im/chatbot?userid=${userid!''}&orgi=${orgi!''}&session=${sessionid!''}&appid=${appid!''}&osname=${(osname!'')?url}&browser=${(browser!'')?url}<#if skill??>&skill=${skill}<#if username??>&nickname=${username}<#if agent??>&agent=${agent}<#if title??>&title=${title?url}<#if traceid??>&url=${url?url}<#if traceid??>&traceid=${traceid}'); + var socket = io.connect(protocol + '://'+hostname+':${port}/im/chatbot?userid=${userid!''}&orgi=${orgi!''}&session=${sessionid!''}&appid=${appid!''}&osname=${(osname!'')?url}&browser=${(browser!'')?url}<#if skill??>&skill=${skill}<#if username??>&nickname=${username}<#if agent??>&agent=${agent}<#if title??>&title=${title?url}<#if traceid??>&url=${url?url}<#if traceid??>&traceid=${traceid}<#if aiid??>&aiid=${aiid}'); socket.on('connect',function(){ <#if contacts?? && contacts.name??> socket.emit('new', { From 7e4f5c9115794beed918417257ca40de724f72a3 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Wed, 12 Sep 2018 17:37:14 +0800 Subject: [PATCH 10/16] =?UTF-8?q?#75=20=E6=9C=BA=E5=99=A8=E4=BA=BA?= =?UTF-8?q?=E5=AE=A2=E6=9C=8D=E4=BC=9A=E8=AF=9D=E5=85=B3=E8=81=94agentuser?= =?UTF-8?q?,=20agentservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/chatopera/cc/core/UKDataContext.java | 22 +++ .../java/com/chatopera/cc/util/Constants.java | 1 - .../cc/webim/service/acd/ServiceQuene.java | 39 +++-- .../webim/service/task/CallOutWireTask.java | 2 +- .../cc/webim/util/OnlineUserUtils.java | 52 +++---- .../server/handler/ChatbotEventHandler.java | 146 +++++++++++++----- .../handler/apps/internet/IMController.java | 24 ++- .../cc/webim/web/model/AgentUser.java | 11 +- .../config/sql/cskefu-MySQL-slim.sql | 1 + 9 files changed, 196 insertions(+), 102 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java index 6df22979..62ef391f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java @@ -335,6 +335,28 @@ public class UKDataContext { } } + // 服务处理类型 + public enum OptTypeEnum { + CHATBOT("机器人客服", 1), + HUMAN("人工客服", 2); + + private final String name; + private final int index; + + private OptTypeEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String toLetters() { + return super.toString().toLowerCase(); + } + + public String toString() { + return this.name; + } + } + // 外呼计划状态 public enum CallOutDialplanStatusEnum { RUNNING("执行中", 1), diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/Constants.java b/contact-center/app/src/main/java/com/chatopera/cc/util/Constants.java index fe5e6e41..e695417a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/Constants.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/util/Constants.java @@ -25,7 +25,6 @@ import java.util.Set; public class Constants { - public final static String OPT_TYPE = "webim"; public final static String MINIO_BUCKET = "chatopera"; /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java index 8503c961..792729e6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java @@ -523,47 +523,44 @@ public class ServiceQuene { /** * 为访客 分配坐席, ACD策略,此处 AgentStatus 是建议 的 坐席, 如果启用了 历史服务坐席 优先策略, 则会默认检查历史坐席是否空闲,如果空闲,则分配,如果不空闲,则 分配当前建议的坐席 * - * @param agentStatus * @param agentUser * @param orgi * @return * @throws Exception */ - public static AgentService processAiService(AiUser aiUser, String orgi) throws Exception { + public static AgentService processChatbotService(final AgentUser agentUser, final String orgi) { AgentService agentService = new AgentService(); //放入缓存的对象 AgentServiceRepository agentServiceRes = UKDataContext.getContext().getBean(AgentServiceRepository.class); - if (!StringUtils.isBlank(aiUser.getAgentserviceid())) { - agentService = agentServiceRes.findByIdAndOrgi(aiUser.getAgentserviceid(), orgi); - agentService.setEndtime(new Date()); + Date now = new Date(); + if (StringUtils.isNotBlank(agentUser.getAgentserviceid())) { + agentService = agentServiceRes.findByIdAndOrgi(agentUser.getAgentserviceid(), orgi); + agentService.setEndtime(now); if (agentService.getServicetime() != null) { agentService.setSessiontimes(System.currentTimeMillis() - agentService.getServicetime().getTime()); } agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); } else { - agentService.setServicetime(new Date()); - agentService.setLogindate(new Date()); + agentService.setServicetime(now); + agentService.setLogindate(now); agentService.setOrgi(orgi); - agentService.setOwner(aiUser.getContextid()); - agentService.setSessionid(aiUser.getSessionid()); - if (aiUser.getIpdata() != null) { - agentService.setRegion(aiUser.getIpdata().getRegion()); - } + agentService.setOwner(agentUser.getContextid()); + agentService.setSessionid(agentUser.getSessionid()); + agentService.setRegion(agentUser.getRegion()); + agentService.setUsername(agentUser.getUsername()); + agentService.setChannel(agentUser.getChannel()); - agentService.setUsername(aiUser.getUsername()); - agentService.setChannel(aiUser.getChannel()); - - if (!StringUtils.isBlank(aiUser.getContextid())) { - agentService.setContextid(aiUser.getContextid()); + if (StringUtils.isNotBlank(agentUser.getContextid())) { + agentService.setContextid(agentUser.getContextid()); } else { - agentService.setContextid(aiUser.getSessionid()); + agentService.setContextid(agentUser.getSessionid()); } - agentService.setUserid(aiUser.getUserid()); - agentService.setAiid(aiUser.getAiid()); + agentService.setUserid(agentUser.getUserid()); + agentService.setAiid(agentUser.getAgentno()); agentService.setAiservice(true); agentService.setStatus(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()); - agentService.setAppid(aiUser.getAppid()); + agentService.setAppid(agentUser.getAppid()); agentService.setLeavemsg(false); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/task/CallOutWireTask.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/task/CallOutWireTask.java index b98843ab..9be84dd2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/task/CallOutWireTask.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/service/task/CallOutWireTask.java @@ -258,7 +258,7 @@ public class CallOutWireTask implements MessageListener { onlineUser.setCreater(onlineUser.getId()); onlineUser.setCreatetime(createtime); onlineUser.setUpdatetime(createtime); - onlineUser.setOptype(Constants.OPT_TYPE); + onlineUser.setOptype(UKDataContext.OptTypeEnum.HUMAN.toString()); onlineUser.setAppid(channel); } else { onlineUser.setOlduser("1"); // 不是 老访客 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java index 861e4917..2da7a330 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/OnlineUserUtils.java @@ -599,39 +599,33 @@ public class OnlineUserUtils { */ public static void offline(String user, String orgi) throws Exception { if (UKDataContext.getContext() != null) { - try { - OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); - if (onlineUser != null) { - CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(), onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if (invite.isTraceuser()) { - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); - onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); - onlineUser.setUpdatetime(new Date()); - OnlineUserRepository service = UKDataContext.getContext().getBean( - OnlineUserRepository.class); - service.save(onlineUser); + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (onlineUser != null) { + CousultInvite invite = OnlineUserUtils.cousult(onlineUser.getAppid(), onlineUser.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + if (invite.isTraceuser()) { + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setBetweentime((int) (new Date().getTime() - onlineUser.getLogintime().getTime())); + onlineUser.setUpdatetime(new Date()); + OnlineUserRepository service = UKDataContext.getContext().getBean( + OnlineUserRepository.class); + service.save(onlineUser); - OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); - { - List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), orgi); - OnlineUserHis his = null; - if (hisList.size() > 0) { - his = hisList.get(0); - } else { - his = new OnlineUserHis(); - } - - UKTools.copyProperties(onlineUser, his); - his.setDataid(onlineUser.getId()); - onlineHisUserRes.save(his); + OnlineUserHisRepository onlineHisUserRes = UKDataContext.getContext().getBean(OnlineUserHisRepository.class); + { + List hisList = onlineHisUserRes.findBySessionidAndOrgi(onlineUser.getSessionid(), orgi); + OnlineUserHis his = null; + if (hisList.size() > 0) { + his = hisList.get(0); + } else { + his = new OnlineUserHis(); } + + UKTools.copyProperties(onlineUser, his); + his.setDataid(onlineUser.getId()); + onlineHisUserRes.save(his); } } - } catch (ClassCastException e) { - // #TODO workaround for - // https://github.com/chatopera/cosin/issues/75 - // AiUser is not saved, just remove from cache. } CacheHelper.getOnlineUserCacheBean().delete(user, orgi); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java index e3967678..599a3989 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java @@ -16,12 +16,15 @@ package com.chatopera.cc.webim.util.server.handler; import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.util.IP; import com.chatopera.cc.util.IPTools; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.client.NettyClients; import com.chatopera.cc.webim.service.acd.ServiceQuene; import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.webim.service.repository.AgentUserRepository; import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; +import com.chatopera.cc.webim.service.repository.OnlineUserRepository; import com.chatopera.cc.webim.util.MessageUtils; import com.chatopera.cc.webim.util.OnlineUserUtils; import com.chatopera.cc.webim.util.router.OutMessageRouter; @@ -48,6 +51,9 @@ public class ChatbotEventHandler { protected SocketIOServer server; + private AgentUserRepository agentUserRes; + private OnlineUserRepository onlineUserRes; + @Autowired public ChatbotEventHandler(SocketIOServer server) { this.server = server; @@ -57,22 +63,23 @@ public class ChatbotEventHandler { public void onConnect(SocketIOClient client) { try { String user = client.getHandshakeData().getSingleUrlParam("userid"); + String nickname = client.getHandshakeData().getSingleUrlParam("nickname"); String orgi = client.getHandshakeData().getSingleUrlParam("orgi"); -// String session = client.getHandshakeData().getSingleUrlParam("session") ; + String session = client.getHandshakeData().getSingleUrlParam("session"); String appid = client.getHandshakeData().getSingleUrlParam("appid"); String aiid = client.getHandshakeData().getSingleUrlParam("aiid"); // String agent = client.getHandshakeData().getSingleUrlParam("agent") ; // String skill = client.getHandshakeData().getSingleUrlParam("skill") ; - logger.info("[chatbot socket.io] onConnect user {}, orgi {}, appid {}, aiid {}", user, orgi, appid, aiid); + Date now = new Date(); if (StringUtils.isNotBlank(user)) { // /** // * 加入到 缓存列表 // */ - NettyClients.getInstance().putIMEventClient(user, client); + NettyClients.getInstance().putChatbotEventClient(user, client); MessageOutContent outMessage = new MessageOutContent(); CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); - if (invite != null && !StringUtils.isBlank(invite.getAisuccesstip())) { + if (invite != null && StringUtils.isNotBlank(invite.getAisuccesstip())) { outMessage.setMessage(invite.getAisuccesstip()); } else { outMessage.setMessage("欢迎使用华夏春松机器人客服!"); @@ -80,43 +87,91 @@ public class ChatbotEventHandler { outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); - outMessage.setNickName("AI"); - outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); + outMessage.setNickName(invite.getAiname()); + outMessage.setCreatetime(UKTools.dateFormate.format(now)); client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress(); String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()); - AiUser aiUser = new AiUser(user, user, System.currentTimeMillis(), orgi, IPTools.getInstance().findGeography(ip)); - aiUser.setSessionid(UKTools.getContextID(client.getSessionId().toString())); - aiUser.setAppid(appid); - aiUser.setAiid(aiid); - aiUser.setUsername(UKDataContext.GUEST_USER + "_" + UKTools.genIDByKey(aiUser.getId())); - aiUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + OnlineUser onlineUser = getOnlineUserRes().findOne(user); - AgentService agentService = ServiceQuene.processAiService(aiUser, orgi); - aiUser.setAgentserviceid(agentService.getId()); + if (onlineUser == null) { + onlineUser = new OnlineUser(); + onlineUser.setAppid(appid); + if (StringUtils.isNotBlank(nickname)) { + onlineUser.setUsername(nickname); + } else { + onlineUser.setUsername(UKDataContext.GUEST_USER + "_" + UKTools.genIDByKey(user)); + } - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + onlineUser.setSessionid(session); + onlineUser.setOptype(UKDataContext.OptTypeEnum.CHATBOT.toString()); + onlineUser.setUserid(user); + onlineUser.setId(user); + onlineUser.setOrgi(orgi); + onlineUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + onlineUser.setIp(ip); + onlineUser.setUpdatetime(now); + onlineUser.setLogintime(now); + onlineUser.setCreatetime(now); + IP ipdata = IPTools.getInstance().findGeography(ip); + onlineUser.setCity(ipdata.getCity()); + onlineUser.setCountry(ipdata.getCountry()); + onlineUser.setProvince(ipdata.getProvince()); + onlineUser.setIsp(ipdata.getIsp()); + onlineUser.setRegion(ipdata.getRegion()); + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()); + } + // 在线客服访客咨询记录 + AgentUser agentUser = new AgentUser(onlineUser.getId(), + UKDataContext.ChannelTypeEnum.WEBIM.toString(), // callout + onlineUser.getId(), + onlineUser.getUsername(), + UKDataContext.SYSTEM_ORGI, + appid); + + agentUser.setServicetime(now); + agentUser.setCreatetime(now); + agentUser.setUpdatetime(now); + agentUser.setSessionid(session); + // 聊天机器人处理的请求 + agentUser.setOpttype(UKDataContext.OptTypeEnum.CHATBOT.toString()); + agentUser.setAgentno(aiid); // 聊天机器人ID + agentUser.setCity(onlineUser.getCity()); + agentUser.setProvince(onlineUser.getProvince()); + agentUser.setCountry(onlineUser.getCountry()); + AgentService agentService = ServiceQuene.processChatbotService(agentUser, orgi); + agentUser.setAgentserviceid(agentService.getId()); + + getAgentUserRes().save(agentUser); + getOnlineUserRes().save(onlineUser); + CacheHelper.getAgentUserCacheBean().put(user, agentUser, orgi); + CacheHelper.getOnlineUserCacheBean().put(user, onlineUser, orgi); } } catch (Exception e) { e.printStackTrace(); } } - //添加@OnDisconnect事件,客户端断开连接时调用,刷新客户端信息 @OnDisconnect public void onDisconnect(SocketIOClient client) throws Exception { String user = client.getHandshakeData().getSingleUrlParam("userid"); String orgi = client.getHandshakeData().getSingleUrlParam("orgi"); - if (!StringUtils.isBlank(user)) { - NettyClients.getInstance().removeIMEventClient(user, UKTools.getContextID(client.getSessionId().toString())); - AiUser aiUser = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); - if (aiUser != null) { - ServiceQuene.processAiService(aiUser, orgi); - CacheHelper.getOnlineUserCacheBean().delete(user, UKDataContext.SYSTEM_ORGI); + if (StringUtils.isNotBlank(user)) { + NettyClients.getInstance().removeChatbotEventClient(user, UKTools.getContextID(client.getSessionId().toString())); + AgentUser agentUser = (AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(user, orgi); + OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); + if (agentUser != null) { + ServiceQuene.processChatbotService(agentUser, orgi); + CacheHelper.getAgentUserCacheBean().delete(user, UKDataContext.SYSTEM_ORGI); + CacheHelper.getOnlineUserCacheBean().delete(user, orgi); + agentUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + getAgentUserRes().save(agentUser); + getOnlineUserRes().save(onlineUser); } } client.disconnect(); @@ -159,22 +214,21 @@ public class ChatbotEventHandler { * 处理表情 */ data.setMessage(UKTools.processEmoti(data.getMessage())); - data.setTousername(UKDataContext.ChannelTypeEnum.AI.toString()); + data.setTousername(invite.getAiname()); data.setAiid(aiid); - Object cacheData = (AiUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); - if (cacheData != null && cacheData instanceof AiUser) { - AiUser aiUser = (AiUser) cacheData; - data.setAgentserviceid(aiUser.getAgentserviceid()); - data.setChannel(aiUser.getChannel()); + AgentUser agentUser = (AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(user, orgi); + if (agentUser != null) { + data.setAgentserviceid(agentUser.getAgentserviceid()); + data.setChannel(agentUser.getChannel()); /** * 一定要设置 ContextID */ - data.setContextid(aiUser.getAgentserviceid()); + data.setContextid(agentUser.getAgentserviceid()); } MessageOutContent outMessage = MessageUtils.createAiMessage(data, data.getAppid(), data.getChannel(), UKDataContext.CallTypeEnum.IN.toString(), UKDataContext.AiItemType.USERINPUT.toString(), UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); - if (!StringUtils.isBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())) { + if (StringUtils.isNotBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())) { if (!StringUtils.isBlank(data.getTouser())) { OutMessageRouter router = null; router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()); @@ -182,11 +236,33 @@ public class ChatbotEventHandler { router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); } } - if (cacheData != null && cacheData instanceof AiUser) { - AiUser aiUser = (AiUser) cacheData; - aiUser.setTime(System.currentTimeMillis()); - CacheHelper.getOnlineUserCacheBean().put(user, aiUser, UKDataContext.SYSTEM_ORGI); + if (agentUser != null) { + Date now = new Date(); + agentUser.setUpdatetime(now); + agentUser.setLastmessage(now); + agentUser.setLastmsg(data.getMessage()); + CacheHelper.getAgentUserCacheBean().put(user, agentUser, UKDataContext.SYSTEM_ORGI); } } } -} \ No newline at end of file + + /** + * Lazy load + * @return + */ + public AgentUserRepository getAgentUserRes() { + if (agentUserRes == null) + agentUserRes = UKDataContext.getContext().getBean(AgentUserRepository.class); + return agentUserRes; + } + + /** + * Lazy load + * @return + */ + public OnlineUserRepository getOnlineUserRes() { + if (onlineUserRes == null) + onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class); + return onlineUserRes; + } +} \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java index 2362342e..7adfa149 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java @@ -298,20 +298,16 @@ public class IMController extends Handler { contacts = processContacts(orgi, contacts, appid, userid); } if (StringUtils.isNotBlank(sign)) { - try { - OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), - orgi, - sessionid, - UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), - request, - UKDataContext.ChannelTypeEnum.WEBIM.toString(), - appid, - contacts, - invite); - } catch (java.lang.ClassCastException e) { - // #TODO workaround for - // https://github.com/chatopera/cosin/issues/75 - } + OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), + orgi, + sessionid, + UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), + request, + UKDataContext.ChannelTypeEnum.WEBIM.toString(), + appid, + contacts, + invite); + } OnlineUserUtils.webIMClients.putClient(userid, new WebIMClient(userid, client, emitter)); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentUser.java b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentUser.java index f0b31998..d06c3121 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentUser.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentUser.java @@ -79,7 +79,8 @@ public class AgentUser implements Serializable, Comparable { private Date waittingtimestart = new Date(); private Date lastgetmessage = new Date(); private String lastmsg; - + private String opttype; + private String skill ; //请求的技能组 private String agent ; //请求的坐席 @@ -565,6 +566,14 @@ public class AgentUser implements Serializable, Comparable { this.skillname = skillname; } + public String getOpttype() { + return opttype; + } + + public void setOpttype(String opttype) { + this.opttype = opttype; + } + @Override public int compareTo(AgentUser o) { int ret = 0 ; diff --git a/contact-center/config/sql/cskefu-MySQL-slim.sql b/contact-center/config/sql/cskefu-MySQL-slim.sql index 7425c7f7..b2ba8da3 100644 --- a/contact-center/config/sql/cskefu-MySQL-slim.sql +++ b/contact-center/config/sql/cskefu-MySQL-slim.sql @@ -650,6 +650,7 @@ CREATE TABLE `uk_agentuser` ( `datadept` varchar(255) DEFAULT NULL COMMENT '创建人部门', `intime` int(32) DEFAULT NULL COMMENT '接入时间', `batid` varchar(32) DEFAULT NULL COMMENT '批次ID', + `opttype` varchar(32) DEFAULT NULL COMMENT '服务处理类型', `ipaddr` varchar(50) DEFAULT NULL COMMENT 'IP地址', `osname` varchar(100) DEFAULT NULL COMMENT '操作系统名称', `browser` varchar(100) DEFAULT NULL COMMENT '浏览器', From d6444fcc1a077705efcc0b9ced4a459b2495f60c Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Wed, 12 Sep 2018 19:46:51 +0800 Subject: [PATCH 11/16] =?UTF-8?q?#77=20=E6=9B=B4=E6=96=B0java=E5=8C=85?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/{webim => app}/Application.java | 17 +- .../MainContext.java} | 16 +- .../cc/{webim => app}/ServletInitializer.java | 2 +- .../util => app}/aop/SyncDatabaseExt.java | 20 +-- .../web => app/config}/ApiConfigure.java | 4 +- .../config}/ApiRequestMatchingFilter.java | 8 +- .../config}/ApplicationStartupListener.java | 10 +- .../DelegateRequestMatchingFilter.java | 8 +- .../config}/DisruptorConfigure.java | 28 +++- .../config}/DruidConfiguration.java | 2 +- .../web => app/config}/ExecutorConfig.java | 4 +- .../config}/IMServerConfiguration.java | 10 +- .../web => app/config}/RedisConfigure.java | 4 +- .../config}/StartedEventListener.java | 36 ++-- .../config}/StringToDateConverter.java | 2 +- .../config}/UKWebAppConfigurer.java | 8 +- .../config}/UKeFuExceptionHandler.java | 2 +- .../web => app/config}/WebConfigBeans.java | 3 +- .../web => app/config}/WebSecurityConfig.java | 2 +- .../config}/WebServerConfiguration.java | 2 +- .../handler/ApplicationController.java | 12 +- .../{webim/web => app}/handler/Handler.java | 34 ++-- .../web => app}/handler/LoginController.java | 36 ++-- .../handler/admin/AdminController.java | 48 +++--- .../handler/admin/area/AreaController.java | 24 +-- .../callcenter/CallCenterAclController.java | 10 +- .../callcenter/CallCenterBlackController.java | 14 +- .../callcenter/CallCenterController.java | 30 ++-- .../CallCenterExtentionController.java | 28 ++-- .../callcenter/CallCenterIvrController.java | 12 +- .../callcenter/CallCenterMediaController.java | 10 +- .../CallCenterResourceController.java | 18 +- .../CallCenterRouterController.java | 12 +- .../CallCenterSipTrunkController.java | 12 +- .../callcenter/CallCenterSkillController.java | 20 +-- .../channel/CalloutChannelController.java | 27 ++- .../admin/channel/SNSAccountIMController.java | 28 ++-- .../admin/channel/WebIMController.java | 46 ++--- .../admin/config/SystemConfigController.java | 58 +++---- .../admin/config/SystemMessageController.java | 20 +-- .../handler/admin/organ/OrganController.java | 44 ++--- .../handler/admin/role/RoleController.java | 34 ++-- .../admin/skill/AgentSkillController.java | 8 +- .../system/HazelcastMonitorController.java | 6 +- .../handler/admin/system/LogController.java | 12 +- .../admin/system/MetadataController.java | 30 ++-- .../admin/system/SysDicController.java | 10 +- .../admin/system/TemplateController.java | 20 +-- .../handler/admin/users/UsersController.java | 26 +-- .../handler/api/ApiLoginController.java | 22 ++- .../handler/api/ApiTokensErrorController.java | 8 +- .../handler/api/request}/QueryParams.java | 2 +- .../handler/api/request}/RequestValues.java | 2 +- .../handler/api/request/RestUtils.java | 5 +- .../api/rest/ApiAgentUserController.java | 10 +- .../api/rest/ApiCallMonitorController.java | 24 +-- .../api/rest/ApiCallRecordsController.java | 36 ++-- .../api/rest/ApiChatMessageController.java | 10 +- .../api/rest/ApiChatbotController.java | 16 +- .../api/rest/ApiContactNotesController.java | 28 ++-- .../api/rest/ApiContactTagsController.java | 23 ++- .../api/rest/ApiContactsController.java | 14 +- .../api/rest/ApiDailplanRunController.java | 38 ++--- .../api/rest/ApiLeavemsgController.java | 18 +- .../api/rest/ApiOnlineUserController.java | 16 +- .../handler/api/rest/ApiOrganController.java | 12 +- .../api/rest/ApiQualityController.java | 18 +- .../api/rest/ApiQuickReplyController.java | 12 +- .../api/rest/ApiQuickTypeController.java | 14 +- .../api/rest/ApiServiceQueneController.java | 48 +++--- .../handler/api/rest/ApiSysDicController.java | 10 +- .../handler/api/rest/ApiTagsController.java | 12 +- .../handler/api/rest/ApiUserController.java | 12 +- .../handler/api/rest/ApiWebIMController.java | 16 +- .../handler/api/rest}/QueryParams.java | 2 +- .../handler/api/rest}/RequestValues.java | 2 +- .../api/rest/UkefuApiTagsController.java | 14 +- .../handler/apps/AppsController.java | 50 +++--- .../handler/apps/agent/AgentController.java | 150 ++++++++--------- .../apps/callcenter/ExtentionController.java | 30 ++-- .../apps/callcenter/SipTrunkController.java | 30 ++-- .../apps/callout/CalloutController.java | 42 +++-- .../apps/contacts/ContactsController.java | 20 ++- .../apps/customer/CustomerController.java | 34 ++-- .../handler/apps/entim/EntIMController.java | 26 +-- .../handler/apps/internet/IMController.java | 54 +++--- .../handler/apps/job/JobController.java | 10 +- .../handler/apps/kbs/KbsController.java | 24 +-- .../handler/apps/kbs/TopicController.java | 60 +++---- .../apps/message/MessageController.java | 4 +- .../organization/OrganizationController.java | 14 +- .../apps/quality/AgentQualityController.java | 40 ++--- .../handler/apps/report/CubeController.java | 36 ++-- .../apps/report/CubeLevelController.java | 20 +-- .../apps/report/CubeMeasureController.java | 14 +- .../apps/report/DimensionController.java | 18 +- .../handler/apps/report/ReportController.java | 34 ++-- .../apps/report/ReportDesignController.java | 90 +++++----- .../apps/report/ReportViewController.java | 14 +- .../apps/service/AgentSummaryController.java | 34 ++-- .../apps/service/ChatServiceController.java | 60 +++---- .../apps/service/CommentController.java | 8 +- .../apps/service/OnlineUserController.java | 56 +++---- .../service/ProcessedSummaryController.java | 32 ++-- .../handler/apps/service/StatsController.java | 20 +-- .../apps/setting/IMAgentController.java | 44 ++--- .../apps/setting/QuickReplyController.java | 48 +++--- .../handler/apps/tenant/TenantController.java | 40 ++--- .../handler/apps/test/TestController.java | 10 +- .../resource/CallAgentResourceController.java | 14 +- .../resource/ContactsResourceController.java | 6 +- .../resource/CssResourceController.java | 4 +- .../handler/resource/MediaController.java | 14 +- .../QuickReplyResourceController.java | 6 +- .../resource/SysDicResourceController.java | 8 +- .../resource/UsersResourceController.java | 16 +- .../util/server => app/im}/ServerRunner.java | 42 ++--- .../im}/client/NettyAgentClient.java | 2 +- .../im}/client/NettyCallCenterClient.java | 2 +- .../im}/client/NettyCalloutClient.java | 2 +- .../im}/client/NettyChatbotClient.java | 2 +- .../{util => app/im}/client/NettyClient.java | 2 +- .../{util => app/im}/client/NettyClients.java | 2 +- .../im}/client/NettyIMClient.java | 2 +- .../{util => app/im}/client/UserClient.java | 2 +- .../im}/handler/AgentEventHandler.java | 74 ++++---- .../im}/handler/CalloutEventHandler.java | 21 +-- .../im}/handler/ChatbotEventHandler.java | 74 ++++---- .../im}/handler/EntIMEventHandler.java | 50 +++--- .../im}/handler/IMEventHandler.java | 56 +++---- .../im}/message/AgentServiceMessage.java | 2 +- .../im}/message/AgentStatusMessage.java | 2 +- .../im}/message/ChatMessage.java | 6 +- .../server => app/im}/message/ChatObject.java | 2 +- .../server => app/im}/message/Message.java | 2 +- .../im}/message/NewRequestMessage.java | 2 +- .../im}/message/OtherMessage.java | 2 +- .../im}/message/OtherMessageItem.java | 2 +- .../im}/router/AgentUserRouter.java | 6 +- .../im}/router/CallOutMessageRouter.java | 4 +- .../util => app/im}/router/MessageRouter.java | 26 +-- .../im}/router/OutMessageRouter.java | 4 +- .../{webim/util => app/im}/router/Router.java | 4 +- .../util => app/im}/router/RouterHelper.java | 2 +- .../im}/router/WebIMOutMessageRouter.java | 6 +- .../interceptor/CrossInterceptorHandler.java | 7 +- .../interceptor/LogIntercreptorHandler.java | 14 +- .../interceptor/UserInterceptorHandler.java | 32 ++-- .../cc/{webim/web => app}/model/Acl.java | 2 +- .../cc/{webim/web => app}/model/AdType.java | 2 +- .../{webim/web => app}/model/AgentReport.java | 2 +- .../web => app}/model/AgentService.java | 6 +- .../web => app}/model/AgentServiceSatis.java | 2 +- .../model/AgentServiceSummary.java | 2 +- .../{webim/web => app}/model/AgentStatus.java | 10 +- .../{webim/web => app}/model/AgentUser.java | 2 +- .../web => app}/model/AgentUserContacts.java | 2 +- .../web => app}/model/AgentUserTask.java | 2 +- .../cc/{webim/web => app}/model/AiConfig.java | 2 +- .../web => app}/model/AiSNSAccount.java | 2 +- .../cc/{webim/web => app}/model/AiUser.java | 2 +- .../cc/{webim/web => app}/model/AreaType.java | 2 +- .../web => app}/model/AttachmentFile.java | 2 +- .../{webim/web => app}/model/BlackEntity.java | 2 +- .../{webim/web => app}/model/CallAgent.java | 2 +- .../web => app}/model/CallCenterSkill.java | 2 +- .../{webim/web => app}/model/CallMonitor.java | 2 +- .../model/CallMonitorPerformance.java | 2 +- .../web => app}/model/CallOutDialplan.java | 2 +- .../web => app}/model/CallOutLogDialPlan.java | 2 +- .../web => app}/model/CallOutTarget.java | 2 +- .../web => app}/model/ChartProperties.java | 2 +- .../cc/{webim/web => app}/model/Chatbot.java | 3 +- .../web => app}/model/ColumnProperties.java | 2 +- .../web => app}/model/ContactNotes.java | 2 +- .../cc/{webim/web => app}/model/Contacts.java | 2 +- .../web => app}/model/CousultInvite.java | 2 +- .../cc/{webim/web => app}/model/Cube.java | 2 +- .../{webim/web => app}/model/CubeLevel.java | 2 +- .../{webim/web => app}/model/CubeMeasure.java | 2 +- .../web => app}/model/CubeMetadata.java | 2 +- .../cc/{webim/web => app}/model/CubeType.java | 2 +- .../web => app}/model/CustomerGroupForm.java | 2 +- .../cc/{webim/web => app}/model/DataDic.java | 2 +- .../{webim/web => app}/model/DataEvent.java | 2 +- .../{webim/web => app}/model/Dimension.java | 2 +- .../{webim/web => app}/model/DrillDown.java | 2 +- .../cc/{webim/web => app}/model/ESBean.java | 2 +- .../{webim/web => app}/model/EntCustomer.java | 2 +- .../{webim/web => app}/model/Extention.java | 7 +- .../{webim/web => app}/model/Favorites.java | 2 +- .../{webim/web => app}/model/FormFilter.java | 2 +- .../web => app}/model/FormFilterItem.java | 2 +- .../web => app}/model/FormFilterRequest.java | 2 +- .../{webim/web => app}/model/Generation.java | 2 +- .../cc/{webim/web => app}/model/IMGroup.java | 2 +- .../{webim/web => app}/model/IMGroupUser.java | 2 +- .../{webim/web => app}/model/Instruction.java | 2 +- .../web => app}/model/InviteRecord.java | 6 +- .../cc/{webim/web => app}/model/IvrMenu.java | 2 +- .../{webim/web => app}/model/JobDetail.java | 2 +- .../cc/{webim/web => app}/model/JobTask.java | 2 +- .../{webim/web => app}/model/KbsExpert.java | 2 +- .../cc/{webim/web => app}/model/KbsTopic.java | 2 +- .../web => app}/model/KbsTopicComment.java | 2 +- .../cc/{webim/web => app}/model/KbsType.java | 2 +- .../web => app}/model/KnowledgeType.java | 2 +- .../cc/{webim/web => app}/model/LeaveMsg.java | 2 +- .../cc/{webim/web => app}/model/Log.java | 2 +- .../cc/{webim/web => app}/model/Media.java | 2 +- .../web => app}/model/MessageDataBean.java | 2 +- .../web => app}/model/MessageInContent.java | 6 +- .../web => app}/model/MessageOutContent.java | 4 +- .../web => app}/model/MetadataTable.java | 2 +- .../{webim/web => app}/model/OnlineUser.java | 4 +- .../web => app}/model/OnlineUserHis.java | 2 +- .../web => app}/model/OrdersComment.java | 2 +- .../cc/{webim/web => app}/model/Organ.java | 2 +- .../{webim/web => app}/model/OrganRole.java | 2 +- .../web => app}/model/Organization.java | 2 +- .../web => app}/model/OrgiSkillRel.java | 2 +- .../cc/{webim/web => app}/model/PbxHost.java | 2 +- .../web => app}/model/ProcessContent.java | 2 +- .../cc/{webim/web => app}/model/Product.java | 2 +- .../web => app}/model/PropertiesEvent.java | 2 +- .../web => app}/model/PublishedCube.java | 2 +- .../web => app}/model/PublishedReport.java | 2 +- .../cc/{webim/web => app}/model/Quality.java | 2 +- .../web => app}/model/QualityRequest.java | 2 +- .../web => app}/model/QueSurveyAnswer.java | 2 +- .../web => app}/model/QueSurveyProcess.java | 2 +- .../web => app}/model/QueSurveyQuestion.java | 2 +- .../{webim/web => app}/model/QuickReply.java | 2 +- .../{webim/web => app}/model/QuickType.java | 2 +- .../{webim/web => app}/model/RecentUser.java | 2 +- .../cc/{webim/web => app}/model/Report.java | 2 +- .../web => app}/model/ReportFilter.java | 2 +- .../{webim/web => app}/model/ReportModel.java | 2 +- .../cc/{webim/web => app}/model/Reporter.java | 2 +- .../{webim/web => app}/model/RequestLog.java | 4 +- .../cc/{webim/web => app}/model/Role.java | 2 +- .../cc/{webim/web => app}/model/RoleAuth.java | 2 +- .../{webim/web => app}/model/RouterRules.java | 2 +- .../{webim/web => app}/model/SNSAccount.java | 2 +- .../{webim/web => app}/model/SaleStatus.java | 2 +- .../cc/{webim/web => app}/model/Scene.java | 2 +- .../{webim/web => app}/model/SceneType.java | 2 +- .../cc/{webim/web => app}/model/Secret.java | 2 +- .../{webim/web => app}/model/ServiceAi.java | 2 +- .../web => app}/model/SessionConfig.java | 2 +- .../cc/{webim/web => app}/model/SipTrunk.java | 2 +- .../cc/{webim/web => app}/model/Skill.java | 2 +- .../web => app}/model/SkillExtention.java | 2 +- .../{webim/web => app}/model/StatusEvent.java | 6 +- .../web => app}/model/StatusEventSatisf.java | 2 +- .../cc/{webim/web => app}/model/SysDic.java | 2 +- .../web => app}/model/SystemConfig.java | 2 +- .../web => app}/model/SystemMessage.java | 2 +- .../web => app}/model/TableProperties.java | 2 +- .../cc/{webim/web => app}/model/Tag.java | 2 +- .../{webim/web => app}/model/TagRelation.java | 2 +- .../cc/{webim/web => app}/model/Template.java | 2 +- .../cc/{webim/web => app}/model/Tenant.java | 2 +- .../cc/{webim/web => app}/model/Topic.java | 2 +- .../{webim/web => app}/model/TopicItem.java | 2 +- .../cc/{webim/web => app}/model/UKAgg.java | 2 +- .../cc/{webim/web => app}/model/UKFacet.java | 2 +- .../cc/{webim/web => app}/model/UKeFuDic.java | 20 +-- .../web => app}/model/UKefuCallOutConfig.java | 2 +- .../web => app}/model/UKefuCallOutFilter.java | 2 +- .../web => app}/model/UKefuCallOutNames.java | 2 +- .../web => app}/model/UKefuCallOutRole.java | 2 +- .../web => app}/model/UKefuCallOutTask.java | 2 +- .../web => app}/model/UploadStatus.java | 2 +- .../cc/{webim/web => app}/model/User.java | 2 +- .../{webim/web => app}/model/UserHistory.java | 6 +- .../cc/{webim/web => app}/model/UserRole.java | 2 +- .../web => app}/model/UserTraceHistory.java | 4 +- .../{webim/web => app}/model/WebIMReport.java | 2 +- .../{webim/web => app}/model/WeiXinUser.java | 2 +- .../{webim/web => app}/model/WorkMonitor.java | 2 +- .../web => app}/model/WorkOrderType.java | 2 +- .../{webim/web => app}/model/WorkOrders.java | 2 +- .../{webim/web => app}/model/WorkSession.java | 2 +- .../cc/{webim/web => app}/model/WorkTime.java | 2 +- .../{webim/web => app}/model/WxMpEvent.java | 2 +- .../service/acd/ServiceQuene.java | 158 +++++++++--------- .../service/cache/CacheBean.java | 2 +- .../service/cache/CacheHelper.java | 4 +- .../service/cache/CacheInstance.java | 2 +- .../cache/hazelcast/HazlcastCacheHelper.java | 91 ++++++++++ .../hazelcast/impl/AgentStatusCache.java | 4 +- .../cache/hazelcast/impl/AgentUserCache.java | 4 +- .../cache/hazelcast/impl/ApiUserCache.java | 4 +- .../cache/hazelcast/impl/CallCenterCache.java | 4 +- .../cache/hazelcast/impl/JobCache.java | 4 +- .../cache/hazelcast/impl/MultiCache.java | 4 +- .../cache/hazelcast/impl/OnlineCache.java | 4 +- .../cache/hazelcast/impl/SystemCache.java | 4 +- .../service/es/ContactNotesRepository.java | 4 +- .../es/ContactsEsCommonRepository.java | 4 +- .../service/es/ContactsRepository.java | 4 +- .../service/es/ContactsRepositoryImpl.java | 8 +- .../es/EntCustomerEsCommonRepository.java | 4 +- .../service/es/EntCustomerRepository.java | 4 +- .../service/es/EntCustomerRepositoryImpl.java | 8 +- .../es/KbsTopicCommentEsCommonRepository.java | 4 +- .../service/es/KbsTopicCommentRepository.java | 4 +- .../es/KbsTopicCommentRepositoryImpl.java | 6 +- .../es/KbsTopicEsCommonRepository.java | 4 +- .../service/es/KbsTopicRepository.java | 4 +- .../service/es/KbsTopicRepositoryImpl.java | 4 +- .../es/QuickReplyEsCommonRepository.java | 4 +- .../service/es/QuickReplyRepository.java | 4 +- .../service/es/QuickReplyRepositoryImpl.java | 11 +- .../service/es/TopicEsCommonRepository.java | 4 +- .../service/es/TopicRepository.java | 4 +- .../service/es/TopicRepositoryImpl.java | 6 +- .../service/es/UKAggResultExtractor.java | 6 +- .../service/es/UKAggTopResultExtractor.java | 4 +- .../service/es/UKResultMapper.java | 2 +- .../service/hibernate/BaseService.java | 2 +- .../service/impl/AgentUserService.java | 6 +- .../service/impl/BatchDataProcess.java | 10 +- .../service/impl/CallOutQuene.java | 10 +- .../impl/ContactsDataExchangeImpl.java | 6 +- .../service/impl/DataBatProcess.java | 8 +- .../service/impl/ESDataExchangeImpl.java | 80 ++++----- .../service/impl/HazelcastService.java | 2 +- .../service/impl/OrganDataExchangeImpl.java | 6 +- .../impl/QuickTypeDataExchangeImpl.java | 6 +- .../service/impl/ServiceDataExchangeImpl.java | 6 +- .../service/impl/TopicDataExchangeImpl.java | 6 +- .../impl/TopicMoreDataExchangeImpl.java | 6 +- .../impl/TopicTypeDataExchangeImpl.java | 6 +- .../service/impl/UserDataExchangeImpl.java | 6 +- .../service/impl/UserService.java | 2 +- .../service/quene/AgentCallOutFilter.java | 10 +- .../quene/AgentStatusBusyOrgiFilter.java | 6 +- .../service/quene/AgentStatusOrgiFilter.java | 6 +- .../service/quene/AgentUserOrgiFilter.java | 6 +- .../service/quene/AiCallOutFilter.java | 10 +- .../service/repository/AclRepository.java | 4 +- .../service/repository/AdTypeRepository.java | 4 +- .../repository/AgentReportRepository.java | 4 +- .../repository/AgentServiceRepository.java | 4 +- .../AgentServiceSatisRepository.java | 4 +- .../repository/AgentStatusRepository.java | 4 +- .../AgentUserContactsRepository.java | 4 +- .../repository/AgentUserRepository.java | 4 +- .../repository/AgentUserTaskRepository.java | 4 +- .../repository/AiConfigRepository.java | 4 +- .../repository/AiSNSAccountRepository.java | 4 +- .../repository/AreaTypeRepository.java | 4 +- .../repository/AttachmentRepository.java | 4 +- .../service/repository/BaseRepository.java | 4 +- .../repository/BlackListRepository.java | 4 +- .../repository/CallAgentRepository.java | 4 +- .../repository/CallCenterSkillRepository.java | 4 +- .../CallMonitorPerformanceRepository.java | 4 +- .../repository/CallMonitorRepository.java | 4 +- .../repository/CallOutDialplanRepository.java | 4 +- .../CallOutLogDialPlanRepository.java | 4 +- .../repository/CallOutTargetRepository.java | 4 +- .../repository/ChatMessageRepository.java | 4 +- .../service/repository/ChatbotRepository.java | 4 +- .../ColumnPropertiesRepository.java | 4 +- .../repository/ConsultInviteRepository.java | 4 +- .../repository/CubeLevelRepository.java | 4 +- .../repository/CubeMeasureRepository.java | 4 +- .../repository/CubeMetadataRepository.java | 6 +- .../service/repository/CubeRepository.java | 4 +- .../service/repository/CubeService.java | 10 +- .../repository/CubeTypeRepository.java | 4 +- .../service/repository/DataDicRepository.java | 4 +- .../repository/DataEventRepository.java | 4 +- .../service/repository/DataSourceService.java | 2 +- .../service/repository/DbDataRepository.java | 4 +- .../repository/DimensionRepository.java | 4 +- .../repository/DrilldownRepository.java | 4 +- .../repository/ExtentionRepository.java | 4 +- .../repository/FormFilterItemRepository.java | 4 +- .../repository/FormFilterRepository.java | 4 +- .../repository/GenerationRepository.java | 4 +- .../service/repository/IMGroupRepository.java | 4 +- .../repository/IMGroupUserRepository.java | 8 +- .../repository/InstructionRepository.java | 4 +- .../repository/InviteRecordRepository.java | 4 +- .../service/repository/IvrMenuRepository.java | 4 +- .../repository/JobDetailRepository.java | 4 +- .../repository/KbsExpertRepository.java | 6 +- .../service/repository/KbsTypeRepository.java | 4 +- .../repository/KnowledgeTypeRepository.java | 4 +- .../repository/LeaveMsgRepository.java | 4 +- .../service/repository/LogRepository.java | 4 +- .../service/repository/MediaRepository.java | 4 +- .../repository/MetadataRepository.java | 4 +- .../repository/OnlineUserHisRepository.java | 4 +- .../repository/OnlineUserRepository.java | 4 +- .../service/repository/OrganRepository.java | 4 +- .../repository/OrganRoleRepository.java | 6 +- .../repository/OrganizationRepository.java | 4 +- .../repository/OrgiSkillRelRepository.java | 4 +- .../service/repository/PbxHostRepository.java | 4 +- .../repository/ProcessContentRepository.java | 4 +- .../service/repository/ProductRepository.java | 4 +- .../repository/PropertiesEventRepository.java | 4 +- .../repository/PublishedCubeRepository.java | 4 +- .../repository/PublishedReportRepository.java | 4 +- .../service/repository/QualityRepository.java | 4 +- .../repository/QueSurveyAnswerRepository.java | 4 +- .../QueSurveyProcessRepository.java | 4 +- .../QueSurveyQuestionRepository.java | 4 +- .../repository/QuickTypeRepository.java | 4 +- .../repository/RecentUserRepository.java | 6 +- .../service/repository/ReportCubeService.java | 36 ++-- .../repository/ReportFilterRepository.java | 4 +- .../repository/ReportModelRepository.java | 4 +- .../service/repository/ReportRepository.java | 4 +- .../repository/ReporterRepository.java | 4 +- .../repository/RequestLogRepository.java | 4 +- .../repository/RoleAuthRepository.java | 4 +- .../service/repository/RoleRepository.java | 4 +- .../repository/RouterRulesRepository.java | 4 +- .../repository/SNSAccountRepository.java | 4 +- .../repository/SaleStatusRepository.java | 4 +- .../service/repository/SceneRepository.java | 4 +- .../service/repository/SecretRepository.java | 4 +- .../repository/ServiceAiRepository.java | 4 +- .../repository/ServiceSummaryRepository.java | 4 +- .../repository/SessionConfigRepository.java | 4 +- .../repository/SipTrunkRepository.java | 4 +- .../repository/SkillExtentionRepository.java | 4 +- .../service/repository/SkillRepository.java | 4 +- .../repository/StatusEventRepository.java | 5 +- .../StatusEventSatisfRepository.java | 4 +- .../service/repository/SysDicRepository.java | 4 +- .../repository/SystemConfigRepository.java | 4 +- .../repository/SystemMessageRepository.java | 4 +- .../repository/TablePropertiesRepository.java | 4 +- .../repository/TagRelationRepository.java | 4 +- .../service/repository/TagRepository.java | 4 +- .../repository/TemplateRepository.java | 4 +- .../service/repository/TenantRepository.java | 4 +- .../repository/TopicItemRepository.java | 4 +- .../UKefuCallOutConfigRepository.java | 4 +- .../UKefuCallOutFilterRepository.java | 4 +- .../UKefuCallOutNamesRepository.java | 6 +- .../UKefuCallOutRoleRepository.java | 4 +- .../UKefuCallOutTaskRepository.java | 5 +- .../repository/UserEventRepository.java | 4 +- .../service/repository/UserRepository.java | 4 +- .../repository/UserRoleRepository.java | 8 +- .../repository/UserTraceRepository.java | 4 +- .../repository/WeiXinUserRepository.java | 4 +- .../repository/WorkMonitorRepository.java | 4 +- .../repository/WorkOrderTypeRepository.java | 4 +- .../repository/WorkSessionRepository.java | 4 +- .../repository/WorkTimeRepository.java | 4 +- .../repository/WxMpEventRepository.java | 4 +- .../repository/XiaoEUKResultMapper.java | 2 +- .../service/resource/ActivityResource.java | 100 +++++------ .../service/resource/BatchResource.java | 24 +-- .../service/resource/OutputTextFormat.java | 6 +- .../service/resource/Resource.java | 8 +- .../service/storage/MinioService.java | 2 +- .../service/task/CallOutPlanTask.java | 22 +-- .../service/task/CallOutSheetTask.java | 16 +- .../service/task/CallOutWireTask.java | 92 +++++----- .../{webim => app}/service/task/Fetcher.java | 16 +- .../{webim => app}/service/task/LogTask.java | 10 +- .../service/task/NamesTask.java | 18 +- .../cc/{webim => app}/service/task/Task.java | 20 +-- .../service/task/WebIMTask.java | 112 ++++++------- .../disruptor/UserDataEventFactory.java | 4 +- .../disruptor/UserDataEventProducer.java | 6 +- .../util => }/disruptor/UserEventHandler.java | 30 ++-- .../ChatbotDisruptorExceptionHandler.java | 39 +++++ .../chatbot/ChatbotEventFactory.java | 27 +++ .../chatbot/ChatbotEventHandler.java | 45 +++++ .../multiupdate/MultiUpdateEventFactory.java | 4 +- .../multiupdate/MultiUpdateEventHandler.java | 12 +- .../multiupdate/MultiUpdateEventProducer.java | 6 +- .../chatopera/cc/{util => }/es/ESTools.java | 12 +- .../cc/{util => }/es/SearchTools.java | 52 +++--- .../cc/{util => }/es/UKDataBean.java | 12 +- .../cc/{util => }/event/CallOutWireEvent.java | 42 ++--- .../AiEvent.java => event/ChatbotEvent.java} | 7 +- .../cc/{util => }/event/MultiUpdateEvent.java | 4 +- .../cc/{util => }/event/UserDataEvent.java | 2 +- .../cc/{util => }/event/UserEvent.java | 2 +- .../{util => }/exception/CSKefuException.java | 2 +- .../exception/CSKefuRestException.java | 2 +- .../exception/CallOutRecordException.java | 2 +- .../exception/CallOutRuntimeException.java | 2 +- .../exception/FreeSwitchException.java | 2 +- .../exception/UCKeFuExceptionListener.java | 2 +- .../cc/{webim => }/util/AMRConvert.java | 2 +- .../cc/{webim => }/util/CallCenterUtils.java | 118 ++++++------- .../cc/{webim => }/util/CallOutUtils.java | 90 +++++----- .../util/chatbot => util}/ChatbotUtils.java | 4 +- .../java/com/chatopera/cc/util/Constants.java | 18 +- .../cc/{webim => }/util/HttpClientUtil.java | 2 +- .../java/com/chatopera/cc/util/IPTools.java | 4 +- .../cc/{webim => }/util/MessageUtils.java | 91 +++++----- .../cc/{webim => }/util/OnlineUserUtils.java | 124 +++++++------- .../util/PropertiesEventUtils.java | 4 +- .../cc/{webim => }/util/RestResult.java | 2 +- .../cc/{webim => }/util/RestResultType.java | 2 +- .../java/com/chatopera/cc/util/TaskTools.java | 2 +- .../java/com/chatopera/cc/util/UKTools.java | 129 +++++++------- .../cc/util/{webim => }/WebIMClient.java | 2 +- .../{webim => }/util/WebSseEmitterClient.java | 3 +- .../aggregation/CallOutHangupAggsResult.java | 2 +- .../aggregation/CallOutHangupAuditResult.java | 2 +- .../chatopera/cc/util/bi/model/ValueData.java | 2 +- .../cc/util/extra/CallCenterInterface.java | 2 +- .../freeswitch/model/CallCenterAgent.java | 2 +- .../{webim => }/util/log/UKeFuAppender.java | 10 +- .../java/com/chatopera/cc/util/mail/Mail.java | 2 +- .../com/chatopera/cc/util/task/DSData.java | 8 +- .../cc/util/task/ExcelImportProecess.java | 32 ++-- .../cc/util/task/ExcelImportUtils.java | 16 +- .../task/export/ExcelExporterProcess.java | 12 +- .../cc/util/task/export/ExportData.java | 2 +- .../cc/util/task/process/ContactsProcess.java | 4 +- .../util/task/process/EntCustomerProcess.java | 4 +- .../util/task/process/QuickReplyProcess.java | 4 +- .../cc/util/task/process/TopicProcess.java | 12 +- .../cache/hazelcast/HazlcastCacheHelper.java | 91 ---------- .../app/src/main/resources/logback-spring.xml | 2 +- .../main/resources/static/im/js/socket.io.js | 2 +- .../app/src/main/resources/static/js/ukefu.js | 4 +- 533 files changed, 3073 insertions(+), 2984 deletions(-) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/Application.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{core/UKDataContext.java => app/MainContext.java} (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/ServletInitializer.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app}/aop/SyncDatabaseExt.java (82%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/ApiConfigure.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/ApiRequestMatchingFilter.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/ApplicationStartupListener.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/DelegateRequestMatchingFilter.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/DisruptorConfigure.java (67%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/DruidConfiguration.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/ExecutorConfig.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/IMServerConfiguration.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/RedisConfigure.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/StartedEventListener.java (71%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/StringToDateConverter.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/UKWebAppConfigurer.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/UKeFuExceptionHandler.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/WebConfigBeans.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/WebSecurityConfig.java (97%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/config/web => app/config}/WebServerConfiguration.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/ApplicationController.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/Handler.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/LoginController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/AdminController.java (75%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/area/AreaController.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterAclController.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterBlackController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterController.java (83%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterExtentionController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterIvrController.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterMediaController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterResourceController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterRouterController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterSipTrunkController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/callcenter/CallCenterSkillController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/channel/CalloutChannelController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/channel/SNSAccountIMController.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/channel/WebIMController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/config/SystemConfigController.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/config/SystemMessageController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/organ/OrganController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/role/RoleController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/skill/AgentSkillController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/system/HazelcastMonitorController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/system/LogController.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/system/MetadataController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/system/SysDicController.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/system/TemplateController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/admin/users/UsersController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/ApiLoginController.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/ApiTokensErrorController.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web/handler/api/rest => app/handler/api/request}/QueryParams.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web/handler/api/rest => app/handler/api/request}/RequestValues.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/request/RestUtils.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiAgentUserController.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiCallMonitorController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiCallRecordsController.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiChatMessageController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiChatbotController.java (98%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiContactNotesController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiContactTagsController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiContactsController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiDailplanRunController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiLeavemsgController.java (83%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiOnlineUserController.java (79%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiOrganController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiQualityController.java (83%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiQuickReplyController.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiQuickTypeController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiServiceQueneController.java (73%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiSysDicController.java (85%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiTagsController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiUserController.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/ApiWebIMController.java (82%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web/handler/api/request => app/handler/api/rest}/QueryParams.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web/handler/api/request => app/handler/api/rest}/RequestValues.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/api/rest/UkefuApiTagsController.java (81%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/AppsController.java (80%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/agent/AgentController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/callcenter/ExtentionController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/callcenter/SipTrunkController.java (81%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/callout/CalloutController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/contacts/ContactsController.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/customer/CustomerController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/entim/EntIMController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/internet/IMController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/job/JobController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/kbs/KbsController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/kbs/TopicController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/message/MessageController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/organization/OrganizationController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/quality/AgentQualityController.java (72%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/CubeController.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/CubeLevelController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/CubeMeasureController.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/DimensionController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/ReportController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/ReportDesignController.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/report/ReportViewController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/AgentSummaryController.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/ChatServiceController.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/CommentController.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/OnlineUserController.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/ProcessedSummaryController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/service/StatsController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/setting/IMAgentController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/setting/QuickReplyController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/tenant/TenantController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/apps/test/TestController.java (76%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/CallAgentResourceController.java (85%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/ContactsResourceController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/CssResourceController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/MediaController.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/QuickReplyResourceController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/SysDicResourceController.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/handler/resource/UsersResourceController.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/ServerRunner.java (66%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyAgentClient.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyCallCenterClient.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyCalloutClient.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyChatbotClient.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyClient.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyClients.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/NettyIMClient.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => app/im}/client/UserClient.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/handler/AgentEventHandler.java (73%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/handler/CalloutEventHandler.java (72%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/handler/ChatbotEventHandler.java (75%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/handler/EntIMEventHandler.java (73%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/handler/IMEventHandler.java (76%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/AgentServiceMessage.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/AgentStatusMessage.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/ChatMessage.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/ChatObject.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/Message.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/NewRequestMessage.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/OtherMessage.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/server => app/im}/message/OtherMessageItem.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/AgentUserRouter.java (82%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/CallOutMessageRouter.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/MessageRouter.java (71%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/OutMessageRouter.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/Router.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/RouterHelper.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => app/im}/router/WebIMOutMessageRouter.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/interceptor/CrossInterceptorHandler.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/interceptor/LogIntercreptorHandler.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/interceptor/UserInterceptorHandler.java (78%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Acl.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AdType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentReport.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentService.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentServiceSatis.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentServiceSummary.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentStatus.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentUser.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentUserContacts.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AgentUserTask.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AiConfig.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AiSNSAccount.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AiUser.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AreaType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/AttachmentFile.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/BlackEntity.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallAgent.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallCenterSkill.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallMonitor.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallMonitorPerformance.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallOutDialplan.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallOutLogDialPlan.java (98%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CallOutTarget.java (98%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ChartProperties.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Chatbot.java (98%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ColumnProperties.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ContactNotes.java (98%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Contacts.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CousultInvite.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Cube.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CubeLevel.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CubeMeasure.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CubeMetadata.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CubeType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/CustomerGroupForm.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/DataDic.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/DataEvent.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Dimension.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/DrillDown.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ESBean.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/EntCustomer.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Extention.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Favorites.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/FormFilter.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/FormFilterItem.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/FormFilterRequest.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Generation.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/IMGroup.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/IMGroupUser.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Instruction.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/InviteRecord.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/IvrMenu.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/JobDetail.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/JobTask.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/KbsExpert.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/KbsTopic.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/KbsTopicComment.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/KbsType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/KnowledgeType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/LeaveMsg.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Log.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Media.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/MessageDataBean.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/MessageInContent.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/MessageOutContent.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/MetadataTable.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/OnlineUser.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/OnlineUserHis.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/OrdersComment.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Organ.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/OrganRole.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Organization.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/OrgiSkillRel.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/PbxHost.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ProcessContent.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Product.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/PropertiesEvent.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/PublishedCube.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/PublishedReport.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Quality.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QualityRequest.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QueSurveyAnswer.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QueSurveyProcess.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QueSurveyQuestion.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QuickReply.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/QuickType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/RecentUser.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Report.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ReportFilter.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ReportModel.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Reporter.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/RequestLog.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Role.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/RoleAuth.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/RouterRules.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SNSAccount.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SaleStatus.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Scene.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SceneType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Secret.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/ServiceAi.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SessionConfig.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SipTrunk.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Skill.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SkillExtention.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/StatusEvent.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/StatusEventSatisf.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SysDic.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SystemConfig.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/SystemMessage.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/TableProperties.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Tag.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/TagRelation.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Template.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Tenant.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/Topic.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/TopicItem.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKAgg.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKFacet.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKeFuDic.java (82%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKefuCallOutConfig.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKefuCallOutFilter.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKefuCallOutNames.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKefuCallOutRole.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UKefuCallOutTask.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UploadStatus.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/User.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UserHistory.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UserRole.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/UserTraceHistory.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WebIMReport.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WeiXinUser.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WorkMonitor.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WorkOrderType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WorkOrders.java (99%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WorkSession.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WorkTime.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/web => app}/model/WxMpEvent.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/acd/ServiceQuene.java (79%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/CacheBean.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/CacheHelper.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/CacheInstance.java (92%) create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/HazlcastCacheHelper.java rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/AgentStatusCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/AgentUserCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/ApiUserCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/CallCenterCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/JobCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/MultiCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/OnlineCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/cache/hazelcast/impl/SystemCache.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/ContactNotesRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/ContactsEsCommonRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/ContactsRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/ContactsRepositoryImpl.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/EntCustomerEsCommonRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/EntCustomerRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/EntCustomerRepositoryImpl.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicCommentEsCommonRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicCommentRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicCommentRepositoryImpl.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicEsCommonRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/KbsTopicRepositoryImpl.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/QuickReplyEsCommonRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/QuickReplyRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/QuickReplyRepositoryImpl.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/TopicEsCommonRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/TopicRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/TopicRepositoryImpl.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/UKAggResultExtractor.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/UKAggTopResultExtractor.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/es/UKResultMapper.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/hibernate/BaseService.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/AgentUserService.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/BatchDataProcess.java (85%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/CallOutQuene.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/ContactsDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/DataBatProcess.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/ESDataExchangeImpl.java (79%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/HazelcastService.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/OrganDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/QuickTypeDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/ServiceDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/TopicDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/TopicMoreDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/TopicTypeDataExchangeImpl.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/UserDataExchangeImpl.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/impl/UserService.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/quene/AgentCallOutFilter.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/quene/AgentStatusBusyOrgiFilter.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/quene/AgentStatusOrgiFilter.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/quene/AgentUserOrgiFilter.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/quene/AiCallOutFilter.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AclRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AdTypeRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentReportRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentServiceRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentServiceSatisRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentStatusRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentUserContactsRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentUserRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AgentUserTaskRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AiConfigRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AiSNSAccountRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AreaTypeRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/AttachmentRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/BaseRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/BlackListRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallAgentRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallCenterSkillRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallMonitorPerformanceRepository.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallMonitorRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallOutDialplanRepository.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallOutLogDialPlanRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CallOutTargetRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ChatMessageRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ChatbotRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ColumnPropertiesRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ConsultInviteRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeLevelRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeMeasureRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeMetadataRepository.java (85%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeService.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/CubeTypeRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DataDicRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DataEventRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DataSourceService.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DbDataRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DimensionRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/DrilldownRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ExtentionRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/FormFilterItemRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/FormFilterRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/GenerationRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/IMGroupRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/IMGroupUserRepository.java (83%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/InstructionRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/InviteRecordRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/IvrMenuRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/JobDetailRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/KbsExpertRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/KbsTypeRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/KnowledgeTypeRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/LeaveMsgRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/LogRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/MediaRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/MetadataRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OnlineUserHisRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OnlineUserRepository.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OrganRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OrganRoleRepository.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OrganizationRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/OrgiSkillRelRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/PbxHostRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ProcessContentRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ProductRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/PropertiesEventRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/PublishedCubeRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/PublishedReportRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/QualityRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/QueSurveyAnswerRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/QueSurveyProcessRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/QueSurveyQuestionRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/QuickTypeRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/RecentUserRepository.java (85%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ReportCubeService.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ReportFilterRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ReportModelRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ReportRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ReporterRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/RequestLogRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/RoleAuthRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/RoleRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/RouterRulesRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SNSAccountRepository.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SaleStatusRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SceneRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SecretRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ServiceAiRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/ServiceSummaryRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SessionConfigRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SipTrunkRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SkillExtentionRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SkillRepository.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/StatusEventRepository.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/StatusEventSatisfRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SysDicRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SystemConfigRepository.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/SystemMessageRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TablePropertiesRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TagRelationRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TagRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TemplateRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TenantRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/TopicItemRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UKefuCallOutConfigRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UKefuCallOutFilterRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UKefuCallOutNamesRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UKefuCallOutRoleRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UKefuCallOutTaskRepository.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UserEventRepository.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UserRepository.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UserRoleRepository.java (84%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/UserTraceRepository.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WeiXinUserRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WorkMonitorRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WorkOrderTypeRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WorkSessionRepository.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WorkTimeRepository.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/WxMpEventRepository.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/repository/XiaoEUKResultMapper.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/resource/ActivityResource.java (72%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/resource/BatchResource.java (82%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/resource/OutputTextFormat.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/resource/Resource.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/storage/MinioService.java (96%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/CallOutPlanTask.java (89%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/CallOutSheetTask.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/CallOutWireTask.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/Fetcher.java (91%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/LogTask.java (79%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/NamesTask.java (79%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/Task.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => app}/service/task/WebIMTask.java (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/UserDataEventFactory.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/UserDataEventProducer.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/UserEventHandler.java (63%) create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/disruptor/chatbot/ChatbotDisruptorExceptionHandler.java create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/disruptor/chatbot/ChatbotEventFactory.java create mode 100644 contact-center/app/src/main/java/com/chatopera/cc/disruptor/chatbot/ChatbotEventHandler.java rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/multiupdate/MultiUpdateEventFactory.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/multiupdate/MultiUpdateEventHandler.java (76%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util => }/disruptor/multiupdate/MultiUpdateEventProducer.java (86%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/es/ESTools.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/es/SearchTools.java (80%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/es/UKDataBean.java (87%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/event/CallOutWireEvent.java (80%) rename contact-center/app/src/main/java/com/chatopera/cc/{util/event/AiEvent.java => event/ChatbotEvent.java} (77%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/event/MultiUpdateEvent.java (90%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/event/UserDataEvent.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/event/UserEvent.java (92%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/CSKefuException.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/CSKefuRestException.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/CallOutRecordException.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/CallOutRuntimeException.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/FreeSwitchException.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{util => }/exception/UCKeFuExceptionListener.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/AMRConvert.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/CallCenterUtils.java (71%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/CallOutUtils.java (61%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim/util/chatbot => util}/ChatbotUtils.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/HttpClientUtil.java (97%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/MessageUtils.java (72%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/OnlineUserUtils.java (88%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/PropertiesEventUtils.java (95%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/RestResult.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/RestResultType.java (94%) rename contact-center/app/src/main/java/com/chatopera/cc/util/{webim => }/WebIMClient.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/WebSseEmitterClient.java (93%) rename contact-center/app/src/main/java/com/chatopera/cc/{webim => }/util/log/UKeFuAppender.java (82%) delete mode 100644 contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/HazlcastCacheHelper.java diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java b/contact-center/app/src/main/java/com/chatopera/cc/app/Application.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/Application.java index 72e53f08..02d4cf04 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/Application.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/Application.java @@ -14,11 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim; +package com.chatopera.cc.app; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.mobile.MobileNumberUtils; -import com.chatopera.cc.webim.config.web.StartedEventListener; +import com.chatopera.cc.app.config.StartedEventListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -38,8 +37,8 @@ import javax.servlet.MultipartConfigElement; import java.io.IOException; @SpringBootApplication -@EnableJpaRepositories("com.chatopera.cc.webim.service.repository") -@EnableElasticsearchRepositories("com.chatopera.cc.webim.service.es") +@EnableJpaRepositories("com.chatopera.cc.app.service.repository") +@EnableElasticsearchRepositories("com.chatopera.cc.app.service.es") @EnableAsync public class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); @@ -56,9 +55,9 @@ public class Application { private String multipartMaxRequest; static{ - UKDataContext.model.put("contacts", true) ; - UKDataContext.model.put("sales", true); - UKDataContext.model.put("chatbot", true); + MainContext.model.put("contacts", true) ; + MainContext.model.put("sales", true); + MainContext.model.put("chatbot", true); } /** @@ -101,7 +100,7 @@ public class Application { app.setBannerMode(Banner.Mode.OFF); app.setAddCommandLineProperties(false); app.addListeners(new StartedEventListener()); - UKDataContext.setApplicationContext(app.run(args)); + MainContext.setApplicationContext(app.run(args)); } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java b/contact-center/app/src/main/java/com/chatopera/cc/app/MainContext.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/MainContext.java index 62ef391f..003144a2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/core/UKDataContext.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/MainContext.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package com.chatopera.cc.core; +package com.chatopera.cc.app; import com.chatopera.cc.util.DateConverter; -import com.chatopera.cc.webim.service.resource.ActivityResource; -import com.chatopera.cc.webim.service.resource.BatchResource; -import com.chatopera.cc.webim.web.model.Log; +import com.chatopera.cc.app.service.resource.ActivityResource; +import com.chatopera.cc.app.service.resource.BatchResource; +import com.chatopera.cc.app.model.Log; import org.apache.commons.beanutils.ConvertUtils; import org.springframework.context.ApplicationContext; import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; @@ -30,7 +30,7 @@ import java.util.Map; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; -public class UKDataContext { +public class MainContext { public static final String USER_SESSION_NAME = "user"; public static final String GUEST_USER = "guest"; @@ -39,8 +39,8 @@ public class UKDataContext { public static final String UKEFU_SYSTEM_AUTH_DIC = "com.dic.auth.resource"; public static final String UKEFU_SYSTEM_AREA_DIC = "com.dic.address.area"; public static final String UKEFU_SYSTEM_ADPOS_DIC = "com.dic.adv.type"; - public static final String UKEFU_SYSTEM_COMMENT_DIC = "com.dic.webim.comment"; - public static final String UKEFU_SYSTEM_COMMENT_ITEM_DIC = "com.dic.webim.comment.item"; + public static final String UKEFU_SYSTEM_COMMENT_DIC = "com.dic.app.comment"; + public static final String UKEFU_SYSTEM_COMMENT_ITEM_DIC = "com.dic.app.comment.item"; public static final String UKEFU_SYSTEM_DIS_AI = "ownerai"; public static final String UKEFU_SYSTEM_DIS_AGENT = "owneruser"; @@ -856,7 +856,7 @@ public class UKDataContext { } public static void setTemplet(ElasticsearchTemplate templet) { - UKDataContext.templet = templet; + MainContext.templet = templet; } public static int getWebIMPort() { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/ServletInitializer.java b/contact-center/app/src/main/java/com/chatopera/cc/app/ServletInitializer.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/ServletInitializer.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/ServletInitializer.java index f38169af..8f5c787d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/ServletInitializer.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/ServletInitializer.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim; +package com.chatopera.cc.app; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/aop/SyncDatabaseExt.java b/contact-center/app/src/main/java/com/chatopera/cc/app/aop/SyncDatabaseExt.java similarity index 82% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/aop/SyncDatabaseExt.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/aop/SyncDatabaseExt.java index b763177c..7ef4f34b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/aop/SyncDatabaseExt.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/aop/SyncDatabaseExt.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.aop; +package com.chatopera.cc.app.aop; import java.util.List; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKeFuList; -import com.chatopera.cc.util.event.MultiUpdateEvent; -import com.chatopera.cc.webim.service.hibernate.BaseService; +import com.chatopera.cc.event.MultiUpdateEvent; +import com.chatopera.cc.app.service.hibernate.BaseService; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -30,7 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.model.ESBean; +import com.chatopera.cc.app.model.ESBean; @Aspect @Component @@ -62,10 +62,10 @@ public class SyncDatabaseExt { }else if(data instanceof List){ List dataList = (List)data ; for(Object dbData : dataList){ - UKTools.multiupdate(new MultiUpdateEvent(dbData , dbDataRes, UKDataContext.MultiUpdateType.SAVE.toString())); + UKTools.multiupdate(new MultiUpdateEvent(dbData , dbDataRes, MainContext.MultiUpdateType.SAVE.toString())); } }else{ - UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, UKDataContext.MultiUpdateType.SAVE.toString())); + UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, MainContext.MultiUpdateType.SAVE.toString())); } } } @@ -81,13 +81,13 @@ public class SyncDatabaseExt { if(data instanceof List){ List dataList = (List)data ; for(Object dbData : dataList){ - UKTools.multiupdate(new MultiUpdateEvent(dbData , dbDataRes, UKDataContext.MultiUpdateType.DELETE.toString())); + UKTools.multiupdate(new MultiUpdateEvent(dbData , dbDataRes, MainContext.MultiUpdateType.DELETE.toString())); } }else{ if(data instanceof ESBean){ - UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, UKDataContext.MultiUpdateType.DELETE.toString())); + UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, MainContext.MultiUpdateType.DELETE.toString())); }else{ - UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, UKDataContext.MultiUpdateType.DELETE.toString())); + UKTools.multiupdate(new MultiUpdateEvent(data, dbDataRes, MainContext.MultiUpdateType.DELETE.toString())); } } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiConfigure.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiConfigure.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiConfigure.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiConfigure.java index c7fd4f1a..71f37aaa 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiConfigure.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiConfigure.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -37,7 +37,7 @@ public class ApiConfigure { .groupName("CSKefu") .apiInfo(apiInfo()) .select() - .apis(RequestHandlerSelectors.basePackage("com.chatopera.cc.webim.web.handler.api.rest")) + .apis(RequestHandlerSelectors.basePackage("com.chatopera.cc.app.handler.api.rest")) .paths(PathSelectors.any()) .build(); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiRequestMatchingFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiRequestMatchingFilter.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiRequestMatchingFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiRequestMatchingFilter.java index b0660f2e..755804ce 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApiRequestMatchingFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApiRequestMatchingFilter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.io.IOException; @@ -27,12 +27,12 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.app.service.cache.CacheHelper; import org.apache.commons.lang.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.security.web.util.matcher.RequestMatcher; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; public class ApiRequestMatchingFilter implements Filter { private RequestMatcher[] ignoredRequests; @@ -66,7 +66,7 @@ public class ApiRequestMatchingFilter implements Filter { if(StringUtils.isBlank(authorization)){ authorization = request.getParameter("authorization") ; } - if(!StringUtils.isBlank(authorization) && CacheHelper.getApiUserCacheBean().getCacheObject(authorization, UKDataContext.SYSTEM_ORGI) != null){ + if(!StringUtils.isBlank(authorization) && CacheHelper.getApiUserCacheBean().getCacheObject(authorization, MainContext.SYSTEM_ORGI) != null){ chain.doFilter(req,resp); }else{ response.sendRedirect("/tokens/error"); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApplicationStartupListener.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApplicationStartupListener.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApplicationStartupListener.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/ApplicationStartupListener.java index d121b7b1..f91d8626 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ApplicationStartupListener.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ApplicationStartupListener.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.web.model.Favorites; -import com.chatopera.cc.webim.web.model.WorkOrders; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.model.Favorites; +import com.chatopera.cc.app.model.WorkOrders; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; @@ -45,6 +45,6 @@ public class ApplicationStartupListener implements ApplicationListener chatbot() { + Executor executor = Executors.newCachedThreadPool(); + ChatbotEventFactory factory = new ChatbotEventFactory(); + Disruptor disruptor = new Disruptor(factory, 1024, executor, ProducerType.SINGLE , new SleepingWaitStrategy()); + disruptor.handleEventsWith(new MultiUpdateEventHandler()); + disruptor.setDefaultExceptionHandler(new ChatbotDisruptorExceptionHandler()); + disruptor.start(); + return disruptor; + } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/DruidConfiguration.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/DruidConfiguration.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/DruidConfiguration.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/DruidConfiguration.java index d5edf0b4..cbe4eb0e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/DruidConfiguration.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/DruidConfiguration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import javax.sql.DataSource; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ExecutorConfig.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ExecutorConfig.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ExecutorConfig.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/ExecutorConfig.java index 4ab88883..a6d5e499 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/ExecutorConfig.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/ExecutorConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -48,7 +48,7 @@ public class ExecutorConfig { // 线程池维护线程所允许的空闲时间 poolTaskExecutor.setKeepAliveSeconds(30000); poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true); - poolTaskExecutor.setThreadNamePrefix("CSExecutor-webim-"); + poolTaskExecutor.setThreadNamePrefix("CSExecutor-app-"); return poolTaskExecutor; } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/IMServerConfiguration.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/IMServerConfiguration.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/IMServerConfiguration.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/IMServerConfiguration.java index 08c1aae3..f84a79f1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/IMServerConfiguration.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/IMServerConfiguration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.io.File; import java.io.FileInputStream; @@ -25,6 +25,7 @@ import java.util.Properties; import javax.annotation.PreDestroy; +import com.chatopera.cc.app.MainContext; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -34,9 +35,8 @@ import com.corundumstudio.socketio.Configuration; import com.corundumstudio.socketio.HandshakeData; import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.SpringAnnotationScanner; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.exception.UCKeFuExceptionListener; +import com.chatopera.cc.exception.UCKeFuExceptionListener; @org.springframework.context.annotation.Configuration public class IMServerConfiguration @@ -61,10 +61,10 @@ public class IMServerConfiguration @Bean(name="webimport") public Integer getWebIMPort() { if(sslPort != null){ - UKDataContext.setWebIMPort(sslPort); + MainContext.setWebIMPort(sslPort); return sslPort; } else { - UKDataContext.setWebIMPort(port); + MainContext.setWebIMPort(port); return port; } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/RedisConfigure.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/RedisConfigure.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/RedisConfigure.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/RedisConfigure.java index 3aa8af70..301c3c36 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/RedisConfigure.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/RedisConfigure.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import com.chatopera.cc.util.Constants; -import com.chatopera.cc.webim.service.task.CallOutWireTask; +import com.chatopera.cc.app.service.task.CallOutWireTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StartedEventListener.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/StartedEventListener.java similarity index 71% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StartedEventListener.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/StartedEventListener.java index 5b2b8329..9dfd616d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StartedEventListener.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/StartedEventListener.java @@ -14,30 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.util.ArrayList; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.GenerationRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.SystemConfigRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; -import com.chatopera.cc.webim.web.model.Generation; -import com.chatopera.cc.webim.web.model.SysDic; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.GenerationRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.SystemConfigRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.model.Generation; +import com.chatopera.cc.app.model.SysDic; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.BlackListRepository; -import com.chatopera.cc.webim.web.model.BlackEntity; -import com.chatopera.cc.webim.web.model.SystemConfig; +import com.chatopera.cc.app.service.repository.BlackListRepository; +import com.chatopera.cc.app.model.BlackEntity; +import com.chatopera.cc.app.model.SystemConfig; @Component public class StartedEventListener implements ApplicationListener { @@ -50,8 +50,8 @@ public class StartedEventListener implements ApplicationListener blackList = blackListRes.findByOrgi(UKDataContext.SYSTEM_ORGI) ; + List blackList = blackListRes.findByOrgi(MainContext.SYSTEM_ORGI) ; for(BlackEntity black : blackList){ if(!StringUtils.isBlank(black.getUserid())) { if(black.getEndtime()==null || black.getEndtime().after(new Date())){ @@ -81,14 +81,14 @@ public class StartedEventListener implements ApplicationListener generationList = generationRes.findAll() ; for(Generation generation : generationList){ - CacheHelper.getSystemCacheBean().setAtomicLong(UKDataContext.ModelType.WORKORDERS.toString(), generation.getStartinx()); + CacheHelper.getSystemCacheBean().setAtomicLong(MainContext.ModelType.WORKORDERS.toString(), generation.getStartinx()); } UKTools.initSystemArea(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StringToDateConverter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/StringToDateConverter.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StringToDateConverter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/StringToDateConverter.java index 84c8ed80..66f1b676 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/StringToDateConverter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/StringToDateConverter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKWebAppConfigurer.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/UKWebAppConfigurer.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKWebAppConfigurer.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/UKWebAppConfigurer.java index 08e47d83..21d4e203 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKWebAppConfigurer.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/UKWebAppConfigurer.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; -import com.chatopera.cc.webim.web.interceptor.LogIntercreptorHandler; -import com.chatopera.cc.webim.web.interceptor.UserInterceptorHandler; +import com.chatopera.cc.app.interceptor.LogIntercreptorHandler; +import com.chatopera.cc.app.interceptor.UserInterceptorHandler; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import com.chatopera.cc.webim.web.interceptor.CrossInterceptorHandler; +import com.chatopera.cc.app.interceptor.CrossInterceptorHandler; @Configuration public class UKWebAppConfigurer diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKeFuExceptionHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/UKeFuExceptionHandler.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKeFuExceptionHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/UKeFuExceptionHandler.java index 121c547b..a50eef79 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/UKeFuExceptionHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/UKeFuExceptionHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import com.lmax.disruptor.ExceptionHandler; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebConfigBeans.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebConfigBeans.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebConfigBeans.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/WebConfigBeans.java index d5ce61e7..a9b11f57 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebConfigBeans.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebConfigBeans.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import javax.annotation.PostConstruct; @@ -23,7 +23,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.web.bind.support.ConfigurableWebBindingInitializer; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebSecurityConfig.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebSecurityConfig.java similarity index 97% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebSecurityConfig.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/WebSecurityConfig.java index e52e2f05..488c6301 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebSecurityConfig.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebSecurityConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.io.IOException; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebServerConfiguration.java b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebServerConfiguration.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebServerConfiguration.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/config/WebServerConfiguration.java index d13b1091..98709465 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/config/web/WebServerConfiguration.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/config/WebServerConfiguration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.config.web; +package com.chatopera.cc.app.config; import java.io.File; import java.io.FileInputStream; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/ApplicationController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/ApplicationController.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/ApplicationController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/ApplicationController.java index 1f2b286d..8507942f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/ApplicationController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/ApplicationController.java @@ -14,19 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler; +package com.chatopera.cc.app.handler; import javax.servlet.http.HttpServletRequest; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.acd.ServiceQuene; @Controller public class ApplicationController extends Handler{ @@ -40,7 +40,7 @@ public class ApplicationController extends Handler{ view.addObject("istenantshare",super.isEnabletneant()); if(super.isEnabletneant()) { //多租户启用 非超级管理员 一定要选择租户才能进入界面 - if(!user.isSuperuser() && !StringUtils.isBlank(user.getOrgid()) && super.isTenantconsole() &&UKDataContext.SYSTEM_ORGI.equals(user.getOrgi())) { + if(!user.isSuperuser() && !StringUtils.isBlank(user.getOrgid()) && super.isTenantconsole() && MainContext.SYSTEM_ORGI.equals(user.getOrgi())) { view = request(super.createRequestPageTempletResponse("redirect:/apps/tenant/index")); } if(StringUtils.isBlank(user.getOrgid())) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/Handler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/Handler.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/Handler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/Handler.java index 28c862ea..b0eb92fd 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/Handler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/Handler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler; +package com.chatopera.cc.app.handler; import static org.elasticsearch.index.query.QueryBuilders.termQuery; import static org.elasticsearch.index.query.QueryBuilders.termsQuery; @@ -24,14 +24,14 @@ import java.text.ParseException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKView; -import com.chatopera.cc.util.exception.CSKefuException; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.TenantRepository; -import com.chatopera.cc.webim.web.handler.api.rest.QueryParams; -import com.chatopera.cc.webim.web.model.Tenant; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.exception.CSKefuException; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.TenantRepository; +import com.chatopera.cc.app.handler.api.rest.QueryParams; +import com.chatopera.cc.app.model.Tenant; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; @@ -47,7 +47,7 @@ import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.model.SystemConfig; +import com.chatopera.cc.app.model.SystemConfig; @Controller @@ -66,7 +66,7 @@ public class Handler { private long starttime = System.currentTimeMillis(); public User getUser(HttpServletRequest request){ - User user = (User) request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) ; + User user = (User) request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) ; if(user==null){ String authorization = request.getHeader("authorization") ; if(StringUtils.isBlank(authorization) && request.getCookies()!=null){ @@ -77,13 +77,13 @@ public class Handler { } } if(!StringUtils.isBlank(authorization)){ - user = (User) CacheHelper.getApiUserCacheBean().getCacheObject(authorization, UKDataContext.SYSTEM_ORGI) ; + user = (User) CacheHelper.getApiUserCacheBean().getCacheObject(authorization, MainContext.SYSTEM_ORGI) ; } if(user==null){ user = new User(); user.setId(UKTools.getContextID(request.getSession().getId())) ; - user.setUsername(UKDataContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ; - user.setOrgi(UKDataContext.SYSTEM_ORGI); + user.setUsername(MainContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ; + user.setOrgi(MainContext.SYSTEM_ORGI); user.setSessionid(user.getId()) ; } }else{ @@ -265,7 +265,7 @@ public class Handler { } public User getIMUser(HttpServletRequest request , String userid , String nickname){ - User user = (User) request.getSession(true).getAttribute(UKDataContext.IM_USER_SESSION_NAME) ; + User user = (User) request.getSession(true).getAttribute(MainContext.IM_USER_SESSION_NAME) ; if(user==null){ user = new User(); if(!StringUtils.isBlank(userid)){ @@ -276,7 +276,7 @@ public class Handler { if(!StringUtils.isBlank(nickname)){ user.setUsername(nickname); }else{ - user.setUsername(UKDataContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ; + user.setUsername(MainContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ; } user.setSessionid(user.getId()) ; }else{ @@ -286,8 +286,8 @@ public class Handler { } public void setUser(HttpServletRequest request , User user){ - request.getSession(true).removeAttribute(UKDataContext.USER_SESSION_NAME) ; - request.getSession(true).setAttribute(UKDataContext.USER_SESSION_NAME , user) ; + request.getSession(true).removeAttribute(MainContext.USER_SESSION_NAME) ; + request.getSession(true).setAttribute(MainContext.USER_SESSION_NAME , user) ; } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/LoginController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/LoginController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/LoginController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/LoginController.java index 1ae7f781..fbee9da9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/LoginController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/LoginController.java @@ -14,18 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler; +package com.chatopera.cc.app.handler; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.RoleAuthRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.service.repository.UserRoleRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.RoleAuthRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.service.repository.UserRoleRepository; +import com.chatopera.cc.util.OnlineUserUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,7 +89,7 @@ public class LoginController extends Handler { @Menu(type = "apps", subtype = "user", access = true) public ModelAndView login(HttpServletRequest request, HttpServletResponse response, @RequestHeader(value = "referer", required = false) String referer, @Valid String msg) throws NoSuchAlgorithmException { ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/")); - if (request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) == null) { + if (request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) == null) { view = request(super.createRequestPageTempletResponse("/login")); if (!StringUtils.isBlank(request.getParameter("referer"))) { referer = request.getParameter("referer"); @@ -101,7 +101,7 @@ public class LoginController extends Handler { if (cookies != null) { for (Cookie cookie : cookies) { if (cookie != null && !StringUtils.isBlank(cookie.getName()) && !StringUtils.isBlank(cookie.getValue())) { - if (cookie.getName().equals(UKDataContext.UKEFU_SYSTEM_COOKIES_FLAG)) { + if (cookie.getName().equals(MainContext.UKEFU_SYSTEM_COOKIES_FLAG)) { String flagid = UKTools.decryption(cookie.getValue()); if (!StringUtils.isBlank(flagid)) { User user = userRepository.findById(flagid); @@ -131,18 +131,18 @@ public class LoginController extends Handler { @Menu(type = "apps", subtype = "user", access = true) public ModelAndView login(HttpServletRequest request, HttpServletResponse response, @Valid User user, @Valid String referer, @Valid String sla) throws NoSuchAlgorithmException { ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/")); - if (request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) == null) { + if (request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) == null) { if (user != null && user.getUsername() != null) { final User loginUser = userRepository.findByUsernameAndPasswordAndDatastatus(user.getUsername(), UKTools.md5(user.getPassword()), false); if (loginUser != null && !StringUtils.isBlank(loginUser.getId())) { view = this.processLogin(request, response, view, loginUser, referer); if (!StringUtils.isBlank(sla) && sla.equals("1")) { - Cookie flagid = new Cookie(UKDataContext.UKEFU_SYSTEM_COOKIES_FLAG, UKTools.encryption(loginUser.getId())); + Cookie flagid = new Cookie(MainContext.UKEFU_SYSTEM_COOKIES_FLAG, UKTools.encryption(loginUser.getId())); flagid.setMaxAge(7 * 24 * 60 * 60); response.addCookie(flagid); // add authorization code for rest api String auth = UKTools.getUUID(); - CacheHelper.getApiUserCacheBean().put(auth, loginUser, UKDataContext.SYSTEM_ORGI); + CacheHelper.getApiUserCacheBean().put(auth, loginUser, MainContext.SYSTEM_ORGI); response.addCookie((new Cookie("authorization", auth))); } } else { @@ -226,12 +226,12 @@ public class LoginController extends Handler { @RequestMapping("/logout") public String logout(HttpServletRequest request, HttpServletResponse response) { - request.getSession().removeAttribute(UKDataContext.USER_SESSION_NAME); + request.getSession().removeAttribute(MainContext.USER_SESSION_NAME); Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie != null && !StringUtils.isBlank(cookie.getName()) && !StringUtils.isBlank(cookie.getValue())) { - if (cookie.getName().equals(UKDataContext.UKEFU_SYSTEM_COOKIES_FLAG)) { + if (cookie.getName().equals(MainContext.UKEFU_SYSTEM_COOKIES_FLAG)) { cookie.setMaxAge(0); response.addCookie(cookie); } @@ -245,7 +245,7 @@ public class LoginController extends Handler { @Menu(type = "apps", subtype = "user", access = true) public ModelAndView register(HttpServletRequest request, HttpServletResponse response, @Valid String msg) { ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/")); - if (request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) == null) { + if (request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) == null) { view = request(super.createRequestPageTempletResponse("/register")); } if (!StringUtils.isBlank(msg)) { @@ -271,7 +271,7 @@ public class LoginController extends Handler { /*if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { user.setOrgid(super.getUser(request).getOrgid()); }else { - user.setOrgid(UKDataContext.SYSTEM_ORGI); + user.setOrgid(MainContext.SYSTEM_ORGI); }*/ userRepository.save(user); OnlineUserUtils.clean(super.getOrgi(request)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/AdminController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/AdminController.java similarity index 75% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/AdminController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/AdminController.java index 23b6c28b..03ed0227 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/AdminController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/AdminController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin; +package com.chatopera.cc.app.handler.admin; import java.util.ArrayList; import java.util.Date; @@ -23,15 +23,16 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.UserEventRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.OnlineUserRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.UserEventRepository; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -39,11 +40,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; @Controller public class AdminController extends Handler{ @@ -82,23 +82,23 @@ public class AdminController extends Handler{ map.put("agents",getAgent(request).size()) ; - map.put("webIMInvite", UKTools.getWebIMInviteStatus(onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()))) ; + map.put("webIMInvite", UKTools.getWebIMInviteStatus(onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.OnlineUserOperatorStatus.ONLINE.toString()))) ; map.put("inviteResult", UKTools.getWebIMInviteResult(onlineUserRes.findByOrgiAndAgentnoAndCreatetimeRange(super.getOrgi(request), super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime()))) ; - map.put("agentUserCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentUserCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), MainContext.AgentUserStatusEnum.INSERVICE.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; - map.put("agentServicesCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentServicesCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), MainContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; - map.put("agentServicesAvg", onlineUserRes.countByAgentForAvagTime(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentServicesAvg", onlineUserRes.countByAgentForAvagTime(super.getOrgi(request), MainContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; - map.put("webInviteReport", UKTools.getWebIMInviteAgg(onlineUserRes.findByOrgiAndCreatetimeRange(super.getOrgi(request) , UKDataContext.ChannelTypeEnum.WEBIM.toString(),UKTools.getLast30Day(), UKTools.getEndTime()))) ; + map.put("webInviteReport", UKTools.getWebIMInviteAgg(onlineUserRes.findByOrgiAndCreatetimeRange(super.getOrgi(request) , MainContext.ChannelTypeEnum.WEBIM.toString(),UKTools.getLast30Day(), UKTools.getEndTime()))) ; map.put("agentConsultReport", UKTools.getWebIMDataAgg(onlineUserRes.findByOrgiAndCreatetimeRangeForAgent(super.getOrgi(request), UKTools.getLast30Day(), UKTools.getEndTime()))) ; - map.put("clentConsultReport", UKTools.getWebIMDataAgg(onlineUserRes.findByOrgiAndCreatetimeRangeForClient(super.getOrgi(request), UKTools.getLast30Day(), UKTools.getEndTime() , UKDataContext.ChannelTypeEnum.WEBIM.toString()))) ; + map.put("clentConsultReport", UKTools.getWebIMDataAgg(onlineUserRes.findByOrgiAndCreatetimeRangeForClient(super.getOrgi(request), UKTools.getLast30Day(), UKTools.getEndTime() , MainContext.ChannelTypeEnum.WEBIM.toString()))) ; - map.put("browserConsultReport", UKTools.getWebIMDataAgg(onlineUserRes.findByOrgiAndCreatetimeRangeForBrowser(super.getOrgi(request), UKTools.getLast30Day(), UKTools.getEndTime(), UKDataContext.ChannelTypeEnum.WEBIM.toString()))) ; + map.put("browserConsultReport", UKTools.getWebIMDataAgg(onlineUserRes.findByOrgiAndCreatetimeRangeForBrowser(super.getOrgi(request), UKTools.getLast30Day(), UKTools.getEndTime(), MainContext.ChannelTypeEnum.WEBIM.toString()))) ; } private List getAgent(HttpServletRequest request){ //获取当前产品or租户坐席数 @@ -127,11 +127,11 @@ public class AdminController extends Handler{ @RequestMapping("/admin/auth/infoacq") @Menu(type = "admin" , subtype = "infoacq" , access= false , admin = true) public ModelAndView infoacq(ModelMap map , HttpServletRequest request) { - String inacq = (String) request.getSession().getAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ) ; + String inacq = (String) request.getSession().getAttribute(MainContext.UKEFU_SYSTEM_INFOACQ) ; if(!StringUtils.isBlank(inacq)){ - request.getSession().removeAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ); + request.getSession().removeAttribute(MainContext.UKEFU_SYSTEM_INFOACQ); }else{ - request.getSession().setAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ , "true"); + request.getSession().setAttribute(MainContext.UKEFU_SYSTEM_INFOACQ , "true"); } return request(super.createRequestPageTempletResponse("redirect:/")); } @@ -150,7 +150,7 @@ public class AdminController extends Handler{ @RequestMapping("/admin/auth/save") @Menu(type = "admin" , subtype = "authsave") public ModelAndView authsave(ModelMap map , HttpServletRequest request , @Valid String title , @Valid SysDic dic) { - SysDic sysDic = sysDicRes.findByCode(UKDataContext.UKEFU_SYSTEM_AUTH_DIC) ; + SysDic sysDic = sysDicRes.findByCode(MainContext.UKEFU_SYSTEM_AUTH_DIC) ; boolean newdic = false ; if(sysDic!=null && !StringUtils.isBlank(dic.getName())){ if(!StringUtils.isBlank(dic.getParentid())){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/area/AreaController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/area/AreaController.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/area/AreaController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/area/AreaController.java index 05218975..4c1ccd0f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/area/AreaController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/area/AreaController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.area; +package com.chatopera.cc.app.handler.admin.area; import java.io.FileNotFoundException; import java.io.IOException; @@ -29,15 +29,15 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AreaTypeRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AreaType; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.repository.AreaTypeRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AreaType; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.UKeFuDic; /** * @@ -66,12 +66,12 @@ public class AreaController extends Handler{ @RequestMapping("/add") @Menu(type = "admin" , subtype = "area") public ModelAndView add(ModelMap map , HttpServletRequest request) { - SysDic sysDic = sysDicRepository.findByCode(UKDataContext.UKEFU_SYSTEM_AREA_DIC) ; + SysDic sysDic = sysDicRepository.findByCode(MainContext.UKEFU_SYSTEM_AREA_DIC) ; if(sysDic!=null){ map.addAttribute("sysarea", sysDic) ; map.addAttribute("areaList", sysDicRepository.findByDicid(sysDic.getId())) ; } - map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_AREA_DIC)) ; + map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_AREA_DIC)) ; return request(super.createRequestPageTempletResponse("/admin/area/add")); } @@ -94,12 +94,12 @@ public class AreaController extends Handler{ public ModelAndView edit(ModelMap map ,HttpServletRequest request , @Valid String id) { map.addAttribute("area", areaRepository.findByIdAndOrgi(id, super.getOrgi(request))) ; - SysDic sysDic = sysDicRepository.findByCode(UKDataContext.UKEFU_SYSTEM_AREA_DIC) ; + SysDic sysDic = sysDicRepository.findByCode(MainContext.UKEFU_SYSTEM_AREA_DIC) ; if(sysDic!=null){ map.addAttribute("sysarea", sysDic) ; map.addAttribute("areaList", sysDicRepository.findByDicid(sysDic.getId())) ; } - map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_AREA_DIC)) ; + map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_AREA_DIC)) ; return request(super.createRequestPageTempletResponse("/admin/area/edit")); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterAclController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterAclController.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterAclController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterAclController.java index 8338c255..a61e2fb6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterAclController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterAclController.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Acl; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Acl; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -30,7 +30,7 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.AclRepository; +import com.chatopera.cc.app.service.repository.AclRepository; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterBlackController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterBlackController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterBlackController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterBlackController.java index 626044bf..62916cda 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterBlackController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterBlackController.java @@ -14,11 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -26,11 +27,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.BlackListRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.BlackEntity; +import com.chatopera.cc.app.service.repository.BlackListRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.BlackEntity; @Controller @RequestMapping("/admin/callcenter") @@ -63,7 +63,7 @@ public class CallCenterBlackController extends Handler{ if(count == 0){ BlackEntity be = new BlackEntity(); be.setPhone(ph.trim()); - be.setChannel(UKDataContext.ChannelTypeEnum.PHONE.toString()); + be.setChannel(MainContext.ChannelTypeEnum.PHONE.toString()); be.setOrgi(super.getOrgi(request)); be.setCreater(super.getUser(request).getId()); blackRes.save(be) ; @@ -88,7 +88,7 @@ public class CallCenterBlackController extends Handler{ BlackEntity oldBlack = blackRes.findByIdAndOrgi(black.getId(), super.getOrgi(request)) ; if(oldBlack!=null){ oldBlack.setPhone(black.getPhone()); - oldBlack.setChannel(UKDataContext.ChannelTypeEnum.PHONE.toString()); + oldBlack.setChannel(MainContext.ChannelTypeEnum.PHONE.toString()); oldBlack.setOrgi(super.getOrgi(request)); blackRes.save(oldBlack); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterController.java similarity index 83% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterController.java index 434096d9..1a9bbe83 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterController.java @@ -14,19 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.extra.CallCenterInterface; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.PbxHost; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.PbxHost; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -45,8 +45,8 @@ public class CallCenterController extends Handler { @Menu(type = "callcenter" , subtype = "callcenter" , access = false , admin = true) public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String msg) { List pbxHostList = pbxHostRes.findByOrgi(super.getOrgi(request)) ; - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; for(PbxHost pbxHost : pbxHostList){ if(callCenterImpl!=null){ @@ -62,8 +62,8 @@ public class CallCenterController extends Handler { @Menu(type = "callcenter" , subtype = "pbxhost" , access = false , admin = true) public ModelAndView pbxhost(ModelMap map , HttpServletRequest request) { List pbxHostList = pbxHostRes.findByOrgi(super.getOrgi(request)) ; - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; for(PbxHost pbxHost : pbxHostList){ if(callCenterImpl!=null){ @@ -92,8 +92,8 @@ public class CallCenterController extends Handler { pbxHost.setOrgi(super.getOrgi(request)); pbxHost.setCreater(super.getUser(request).getId()); pbxHostRes.save(pbxHost) ; - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; if(callCenterImpl!=null){ try{ callCenterImpl.init(pbxHost); @@ -133,8 +133,8 @@ public class CallCenterController extends Handler { destHost.setPassword(pbxHost.getPassword()); } pbxHostRes.save(destHost) ; - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; if(callCenterImpl!=null){ try{ callCenterImpl.init(destHost); @@ -156,8 +156,8 @@ public class CallCenterController extends Handler { public ModelAndView mediadelete(ModelMap map , HttpServletRequest request , @Valid String id) { if(!StringUtils.isBlank(id)){ pbxHostRes.delete(id); - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; if(callCenterImpl!=null){ callCenterImpl.remove(id); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterExtentionController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterExtentionController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterExtentionController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterExtentionController.java index 4876cfba..837f6da4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterExtentionController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterExtentionController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.util.Date; import java.util.List; @@ -23,11 +23,11 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.service.repository.ProductRepository; -import com.chatopera.cc.webim.web.model.PbxHost; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.service.repository.ProductRepository; +import com.chatopera.cc.app.model.PbxHost; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -36,14 +36,14 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.freeswitch.model.CallCenterAgent; -import com.chatopera.cc.webim.service.impl.CallOutQuene; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; -import com.chatopera.cc.webim.service.repository.MediaRepository; -import com.chatopera.cc.webim.service.repository.QueSurveyProcessRepository; -import com.chatopera.cc.webim.service.repository.ServiceAiRepository; -import com.chatopera.cc.webim.service.repository.SipTrunkRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Extention; +import com.chatopera.cc.app.service.impl.CallOutQuene; +import com.chatopera.cc.app.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.MediaRepository; +import com.chatopera.cc.app.service.repository.QueSurveyProcessRepository; +import com.chatopera.cc.app.service.repository.ServiceAiRepository; +import com.chatopera.cc.app.service.repository.SipTrunkRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Extention; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterIvrController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterIvrController.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterIvrController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterIvrController.java index 7b8e1745..3d88de5c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterIvrController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterIvrController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; +import com.chatopera.cc.app.service.repository.PbxHostRepository; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -28,10 +28,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; -import com.chatopera.cc.webim.service.repository.IvrMenuRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Extention; +import com.chatopera.cc.app.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.IvrMenuRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Extention; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterMediaController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterMediaController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterMediaController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterMediaController.java index 78528029..3d0dfbb9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterMediaController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterMediaController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.io.File; import java.io.IOException; @@ -35,10 +35,10 @@ import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.MediaRepository; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Media; +import com.chatopera.cc.app.service.repository.MediaRepository; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Media; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterResourceController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterResourceController.java index cdd7c38f..ec1ba7ed 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterResourceController.java @@ -14,20 +14,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.extra.CallCenterInterface; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.service.repository.ServiceAiRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.PbxHost; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.service.repository.ServiceAiRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.PbxHost; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -35,7 +35,7 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.ExtentionRepository; @Controller @RequestMapping("/admin/callcenter") @@ -92,8 +92,8 @@ public class CallCenterResourceController extends Handler { pbxHost.setOrgi(super.getOrgi(request)); pbxHostRes.save(pbxHost) ; - if(UKDataContext.model.get("callcenter")!=null){ - CallCenterInterface callCenterImpl = (CallCenterInterface) UKDataContext.getContext().getBean("callcenter") ; + if(MainContext.model.get("callcenter")!=null){ + CallCenterInterface callCenterImpl = (CallCenterInterface) MainContext.getContext().getBean("callcenter") ; callCenterImpl.init(pbxHost); } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterRouterController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterRouterController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterRouterController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterRouterController.java index 142b8eab..fa966e35 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterRouterController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterRouterController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.util.List; @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.model.PbxHost; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.model.PbxHost; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -31,9 +31,9 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.RouterRulesRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.RouterRules; +import com.chatopera.cc.app.service.repository.RouterRulesRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.RouterRules; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSipTrunkController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSipTrunkController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSipTrunkController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSipTrunkController.java index 9e9c04fb..d5f04b97 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSipTrunkController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSipTrunkController.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.model.SipTrunk; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.model.SipTrunk; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -30,8 +30,8 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.SipTrunkRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.SipTrunkRepository; +import com.chatopera.cc.app.handler.Handler; @Controller @RequestMapping("/admin/callcenter") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSkillController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSkillController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSkillController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSkillController.java index 01b34d94..fd9290eb 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/callcenter/CallCenterSkillController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/callcenter/CallCenterSkillController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.callcenter; +package com.chatopera.cc.app.handler.admin.callcenter; import java.util.Date; import java.util.List; @@ -23,15 +23,15 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.CallCenterSkillRepository; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.service.repository.SkillExtentionRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CallCenterSkill; -import com.chatopera.cc.webim.web.model.Extention; -import com.chatopera.cc.webim.web.model.PbxHost; -import com.chatopera.cc.webim.web.model.SkillExtention; +import com.chatopera.cc.app.service.repository.CallCenterSkillRepository; +import com.chatopera.cc.app.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.service.repository.SkillExtentionRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CallCenterSkill; +import com.chatopera.cc.app.model.Extention; +import com.chatopera.cc.app.model.PbxHost; +import com.chatopera.cc.app.model.SkillExtention; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/CalloutChannelController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/CalloutChannelController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/CalloutChannelController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/CalloutChannelController.java index b688a8e8..f6946f6c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/CalloutChannelController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/CalloutChannelController.java @@ -13,20 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.channel; +package com.chatopera.cc.app.handler.admin.channel; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.util.Base62; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.exception.CSKefuException; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.service.repository.SecretRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.SNSAccount; -import com.chatopera.cc.webim.web.model.Secret; +import com.chatopera.cc.exception.CSKefuException; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.app.service.repository.SNSAccountRepository; +import com.chatopera.cc.app.service.repository.SecretRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CousultInvite; +import com.chatopera.cc.app.model.SNSAccount; +import com.chatopera.cc.app.model.Secret; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -56,7 +55,7 @@ public class CalloutChannelController extends Handler { @RequestMapping("/index") @Menu(type = "callout" , subtype = "channel" , access = false ,admin = true) public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String execute) { - map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi( UKDataContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))) ; + map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi( MainContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))) ; List secretConfig = secRes.findByOrgi(super.getOrgi(request)) ; if(secretConfig!=null && secretConfig.size() > 0){ map.addAttribute("secret", secretConfig.get(0)) ; @@ -81,7 +80,7 @@ public class CalloutChannelController extends Handler { int count = snsAccountRes.countBySnsidAndOrgi(snsAccount.getSnsid() , super.getOrgi(request)) ; if(count == 0){ snsAccount.setOrgi(super.getOrgi(request)); - snsAccount.setSnstype(UKDataContext.ChannelTypeEnum.PHONE.toString()); + snsAccount.setSnstype(MainContext.ChannelTypeEnum.PHONE.toString()); snsAccount.setCreatetime(new Date()); snsAccountRes.save(snsAccount) ; @@ -155,7 +154,7 @@ public class CalloutChannelController extends Handler { } } - oldSnsAccount.setSnstype(UKDataContext.ChannelTypeEnum.PHONE.toString()); + oldSnsAccount.setSnstype(MainContext.ChannelTypeEnum.PHONE.toString()); snsAccountRes.save(oldSnsAccount) ; } return request(super.createRequestPageTempletResponse("redirect:/admin/callout/index.html")); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/SNSAccountIMController.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/SNSAccountIMController.java index 3910b0f8..d60f1cfa 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/SNSAccountIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/SNSAccountIMController.java @@ -14,21 +14,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.channel; +package com.chatopera.cc.app.handler.admin.channel; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Base62; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.service.repository.SecretRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.SNSAccount; -import com.chatopera.cc.webim.web.model.Secret; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.SNSAccountRepository; +import com.chatopera.cc.app.service.repository.SecretRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CousultInvite; +import com.chatopera.cc.app.model.SNSAccount; +import com.chatopera.cc.app.model.Secret; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -66,7 +66,7 @@ public class SNSAccountIMController extends Handler { @RequestMapping("/index") @Menu(type = "admin", subtype = "im", access = false, admin = true) public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String execute) { - map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.WEBIM.toString(), super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))); + map.addAttribute("snsAccountList", snsAccountRes.findBySnstypeAndOrgi(MainContext.ChannelTypeEnum.WEBIM.toString(), super.getOrgi(request), new PageRequest(super.getP(request), super.getPs(request)))); List secretConfig = secRes.findByOrgi(super.getOrgi(request)); if (secretConfig != null && secretConfig.size() > 0) { map.addAttribute("secret", secretConfig.get(0)); @@ -91,7 +91,7 @@ public class SNSAccountIMController extends Handler { int count = snsAccountRes.countBySnsidAndOrgi(snsAccount.getSnsid(), super.getOrgi(request)); if (count == 0) { snsAccount.setOrgi(super.getOrgi(request)); - snsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + snsAccount.setSnstype(MainContext.ChannelTypeEnum.WEBIM.toString()); snsAccount.setCreatetime(new Date()); User curr = super.getUser(request); snsAccount.setCreater(curr.getId()); @@ -170,7 +170,7 @@ public class SNSAccountIMController extends Handler { } } - oldSnsAccount.setSnstype(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + oldSnsAccount.setSnstype(MainContext.ChannelTypeEnum.WEBIM.toString()); snsAccountRes.save(oldSnsAccount); } return request(super.createRequestPageTempletResponse("redirect:/admin/im/index.html")); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/WebIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/WebIMController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/WebIMController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/WebIMController.java index df171adc..469c3e3c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/channel/WebIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/channel/WebIMController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.channel; +package com.chatopera.cc.app.handler.admin.channel; import java.io.File; import java.io.IOException; @@ -25,12 +25,12 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CousultInvite; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.OrgiSkillRel; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -42,12 +42,12 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.service.repository.ServiceAiRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.OrgiSkillRelRepository; +import com.chatopera.cc.app.service.repository.SNSAccountRepository; +import com.chatopera.cc.app.service.repository.ServiceAiRepository; +import com.chatopera.cc.app.service.repository.UserRepository; @Controller @RequestMapping("/admin/webim") @@ -75,7 +75,7 @@ public class WebIMController extends Handler { private SNSAccountRepository snsAccountRes; @RequestMapping("/index") - @Menu(type = "webim" , subtype = "webim" , admin= true) + @Menu(type = "app" , subtype = "app" , admin= true) public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String snsid) { CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsid, super.getOrgi(request)) ; @@ -88,11 +88,11 @@ public class WebIMController extends Handler { map.addAttribute("snsAccount", snsAccountRes.findBySnsidAndOrgi(snsid, super.getOrgi(request))) ; } - return request(super.createAdminTempletResponse("/admin/webim/index")); + return request(super.createAdminTempletResponse("/admin/app/index")); } @RequestMapping("/save") - @Menu(type = "admin" , subtype = "webim" , admin= true) + @Menu(type = "admin" , subtype = "app" , admin= true) public ModelAndView save(HttpServletRequest request , @Valid CousultInvite inviteData , @RequestParam(value = "webimlogo", required = false) MultipartFile webimlogo,@RequestParam(value = "agentheadimg", required = false) MultipartFile agentheadimg) throws IOException { if(!StringUtils.isBlank(inviteData.getSnsaccountid())){ CousultInvite tempData = invite.findBySnsaccountidAndOrgi(inviteData.getSnsaccountid() , super.getOrgi(request)) ; @@ -131,11 +131,11 @@ public class WebIMController extends Handler { invite.save(inviteData) ; CacheHelper.getSystemCacheBean().put(inviteData.getSnsaccountid(), inviteData, inviteData.getOrgi()); - return request(super.createRequestPageTempletResponse("redirect:/admin/webim/index.html?snsid="+inviteData.getSnsaccountid())); + return request(super.createRequestPageTempletResponse("redirect:/admin/app/index.html?snsid="+inviteData.getSnsaccountid())); } @RequestMapping("/profile") - @Menu(type = "webim" , subtype = "profile" , admin= true) + @Menu(type = "app" , subtype = "profile" , admin= true) public ModelAndView profile(ModelMap map , HttpServletRequest request , @Valid String snsid) { CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsid, super.getOrgi(request)) ; if(coultInvite!=null){ @@ -145,7 +145,7 @@ public class WebIMController extends Handler { map.addAttribute("snsAccount", snsAccountRes.findBySnsidAndOrgi(snsid, super.getOrgi(request))) ; map.put("serviceAiList",serviceAiRes.findByOrgi(super.getOrgi(request)) ) ; - return request(super.createAdminTempletResponse("/admin/webim/profile")); + return request(super.createAdminTempletResponse("/admin/app/profile")); } @RequestMapping("/profile/save") @@ -220,11 +220,11 @@ public class WebIMController extends Handler { invite.save(inviteData) ; } CacheHelper.getSystemCacheBean().put(inviteData.getSnsaccountid(), inviteData, inviteData.getOrgi()); - return request(super.createRequestPageTempletResponse("redirect:/admin/webim/profile.html?snsid="+inviteData.getSnsaccountid())); + return request(super.createRequestPageTempletResponse("redirect:/admin/app/profile.html?snsid="+inviteData.getSnsaccountid())); } @RequestMapping("/invote") - @Menu(type = "webim" , subtype = "invote" , admin= true) + @Menu(type = "app" , subtype = "invote" , admin= true) public ModelAndView invote(ModelMap map , HttpServletRequest request , @Valid String snsid) { CousultInvite coultInvite = invite.findBySnsaccountidAndOrgi(snsid, super.getOrgi(request)) ; if(coultInvite!=null){ @@ -232,7 +232,7 @@ public class WebIMController extends Handler { } map.addAttribute("import", request.getServerPort()) ; map.addAttribute("snsAccount", snsAccountRes.findBySnsidAndOrgi(snsid, super.getOrgi(request))) ; - return request(super.createAdminTempletResponse("/admin/webim/invote")); + return request(super.createAdminTempletResponse("/admin/app/invote")); } @RequestMapping("/invote/save") @@ -266,7 +266,7 @@ public class WebIMController extends Handler { invite.save(inviteData) ; } CacheHelper.getSystemCacheBean().put(inviteData.getSnsaccountid(), inviteData, inviteData.getOrgi()); - return request(super.createRequestPageTempletResponse("redirect:/admin/webim/invote.html?snsid="+inviteData.getSnsaccountid())); + return request(super.createRequestPageTempletResponse("redirect:/admin/app/invote.html?snsid="+inviteData.getSnsaccountid())); } /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemConfigController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemConfigController.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemConfigController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemConfigController.java index 6291a270..4ba7f9ac 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemConfigController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemConfigController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.config; +package com.chatopera.cc.app.handler.admin.config; import java.io.File; import java.io.FileOutputStream; @@ -28,14 +28,15 @@ import java.util.Properties; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.SecretRepository; -import com.chatopera.cc.webim.service.repository.SystemConfigRepository; -import com.chatopera.cc.webim.service.repository.SystemMessageRepository; -import com.chatopera.cc.webim.service.repository.TemplateRepository; -import com.chatopera.cc.webim.web.model.Secret; -import com.chatopera.cc.webim.web.model.SysDic; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.SecretRepository; +import com.chatopera.cc.app.service.repository.SystemConfigRepository; +import com.chatopera.cc.app.service.repository.SystemMessageRepository; +import com.chatopera.cc.app.service.repository.TemplateRepository; +import com.chatopera.cc.app.model.Secret; +import com.chatopera.cc.app.model.SysDic; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -49,11 +50,10 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import com.corundumstudio.socketio.SocketIOServer; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SystemConfig; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SystemConfig; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/admin/config") @@ -85,28 +85,28 @@ public class SystemConfigController extends Handler{ @Menu(type = "admin" , subtype = "config" , admin = true) public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String execute) throws SQLException { map.addAttribute("server", server) ; - if(UKDataContext.model.get("im")!=null){ - map.addAttribute("entim", UKDataContext.model.get("im")) ; + if(MainContext.model.get("im")!=null){ + map.addAttribute("entim", MainContext.model.get("im")) ; } - if(request.getSession().getAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ)!=null){ - map.addAttribute("entim", request.getSession().getAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ)) ; + if(request.getSession().getAttribute(MainContext.UKEFU_SYSTEM_INFOACQ)!=null){ + map.addAttribute("entim", request.getSession().getAttribute(MainContext.UKEFU_SYSTEM_INFOACQ)) ; } map.addAttribute("server", server) ; - map.addAttribute("imServerStatus", UKDataContext.getIMServerStatus()) ; + map.addAttribute("imServerStatus", MainContext.getIMServerStatus()) ; List secretConfig = secRes.findByOrgi(super.getOrgi(request)) ; if(secretConfig!=null && secretConfig.size() > 0){ map.addAttribute("secret", secretConfig.get(0)) ; } - List dicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC) ; + List dicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC) ; SysDic callCenterDic = null , workOrderDic = null , smsDic = null ; for(SysDic dic : dicList){ - if(dic.getCode().equals(UKDataContext.UKEFU_SYSTEM_CALLCENTER)){ + if(dic.getCode().equals(MainContext.UKEFU_SYSTEM_CALLCENTER)){ callCenterDic = dic ; } - if(dic.getCode().equals(UKDataContext.UKEFU_SYSTEM_WORKORDEREMAIL)){ + if(dic.getCode().equals(MainContext.UKEFU_SYSTEM_WORKORDEREMAIL)){ workOrderDic = dic ; } - if(dic.getCode().equals(UKDataContext.UKEFU_SYSTEM_SMSEMAIL)){ + if(dic.getCode().equals(MainContext.UKEFU_SYSTEM_SMSEMAIL)){ smsDic = dic ; } } @@ -120,7 +120,7 @@ public class SystemConfigController extends Handler{ map.addAttribute("smsList", templateRes.findByTemplettypeAndOrgi(smsDic.getId(), super.getOrgi(request))) ; } - map.addAttribute("sysMessageList", systemMessageRes.findByMsgtypeAndOrgi(UKDataContext.SystemMessageType.EMAIL.toString(), super.getOrgi(request))) ; + map.addAttribute("sysMessageList", systemMessageRes.findByMsgtypeAndOrgi(MainContext.SystemMessageType.EMAIL.toString(), super.getOrgi(request))) ; if(!StringUtils.isBlank(execute) && execute.equals("false")){ map.addAttribute("execute", execute) ; @@ -137,7 +137,7 @@ public class SystemConfigController extends Handler{ boolean execute = false ; if(execute = UKTools.secConfirm(secRes, super.getOrgi(request), confirm)){ server.stop(); - UKDataContext.setIMServerStatus(false); + MainContext.setIMServerStatus(false); } return request(super.createRequestPageTempletResponse("redirect:/admin/config/index.html?execute="+execute)); } @@ -145,14 +145,14 @@ public class SystemConfigController extends Handler{ @RequestMapping("/startentim") @Menu(type = "admin" , subtype = "startentim" , access = false , admin = true) public ModelAndView startentim(ModelMap map , HttpServletRequest request) throws SQLException { - UKDataContext.model.put("im", true) ; + MainContext.model.put("im", true) ; return request(super.createRequestPageTempletResponse("redirect:/admin/config/index.html")); } @RequestMapping("/stopentim") @Menu(type = "admin" , subtype = "stopentim" , access = false , admin = true) public ModelAndView stopentim(ModelMap map , HttpServletRequest request) throws SQLException { - UKDataContext.model.remove("im") ; + MainContext.model.remove("im") ; return request(super.createRequestPageTempletResponse("redirect:/admin/config/index.html")); } @@ -169,7 +169,7 @@ public class SystemConfigController extends Handler{ boolean execute = false ; if(execute = UKTools.secConfirm(secRes, super.getOrgi(request), confirm)){ server.stop(); - UKDataContext.setIMServerStatus(false); + MainContext.setIMServerStatus(false); System.exit(0); } return request(super.createRequestPageTempletResponse("redirect:/admin/config/index.html?execute="+execute)); @@ -181,8 +181,8 @@ public class SystemConfigController extends Handler{ public ModelAndView save(ModelMap map , HttpServletRequest request , @Valid SystemConfig config ,BindingResult result , @RequestParam(value = "keyfile", required = false) MultipartFile keyfile , @RequestParam(value = "loginlogo", required = false) MultipartFile loginlogo , @RequestParam(value = "consolelogo", required = false) MultipartFile consolelogo , @RequestParam(value = "favlogo", required = false) MultipartFile favlogo , @Valid Secret secret) throws SQLException, IOException, NoSuchAlgorithmException { /*SystemConfig systemConfig = systemConfigRes.findByOrgi(super.getOrgi(request)) ; config.setOrgi(super.getOrgi(request));*/ - SystemConfig systemConfig = systemConfigRes.findByOrgi(UKDataContext.SYSTEM_ORGI) ; - config.setOrgi(UKDataContext.SYSTEM_ORGI); + SystemConfig systemConfig = systemConfigRes.findByOrgi(MainContext.SYSTEM_ORGI) ; + config.setOrgi(MainContext.SYSTEM_ORGI); String msg = "0" ; if(StringUtils.isBlank(config.getJkspassword())){ config.setJkspassword(null); @@ -264,7 +264,7 @@ public class SystemConfigController extends Handler{ systemConfigRes.save(systemConfig) ; CacheHelper.getSystemCacheBean().put("systemConfig", systemConfig , super.getOrgi(request)); - map.addAttribute("imServerStatus", UKDataContext.getIMServerStatus()) ; + map.addAttribute("imServerStatus", MainContext.getIMServerStatus()) ; return request(super.createRequestPageTempletResponse("redirect:/admin/config/index.html?msg="+msg)); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemMessageController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemMessageController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemMessageController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemMessageController.java index b0961585..32218123 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/config/SystemMessageController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/config/SystemMessageController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.config; +package com.chatopera.cc.app.handler.admin.config; import java.io.FileNotFoundException; import java.io.IOException; @@ -23,12 +23,12 @@ import java.security.NoSuchAlgorithmException; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.SystemMessageRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SystemMessage; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.repository.SystemMessageRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SystemMessage; +import com.chatopera.cc.app.model.UKeFuDic; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -63,7 +63,7 @@ public class SystemMessageController extends Handler { @Menu(type = "admin" , subtype = "user") public ModelAndView save(HttpServletRequest request ,@Valid SystemMessage email) throws NoSuchAlgorithmException { email.setOrgi(super.getOrgi(request)); - email.setMsgtype(UKDataContext.SystemMessageType.EMAIL.toString()); + email.setMsgtype(MainContext.SystemMessageType.EMAIL.toString()); if(!StringUtils.isBlank(email.getSmtppassword())) { email.setSmtppassword(UKTools.encryption(email.getSmtppassword())); } @@ -85,7 +85,7 @@ public class SystemMessageController extends Handler { if(email!=null) { email.setCreatetime(temp.getCreatetime()); email.setOrgi(temp.getOrgi()); - email.setMsgtype(UKDataContext.SystemMessageType.EMAIL.toString()); + email.setMsgtype(MainContext.SystemMessageType.EMAIL.toString()); if(!StringUtils.isBlank(email.getSmtppassword())) { email.setSmtppassword(UKTools.encryption(email.getSmtppassword())); }else { @@ -126,7 +126,7 @@ public class SystemMessageController extends Handler { @Menu(type = "admin" , subtype = "sms") public ModelAndView smssave(HttpServletRequest request ,@Valid SystemMessage sms) throws NoSuchAlgorithmException { sms.setOrgi(super.getOrgi(request)); - sms.setMsgtype(UKDataContext.SystemMessageType.SMS.toString()); + sms.setMsgtype(MainContext.SystemMessageType.SMS.toString()); if(!StringUtils.isBlank(sms.getSmtppassword())) { sms.setSmtppassword(UKTools.encryption(sms.getSmtppassword())); } @@ -149,7 +149,7 @@ public class SystemMessageController extends Handler { if(sms!=null) { sms.setCreatetime(temp.getCreatetime()); sms.setOrgi(temp.getOrgi()); - sms.setMsgtype(UKDataContext.SystemMessageType.SMS.toString()); + sms.setMsgtype(MainContext.SystemMessageType.SMS.toString()); if(!StringUtils.isBlank(sms.getSmtppassword())) { sms.setSmtppassword(UKTools.encryption(sms.getSmtppassword())); }else { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/organ/OrganController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/organ/OrganController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/organ/OrganController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/organ/OrganController.java index 94b11b97..4a197fcb 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/organ/OrganController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/organ/OrganController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.organ; +package com.chatopera.cc.app.handler.admin.organ; import java.util.ArrayList; import java.util.Date; @@ -23,11 +23,12 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.util.OnlineUserUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -35,18 +36,17 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.repository.AreaTypeRepository; -import com.chatopera.cc.webim.service.repository.OrganRoleRepository; -import com.chatopera.cc.webim.service.repository.RoleRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrganRole; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.UKeFuDic; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.AreaTypeRepository; +import com.chatopera.cc.app.service.repository.OrganRoleRepository; +import com.chatopera.cc.app.service.repository.RoleRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.OrganRole; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.UKeFuDic; +import com.chatopera.cc.app.model.User; /** * @@ -137,7 +137,7 @@ public class OrganController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { organ.setOrgid(super.getUser(request).getOrgid()); }else { - organ.setOrgid(UKDataContext.SYSTEM_ORGI); + organ.setOrgid(MainContext.SYSTEM_ORGI); } firstId = organ.getId(); @@ -235,7 +235,7 @@ public class OrganController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tempOrgan.setOrgid(super.getUser(request).getOrgid()); }else { - tempOrgan.setOrgid(UKDataContext.SYSTEM_ORGI); + tempOrgan.setOrgid(MainContext.SYSTEM_ORGI); } organRepository.save(tempOrgan) ; OnlineUserUtils.clean(super.getOrgi(request)); @@ -261,7 +261,7 @@ public class OrganController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tempOrgan.setOrgid(super.getUser(request).getOrgid()); }else { - tempOrgan.setOrgid(UKDataContext.SYSTEM_ORGI); + tempOrgan.setOrgid(MainContext.SYSTEM_ORGI); } organRepository.save(tempOrgan) ; OnlineUserUtils.clean(super.getOrgi(request)); @@ -277,12 +277,12 @@ public class OrganController extends Handler{ @Menu(type = "admin" , subtype = "area") public ModelAndView area(ModelMap map ,HttpServletRequest request , @Valid String id) { - SysDic sysDic = sysDicRepository.findByCode(UKDataContext.UKEFU_SYSTEM_AREA_DIC) ; + SysDic sysDic = sysDicRepository.findByCode(MainContext.UKEFU_SYSTEM_AREA_DIC) ; if(sysDic!=null){ map.addAttribute("sysarea", sysDic) ; map.addAttribute("areaList", sysDicRepository.findByDicid(sysDic.getId())) ; } - map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_AREA_DIC)) ; + map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_AREA_DIC)) ; map.addAttribute("organData", organRepository.findByIdAndOrgi(id, super.getOrgiByTenantshare(request))) ; return request(super.createRequestPageTempletResponse("/admin/organ/area")); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/role/RoleController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/role/RoleController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/role/RoleController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/role/RoleController.java index d751a837..60e2ba09 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/role/RoleController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/role/RoleController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.role; +package com.chatopera.cc.app.handler.admin.role; import java.util.Date; import java.util.List; @@ -22,10 +22,11 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.RoleAuthRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.UserRoleRepository; +import com.chatopera.cc.app.service.repository.RoleAuthRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.UserRoleRepository; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -34,16 +35,15 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.repository.RoleRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Role; -import com.chatopera.cc.webim.web.model.RoleAuth; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.UKeFuDic; -import com.chatopera.cc.webim.web.model.User; -import com.chatopera.cc.webim.web.model.UserRole; +import com.chatopera.cc.app.service.repository.RoleRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Role; +import com.chatopera.cc.app.model.RoleAuth; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.UKeFuDic; +import com.chatopera.cc.app.model.User; +import com.chatopera.cc.app.model.UserRole; @Controller @RequestMapping("/admin/role") @@ -110,7 +110,7 @@ public class RoleController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { role.setOrgid(super.getUser(request).getOrgid()); }else { - role.setOrgid(UKDataContext.SYSTEM_ORGI); + role.setOrgid(MainContext.SYSTEM_ORGI); } roleRepository.save(role) ; @@ -184,7 +184,7 @@ public class RoleController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tempRole.setOrgid(super.getUser(request).getOrgid()); }else { - tempRole.setOrgid(UKDataContext.SYSTEM_ORGI); + tempRole.setOrgid(MainContext.SYSTEM_ORGI); } roleRepository.save(tempRole) ; @@ -210,7 +210,7 @@ public class RoleController extends Handler{ @RequestMapping("/auth") @Menu(type = "admin" , subtype = "role") public ModelAndView auth(ModelMap map , HttpServletRequest request , @Valid String id) { - SysDic sysDic = sysDicRes.findByCode(UKDataContext.UKEFU_SYSTEM_AUTH_DIC) ; + SysDic sysDic = sysDicRes.findByCode(MainContext.UKEFU_SYSTEM_AUTH_DIC) ; if(sysDic!=null){ map.addAttribute("resourceList", sysDicRes.findByDicid(sysDic.getId())) ; } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/skill/AgentSkillController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/skill/AgentSkillController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/skill/AgentSkillController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/skill/AgentSkillController.java index 3455ad8d..ce8bfe3e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/skill/AgentSkillController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/skill/AgentSkillController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.skill; +package com.chatopera.cc.app.handler.admin.skill; import java.util.Date; import java.util.List; @@ -30,9 +30,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.SkillRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Skill; +import com.chatopera.cc.app.service.repository.SkillRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Skill; /** * diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/HazelcastMonitorController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/HazelcastMonitorController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/HazelcastMonitorController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/HazelcastMonitorController.java index a112f95e..68a87a8e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/HazelcastMonitorController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/HazelcastMonitorController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.system; +package com.chatopera.cc.app.handler.admin.system; import java.sql.SQLException; import java.util.HashMap; @@ -31,8 +31,8 @@ import org.springframework.web.servlet.ModelAndView; import com.google.gson.Gson; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.handler.Handler; @Controller @RequestMapping("/admin/monitor") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/LogController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/LogController.java similarity index 77% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/LogController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/LogController.java index 9eb5bf62..1a6b2415 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/LogController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/LogController.java @@ -14,11 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.system; +package com.chatopera.cc.app.handler.admin.system; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort.Direction; @@ -27,10 +28,9 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.LogRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.LogRepository; +import com.chatopera.cc.app.handler.Handler; @Controller @RequestMapping("/admin/log") @@ -43,14 +43,14 @@ public class LogController extends Handler{ @RequestMapping("/index") @Menu(type = "admin" , subtype = "syslog") public ModelAndView index(ModelMap map , HttpServletRequest request) { - map.addAttribute("logList", logRes.findByOrgi(UKDataContext.SYSTEM_ORGI , new PageRequest(super.getP(request), super.getPs(request) , Direction.DESC , "createdate"))); + map.addAttribute("logList", logRes.findByOrgi(MainContext.SYSTEM_ORGI , new PageRequest(super.getP(request), super.getPs(request) , Direction.DESC , "createdate"))); return request(super.createAdminTempletResponse("/admin/system/log/index")); } @RequestMapping("/levels") @Menu(type = "admin" , subtype = "levels") public ModelAndView levels(ModelMap map , HttpServletRequest request , @Valid String levels) { - map.addAttribute("logList", logRes.findByOrgiAndLevels(UKDataContext.SYSTEM_ORGI , levels , new PageRequest(super.getP(request), super.getPs(request) , Direction.DESC , "createdate"))); + map.addAttribute("logList", logRes.findByOrgiAndLevels(MainContext.SYSTEM_ORGI , levels , new PageRequest(super.getP(request), super.getPs(request) , Direction.DESC , "createdate"))); map.addAttribute("levels" , levels) ; return request(super.createAdminTempletResponse("/admin/system/log/levels")); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/MetadataController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/MetadataController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/MetadataController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/MetadataController.java index e787369b..9520a22c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/MetadataController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/MetadataController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.system; +package com.chatopera.cc.app.handler.admin.system; import java.sql.Connection; import java.sql.SQLException; @@ -28,16 +28,17 @@ import javax.persistence.PersistenceContext; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.metadata.DatabaseMetaDataHandler; import com.chatopera.cc.util.metadata.UKColumnMetadata; import com.chatopera.cc.util.metadata.UKTableMetaData; -import com.chatopera.cc.webim.service.hibernate.BaseService; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.TableProperties; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.hibernate.BaseService; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.TableProperties; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.hibernate.Session; import org.hibernate.jdbc.Work; @@ -50,13 +51,12 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.UKeFuList; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/admin/metadata") @@ -292,7 +292,7 @@ public class MetadataController extends Handler{ if(table.isFromdb() && !StringUtils.isBlank(table.getListblocktemplet())) { SysDic dic = UKeFuDic.getInstance().getDicItem(table.getListblocktemplet()) ; if(dic!=null) { - Object bean = UKDataContext.getContext().getBean(Class.forName(dic.getCode())) ; + Object bean = MainContext.getContext().getBean(Class.forName(dic.getCode())) ; if(bean instanceof ElasticsearchRepository) { ElasticsearchRepository jpa = (ElasticsearchRepository)bean ; jpa.deleteAll(); @@ -313,7 +313,7 @@ public class MetadataController extends Handler{ SysDic dic = UKeFuDic.getInstance().getDicItem(table.getListblocktemplet()) ; if(dic!=null) { - Object bean = UKDataContext.getContext().getBean(Class.forName(dic.getCode())) ; + Object bean = MainContext.getContext().getBean(Class.forName(dic.getCode())) ; if(bean instanceof ElasticsearchRepository) { ElasticsearchRepository jpa = (ElasticsearchRepository)bean ; if(!StringUtils.isBlank(table.getPreviewtemplet())) { @@ -344,7 +344,7 @@ public class MetadataController extends Handler{ SysDic dic = UKeFuDic.getInstance().getDicItem(table.getListblocktemplet()) ; if(dic!=null) { - Object bean = UKDataContext.getContext().getBean(Class.forName(dic.getCode())) ; + Object bean = MainContext.getContext().getBean(Class.forName(dic.getCode())) ; if(bean instanceof ElasticsearchRepository) { ElasticsearchRepository jpa = (ElasticsearchRepository)bean ; if(!StringUtils.isBlank(table.getPreviewtemplet())) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/SysDicController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/SysDicController.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/SysDicController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/SysDicController.java index 90dae73e..5fdac01e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/SysDicController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/SysDicController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.system; +package com.chatopera.cc.app.handler.admin.system; import java.util.Date; import java.util.List; @@ -22,8 +22,8 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.SysDicRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort.Direction; @@ -33,8 +33,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SysDic; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SysDic; @Controller @RequestMapping("/admin/sysdic") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/TemplateController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/TemplateController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/TemplateController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/TemplateController.java index e7ee92e3..480f6383 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/system/TemplateController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/system/TemplateController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.system; +package com.chatopera.cc.app.handler.admin.system; import java.text.SimpleDateFormat; import java.util.Date; @@ -33,16 +33,16 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.TemplateRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.Template; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.TemplateRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.Template; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/admin/template") @@ -58,7 +58,7 @@ public class TemplateController extends Handler{ @RequestMapping("/index") @Menu(type = "admin" , subtype = "template" , access = false , admin = true) public ModelAndView index(ModelMap map , HttpServletRequest request) { - map.addAttribute("sysDicList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC)); + map.addAttribute("sysDicList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC)); return request(super.createAdminTempletResponse("/admin/system/template/index")); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/users/UsersController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/users/UsersController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/users/UsersController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/users/UsersController.java index db8323a2..5f795ebb 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/admin/users/UsersController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/admin/users/UsersController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.admin.users; +package com.chatopera.cc.app.handler.admin.users; import java.io.FileNotFoundException; import java.io.IOException; @@ -24,9 +24,10 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.UserRoleRepository; -import com.chatopera.cc.webim.web.model.AgentStatus; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.UserRoleRepository; +import com.chatopera.cc.app.model.AgentStatus; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -36,15 +37,14 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.User; -import com.chatopera.cc.webim.web.model.UserRole; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.User; +import com.chatopera.cc.app.model.UserRole; /** * @@ -110,7 +110,7 @@ public class UsersController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { user.setOrgid(super.getUser(request).getOrgid()); }else { - user.setOrgid(UKDataContext.SYSTEM_ORGI); + user.setOrgid(MainContext.SYSTEM_ORGI); } userRepository.save(user) ; OnlineUserUtils.clean(super.getOrgi(request)); @@ -179,7 +179,7 @@ public class UsersController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tempUser.setOrgid(super.getUser(request).getOrgid()); }else { - tempUser.setOrgid(UKDataContext.SYSTEM_ORGI); + tempUser.setOrgid(MainContext.SYSTEM_ORGI); } tempUser.setCallcenter(user.isCallcenter()); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiLoginController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiLoginController.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiLoginController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiLoginController.java index 4ce2f36e..7d31abfc 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiLoginController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiLoginController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api; +package com.chatopera.cc.app.handler.api; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.UserRoleRepository; -import com.chatopera.cc.webim.web.model.User; -import com.chatopera.cc.webim.web.model.UserRole; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.UserRoleRepository; +import com.chatopera.cc.app.model.User; +import com.chatopera.cc.app.model.UserRole; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -33,8 +33,6 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -43,10 +41,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; @RestController @RequestMapping("/tokens") @@ -78,7 +76,7 @@ public class ApiLoginController extends Handler{ userRepository.save(loginUser) ; } String auth = UKTools.getUUID(); - CacheHelper.getApiUserCacheBean().put(auth, loginUser, UKDataContext.SYSTEM_ORGI); + CacheHelper.getApiUserCacheBean().put(auth, loginUser, MainContext.SYSTEM_ORGI); entity = new ResponseEntity<>(auth, HttpStatus.OK) ; response.addCookie(new Cookie("authorization",auth)); }else{ @@ -98,7 +96,7 @@ public class ApiLoginController extends Handler{ @SuppressWarnings("rawtypes") @RequestMapping(method = RequestMethod.DELETE) public ResponseEntity logout(HttpServletRequest request , @RequestHeader(value="authorization") String authorization) { - CacheHelper.getApiUserCacheBean().delete(authorization, UKDataContext.SYSTEM_ORGI); + CacheHelper.getApiUserCacheBean().delete(authorization, MainContext.SYSTEM_ORGI); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiTokensErrorController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiTokensErrorController.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiTokensErrorController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiTokensErrorController.java index e091fc2e..df0b0af1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/ApiTokensErrorController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/ApiTokensErrorController.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api; +package com.chatopera.cc.app.handler.api; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.util.RestResult; import io.swagger.annotations.Api; import javax.servlet.http.HttpServletRequest; @@ -28,8 +28,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; @RestController @RequestMapping("/tokens/error") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/QueryParams.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/QueryParams.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/QueryParams.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/QueryParams.java index a6283023..22a6e9b2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/QueryParams.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/QueryParams.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.request; public class QueryParams { private String begin ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/RequestValues.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RequestValues.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/RequestValues.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RequestValues.java index ad890886..69cc1408 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/RequestValues.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RequestValues.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.request; import java.io.Serializable; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RestUtils.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RestUtils.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RestUtils.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RestUtils.java index 4d96fb3d..1862431f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RestUtils.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/request/RestUtils.java @@ -14,13 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.request; +package com.chatopera.cc.app.handler.api.request; -import org.apache.commons.lang.StringUtils; import org.springframework.http.HttpHeaders; -import java.util.Map; - public class RestUtils { public final static String RESP_KEY_RC = "rc"; public final static String RESP_KEY_MSG = "msg"; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiAgentUserController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiAgentUserController.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiAgentUserController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiAgentUserController.java index 0109bb6f..9ff72f8b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiAgentUserController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiAgentUserController.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.util.RestResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -33,9 +33,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; @RestController @RequestMapping("/api/agentuser") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallMonitorController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallMonitorController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallMonitorController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallMonitorController.java index 6ae437e4..1fa346df 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallMonitorController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallMonitorController.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Constants; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.aggregation.MathHelper; -import com.chatopera.cc.util.exception.CallOutRecordException; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.exception.CallOutRecordException; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -186,12 +186,12 @@ public class ApiCallMonitorController extends Handler { x.addProperty("name", g.getUname()); x.addProperty("organ", getOrganName(g.getOrgan())); - AgentStatus as = getAgentStatus(g.getId(), UKDataContext.SYSTEM_ORGI); + AgentStatus as = getAgentStatus(g.getId(), MainContext.SYSTEM_ORGI); if (as == null) { // 离线客服 - x.addProperty("web", UKDataContext.AgentStatusEnum.OFFLINE.zh()); + x.addProperty("web", MainContext.AgentStatusEnum.OFFLINE.zh()); } else { - x.addProperty("web", as.isBusy() ? UKDataContext.AgentStatusEnum.BUSY.zh() : UKDataContext.AgentStatusEnum.IDLE.zh()); + x.addProperty("web", as.isBusy() ? MainContext.AgentStatusEnum.BUSY.zh() : MainContext.AgentStatusEnum.IDLE.zh()); } String sipaccount = g.getSipaccount(); @@ -201,10 +201,10 @@ public class ApiCallMonitorController extends Handler { x.addProperty("sip", sipaccount); x.addProperty("status", sipstatus); if (Constants.FS_LEG_INCALL_ZH.equals(sipstatus)) - x.add("current", getStatusEvent(g.getId(), sipaccount, UKDataContext.CallServiceStatus.INCALL.toString())); + x.add("current", getStatusEvent(g.getId(), sipaccount, MainContext.CallServiceStatus.INCALL.toString())); } else { x.addProperty("sip", sipaccount); - x.addProperty("status", UKDataContext.CallServiceStatus.OFFLINE.toString()); + x.addProperty("status", MainContext.CallServiceStatus.OFFLINE.toString()); } } else { x.addProperty("sip", "未设置"); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallRecordsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallRecordsController.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallRecordsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallRecordsController.java index 707e6403..d82203cd 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiCallRecordsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiCallRecordsController.java @@ -13,26 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Constants; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.aggregation.CallOutHangupAggsResult; import com.chatopera.cc.util.aggregation.CallOutHangupAuditResult; import com.chatopera.cc.util.aggregation.MathHelper; -import com.chatopera.cc.util.exception.CallOutRecordException; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.SNSAccountRepository; -import com.chatopera.cc.webim.service.repository.StatusEventRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.service.storage.MinioService; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.SNSAccount; -import com.chatopera.cc.webim.web.model.StatusEvent; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.exception.CallOutRecordException; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.SNSAccountRepository; +import com.chatopera.cc.app.service.repository.StatusEventRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.service.storage.MinioService; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.SNSAccount; +import com.chatopera.cc.app.model.StatusEvent; +import com.chatopera.cc.app.model.User; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -157,8 +157,8 @@ public class ApiCallRecordsController extends Handler { organ, agent, called, - UKDataContext.CallTypeEnum.OUT.toString(), // 呼出 - UKDataContext.CallServiceStatus.HANGUP.toString(), // 挂机 + MainContext.CallTypeEnum.OUT.toString(), // 呼出 + MainContext.CallServiceStatus.HANGUP.toString(), // 挂机 null, // Dialplan,null代表所有外呼 new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[]{"createtime"})); @@ -426,7 +426,7 @@ public class ApiCallRecordsController extends Handler { } if (j.has("organ")) { - if (organRes.findByIdAndOrgi(j.get("organ").getAsString(), UKDataContext.SYSTEM_ORGI) == null) + if (organRes.findByIdAndOrgi(j.get("organ").getAsString(), MainContext.SYSTEM_ORGI) == null) return "该部门不存在。"; } @@ -481,7 +481,7 @@ public class ApiCallRecordsController extends Handler { fromdate, enddate, organ, - UKDataContext.SYSTEM_ORGI); + MainContext.SYSTEM_ORGI); // 查询结果序列化为聚合对象 final Map out = new HashMap(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatMessageController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatMessageController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatMessageController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatMessageController.java index 61e1c2c3..1abecdea 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatMessageController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatMessageController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.util.RestResult; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -31,9 +31,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.ChatMessageRepository; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java similarity index 98% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java index 9052d35e..a7b08ae0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.exception.CallOutRecordException; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.chatbot.ChatbotUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.exception.CallOutRecordException; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.util.ChatbotUtils; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; import com.chatopera.chatbot.ChatbotAPI; import com.chatopera.chatbot.ChatbotAPIRuntimeException; import com.google.gson.JsonArray; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactNotesController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactNotesController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactNotesController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactNotesController.java index d42a973b..bdc72711 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactNotesController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactNotesController.java @@ -13,23 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Constants; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.exception.CSKefuRestException; +import com.chatopera.cc.exception.CSKefuRestException; import com.chatopera.cc.util.json.GsonTools; -import com.chatopera.cc.webim.service.es.ContactNotesRepository; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.ContactNotes; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.es.ContactNotesRepository; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; +import com.chatopera.cc.app.model.ContactNotes; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.User; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -292,7 +292,7 @@ public class ApiContactNotesController extends Handler { JsonObject json = new JsonObject(); HttpHeaders headers = RestUtils.header(); j.addProperty("creater", super.getUser(request).getId()); - j.addProperty("orgi", UKDataContext.SYSTEM_ORGI); + j.addProperty("orgi", MainContext.SYSTEM_ORGI); if (!j.has("ops")) { json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_1); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactTagsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactTagsController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactTagsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactTagsController.java index 05b7d677..8b945e86 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactTagsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactTagsController.java @@ -14,20 +14,19 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.exception.CSKefuRestException; +import com.chatopera.cc.exception.CSKefuRestException; import com.chatopera.cc.util.json.GsonTools; -import com.chatopera.cc.webim.service.repository.TagRelationRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.Tag; -import com.chatopera.cc.webim.web.model.TagRelation; +import com.chatopera.cc.app.service.repository.TagRelationRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; +import com.chatopera.cc.app.model.Tag; +import com.chatopera.cc.app.model.TagRelation; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -199,7 +198,7 @@ public class ApiContactTagsController extends Handler { JsonObject json = new JsonObject(); HttpHeaders headers = RestUtils.header(); j.addProperty("creater", super.getUser(request).getId()); - j.addProperty("orgi", UKDataContext.SYSTEM_ORGI); + j.addProperty("orgi", MainContext.SYSTEM_ORGI); if (!j.has("ops")) { json.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_1); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactsController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactsController.java index f458f9e1..8260117c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiContactsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiContactsController.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiDailplanRunController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiDailplanRunController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiDailplanRunController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiDailplanRunController.java index dd5bde72..c6167005 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiDailplanRunController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiDailplanRunController.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Constants; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.exception.CallOutRuntimeException; -import com.chatopera.cc.webim.service.repository.CallOutDialplanRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.service.task.CallOutPlanTask; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.CallOutDialplan; +import com.chatopera.cc.exception.CallOutRuntimeException; +import com.chatopera.cc.app.service.repository.CallOutDialplanRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.service.task.CallOutPlanTask; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; +import com.chatopera.cc.app.model.CallOutDialplan; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -106,10 +106,10 @@ public class ApiDailplanRunController extends Handler { if (dp.isIsarchive()) { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_5); resp.addProperty(RestUtils.RESP_KEY_ERROR, String.format("当前呼叫计划已删除,该情况下无法启动。", dp.getStatus())); - } else if (dp.getStatus().equals(UKDataContext.CallOutDialplanStatusEnum.STOPPED.toString())) { + } else if (dp.getStatus().equals(MainContext.CallOutDialplanStatusEnum.STOPPED.toString())) { // 查询该技能组的SIP号码列表 - final JsonArray sips = getSipsByOrgan(dp.getOrgan().getId(), UKDataContext.SYSTEM_ORGI); + final JsonArray sips = getSipsByOrgan(dp.getOrgan().getId(), MainContext.SYSTEM_ORGI); if (sips.size() == 0) { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); @@ -118,13 +118,13 @@ public class ApiDailplanRunController extends Handler { } // 并发数,获得该部门的在线客服数 X 坐席外呼并发比 - final long countagent = userRes.countByOrgiAndAgentAndDatastatusAndOrgan(UKDataContext.SYSTEM_ORGI, true, false, dp.getOrgan().getId()); + final long countagent = userRes.countByOrgiAndAgentAndDatastatusAndOrgan(MainContext.SYSTEM_ORGI, true, false, dp.getOrgan().getId()); final int concurrency = (int) Math.ceil(countagent * dp.getConcurrenceratio()); logger.info("[callout executor] 并发数 {}", concurrency); if (concurrency >= 1) { dp.setExecuted(dp.getExecuted() + 1); // 非暂停中 - dp.setStatus(UKDataContext.CallOutDialplanStatusEnum.RUNNING.toString()); + dp.setStatus(MainContext.CallOutDialplanStatusEnum.RUNNING.toString()); dp.setCurconcurrence(concurrency); // 查看该计划是否为暂停中的计划 @@ -134,12 +134,12 @@ public class ApiDailplanRunController extends Handler { JsonParser parser = new JsonParser(); JsonObject pre = parser.parse(existed).getAsJsonObject(); // 非RUNNING的状态 - if (pre.has("status") && !(pre.get("status").getAsString().equals(UKDataContext.CallOutDialplanStatusEnum.RUNNING.toString()))) { + if (pre.has("status") && !(pre.get("status").getAsString().equals(MainContext.CallOutDialplanStatusEnum.RUNNING.toString()))) { logger.info("[callout api] 从暂停状态恢复到启动 {} {}", dp.getName(), dp.getId()); // 设置持久化状态 pre.addProperty("concurrency", concurrency); - pre.addProperty("status", UKDataContext.CallOutDialplanStatusEnum.RUNNING.toString()); + pre.addProperty("status", MainContext.CallOutDialplanStatusEnum.RUNNING.toString()); pre.addProperty("updatetime", (new Date()).toString()); pre.add("sips", sips); redisHashOps.put(String.format(Constants.FS_DIALPLAN_STATUS, dp.getVoicechannel().getBaseURL()), dp.getId(), pre.toString()); @@ -185,7 +185,7 @@ public class ApiDailplanRunController extends Handler { */ private JsonObject pause(final CallOutDialplan dp) { JsonObject resp = new JsonObject(); - if (dp.getStatus().equals(UKDataContext.CallOutDialplanStatusEnum.RUNNING.toString())) { + if (dp.getStatus().equals(MainContext.CallOutDialplanStatusEnum.RUNNING.toString())) { JsonObject payload = new JsonObject(); payload.addProperty("dialplan", dp.getId()); payload.addProperty("ops", "pause"); @@ -195,13 +195,13 @@ public class ApiDailplanRunController extends Handler { Date dt = new Date(); JsonObject payload2 = new JsonObject(); payload2.addProperty("concurrency", dp.getCurconcurrence()); - payload2.addProperty("status", UKDataContext.CallOutDialplanStatusEnum.STOPPED.toString()); + payload2.addProperty("status", MainContext.CallOutDialplanStatusEnum.STOPPED.toString()); payload2.addProperty("channel", dp.getVoicechannel().getBaseURL()); payload2.addProperty("updatetime", dt.toString()); callOutPlanTask.setHashKeyValue(String.format(Constants.FS_DIALPLAN_STATUS, dp.getVoicechannel().getBaseURL()), dp.getId(), payload2.toString()); dp.setUpdatetime(dt); - dp.setStatus(UKDataContext.CallOutDialplanStatusEnum.STOPPED.toString()); + dp.setStatus(MainContext.CallOutDialplanStatusEnum.STOPPED.toString()); callOutDialplanRes.save(dp); resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_MSG, "该呼叫计划被暂停。"); @@ -232,7 +232,7 @@ public class ApiDailplanRunController extends Handler { callOutPlanTask.delHashKey(String.format(Constants.FS_DIALPLAN_STATUS, dp.getVoicechannel().getBaseURL()), dp.getId()); // 更新数据库 - dp.setStatus(UKDataContext.CallOutDialplanStatusEnum.STOPPED.toString()); + dp.setStatus(MainContext.CallOutDialplanStatusEnum.STOPPED.toString()); dp.setIsarchive(true); dp.setUpdatetime(new Date()); callOutDialplanRes.save(dp); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiLeavemsgController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiLeavemsgController.java similarity index 83% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiLeavemsgController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiLeavemsgController.java index e5190ed6..77abe756 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiLeavemsgController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiLeavemsgController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import java.util.ArrayList; import java.util.List; @@ -25,8 +25,9 @@ import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.servlet.http.HttpServletRequest; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.util.RestResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -38,11 +39,10 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentService; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -62,7 +62,7 @@ public class ApiLeavemsgController extends Handler{ * @return */ @RequestMapping("/list") - @Menu(type = "apps" , subtype = "webim" , access = true) + @Menu(type = "apps" , subtype = "app" , access = true) @ApiOperation("获取留言列表") public ResponseEntity list(HttpServletRequest request , @RequestBody RequestValues values) { Page page = agentServiceRepository.findAll(new Specification(){ @@ -72,7 +72,7 @@ public class ApiLeavemsgController extends Handler{ List list = new ArrayList(); list.add(cb.equal(root.get("leavemsg").as(Boolean.class), true)) ; - list.add(cb.equal(root.get("leavemsgstatus").as(String.class), UKDataContext.LeaveMsgStatus.NOTPROCESS.toString())) ; + list.add(cb.equal(root.get("leavemsgstatus").as(String.class), MainContext.LeaveMsgStatus.NOTPROCESS.toString())) ; Predicate[] p = new Predicate[list.size()]; return cb.and(list.toArray(p)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOnlineUserController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOnlineUserController.java similarity index 79% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOnlineUserController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOnlineUserController.java index 10482c04..26deb157 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOnlineUserController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOnlineUserController.java @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.app.service.repository.OnlineUserRepository; +import com.chatopera.cc.util.RestResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,11 +35,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.OnlineUser; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.OnlineUser; @RestController @RequestMapping("/api/online/user") @@ -63,7 +63,7 @@ public class ApiOnlineUserController extends Handler{ if(!StringUtils.isBlank(userid)){ onlineUserList = onlineUserRepository.findByUseridAndOrgi(userid, super.getOrgi(request) , new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; }else{ - onlineUserList = onlineUserRepository.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; + onlineUserList = onlineUserRepository.findByOrgiAndStatus(super.getOrgi(request), MainContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; } return new ResponseEntity<>(new RestResult(RestResultType.OK, onlineUserList), HttpStatus.OK); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOrganController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOrganController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOrganController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOrganController.java index 1978498c..8a99f2d7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiOrganController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiOrganController.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.util.RestResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -33,9 +33,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Organ; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Organ; @RestController @RequestMapping("/api/organ") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQualityController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQualityController.java similarity index 83% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQualityController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQualityController.java index c731a194..ebdf2e58 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQualityController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQualityController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import java.util.ArrayList; import java.util.List; @@ -26,9 +26,10 @@ import javax.persistence.criteria.Root; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.util.RestResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -40,10 +41,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentService; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -63,7 +63,7 @@ public class ApiQualityController extends Handler{ * @return */ @RequestMapping( method = RequestMethod.GET) - @Menu(type = "apps" , subtype = "webim" , access = true) + @Menu(type = "apps" , subtype = "app" , access = true) @ApiOperation("获取质检列表") public ResponseEntity list(HttpServletRequest request , @Valid AgentService agentService , @Valid String begin , @Valid String end) { Page page = agentServiceRepository.findAll(new Specification(){ @@ -71,7 +71,7 @@ public class ApiQualityController extends Handler{ public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List list = new ArrayList(); - list.add((cb.equal(root.get("qualitystatus").as(String.class), UKDataContext.QualityStatus.NODIS.toString()))) ; + list.add((cb.equal(root.get("qualitystatus").as(String.class), MainContext.QualityStatus.NODIS.toString()))) ; Predicate[] p = new Predicate[list.size()]; return cb.and(list.toArray(p)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickReplyController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickReplyController.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickReplyController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickReplyController.java index 372c9935..7f1c79b2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickReplyController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickReplyController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.es.QuickReplyRepository; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.QuickReply; +import com.chatopera.cc.app.service.es.QuickReplyRepository; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.QuickReply; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,7 +37,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.webim.util.RestResultType; +import com.chatopera.cc.util.RestResultType; @RestController @RequestMapping("/api/quickreply") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickTypeController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickTypeController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickTypeController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickTypeController.java index a23d06be..27230db3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiQuickTypeController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiQuickTypeController.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.es.QuickReplyRepository; -import com.chatopera.cc.webim.service.repository.QuickTypeRepository; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.QuickType; +import com.chatopera.cc.app.service.es.QuickReplyRepository; +import com.chatopera.cc.app.service.repository.QuickTypeRepository; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.QuickType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiServiceQueneController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiServiceQueneController.java similarity index 73% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiServiceQueneController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiServiceQueneController.java index 76a82d4f..325ee2d6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiServiceQueneController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiServiceQueneController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import java.util.Date; import java.util.List; @@ -22,13 +22,14 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.AgentStatusRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.AgentStatusRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -37,13 +38,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.SessionConfig; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.SessionConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -85,7 +85,7 @@ public class ApiServiceQueneController extends Handler{ public ResponseEntity agentStatus(HttpServletRequest request , @Valid String status) { User user = super.getUser(request) ; AgentStatus agentStatus = null ; - if(!StringUtils.isBlank(status) && status.equals(UKDataContext.AgentStatusEnum.READY.toString())) { + if(!StringUtils.isBlank(status) && status.equals(MainContext.AgentStatusEnum.READY.toString())) { List agentStatusList = agentStatusRepository.findByAgentnoAndOrgi(user.getId() , super.getOrgi(request)); if(agentStatusList.size() > 0){ agentStatus = agentStatusList.get(0) ; @@ -106,7 +106,7 @@ public class ApiServiceQueneController extends Handler{ SessionConfig sessionConfig = ServiceQuene.initSessionConfig(super.getOrgi(request)) ; - agentStatus.setUsers(agentUserRepository.countByAgentnoAndStatusAndOrgi(user.getId(), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request))); + agentStatus.setUsers(agentUserRepository.countByAgentnoAndStatusAndOrgi(user.getId(), MainContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request))); agentStatus.setUpdatetime(new Date()); @@ -120,37 +120,37 @@ public class ApiServiceQueneController extends Handler{ * 更新当前用户状态 */ agentStatus.setUsers(ServiceQuene.getAgentUsers(agentStatus.getAgentno(), super.getOrgi(request))); - agentStatus.setStatus(UKDataContext.AgentStatusEnum.READY.toString()); + agentStatus.setStatus(MainContext.AgentStatusEnum.READY.toString()); CacheHelper.getAgentStatusCacheBean().put(agentStatus.getAgentno(), agentStatus, super.getOrgi(request)); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(),agentStatus.getAgentno(), agentStatus.getSkill(),"0".equals(super.getUser(request).getUsertype()), agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.OFFLINE.toString(),UKDataContext.AgentStatusEnum.READY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , null); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(),agentStatus.getAgentno(), agentStatus.getSkill(),"0".equals(super.getUser(request).getUsertype()), agentStatus.getAgentno(), MainContext.AgentStatusEnum.OFFLINE.toString(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , null); ServiceQuene.allotAgent(agentStatus.getAgentno(), super.getOrgi(request)); } }else if(!StringUtils.isBlank(status)) { - if(status.equals(UKDataContext.AgentStatusEnum.NOTREADY.toString())) { + if(status.equals(MainContext.AgentStatusEnum.NOTREADY.toString())) { List agentStatusList = agentStatusRepository.findByAgentnoAndOrgi(user.getId() , super.getOrgi(request)); for(AgentStatus temp : agentStatusList){ - ServiceQuene.recordAgentStatus(temp.getAgentno(),temp.getUsername(),temp.getAgentno(), temp.getSkill(),"0".equals(super.getUser(request).getUsertype()), temp.getAgentno(), temp.isBusy() ? UKDataContext.AgentStatusEnum.BUSY.toString():UKDataContext.AgentStatusEnum.READY.toString(),UKDataContext.AgentStatusEnum.NOTREADY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , temp.getOrgi() , temp.getUpdatetime()); + ServiceQuene.recordAgentStatus(temp.getAgentno(),temp.getUsername(),temp.getAgentno(), temp.getSkill(),"0".equals(super.getUser(request).getUsertype()), temp.getAgentno(), temp.isBusy() ? MainContext.AgentStatusEnum.BUSY.toString(): MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentStatusEnum.NOTREADY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , temp.getOrgi() , temp.getUpdatetime()); agentStatusRepository.delete(temp); } CacheHelper.getAgentStatusCacheBean().delete(super.getUser(request).getId(),super.getOrgi(request)); - }else if(!StringUtils.isBlank(status) && status.equals(UKDataContext.AgentStatusEnum.BUSY.toString())) { + }else if(!StringUtils.isBlank(status) && status.equals(MainContext.AgentStatusEnum.BUSY.toString())) { List agentStatusList = agentStatusRepository.findByAgentnoAndOrgi(user.getId() , super.getOrgi(request)); if(agentStatusList.size() > 0){ agentStatus = agentStatusList.get(0) ; agentStatus.setBusy(true); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(),agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.READY.toString(),UKDataContext.AgentStatusEnum.BUSY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(),agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentStatusEnum.BUSY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); agentStatus.setUpdatetime(new Date()); agentStatusRepository.save(agentStatus); CacheHelper.getAgentStatusCacheBean().put(agentStatus.getAgentno(), agentStatus, super.getOrgi(request)); } - }else if(!StringUtils.isBlank(status) && status.equals(UKDataContext.AgentStatusEnum.NOTBUSY.toString())) { + }else if(!StringUtils.isBlank(status) && status.equals(MainContext.AgentStatusEnum.NOTBUSY.toString())) { List agentStatusList = agentStatusRepository.findByAgentnoAndOrgi(user.getId() , super.getOrgi(request)); if(agentStatusList.size() > 0){ agentStatus = agentStatusList.get(0) ; agentStatus.setBusy(false); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(),agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.BUSY.toString(),UKDataContext.AgentStatusEnum.READY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(),agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), MainContext.AgentStatusEnum.BUSY.toString(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); agentStatus.setUpdatetime(new Date()); agentStatusRepository.save(agentStatus); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiSysDicController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiSysDicController.java similarity index 85% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiSysDicController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiSysDicController.java index bcdafc2e..1637b2fc 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiSysDicController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiSysDicController.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.webim.util.RestResult; +import com.chatopera.cc.util.RestResult; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,9 +27,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.UKeFuDic; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiTagsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiTagsController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiTagsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiTagsController.java index 930349fb..8370ecb4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiTagsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiTagsController.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.exception.CSKefuRestException; +import com.chatopera.cc.exception.CSKefuRestException; import com.chatopera.cc.util.json.GsonTools; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.handler.api.request.RestUtils; -import com.chatopera.cc.webim.web.model.Tag; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.handler.api.request.RestUtils; +import com.chatopera.cc.app.model.Tag; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiUserController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiUserController.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiUserController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiUserController.java index 1258cc13..b0058049 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiUserController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiUserController.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -34,8 +34,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.util.RestResultType; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.util.RestResultType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiWebIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiWebIMController.java similarity index 82% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiWebIMController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiWebIMController.java index 0ae8b0b7..d2c0ccb1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/ApiWebIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiWebIMController.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.web.model.CousultInvite; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.app.model.CousultInvite; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -33,9 +33,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.util.RestResultType; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.util.RestResultType; +import com.chatopera.cc.app.handler.Handler; @RestController @RequestMapping("/api/webim") @@ -52,7 +52,7 @@ public class ApiWebIMController extends Handler{ * @return */ @RequestMapping( method = RequestMethod.GET) - @Menu(type = "apps" , subtype = "webim" , access = true) + @Menu(type = "apps" , subtype = "app" , access = true) @ApiOperation("获取在线客服") public ResponseEntity list(HttpServletRequest request) { return new ResponseEntity<>(new RestResult(RestResultType.OK, consultInviteRepository.findByOrgi(super.getOrgi(request))), HttpStatus.OK); @@ -65,7 +65,7 @@ public class ApiWebIMController extends Handler{ * @return */ @RequestMapping(method = RequestMethod.PUT) - @Menu(type = "apps" , subtype = "webim" , access = true) + @Menu(type = "apps" , subtype = "app" , access = true) @ApiOperation("修改在线客服信息,只提供修改操作") public ResponseEntity put(HttpServletRequest request , @Valid CousultInvite consult) { if(consult != null && !StringUtils.isBlank(consult.getId())){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/QueryParams.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/QueryParams.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/QueryParams.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/QueryParams.java index 94dd4f3e..1be2bfb1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/QueryParams.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/QueryParams.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.request; +package com.chatopera.cc.app.handler.api.rest; public class QueryParams { private String begin ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RequestValues.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/RequestValues.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RequestValues.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/RequestValues.java index 48e0c175..6de39b4e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/request/RequestValues.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/RequestValues.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.request; +package com.chatopera.cc.app.handler.api.rest; import java.io.Serializable; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/UkefuApiTagsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/UkefuApiTagsController.java similarity index 81% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/UkefuApiTagsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/UkefuApiTagsController.java index 9215bf40..9ef1a35b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/api/rest/UkefuApiTagsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/UkefuApiTagsController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.api.rest; +package com.chatopera.cc.app.handler.api.rest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.util.RestResult; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.util.RestResult; +import com.chatopera.cc.app.handler.Handler; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,7 +35,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.chatopera.cc.webim.util.RestResultType; +import com.chatopera.cc.util.RestResultType; @RestController @RequestMapping("/api/tags") @@ -55,6 +55,6 @@ public class UkefuApiTagsController extends Handler { @Menu(type = "apps" , subtype = "tags" , access = true) @ApiOperation("按照分类获取标签列表,Type 参数类型来自于 枚举,可选值目前有三个 : user workorders summary") public ResponseEntity list(HttpServletRequest request , @Valid String type) { - return new ResponseEntity<>(new RestResult(RestResultType.OK, tagRes.findByOrgiAndTagtype(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : UKDataContext.ModelType.USER.toString())), HttpStatus.OK); + return new ResponseEntity<>(new RestResult(RestResultType.OK, tagRes.findByOrgiAndTagtype(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : MainContext.ModelType.USER.toString())), HttpStatus.OK); } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/AppsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/AppsController.java similarity index 80% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/AppsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/AppsController.java index 0097d359..1e43f4e5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/AppsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/AppsController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps; +package com.chatopera.cc.app.handler.apps; import java.util.ArrayList; import java.util.Date; @@ -23,13 +23,13 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -41,17 +41,17 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.InviteRecordRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.service.repository.UserEventRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.InviteRecord; -import com.chatopera.cc.webim.web.model.OnlineUser; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.InviteRecordRepository; +import com.chatopera.cc.app.service.repository.OnlineUserRepository; +import com.chatopera.cc.app.service.repository.OrgiSkillRelRepository; +import com.chatopera.cc.app.service.repository.UserEventRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.InviteRecord; +import com.chatopera.cc.app.model.OnlineUser; +import com.chatopera.cc.app.model.OrgiSkillRel; +import com.chatopera.cc.app.model.User; @Controller public class AppsController extends Handler { @@ -78,7 +78,7 @@ public class AppsController extends Handler { @Menu(type="apps", subtype="content") public ModelAndView content(ModelMap map , HttpServletRequest request,@Valid String msg){ - Page onlineUserList = this.onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; + Page onlineUserList = this.onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; List ids = new ArrayList(); for(OnlineUser onlineUser : onlineUserList.getContent()){ onlineUser.setBetweentime((int) (System.currentTimeMillis() - onlineUser.getLogintime().getTime())); @@ -111,21 +111,21 @@ public class AppsController extends Handler { map.put("agents",getUsers(request).size()) ; - map.put("webIMInvite", UKTools.getWebIMInviteStatus(onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()))) ; + map.put("webIMInvite", UKTools.getWebIMInviteStatus(onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.OnlineUserOperatorStatus.ONLINE.toString()))) ; map.put("inviteResult", UKTools.getWebIMInviteResult(onlineUserRes.findByOrgiAndAgentnoAndCreatetimeRange(super.getOrgi(request), super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime()))) ; - map.put("agentUserCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentUserCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), MainContext.AgentUserStatusEnum.INSERVICE.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; - map.put("agentServicesCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentServicesCount", onlineUserRes.countByAgentForAgentUser(super.getOrgi(request), MainContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; - map.put("agentServicesAvg", onlineUserRes.countByAgentForAvagTime(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; + map.put("agentServicesAvg", onlineUserRes.countByAgentForAvagTime(super.getOrgi(request), MainContext.AgentUserStatusEnum.END.toString(),super.getUser(request).getId() , UKTools.getStartTime() , UKTools.getEndTime())) ; } @RequestMapping({"/apps/onlineuser"}) @Menu(type="apps", subtype="onlineuser") public ModelAndView onlineuser(ModelMap map , HttpServletRequest request){ - Page onlineUserList = this.onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; + Page onlineUserList = this.onlineUserRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.OnlineUserOperatorStatus.ONLINE.toString(), new PageRequest(super.getP(request), super.getPs(request), Sort.Direction.DESC, new String[] { "createtime" })) ; List ids = new ArrayList(); for(OnlineUser onlineUser : onlineUserList.getContent()){ onlineUser.setBetweentime((int) (System.currentTimeMillis() - onlineUser.getLogintime().getTime())); @@ -156,7 +156,7 @@ public class AppsController extends Handler { public ModelAndView invite(ModelMap map , HttpServletRequest request , @Valid String id) throws Exception{ OnlineUser onlineUser = onlineUserRes.findOne(id) ; if(onlineUser!=null){ - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.INVITE.toString()); + onlineUser.setInvitestatus(MainContext.OnlineUserInviteStatus.INVITE.toString()); onlineUser.setInvitetimes(onlineUser.getInvitetimes()+1); onlineUserRes.save(onlineUser) ; OnlineUserUtils.sendWebIMClients(onlineUser.getUserid() , "invite"); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/agent/AgentController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/agent/AgentController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/agent/AgentController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/agent/AgentController.java index 600bedc4..6518d411 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/agent/AgentController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/agent/AgentController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.agent; +package com.chatopera.cc.app.handler.apps.agent; import java.io.File; import java.io.IOException; @@ -28,24 +28,24 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.PinYinTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.util.exception.CSKefuException; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.exception.CSKefuException; import com.chatopera.cc.util.extra.DataExchangeInterface; import com.chatopera.cc.util.mobile.MobileAddress; import com.chatopera.cc.util.mobile.MobileNumberUtils; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.es.QuickReplyRepository; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.PropertiesEventUtils; -import com.chatopera.cc.webim.util.router.OutMessageRouter; -import com.chatopera.cc.webim.util.server.message.ChatMessage; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.es.QuickReplyRepository; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.util.PropertiesEventUtils; +import com.chatopera.cc.app.im.router.OutMessageRouter; +import com.chatopera.cc.app.im.message.ChatMessage; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -66,7 +66,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.handler.Handler; import freemarker.template.TemplateException; @@ -231,24 +231,24 @@ public class AgentController extends Handler { } } - if(UKDataContext.ChannelTypeEnum.WEIXIN.toString().equals(agentUser.getChannel())){ + if(MainContext.ChannelTypeEnum.WEIXIN.toString().equals(agentUser.getChannel())){ List weiXinUserList = weiXinUserRes.findByOpenidAndOrgi(agentUser.getUserid(), super.getOrgi(request)) ; if(weiXinUserList.size() > 0){ WeiXinUser weiXinUser = weiXinUserList.get(0) ; view.addObject("weiXinUser",weiXinUser); } - }else if(UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())){ + }else if(MainContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())){ List onlineUserList = this.onlineUserRes.findByUseridAndOrgi(agentUser.getUserid(), super.getOrgi(request)) ; if(onlineUserList.size() > 0){ OnlineUser onlineUser = onlineUserList.get(0) ; - if(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString().equals(onlineUser.getStatus())){ + if(MainContext.OnlineUserOperatorStatus.OFFLINE.toString().equals(onlineUser.getStatus())){ onlineUser.setBetweentime((int) (onlineUser.getUpdatetime().getTime() - onlineUser.getLogintime().getTime())); }else{ onlineUser.setBetweentime((int) (System.currentTimeMillis() - onlineUser.getLogintime().getTime())); } view.addObject("onlineUser",onlineUser); } - }else if(UKDataContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel())){ + }else if(MainContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel())){ if(agentService!=null && !StringUtils.isBlank(agentService.getOwner())) { StatusEvent statusEvent = this.statusEventRes.findById(agentService.getOwner()) ; if(statusEvent!=null){ @@ -267,13 +267,13 @@ public class AgentController extends Handler { .valueOf(this.agentServiceRepository .countByUseridAndOrgiAndStatus(agentUser .getUserid(), super.getOrgi(request), - UKDataContext.AgentUserStatusEnum.END.toString()))); + MainContext.AgentUserStatusEnum.END.toString()))); - view.addObject("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.USER.toString())) ; + view.addObject("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.USER.toString())) ; view.addObject("tagRelationList", tagRelationRes.findByUserid(agentUser.getUserid())) ; view.addObject("quickReplyList", quickReplyRes.findByOrgiAndCreater(super.getOrgi(request) , super.getUser(request).getId() , null)) ; - List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), UKDataContext.QuickTypeEnum.PUB.toString()) ; - List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), UKDataContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; + List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), MainContext.QuickTypeEnum.PUB.toString()) ; + List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), MainContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; quickTypeList.addAll(priQuickTypeList) ; view.addObject("pubQuickTypeList", quickTypeList) ; } @@ -299,7 +299,7 @@ public class AgentController extends Handler { agentServiceRepository.findByUseridAndOrgiAndStatus( agentService.getUserid(), super.getOrgi(request), - UKDataContext.AgentUserStatusEnum.END.toString(), + MainContext.AgentUserStatusEnum.END.toString(), defaultSort ) ); @@ -310,14 +310,14 @@ public class AgentController extends Handler { List relaList = agentUserContactsRes.findByUseridAndOrgi(agentService.getUserid(), agentService.getOrgi()) ; if(relaList.size() > 0){ AgentUserContacts agentUserContacts = relaList.get(0) ; - if(UKDataContext.model.get("contacts")!=null && !StringUtils.isBlank(agentUserContacts.getContactsid())){ - DataExchangeInterface dataExchange = (DataExchangeInterface) UKDataContext.getContext().getBean("contacts") ; + if(MainContext.model.get("contacts")!=null && !StringUtils.isBlank(agentUserContacts.getContactsid())){ + DataExchangeInterface dataExchange = (DataExchangeInterface) MainContext.getContext().getBean("contacts") ; if(dataExchange!=null){ map.addAttribute("contacts", dataExchange.getDataByIdAndOrgi(agentUserContacts.getContactsid(), super.getOrgi(request))) ; } } - if(UKDataContext.model.get("workorders")!=null && !StringUtils.isBlank(agentUserContacts.getContactsid())){ - DataExchangeInterface dataExchange = (DataExchangeInterface) UKDataContext.getContext().getBean("workorders") ; + if(MainContext.model.get("workorders")!=null && !StringUtils.isBlank(agentUserContacts.getContactsid())){ + DataExchangeInterface dataExchange = (DataExchangeInterface) MainContext.getContext().getBean("workorders") ; if(dataExchange!=null){ map.addAttribute("workOrdersList", dataExchange.getListDataByIdAndOrgi(agentUserContacts.getContactsid(), super.getUser(request).getId(), super.getOrgi(request))) ; } @@ -364,18 +364,18 @@ public class AgentController extends Handler { processRelaData(request, agentService, map); } } - if(UKDataContext.ChannelTypeEnum.WEIXIN.toString().equals(agentUser.getChannel())){ + if(MainContext.ChannelTypeEnum.WEIXIN.toString().equals(agentUser.getChannel())){ List weiXinUserList = weiXinUserRes.findByOpenidAndOrgi(agentUser.getUserid(), super.getOrgi(request)) ; if(weiXinUserList.size() > 0){ WeiXinUser weiXinUser = weiXinUserList.get(0) ; view.addObject("weiXinUser",weiXinUser); } - }else if(UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())){ + }else if(MainContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())){ List onlineUserList = this.onlineUserRes.findByUseridAndOrgi(agentUser.getUserid(), super.getOrgi(request)) ; if(onlineUserList.size() > 0){ OnlineUser onlineUser = onlineUserList.get(0) ; if(onlineUser.getLogintime()!=null) { - if(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString().equals(onlineUser.getStatus())){ + if(MainContext.OnlineUserOperatorStatus.OFFLINE.toString().equals(onlineUser.getStatus())){ onlineUser.setBetweentime((int) (onlineUser.getUpdatetime().getTime() - onlineUser.getLogintime().getTime())); }else{ onlineUser.setBetweentime((int) (System.currentTimeMillis() - onlineUser.getLogintime().getTime())); @@ -383,7 +383,7 @@ public class AgentController extends Handler { } view.addObject("onlineUser",onlineUser); } - }else if(UKDataContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel())){ + }else if(MainContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel())){ if(agentService!=null && !StringUtils.isBlank(agentService.getOwner())) { StatusEvent statusEvent = this.statusEventRes.findById(agentService.getOwner()) ; if(statusEvent!=null){ @@ -401,7 +401,7 @@ public class AgentController extends Handler { .valueOf(this.agentServiceRepository .countByUseridAndOrgiAndStatus(agentUser .getUserid(), super.getOrgi(request), - UKDataContext.AgentUserStatusEnum.END + MainContext.AgentUserStatusEnum.END .toString()))); view.addObject("tagRelationList", tagRelationRes.findByUserid(agentUser.getUserid())) ; } @@ -414,10 +414,10 @@ public class AgentController extends Handler { } - view.addObject("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.USER.toString())) ; + view.addObject("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.USER.toString())) ; view.addObject("quickReplyList", quickReplyRes.findByOrgiAndCreater(super.getOrgi(request) , super.getUser(request).getId() , null)) ; - List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), UKDataContext.QuickTypeEnum.PUB.toString()) ; - List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), UKDataContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; + List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), MainContext.QuickTypeEnum.PUB.toString()) ; + List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), MainContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; quickTypeList.addAll(priQuickTypeList) ; view.addObject("pubQuickTypeList", quickTypeList) ; @@ -455,8 +455,8 @@ public class AgentController extends Handler { @RequestMapping("/workorders/list") @Menu(type = "apps", subtype = "workorderslist") public ModelAndView workorderslist(HttpServletRequest request , String contactsid , ModelMap map) { - if(UKDataContext.model.get("workorders")!=null && !StringUtils.isBlank(contactsid)){ - DataExchangeInterface dataExchange = (DataExchangeInterface) UKDataContext.getContext().getBean("workorders") ; + if(MainContext.model.get("workorders")!=null && !StringUtils.isBlank(contactsid)){ + DataExchangeInterface dataExchange = (DataExchangeInterface) MainContext.getContext().getBean("workorders") ; if(dataExchange!=null){ map.addAttribute("workOrdersList", dataExchange.getListDataByIdAndOrgi(contactsid , super.getUser(request).getId(), super.getOrgi(request))) ; } @@ -491,7 +491,7 @@ public class AgentController extends Handler { agentStatus.setUpdatetime(new Date()); SessionConfig sessionConfig = ServiceQuene.initSessionConfig(super.getOrgi(request)) ; - agentStatus.setUsers(agentUserRepository.countByAgentnoAndStatusAndOrgi(user.getId(), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request))); + agentStatus.setUsers(agentUserRepository.countByAgentnoAndStatusAndOrgi(user.getId(), MainContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request))); agentStatus.setOrgi(super.getOrgi(request)); agentStatus.setMaxusers(sessionConfig.getMaxuser()); @@ -502,12 +502,12 @@ public class AgentController extends Handler { * 更新当前用户状态 */ agentStatus.setUsers(ServiceQuene.getAgentUsers(agentStatus.getAgentno(), super.getOrgi(request))); - agentStatus.setStatus(UKDataContext.AgentStatusEnum.READY.toString()); + agentStatus.setStatus(MainContext.AgentStatusEnum.READY.toString()); CacheHelper.getAgentStatusCacheBean().put(agentStatus.getAgentno(), agentStatus, super.getOrgi(request)); ServiceQuene.allotAgent(agentStatus.getAgentno(), super.getOrgi(request)); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()) ,agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.OFFLINE.toString(), UKDataContext.AgentStatusEnum.READY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , null); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()) ,agentStatus.getAgentno(), MainContext.AgentStatusEnum.OFFLINE.toString(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , null); } return request(super.createRequestPageTempletResponse("/public/success")) ; @@ -532,7 +532,7 @@ public class AgentController extends Handler { if(agentStatusList.size() > 0){ agentStatus = agentStatusList.get(0) ; agentStatus.setBusy(true); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.READY.toString(), UKDataContext.AgentStatusEnum.BUSY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), "0".equals(super.getUser(request).getUsertype()),agentStatus.getAgentno(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentStatusEnum.BUSY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); agentStatus.setUpdatetime(new Date()); agentStatusRepository.save(agentStatus); CacheHelper.getAgentStatusCacheBean().put(agentStatus.getAgentno(), agentStatus, super.getOrgi(request)); @@ -551,7 +551,7 @@ public class AgentController extends Handler { if(agentStatusList.size() > 0){ agentStatus = agentStatusList.get(0) ; agentStatus.setBusy(false); - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(),"0".equals(super.getUser(request).getUsertype()), agentStatus.getAgentno(), UKDataContext.AgentStatusEnum.BUSY.toString(), UKDataContext.AgentStatusEnum.READY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(),agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(),"0".equals(super.getUser(request).getUsertype()), agentStatus.getAgentno(), MainContext.AgentStatusEnum.BUSY.toString(), MainContext.AgentStatusEnum.READY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString() , agentStatus.getOrgi() , agentStatus.getUpdatetime()); agentStatus.setUpdatetime(new Date()); agentStatusRepository.save(agentStatus); @@ -564,14 +564,14 @@ public class AgentController extends Handler { @RequestMapping(value="/clean") @Menu(type = "apps", subtype = "clean" , access= false) public ModelAndView clean(HttpServletRequest request) throws Exception{ - List agentUserList = agentUserRepository.findByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), UKDataContext.AgentUserStatusEnum.END.toString(), super.getOrgi(request)); + List agentUserList = agentUserRepository.findByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), MainContext.AgentUserStatusEnum.END.toString(), super.getOrgi(request)); List agentServiceList = new ArrayList(); for(AgentUser agentUser : agentUserList){ if(agentUser!=null && super.getUser(request).getId().equals(agentUser.getAgentno())){ ServiceQuene.deleteAgentUser(agentUser, super.getOrgi(request)); AgentService agentService = agentServiceRepository.findByIdAndOrgi(agentUser.getAgentserviceid(), super.getOrgi(request)) ; if(agentService!=null){ - agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.END.toString()); agentServiceList.add(agentService) ; } } @@ -591,7 +591,7 @@ public class AgentController extends Handler { ServiceQuene.deleteAgentUser(agentUser, super.getOrgi(request)); if(!StringUtils.isBlank(agentUser.getAgentserviceid())){ AgentService agentService = agentServiceRepository.findByIdAndOrgi(agentUser.getAgentserviceid(), super.getOrgi(request)) ; - agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.END.toString()); agentServiceRepository.save(agentService) ; } } @@ -726,24 +726,24 @@ public class AgentController extends Handler { AgentUser agentUser = agentUserRepository.findByIdAndOrgi(id, super.getOrgi(request)) ; if(agentUser!=null && paste == null){ - router = (OutMessageRouter) UKDataContext.getContext().getBean(agentUser.getChannel()) ; + router = (OutMessageRouter) MainContext.getContext().getBean(agentUser.getChannel()) ; MessageOutContent outMessage = new MessageOutContent() ; if(router!=null){ outMessage.setMessage(fileURL); outMessage.setFilename(imgFile.getOriginalFilename()); outMessage.setFilesize((int) imgFile.getSize()); if(imgFile.getContentType()!=null && imgFile.getContentType().indexOf("image") >= 0){ - outMessage.setMessageType(UKDataContext.MediaTypeEnum.IMAGE.toString()); - data.setMsgtype(UKDataContext.MediaTypeEnum.IMAGE.toString()); + outMessage.setMessageType(MainContext.MediaTypeEnum.IMAGE.toString()); + data.setMsgtype(MainContext.MediaTypeEnum.IMAGE.toString()); }else{ - outMessage.setMessageType(UKDataContext.MediaTypeEnum.FILE.toString()); - data.setMsgtype(UKDataContext.MediaTypeEnum.FILE.toString()); + outMessage.setMessageType(MainContext.MediaTypeEnum.FILE.toString()); + data.setMsgtype(MainContext.MediaTypeEnum.FILE.toString()); } - outMessage.setCalltype(UKDataContext.CallTypeEnum.OUT.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.OUT.toString()); outMessage.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); outMessage.setNickName(super.getUser(request).getUsername()); - router.handler(agentUser.getUserid(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); + router.handler(agentUser.getUserid(), MainContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); } //同时发送消息给 坐席 data.setMessage(fileURL); @@ -752,7 +752,7 @@ public class AgentController extends Handler { data.setAgentserviceid(agentUser.getAgentserviceid()); - data.setCalltype(UKDataContext.CallTypeEnum.OUT.toString()); + data.setCalltype(MainContext.CallTypeEnum.OUT.toString()); if(!StringUtils.isBlank(agentUser.getAgentno())){ data.setTouser(agentUser.getUserid()); } @@ -769,7 +769,7 @@ public class AgentController extends Handler { chatMessageRepository.save(data) ; - NettyClients.getInstance().sendAgentEventMessage(agentUser.getAgentno(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data); + NettyClients.getInstance().sendAgentEventMessage(agentUser.getAgentno(), MainContext.MessageTypeEnum.MESSAGE.toString(), data); } }else{ @@ -816,7 +816,7 @@ public class AgentController extends Handler { AgentUser agentUser = (AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(chatMessage.getUserid(), chatMessage.getOrgi()) ; if(agentUser!=null){ - router = (OutMessageRouter) UKDataContext.getContext().getBean(agentUser.getChannel()) ; + router = (OutMessageRouter) MainContext.getContext().getBean(agentUser.getChannel()) ; MessageOutContent outMessage = new MessageOutContent() ; if(router!=null){ outMessage.setMessage("/res/image.html?id="+fileName); @@ -825,12 +825,12 @@ public class AgentController extends Handler { outMessage.setAttachmentid(chatMessage.getAttachmentid()); outMessage.setFilesize((int) imageFile.length()); - outMessage.setMessageType(UKDataContext.MediaTypeEnum.ACTION.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.INVITE.toString()); + outMessage.setMessageType(MainContext.MediaTypeEnum.ACTION.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.INVITE.toString()); outMessage.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); outMessage.setNickName(super.getUser(request).getUsername()); - router.handler(agentUser.getUserid(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); + router.handler(agentUser.getUserid(), MainContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); } } }finally{ @@ -851,7 +851,7 @@ public class AgentController extends Handler { attachmentFile.setCreater(super.getUser(request).getId()); attachmentFile.setOrgi(super.getOrgi(request)); attachmentFile.setOrgan(super.getUser(request).getOrgan()); - attachmentFile.setModel(UKDataContext.ModelType.WEBIM.toString()); + attachmentFile.setModel(MainContext.ModelType.WEBIM.toString()); attachmentFile.setFilelength((int) file.getSize()); if(file.getContentType()!=null && file.getContentType().length() > 255){ attachmentFile.setFiletype(file.getContentType().substring(0 , 255)); @@ -869,7 +869,7 @@ public class AgentController extends Handler { } attachmentFile.setFileid(fileid); attachementRes.save(attachmentFile) ; - FileUtils.writeByteArrayToFile(new File(path , "app/webim/"+fileid), file.getBytes()); + FileUtils.writeByteArrayToFile(new File(path , "app/app/"+fileid), file.getBytes()); id = attachmentFile.getId(); } } @@ -909,7 +909,7 @@ public class AgentController extends Handler { agentUserContactsRes.save(agentUserContacts) ; } } - DataExchangeInterface dataExchange = (DataExchangeInterface) UKDataContext.getContext().getBean("contacts") ; + DataExchangeInterface dataExchange = (DataExchangeInterface) MainContext.getContext().getBean("contacts") ; if(dataExchange!=null){ map.addAttribute("contacts", dataExchange.getDataByIdAndOrgi(contactsid, super.getOrgi(request))) ; } @@ -929,7 +929,7 @@ public class AgentController extends Handler { map.addAttribute("summary", summaries.get(0)) ; } } - map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; map.addAttribute("userid", userid) ; map.addAttribute("agentserviceid", agentserviceid) ; map.addAttribute("agentuserid", agentuserid) ; @@ -1041,7 +1041,7 @@ public class AgentController extends Handler { agentUser.setAgentno(agentno); CacheHelper.getAgentUserCacheBean().put(userid , agentUser , super.getOrgi(request)) ; agentUserRepository.save(agentUser) ; - if(UKDataContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus())){ //转接 , 发送消息给 目标坐席 + if(MainContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus())){ //转接 , 发送消息给 目标坐席 AgentStatus agentStatus = (AgentStatus) CacheHelper.getAgentStatusCacheBean().getCacheObject(super.getUser(request).getId(), super.getOrgi(request)) ; if(agentStatus!=null){ @@ -1054,7 +1054,7 @@ public class AgentController extends Handler { agentService.setAgentno(agentno); agentService.setAgentusername(transAgentStatus.getUsername()); } - NettyClients.getInstance().sendAgentEventMessage(agentno, UKDataContext.MessageTypeEnum.NEW.toString(), agentUser); + NettyClients.getInstance().sendAgentEventMessage(agentno, MainContext.MessageTypeEnum.NEW.toString(), agentUser); } }else{ agentUser = agentUserRepository.findByIdAndOrgi(agentuserid, super.getOrgi(request)); @@ -1085,8 +1085,8 @@ public class AgentController extends Handler { @Menu(type = "setting" , subtype = "quickreply" , admin= true) public ModelAndView quicklist(ModelMap map , HttpServletRequest request , @Valid String typeid) { map.addAttribute("quickReplyList", quickReplyRes.findByOrgiAndCreater(super.getOrgi(request) , super.getUser(request).getId() , null)) ; - List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), UKDataContext.QuickTypeEnum.PUB.toString()) ; - List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), UKDataContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; + List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request), MainContext.QuickTypeEnum.PUB.toString()) ; + List priQuickTypeList = quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request), MainContext.QuickTypeEnum.PRI.toString(), super.getUser(request).getId()) ; quickTypeList.addAll(priQuickTypeList) ; map.addAttribute("pubQuickTypeList", quickTypeList) ; @@ -1104,7 +1104,7 @@ public class AgentController extends Handler { if(!StringUtils.isBlank(parentid)){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(parentid, super.getOrgi(request))) ; } - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , MainContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; return request(super.createRequestPageTempletResponse("/apps/agent/quickreply/add")); } @@ -1114,7 +1114,7 @@ public class AgentController extends Handler { if(!StringUtils.isBlank(quickReply.getTitle()) && !StringUtils.isBlank(quickReply.getContent())){ quickReply.setOrgi(super.getOrgi(request)); quickReply.setCreater(super.getUser(request).getId()); - quickReply.setType(UKDataContext.QuickTypeEnum.PRI.toString()); + quickReply.setType(MainContext.QuickTypeEnum.PRI.toString()); quickReplyRes.save(quickReply) ; } return request(super.createRequestPageTempletResponse("redirect:/agent/quicklist.html?typeid="+quickReply.getCate())); @@ -1137,7 +1137,7 @@ public class AgentController extends Handler { if(quickReply!=null){ map.put("quickType", quickTypeRes.findByIdAndOrgi(quickReply.getCate(), super.getOrgi(request))) ; } - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString())) ; return request(super.createRequestPageTempletResponse("/apps/agent/quickreply/edit")); } @@ -1151,7 +1151,7 @@ public class AgentController extends Handler { if(temp!=null){ quickReply.setCreatetime(temp.getCreatetime()); } - quickReply.setType(UKDataContext.QuickTypeEnum.PUB.toString()); + quickReply.setType(MainContext.QuickTypeEnum.PUB.toString()); quickReplyRes.save(quickReply) ; } return request(super.createRequestPageTempletResponse("redirect:/agent/quicklist.html?typeid="+quickReply.getCate())); @@ -1160,7 +1160,7 @@ public class AgentController extends Handler { @RequestMapping({"/quickreply/addtype"}) @Menu(type="apps", subtype="kbs") public ModelAndView addtype(ModelMap map , HttpServletRequest request , @Valid String typeid ){ - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , MainContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; if(!StringUtils.isBlank(typeid)){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(typeid, super.getOrgi(request))) ; } @@ -1175,7 +1175,7 @@ public class AgentController extends Handler { quickType.setOrgi(super.getOrgi(request)); quickType.setCreater(super.getUser(request).getId()); quickType.setCreatetime(new Date()); - quickType.setQuicktype(UKDataContext.QuickTypeEnum.PRI.toString()); + quickType.setQuicktype(MainContext.QuickTypeEnum.PRI.toString()); quickTypeRes.save(quickType) ; } return request(super.createRequestPageTempletResponse("redirect:/agent/quicklist.html?typeid="+quickType.getParentid())); @@ -1185,7 +1185,7 @@ public class AgentController extends Handler { @Menu(type="apps", subtype="kbs") public ModelAndView edittype(ModelMap map , HttpServletRequest request , String id){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(id, super.getOrgi(request))) ; - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktypeAndCreater(super.getOrgi(request) , MainContext.QuickTypeEnum.PRI.toString() , super.getUser(request).getId())) ; return request(super.createRequestPageTempletResponse("/apps/agent/quickreply/edittype")); } @@ -1257,7 +1257,7 @@ public class AgentController extends Handler { AgentUserContacts auc = new AgentUserContacts(); auc.setId(UKTools.getUUID()); auc.setUsername(au.getUsername()); - auc.setOrgi(UKDataContext.SYSTEM_ORGI); + auc.setOrgi(MainContext.SYSTEM_ORGI); auc.setUserid(au.getUserid()); auc.setContactsid(contacts.getId()); auc.setChannel(au.getChannel()); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/ExtentionController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/ExtentionController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/ExtentionController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/ExtentionController.java index d1ed6e95..50bcaf52 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/ExtentionController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/ExtentionController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.callcenter; +package com.chatopera.cc.app.handler.apps.callcenter; import java.util.List; @@ -24,11 +24,11 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.CallCenterSkillRepository; -import com.chatopera.cc.webim.service.repository.PbxHostRepository; -import com.chatopera.cc.webim.web.model.Extention; -import com.chatopera.cc.webim.web.model.PbxHost; -import com.chatopera.cc.webim.web.model.Template; +import com.chatopera.cc.app.service.repository.CallCenterSkillRepository; +import com.chatopera.cc.app.service.repository.PbxHostRepository; +import com.chatopera.cc.app.model.Extention; +import com.chatopera.cc.app.model.PbxHost; +import com.chatopera.cc.app.model.Template; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -36,15 +36,15 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AclRepository; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; -import com.chatopera.cc.webim.service.repository.RouterRulesRepository; -import com.chatopera.cc.webim.service.repository.SipTrunkRepository; -import com.chatopera.cc.webim.service.repository.SkillExtentionRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SystemConfig; +import com.chatopera.cc.app.service.repository.AclRepository; +import com.chatopera.cc.app.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.RouterRulesRepository; +import com.chatopera.cc.app.service.repository.SipTrunkRepository; +import com.chatopera.cc.app.service.repository.SkillExtentionRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SystemConfig; @Controller @RequestMapping("/apps/callcenter") @@ -190,7 +190,7 @@ public class ExtentionController extends Handler{ @RequestMapping(value = "/ivr") @Menu(type = "callcenter" , subtype = "ivr" , access = false) public ModelAndView ivr(ModelMap map , HttpServletRequest request , HttpServletResponse response ,@Valid String hostid) { - map.addAttribute("ivrList" , extentionRes.findByHostidAndExtypeAndOrgi(hostid, UKDataContext.ExtentionType.BUSINESS.toString() , super.getOrgi(request))); + map.addAttribute("ivrList" , extentionRes.findByHostidAndExtypeAndOrgi(hostid, MainContext.ExtentionType.BUSINESS.toString() , super.getOrgi(request))); return request(super.createRequestPageTempletResponse("/apps/business/callcenter/extention/ivr")); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/SipTrunkController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/SipTrunkController.java similarity index 81% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/SipTrunkController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/SipTrunkController.java index cecf6f03..6c9f8ed3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callcenter/SipTrunkController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callcenter/SipTrunkController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.callcenter; +package com.chatopera.cc.app.handler.apps.callcenter; import java.io.IOException; import java.util.List; @@ -24,11 +24,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import com.chatopera.cc.util.es.SearchTools; -import com.chatopera.cc.util.es.UKDataBean; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.util.CallCenterUtils; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.es.SearchTools; +import com.chatopera.cc.es.UKDataBean; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.util.CallCenterUtils; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageImpl; @@ -37,15 +38,14 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.freeswitch.model.CallCenterAgent; -import com.chatopera.cc.webim.service.impl.CallOutQuene; -import com.chatopera.cc.webim.service.repository.ExtentionRepository; -import com.chatopera.cc.webim.service.repository.SipTrunkRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SipTrunk; +import com.chatopera.cc.app.service.impl.CallOutQuene; +import com.chatopera.cc.app.service.repository.ExtentionRepository; +import com.chatopera.cc.app.service.repository.SipTrunkRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SipTrunk; import freemarker.template.TemplateException; @@ -82,8 +82,8 @@ public class SipTrunkController extends Handler{ PageImpl dataBeanList = SearchTools.namesearch(sipTrunk.getOrgi(), ani) ; if(dataBeanList!=null && dataBeanList.getContent().size() > 0) { UKDataBean dataBean = dataBeanList.getContent().get(0) ; - if(dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT)!=null) { - String disagent = (String) dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT) ; + if(dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT)!=null) { + String disagent = (String) dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT) ; /** * 找到了 坐席 */ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callout/CalloutController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callout/CalloutController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callout/CalloutController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callout/CalloutController.java index 8966e0b6..31f9be91 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/callout/CalloutController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/callout/CalloutController.java @@ -14,18 +14,16 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.callout; +package com.chatopera.cc.app.handler.apps.callout; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.task.CallOutSheetTask; -import com.chatopera.cc.util.exception.CallOutRuntimeException; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CallOutDialplan; -import com.chatopera.cc.webim.web.model.CallOutLogDialPlan; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.task.CallOutSheetTask; +import com.chatopera.cc.exception.CallOutRuntimeException; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CallOutDialplan; +import com.chatopera.cc.app.model.CallOutLogDialPlan; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.usermodel.*; import org.slf4j.Logger; @@ -140,11 +138,11 @@ public class CalloutController extends Handler { public ModelAndView add(ModelMap map, HttpServletRequest request) { // 添加技能组 - map.addAttribute("departments", organRes.findByOrgiAndSkill(UKDataContext.SYSTEM_ORGI, true)); + map.addAttribute("departments", organRes.findByOrgiAndSkill(MainContext.SYSTEM_ORGI, true)); // 添加语音渠道 map.addAttribute("voicechannels", - snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString(), UKDataContext.SYSTEM_ORGI)); + snsAccountRes.findBySnstypeAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString(), MainContext.SYSTEM_ORGI)); return request(super.createRequestPageTempletResponse("/apps/callout/dialplan/add")); } @@ -180,12 +178,12 @@ public class CalloutController extends Handler { dp.setMaxconcurrence(maxconcurrence); dp.setIsrecord(isrecord); dp.setExecuted(0); - dp.setVoicechannel(snsAccountRes.findByIdAndOrgi(voicechannelid, UKDataContext.SYSTEM_ORGI)); - dp.setOrgan(organRes.findByIdAndOrgi(organid, UKDataContext.SYSTEM_ORGI)); + dp.setVoicechannel(snsAccountRes.findByIdAndOrgi(voicechannelid, MainContext.SYSTEM_ORGI)); + dp.setOrgan(organRes.findByIdAndOrgi(organid, MainContext.SYSTEM_ORGI)); dp.setName(name); dp.setIsarchive(false); - dp.setOrgi(UKDataContext.SYSTEM_ORGI); - dp.setStatus(UKDataContext.CallOutDialplanStatusEnum.INITIALIZATION.toString()); + dp.setOrgi(MainContext.SYSTEM_ORGI); + dp.setStatus(MainContext.CallOutDialplanStatusEnum.INITIALIZATION.toString()); callOutDialplanRes.save(dp); logger.info("[callout] dialplan id {}", dp.getId()); @@ -232,10 +230,10 @@ public class CalloutController extends Handler { @Menu(type = "callout", subtype = "reports-agents", access = true) public ModelAndView reportsagents(ModelMap map, HttpServletRequest request) { // 技能组list - map.addAttribute("departments", organRes.findByOrgiAndSkill(UKDataContext.SYSTEM_ORGI, true)); + map.addAttribute("departments", organRes.findByOrgiAndSkill(MainContext.SYSTEM_ORGI, true)); // 添加语音渠道 map.addAttribute("voicechannels", - snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString(), UKDataContext.SYSTEM_ORGI)); + snsAccountRes.findBySnstypeAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString(), MainContext.SYSTEM_ORGI)); return request(super.createAppsTempletResponse("/apps/callout/reports/agents")); } @@ -244,7 +242,7 @@ public class CalloutController extends Handler { public ModelAndView dailysummary(ModelMap map, HttpServletRequest request) { // 添加语音渠道 map.addAttribute("voicechannels", - snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString(), UKDataContext.SYSTEM_ORGI)); + snsAccountRes.findBySnstypeAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString(), MainContext.SYSTEM_ORGI)); return request(super.createAppsTempletResponse("/apps/callout/reports/daily-summary")); } @@ -252,11 +250,11 @@ public class CalloutController extends Handler { @Menu(type = "callout", subtype = "reports-agent-monitor", access = true) public ModelAndView agentMonitor(ModelMap map, HttpServletRequest request, @Valid String channel, @Valid String organ) { // 技能组list - map.addAttribute("departments", organRes.findByOrgiAndSkill(UKDataContext.SYSTEM_ORGI, true)); + map.addAttribute("departments", organRes.findByOrgiAndSkill(MainContext.SYSTEM_ORGI, true)); // 添加语音渠道 map.addAttribute("voicechannels", - snsAccountRes.findBySnstypeAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString(), UKDataContext.SYSTEM_ORGI)); + snsAccountRes.findBySnstypeAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString(), MainContext.SYSTEM_ORGI)); return request(super.createAppsTempletResponse("/apps/callout/reports/agent-monitor")); } @@ -277,7 +275,7 @@ public class CalloutController extends Handler { @Menu(type = "callout", subtype = "reports-comm", access = true) public ModelAndView communicate(ModelMap map, HttpServletRequest request, @Valid String hostname, @Valid String key_value) { // 技能组list - map.addAttribute("departments", organRes.findByOrgiAndSkill(UKDataContext.SYSTEM_ORGI, true)); + map.addAttribute("departments", organRes.findByOrgiAndSkill(MainContext.SYSTEM_ORGI, true)); // 坐席list map.addAttribute("sipAccounts", userRepositoryRes.findBySipaccountIsNotNullAndDatastatusIsFalse()); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/contacts/ContactsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/contacts/ContactsController.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/contacts/ContactsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/contacts/ContactsController.java index b7a759f8..40046f4f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/contacts/ContactsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/contacts/ContactsController.java @@ -15,24 +15,26 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.contacts; +package com.chatopera.cc.app.handler.apps.contacts; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.PinYinTools; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.exception.CSKefuException; +import com.chatopera.cc.exception.CSKefuException; import com.chatopera.cc.util.task.DSData; import com.chatopera.cc.util.task.DSDataEvent; import com.chatopera.cc.util.task.ExcelImportProecess; import com.chatopera.cc.util.task.export.ExcelExporterProcess; import com.chatopera.cc.util.task.process.ContactsProcess; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.PropertiesEventRepository; -import com.chatopera.cc.webim.service.repository.ReporterRepository; -import com.chatopera.cc.webim.util.PropertiesEventUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.PropertiesEvent; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.PropertiesEventRepository; +import com.chatopera.cc.app.service.repository.ReporterRepository; +import com.chatopera.cc.util.PropertiesEventUtils; +import com.chatopera.cc.app.handler.Handler; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/customer/CustomerController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/customer/CustomerController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/customer/CustomerController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/customer/CustomerController.java index 8e8d6794..b498f225 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/customer/CustomerController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/customer/CustomerController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.customer; +package com.chatopera.cc.app.handler.apps.customer; import static org.elasticsearch.index.query.QueryBuilders.termQuery; @@ -32,17 +32,18 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.PinYinTools; -import com.chatopera.cc.util.exception.CSKefuException; +import com.chatopera.cc.exception.CSKefuException; import com.chatopera.cc.util.task.DSData; import com.chatopera.cc.util.task.ExcelImportProecess; import com.chatopera.cc.util.task.export.ExcelExporterProcess; import com.chatopera.cc.util.task.process.EntCustomerProcess; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.es.EntCustomerRepository; -import com.chatopera.cc.webim.service.repository.PropertiesEventRepository; -import com.chatopera.cc.webim.util.PropertiesEventUtils; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.es.EntCustomerRepository; +import com.chatopera.cc.app.service.repository.PropertiesEventRepository; +import com.chatopera.cc.util.PropertiesEventUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; @@ -57,16 +58,15 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.task.DSDataEvent; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.ReporterRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CustomerGroupForm; -import com.chatopera.cc.webim.web.model.EntCustomer; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.PropertiesEvent; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.ReporterRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CustomerGroupForm; +import com.chatopera.cc.app.model.EntCustomer; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.PropertiesEvent; @Controller @RequestMapping("/apps/customer") @@ -161,7 +161,7 @@ public class CustomerController extends Handler{ return request(super.createAppsTempletResponse("/apps/business/customer/index")); } - boolQueryBuilder.must(termQuery("etype" , UKDataContext.CustomerTypeEnum.ENTERPRISE.toString())) ; + boolQueryBuilder.must(termQuery("etype" , MainContext.CustomerTypeEnum.ENTERPRISE.toString())) ; if(!StringUtils.isBlank(ekind)){ boolQueryBuilder.must(termQuery("ekind" , ekind)) ; map.put("ekind", ekind) ; @@ -181,7 +181,7 @@ public class CustomerController extends Handler{ return request(super.createAppsTempletResponse("/apps/business/customer/index")); } - boolQueryBuilder.must(termQuery("etype" , UKDataContext.CustomerTypeEnum.PERSONAL.toString())) ; + boolQueryBuilder.must(termQuery("etype" , MainContext.CustomerTypeEnum.PERSONAL.toString())) ; if(!StringUtils.isBlank(ekind)){ boolQueryBuilder.must(termQuery("ekind" , ekind)) ; @@ -230,7 +230,7 @@ public class CustomerController extends Handler{ customerGroupForm.getEntcustomer().setCreater(super.getUser(request).getId()); customerGroupForm.getEntcustomer().setOrgi(super.getOrgi(request)); customerGroupForm.getEntcustomer().setOrgan(super.getUser(request).getOrgan()); -// customerGroupForm.getEntcustomer().setEtype(UKDataContext.CustomerTypeEnum.ENTERPRISE.toString()); +// customerGroupForm.getEntcustomer().setEtype(MainContext.CustomerTypeEnum.ENTERPRISE.toString()); customerGroupForm.getEntcustomer().setPinyin(PinYinTools.getInstance().getFirstPinYin(customerGroupForm.getEntcustomer().getName())); entCustomerRes.save(customerGroupForm.getEntcustomer()); if(customerGroupForm.getContacts()!=null && !StringUtils.isBlank(customerGroupForm.getContacts().getName())){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/entim/EntIMController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/entim/EntIMController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/entim/EntIMController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/entim/EntIMController.java index 75d47694..e8f89e2a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/entim/EntIMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/entim/EntIMController.java @@ -15,21 +15,21 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.entim; +package com.chatopera.cc.app.handler.apps.entim; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.repository.IMGroupRepository; -import com.chatopera.cc.webim.service.repository.IMGroupUserRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.IMGroupUser; -import com.chatopera.cc.webim.web.model.RecentUser; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.repository.IMGroupRepository; +import com.chatopera.cc.app.service.repository.IMGroupUserRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.IMGroupUser; +import com.chatopera.cc.app.model.RecentUser; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -39,10 +39,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.service.repository.RecentUserRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.IMGroup; +import com.chatopera.cc.app.service.repository.ChatMessageRepository; +import com.chatopera.cc.app.service.repository.RecentUserRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.IMGroup; @Controller @RequestMapping("/ent/im") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/internet/IMController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/internet/IMController.java index 7adfa149..d83549ea 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/internet/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/internet/IMController.java @@ -15,19 +15,19 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.internet; +package com.chatopera.cc.app.handler.apps.internet; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.*; -import com.chatopera.cc.util.webim.WebIMClient; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.util.MessageUtils; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.util.WebIMClient; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.util.MessageUtils; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -219,8 +219,8 @@ public class IMController extends Handler { UKTools.published(userHistory); } - view.addObject("pointAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.POINT.toString(), orgi)); - view.addObject("inviteAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.INVITE.toString(), orgi)); + view.addObject("pointAd", UKTools.getPointAdv(MainContext.AdPosEnum.POINT.toString(), orgi)); + view.addObject("inviteAd", UKTools.getPointAdv(MainContext.AdPosEnum.INVITE.toString(), orgi)); } } @@ -232,7 +232,7 @@ public class IMController extends Handler { public void inlist(HttpServletRequest request, HttpServletResponse response, @PathVariable String id, @Valid String userid) throws IOException { response.setHeader("Content-Type", "text/html;charset=utf-8"); if (StringUtils.isNotBlank(userid)) { - BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); + BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, MainContext.SYSTEM_ORGI); if ((black != null && (black.getEndtime() == null || black.getEndtime().after(new Date())))) { response.getWriter().write("in"); ; @@ -301,9 +301,9 @@ public class IMController extends Handler { OnlineUserUtils.online(super.getIMUser(request, sign, contacts != null ? contacts.getName() : null), orgi, sessionid, - UKDataContext.OnlineUserTypeStatus.WEBIM.toString(), + MainContext.OnlineUserTypeStatus.WEBIM.toString(), request, - UKDataContext.ChannelTypeEnum.WEBIM.toString(), + MainContext.ChannelTypeEnum.WEBIM.toString(), appid, contacts, invite); @@ -344,7 +344,7 @@ public class IMController extends Handler { @Valid String pid, @Valid String purl) throws Exception { ModelAndView view = request(super.createRequestPageTempletResponse("/apps/im/index")); - BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, UKDataContext.SYSTEM_ORGI); + BlackEntity black = (BlackEntity) CacheHelper.getSystemCacheBean().getCacheObject(userid, MainContext.SYSTEM_ORGI); if (StringUtils.isNotBlank(appid) && (black == null || (black.getEndtime() != null && black.getEndtime().before(new Date())))) { CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, inviteRepository); String userID = null; @@ -491,7 +491,7 @@ public class IMController extends Handler { nickname = contacts.getName(); } map.addAttribute("username", nickname); - if (UKDataContext.model.get("chatbot") != null && + if (MainContext.model.get("chatbot") != null && StringUtils.isNotBlank(invite.getAiid()) && invite.isAi() && ((StringUtils.equals(ai, "true")) || (invite.isAifirst() && ai == null))) { //启用 AI , 并且 AI优先 接待 @@ -515,10 +515,10 @@ public class IMController extends Handler { } map.addAttribute("chatMessageList", chatMessageRes.findByUsessionAndOrgi(userid, orgi, new PageRequest(0, 20, Direction.DESC, "updatetime"))); } - view.addObject("commentList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_DIC)); - view.addObject("commentItemList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_ITEM_DIC)); - view.addObject("welcomeAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.WELCOME.toString(), orgi)); - view.addObject("imageAd", UKTools.getPointAdv(UKDataContext.AdPosEnum.IMAGE.toString(), orgi)); + view.addObject("commentList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_COMMENT_DIC)); + view.addObject("commentItemList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_COMMENT_ITEM_DIC)); + view.addObject("welcomeAd", UKTools.getPointAdv(MainContext.AdPosEnum.WELCOME.toString(), orgi)); + view.addObject("imageAd", UKTools.getPointAdv(MainContext.AdPosEnum.IMAGE.toString(), orgi)); // OnlineUserUtils.sendWebIMClients(userid , "accept"); if (invite.isTraceuser()) { @@ -530,7 +530,7 @@ public class IMController extends Handler { record.setTitle(title); record.setUrl(url); record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); - record.setResult(UKDataContext.OnlineUserInviteStatus.ACCEPT.toString()); + record.setResult(MainContext.OnlineUserInviteStatus.ACCEPT.toString()); inviteRecordRes.save(record); } } @@ -568,7 +568,7 @@ public class IMController extends Handler { if (agentUserContactsList.size() == 0) { AgentUserContacts agentUserContacts = new AgentUserContacts(); agentUserContacts.setAppid(appid); - agentUserContacts.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + agentUserContacts.setChannel(MainContext.ChannelTypeEnum.WEBIM.toString()); agentUserContacts.setContactsid(contacts.getId()); agentUserContacts.setUserid(userid); agentUserContacts.setOrgi(orgi); @@ -683,7 +683,7 @@ public class IMController extends Handler { InviteRecord record = inviteRecordList.getContent().get(0); record.setUpdatetime(new Date()); record.setResponsetime((int) (System.currentTimeMillis() - record.getCreatetime().getTime())); - record.setResult(UKDataContext.OnlineUserInviteStatus.REFUSE.toString()); + record.setResult(MainContext.OnlineUserInviteStatus.REFUSE.toString()); inviteRecordRes.save(record); } return; @@ -775,7 +775,7 @@ public class IMController extends Handler { attachmentFile.setCreater(super.getUser(request).getId()); attachmentFile.setOrgi(super.getOrgi(request)); attachmentFile.setOrgan(super.getUser(request).getOrgan()); - attachmentFile.setModel(UKDataContext.ModelType.WEBIM.toString()); + attachmentFile.setModel(MainContext.ModelType.WEBIM.toString()); attachmentFile.setFilelength((int) file.getSize()); if (file.getContentType() != null && file.getContentType().length() > 255) { attachmentFile.setFiletype(file.getContentType().substring(0, 255)); @@ -793,7 +793,7 @@ public class IMController extends Handler { } attachmentFile.setFileid(fileid); attachementRes.save(attachmentFile); - FileUtils.writeByteArrayToFile(new File(path, "app/webim/" + fileid), file.getBytes()); + FileUtils.writeByteArrayToFile(new File(path, "app/app/" + fileid), file.getBytes()); id = attachmentFile.getId(); } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/job/JobController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/job/JobController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/job/JobController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/job/JobController.java index cf27c568..1b34338b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/job/JobController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/job/JobController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.job; +package com.chatopera.cc.app.handler.apps.job; import java.text.ParseException; import java.util.Date; @@ -24,8 +24,8 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.web.model.JobDetail; -import com.chatopera.cc.webim.web.model.JobTask; +import com.chatopera.cc.app.model.JobDetail; +import com.chatopera.cc.app.model.JobTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -34,8 +34,8 @@ import org.springframework.web.servlet.ModelAndView; import com.fasterxml.jackson.databind.ObjectMapper; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.JobDetailRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.repository.JobDetailRepository; +import com.chatopera.cc.app.handler.Handler; @Controller diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/KbsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/KbsController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/KbsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/KbsController.java index e1f1406b..90516ea8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/KbsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/KbsController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.kbs; +package com.chatopera.cc.app.handler.apps.kbs; import java.io.File; import java.io.FileNotFoundException; @@ -25,16 +25,16 @@ import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.es.KbsTopicRepository; -import com.chatopera.cc.webim.service.repository.AttachmentRepository; -import com.chatopera.cc.webim.service.repository.KbsTypeRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AttachmentFile; -import com.chatopera.cc.webim.web.model.KbsTopic; -import com.chatopera.cc.webim.web.model.KbsType; +import com.chatopera.cc.app.service.es.KbsTopicRepository; +import com.chatopera.cc.app.service.repository.AttachmentRepository; +import com.chatopera.cc.app.service.repository.KbsTypeRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AttachmentFile; +import com.chatopera.cc.app.model.KbsTopic; +import com.chatopera.cc.app.model.KbsType; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -113,7 +113,7 @@ public class KbsController extends Handler { @Menu(type="apps", subtype="kbs") public ModelAndView add(ModelMap map , HttpServletRequest request ,@Valid String typeid){ map.addAttribute("kbsTypeResList", kbsTypeRes.findByOrgi(super.getOrgi(request))) ; - map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.KBS.toString())) ; + map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.KBS.toString())) ; if(!StringUtils.isBlank(typeid) && !typeid.equals("0")){ map.addAttribute("kbsType", kbsTypeRes.findByIdAndOrgi(typeid, super.getOrgi(request))) ; } @@ -158,7 +158,7 @@ public class KbsController extends Handler { attachmentFile.setOrgan(super.getUser(request).getOrgan()); attachmentFile.setDataid(dataid); attachmentFile.setModelid(modelid); - attachmentFile.setModel(UKDataContext.ModelType.WORKORDERS.toString()); + attachmentFile.setModel(MainContext.ModelType.WORKORDERS.toString()); attachmentFile.setFilelength((int) file.getSize()); if(file.getContentType()!=null && file.getContentType().length() > 255){ attachmentFile.setFiletype(file.getContentType().substring(0 , 255)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/TopicController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/TopicController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/TopicController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/TopicController.java index 982cf7ce..7605f660 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/kbs/TopicController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/kbs/TopicController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.kbs; +package com.chatopera.cc.app.handler.apps.kbs; import java.io.File; import java.io.IOException; @@ -30,18 +30,19 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.extra.DataExchangeInterface; import com.chatopera.cc.util.task.DSData; import com.chatopera.cc.util.task.ExcelImportProecess; import com.chatopera.cc.util.task.export.ExcelExporterProcess; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.TopicItemRepository; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.model.KnowledgeType; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.Topic; -import com.chatopera.cc.webim.web.model.TopicItem; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.TopicItemRepository; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.model.KnowledgeType; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.Topic; +import com.chatopera.cc.app.model.TopicItem; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -54,18 +55,17 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.task.DSDataEvent; import com.chatopera.cc.util.task.process.TopicProcess; -import com.chatopera.cc.webim.service.es.TopicRepository; -import com.chatopera.cc.webim.service.repository.AreaTypeRepository; -import com.chatopera.cc.webim.service.repository.KnowledgeTypeRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.ReporterRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.es.TopicRepository; +import com.chatopera.cc.app.service.repository.AreaTypeRepository; +import com.chatopera.cc.app.service.repository.KnowledgeTypeRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.ReporterRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/apps") @@ -122,7 +122,7 @@ public class TopicController extends Handler{ map.put("curtype", ktype) ; map.put("topicList", topicRes.getTopicByCateAndOrgi(ktype.getId(),super.getOrgi(request), q, super.getP(request), super.getPs(request))) ; }else{ - map.put("topicList", topicRes.getTopicByCateAndOrgi(UKDataContext.DEFAULT_TYPE,super.getOrgi(request), q, super.getP(request), super.getPs(request))) ; + map.put("topicList", topicRes.getTopicByCateAndOrgi(MainContext.DEFAULT_TYPE,super.getOrgi(request), q, super.getP(request), super.getPs(request))) ; } map.addAttribute("areaList", areaRepository.findByOrgi(super.getOrgi(request))) ; return request(super.createAppsTempletResponse("/apps/business/topic/index")); @@ -143,7 +143,7 @@ public class TopicController extends Handler{ if(!StringUtils.isBlank(type)){ topic.setCate(type); }else{ - topic.setCate(UKDataContext.DEFAULT_TYPE); + topic.setCate(MainContext.DEFAULT_TYPE); } topic.setOrgi(super.getOrgi(request)); topicRes.save(topic) ; @@ -164,7 +164,7 @@ public class TopicController extends Handler{ * 重新缓存 * */ - OnlineUserUtils.resetHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request) , aiid) ; + OnlineUserUtils.resetHotTopic((DataExchangeInterface) MainContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request) , aiid) ; } return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html"+(!StringUtils.isBlank(type) ? "?type="+type : ""))); } @@ -189,7 +189,7 @@ public class TopicController extends Handler{ if(!StringUtils.isBlank(type)){ topic.setCate(type); }else{ - topic.setCate(UKDataContext.DEFAULT_TYPE); + topic.setCate(MainContext.DEFAULT_TYPE); } topic.setCreater(temp.getCreater()); topic.setCreatetime(temp.getCreatetime()); @@ -215,7 +215,7 @@ public class TopicController extends Handler{ * 重新缓存 * */ - OnlineUserUtils.resetHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request),aiid) ; + OnlineUserUtils.resetHotTopic((DataExchangeInterface) MainContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request),aiid) ; } return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html"+(!StringUtils.isBlank(type) ? "?type="+type : ""))); } @@ -231,7 +231,7 @@ public class TopicController extends Handler{ */ topicItemRes.delete(topicItemRes.findByTopicid(id)) ; - OnlineUserUtils.resetHotTopic((DataExchangeInterface) UKDataContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request) , aiid) ; + OnlineUserUtils.resetHotTopic((DataExchangeInterface) MainContext.getContext().getBean("topic") , super.getUser(request) , super.getOrgi(request) , aiid) ; } return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html"+(!StringUtils.isBlank(type) ? "?type="+type : ""))); } @@ -269,7 +269,7 @@ public class TopicController extends Handler{ } type.setCreater(super.getUser(request).getId()); knowledgeTypeRes.save(type) ; - OnlineUserUtils.resetHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); + OnlineUserUtils.resetHotTopicType((DataExchangeInterface) MainContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); }else { return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html?aiid="+aiid+"&msg=k_type_exist")); } @@ -306,7 +306,7 @@ public class TopicController extends Handler{ temp.setTypeid(type.getParentid()); } knowledgeTypeRes.save(temp) ; - OnlineUserUtils.resetHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); + OnlineUserUtils.resetHotTopicType((DataExchangeInterface) MainContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); }else { return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html?aiid="+aiid+"&msg=k_type_exist&type="+type.getId())); } @@ -321,7 +321,7 @@ public class TopicController extends Handler{ if(page.getTotalElements() == 0){ if(!StringUtils.isBlank(id)){ knowledgeTypeRes.delete(id); - OnlineUserUtils.resetHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); + OnlineUserUtils.resetHotTopicType((DataExchangeInterface) MainContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); } }else{ msg = "notempty" ; @@ -333,12 +333,12 @@ public class TopicController extends Handler{ @Menu(type = "admin" , subtype = "area") public ModelAndView area(ModelMap map ,HttpServletRequest request , @Valid String id, @Valid String aiid) { - SysDic sysDic = sysDicRepository.findByCode(UKDataContext.UKEFU_SYSTEM_AREA_DIC) ; + SysDic sysDic = sysDicRepository.findByCode(MainContext.UKEFU_SYSTEM_AREA_DIC) ; if(sysDic!=null){ map.addAttribute("sysarea", sysDic) ; map.addAttribute("areaList", sysDicRepository.findByDicid(sysDic.getId())) ; } - map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_AREA_DIC)) ; + map.addAttribute("cacheList", UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_AREA_DIC)) ; map.put("knowledgeType", knowledgeTypeRes.findOne(id)) ; return request(super.createRequestPageTempletResponse("/apps/business/topic/area")); @@ -352,7 +352,7 @@ public class TopicController extends Handler{ if(temp != null){ temp.setArea(type.getArea()); knowledgeTypeRes.save(temp) ; - OnlineUserUtils.resetHotTopicType((DataExchangeInterface) UKDataContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); + OnlineUserUtils.resetHotTopicType((DataExchangeInterface) MainContext.getContext().getBean("topictype") , super.getUser(request), super.getOrgi(request) , aiid); } return request(super.createRequestPageTempletResponse("redirect:/apps/topic.html?type="+type.getId())); } @@ -383,7 +383,7 @@ public class TopicController extends Handler{ if(!StringUtils.isBlank(type)){ event.getValues().put("cate", type) ; }else{ - event.getValues().put("cate", UKDataContext.DEFAULT_TYPE) ; + event.getValues().put("cate", MainContext.DEFAULT_TYPE) ; } event.getValues().put("creater", super.getUser(request).getId()) ; event.getDSData().setProcess(new TopicProcess(topicRes)); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/message/MessageController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/message/MessageController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/message/MessageController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/message/MessageController.java index c91972da..c0d83b31 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/message/MessageController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/message/MessageController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.message; +package com.chatopera.cc.app.handler.apps.message; import javax.servlet.http.HttpServletRequest; @@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.handler.Handler; @Controller @RequestMapping("/message") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/organization/OrganizationController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/organization/OrganizationController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/organization/OrganizationController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/organization/OrganizationController.java index bc60bc68..f5320878 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/organization/OrganizationController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/organization/OrganizationController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.organization; +package com.chatopera.cc.app.handler.apps.organization; import java.io.IOException; import java.security.NoSuchAlgorithmException; @@ -24,10 +24,10 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.OrganizationRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Organization; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.OrganizationRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Organization; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -36,8 +36,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.SystemConfig; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.SystemConfig; @Controller @RequestMapping("/apps/organization") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/quality/AgentQualityController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/quality/AgentQualityController.java similarity index 72% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/quality/AgentQualityController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/quality/AgentQualityController.java index 231ed125..f1b04915 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/quality/AgentQualityController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/quality/AgentQualityController.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.quality; +package com.chatopera.cc.app.handler.apps.quality; import java.util.ArrayList; import java.util.List; @@ -24,23 +24,23 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.SessionConfigRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.model.Quality; -import com.chatopera.cc.webim.web.model.QualityRequest; -import com.chatopera.cc.webim.web.model.Tag; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.SessionConfigRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.model.Quality; +import com.chatopera.cc.app.model.QualityRequest; +import com.chatopera.cc.app.model.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.repository.QualityRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SessionConfig; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.repository.QualityRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SessionConfig; @Controller @RequestMapping("/apps/quality") @@ -61,8 +61,8 @@ public class AgentQualityController extends Handler{ @Menu(type = "agent" , subtype = "quality" , access = false) public ModelAndView index(ModelMap map , HttpServletRequest request ) { map.addAttribute("sessionConfig", ServiceQuene.initSessionConfig(super.getOrgi(request))) ; - map.addAttribute("qualityList", qualityRes.findByQualitytypeAndOrgi(UKDataContext.QualityType.CHAT.toString(), super.getOrgi(request))) ; - map.addAttribute("tagList", tagRes.findByOrgiAndTagtype(super.getOrgi(request), UKDataContext.TagTypeEnum.QUALITY.toString())) ; + map.addAttribute("qualityList", qualityRes.findByQualitytypeAndOrgi(MainContext.QualityType.CHAT.toString(), super.getOrgi(request))) ; + map.addAttribute("tagList", tagRes.findByOrgiAndTagtype(super.getOrgi(request), MainContext.TagTypeEnum.QUALITY.toString())) ; return request(super.createAppsTempletResponse("/apps/quality/index")); } @@ -71,7 +71,7 @@ public class AgentQualityController extends Handler{ @Menu(type = "agent" , subtype = "quality" , access = false) public ModelAndView save(ModelMap map , HttpServletRequest request ,@Valid QualityRequest qualityArray) { if(qualityArray!=null && qualityArray.getTitle()!=null) { - List qualityList = qualityRes.findByQualitytypeAndOrgi(UKDataContext.QualityType.CHAT.toString(), super.getOrgi(request)) ; + List qualityList = qualityRes.findByQualitytypeAndOrgi(MainContext.QualityType.CHAT.toString(), super.getOrgi(request)) ; qualityRes.delete(qualityList); List tempList = new ArrayList(); for(int i=0 ; i 0) { @@ -100,12 +100,12 @@ public class AgentQualityController extends Handler{ sessionConfigRes.save(config) ; - CacheHelper.getSystemCacheBean().put(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG+"_"+super.getOrgi(request),config, super.getOrgi(request)) ; + CacheHelper.getSystemCacheBean().put(MainContext.SYSTEM_CACHE_SESSION_CONFIG+"_"+super.getOrgi(request),config, super.getOrgi(request)) ; - CacheHelper.getSystemCacheBean().delete(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG_LIST , UKDataContext.SYSTEM_ORGI) ; + CacheHelper.getSystemCacheBean().delete(MainContext.SYSTEM_CACHE_SESSION_CONFIG_LIST , MainContext.SYSTEM_ORGI) ; } if(qualityArray!=null && qualityArray.getTag()!=null && qualityArray.getTag().length > 0) { - List tagList = tagRes.findByOrgiAndTagtype(super.getOrgi(request), UKDataContext.TagTypeEnum.QUALITY.toString()) ; + List tagList = tagRes.findByOrgiAndTagtype(super.getOrgi(request), MainContext.TagTypeEnum.QUALITY.toString()) ; if(tagList.size() > 0) { tagRes.delete(tagList); } @@ -116,7 +116,7 @@ public class AgentQualityController extends Handler{ temp.setCreater(super.getUser(request).getId()); temp.setTag(tag); temp.setCreater(super.getOrgi(request)); - temp.setTagtype(UKDataContext.TagTypeEnum.QUALITY.toString()); + temp.setTagtype(MainContext.TagTypeEnum.QUALITY.toString()); tagTempList.add(temp) ; } if(tagTempList.size() > 0) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeController.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeController.java index b3408fcf..a2472ac0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.Date; import java.util.List; @@ -33,23 +33,23 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.CubeLevelRepository; -import com.chatopera.cc.webim.service.repository.CubeMeasureRepository; -import com.chatopera.cc.webim.service.repository.CubeMetadataRepository; -import com.chatopera.cc.webim.service.repository.CubeRepository; -import com.chatopera.cc.webim.service.repository.CubeTypeRepository; -import com.chatopera.cc.webim.service.repository.DimensionRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.PublishedCubeRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Cube; -import com.chatopera.cc.webim.web.model.CubeMeasure; -import com.chatopera.cc.webim.web.model.CubeMetadata; -import com.chatopera.cc.webim.web.model.CubeType; -import com.chatopera.cc.webim.web.model.Dimension; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.PublishedCube; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.CubeLevelRepository; +import com.chatopera.cc.app.service.repository.CubeMeasureRepository; +import com.chatopera.cc.app.service.repository.CubeMetadataRepository; +import com.chatopera.cc.app.service.repository.CubeRepository; +import com.chatopera.cc.app.service.repository.CubeTypeRepository; +import com.chatopera.cc.app.service.repository.DimensionRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.PublishedCubeRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Cube; +import com.chatopera.cc.app.model.CubeMeasure; +import com.chatopera.cc.app.model.CubeMetadata; +import com.chatopera.cc.app.model.CubeType; +import com.chatopera.cc.app.model.Dimension; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.PublishedCube; +import com.chatopera.cc.app.model.User; @Controller @RequestMapping("/apps/report/cube") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeLevelController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeLevelController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeLevelController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeLevelController.java index 77b21bbe..3dc4f0e7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeLevelController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeLevelController.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.webim.service.repository.CubeMetadataRepository; -import com.chatopera.cc.webim.service.repository.DimensionRepository; -import com.chatopera.cc.webim.web.model.Dimension; -import com.chatopera.cc.webim.web.model.TableProperties; +import com.chatopera.cc.app.service.repository.CubeMetadataRepository; +import com.chatopera.cc.app.service.repository.DimensionRepository; +import com.chatopera.cc.app.model.Dimension; +import com.chatopera.cc.app.model.TableProperties; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -33,11 +33,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.CubeLevelRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CubeLevel; -import com.chatopera.cc.webim.web.model.CubeMetadata; +import com.chatopera.cc.app.service.repository.CubeLevelRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CubeLevel; +import com.chatopera.cc.app.model.CubeMetadata; @Controller @RequestMapping("/apps/report/cubelevel") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeMeasureController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeMeasureController.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeMeasureController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeMeasureController.java index d496d999..9c079460 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/CubeMeasureController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/CubeMeasureController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.List; @@ -22,9 +22,9 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.CubeMeasureRepository; -import com.chatopera.cc.webim.service.repository.CubeMetadataRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.service.repository.CubeMeasureRepository; +import com.chatopera.cc.app.service.repository.CubeMetadataRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -32,9 +32,9 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CubeMeasure; -import com.chatopera.cc.webim.web.model.CubeMetadata; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CubeMeasure; +import com.chatopera.cc.app.model.CubeMetadata; @Controller @RequestMapping("/apps/report/cubemeasure") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/DimensionController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/DimensionController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/DimensionController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/DimensionController.java index 65c91873..16a735e4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/DimensionController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/DimensionController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.List; @@ -22,10 +22,10 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.CubeMetadataRepository; -import com.chatopera.cc.webim.service.repository.DimensionRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; -import com.chatopera.cc.webim.web.model.Dimension; +import com.chatopera.cc.app.service.repository.CubeMetadataRepository; +import com.chatopera.cc.app.service.repository.DimensionRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.model.Dimension; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -33,10 +33,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.CubeLevelRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.CubeLevel; -import com.chatopera.cc.webim.web.model.CubeMetadata; +import com.chatopera.cc.app.service.repository.CubeLevelRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.CubeLevel; +import com.chatopera.cc.app.model.CubeMetadata; @Controller @RequestMapping("/apps/report/dimension") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportController.java index 24390609..f5d6c905 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.io.File; import java.io.IOException; @@ -30,8 +30,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import com.chatopera.cc.webim.service.repository.PublishedReportRepository; -import com.chatopera.cc.webim.web.model.ReportFilter; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.repository.PublishedReportRepository; +import com.chatopera.cc.app.model.ReportFilter; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -44,22 +45,21 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.task.DSData; import com.chatopera.cc.util.task.DSDataEvent; import com.chatopera.cc.util.task.ExcelImportProecess; import com.chatopera.cc.util.task.export.ExcelExporterProcess; -import com.chatopera.cc.webim.service.repository.DataDicRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.ReportCubeService; -import com.chatopera.cc.webim.service.repository.ReportRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.DataDic; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.PublishedReport; -import com.chatopera.cc.webim.web.model.Report; +import com.chatopera.cc.app.service.repository.DataDicRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.ReportCubeService; +import com.chatopera.cc.app.service.repository.ReportRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.DataDic; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.PublishedReport; +import com.chatopera.cc.app.model.Report; @Controller @RequestMapping("/apps/report") @@ -118,7 +118,7 @@ public class ReportController extends Handler{ if(count == 0) { report.setOrgi(super.getOrgi(request)); report.setCreater(super.getUser(request).getId()); - report.setReporttype(UKDataContext.ReportType.REPORT.toString()); + report.setReporttype(MainContext.ReportType.REPORT.toString()); report.setCode(UKTools.genID()); reportRes.save(report) ; }else { @@ -186,7 +186,7 @@ public class ReportController extends Handler{ dataDic.setOrgi(super.getOrgi(request)); dataDic.setCreater(super.getUser(request).getId()); dataDic.setCreatetime(new Date()); - dataDic.setTabtype(UKDataContext.QuickTypeEnum.PUB.toString()); + dataDic.setTabtype(MainContext.QuickTypeEnum.PUB.toString()); dataDicRes.save(dataDic) ; } return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getId())); @@ -266,9 +266,9 @@ public class ReportController extends Handler{ if(!StringUtils.isBlank(type)){ event.getValues().put("cate", type) ; }else{ - event.getValues().put("cate", UKDataContext.DEFAULT_TYPE) ; + event.getValues().put("cate", MainContext.DEFAULT_TYPE) ; } - event.getValues().put("type", UKDataContext.QuickTypeEnum.PUB.toString()) ; + event.getValues().put("type", MainContext.QuickTypeEnum.PUB.toString()) ; event.getValues().put("creater", super.getUser(request).getId()) ; // event.getDSData().setProcess(new QuickReplyProcess(reportRes)); // reporterRes.save(event.getDSData().getReport()) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportDesignController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportDesignController.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportDesignController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportDesignController.java index b736857d..a5f184c4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportDesignController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportDesignController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.ArrayList; import java.util.Date; @@ -25,7 +25,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.bi.ReportData; import org.apache.commons.codec.binary.Base64; @@ -39,36 +39,36 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.ColumnPropertiesRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.PublishedCubeRepository; -import com.chatopera.cc.webim.service.repository.PublishedReportRepository; -import com.chatopera.cc.webim.service.repository.ReportCubeService; -import com.chatopera.cc.webim.service.repository.ReportFilterRepository; -import com.chatopera.cc.webim.service.repository.ReportModelRepository; -import com.chatopera.cc.webim.service.repository.ReportRepository; -import com.chatopera.cc.webim.service.repository.SysDicRepository; -import com.chatopera.cc.webim.service.repository.TablePropertiesRepository; -import com.chatopera.cc.webim.service.repository.TemplateRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.ChartProperties; -import com.chatopera.cc.webim.web.model.ColumnProperties; -import com.chatopera.cc.webim.web.model.Cube; -import com.chatopera.cc.webim.web.model.CubeLevel; -import com.chatopera.cc.webim.web.model.CubeMeasure; -import com.chatopera.cc.webim.web.model.CubeMetadata; -import com.chatopera.cc.webim.web.model.Dimension; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.PublishedCube; -import com.chatopera.cc.webim.web.model.PublishedReport; -import com.chatopera.cc.webim.web.model.Report; -import com.chatopera.cc.webim.web.model.ReportFilter; -import com.chatopera.cc.webim.web.model.ReportModel; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.TableProperties; -import com.chatopera.cc.webim.web.model.Template; -import com.chatopera.cc.webim.web.model.UKeFuDic; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.ColumnPropertiesRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.PublishedCubeRepository; +import com.chatopera.cc.app.service.repository.PublishedReportRepository; +import com.chatopera.cc.app.service.repository.ReportCubeService; +import com.chatopera.cc.app.service.repository.ReportFilterRepository; +import com.chatopera.cc.app.service.repository.ReportModelRepository; +import com.chatopera.cc.app.service.repository.ReportRepository; +import com.chatopera.cc.app.service.repository.SysDicRepository; +import com.chatopera.cc.app.service.repository.TablePropertiesRepository; +import com.chatopera.cc.app.service.repository.TemplateRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.ChartProperties; +import com.chatopera.cc.app.model.ColumnProperties; +import com.chatopera.cc.app.model.Cube; +import com.chatopera.cc.app.model.CubeLevel; +import com.chatopera.cc.app.model.CubeMeasure; +import com.chatopera.cc.app.model.CubeMetadata; +import com.chatopera.cc.app.model.Dimension; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.PublishedCube; +import com.chatopera.cc.app.model.PublishedReport; +import com.chatopera.cc.app.model.Report; +import com.chatopera.cc.app.model.ReportFilter; +import com.chatopera.cc.app.model.ReportModel; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.TableProperties; +import com.chatopera.cc.app.model.Template; +import com.chatopera.cc.app.model.UKeFuDic; +import com.chatopera.cc.app.model.User; @Controller @RequestMapping("/apps/report/design") @@ -116,7 +116,7 @@ public class ReportDesignController extends Handler { @RequestMapping("/index") @Menu(type = "report", subtype = "reportdesign") public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String id) throws Exception { - List tpDicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC); + List tpDicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC); for (SysDic sysDic : tpDicList) { if (sysDic.getCode().equals("layout")) { map.addAttribute("layoutList", @@ -285,9 +285,9 @@ public class ReportDesignController extends Handler { filter.setModelid(mid); filter.setModeltype(t.getCode()); - filter.setConvalue(UKDataContext.FilterConValueType.INPUT.toString()); - filter.setValuefiltertype(UKDataContext.FilterValuefilterType.COMPARE.toString()); - filter.setComparetype(UKDataContext.FilterCompType.EQUAL.toString()); + filter.setConvalue(MainContext.FilterConValueType.INPUT.toString()); + filter.setValuefiltertype(MainContext.FilterValuefilterType.COMPARE.toString()); + filter.setComparetype(MainContext.FilterCompType.EQUAL.toString()); filter.setFormatstr("yyyy-MM-dd"); reportFilterRepository.save(filter); map.addAttribute("filter", filter); @@ -329,7 +329,7 @@ public class ReportDesignController extends Handler { @Menu(type = "report", subtype = "reportdesign") public ModelAndView modeldesign(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String tabid , HashMap semap) throws Exception { - List tpDicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC); + List tpDicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC); for (SysDic sysDic : tpDicList) { if (sysDic.getCode().equals("report")) { map.addAttribute("reportList", @@ -484,7 +484,7 @@ public class ReportDesignController extends Handler { f.setCreatetime(new Date()); f.setName(f.getTitle()); f.setDataname(f.getTitle()); - if(UKDataContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && UKDataContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { + if(MainContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && MainContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { f.setCascadeid(f.getCascadeid()); f.setTableproperty(null); if(!StringUtils.isBlank(tbppy)) { @@ -639,13 +639,13 @@ public class ReportDesignController extends Handler { filter.setTitle(cubeLevel.getName()); filter.setModelid(mid); - filter.setModeltype(UKDataContext.FilterModelType.TEXT.toString()); - filter.setConvalue(UKDataContext.FilterConValueType.INPUT.toString()); - filter.setValuefiltertype(UKDataContext.FilterValuefilterType.COMPARE.toString()); - filter.setComparetype(UKDataContext.FilterCompType.EQUAL.toString()); + filter.setModeltype(MainContext.FilterModelType.TEXT.toString()); + filter.setConvalue(MainContext.FilterConValueType.INPUT.toString()); + filter.setValuefiltertype(MainContext.FilterValuefilterType.COMPARE.toString()); + filter.setComparetype(MainContext.FilterCompType.EQUAL.toString()); if ("select".equalsIgnoreCase(filter.getModeltype())) { - filter.setConvalue(UKDataContext.FilterConValueType.AUTO.toString()); + filter.setConvalue(MainContext.FilterConValueType.AUTO.toString()); } } filter.setReportid(model.getReportid()); @@ -785,7 +785,7 @@ public class ReportDesignController extends Handler { rf.setFkfieldid(f.getFkfieldid()); rf.setFilterfieldid(f.getFilterfieldid()); - if(UKDataContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && UKDataContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { + if(MainContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && MainContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { rf.setCascadeid(f.getCascadeid()); rf.setTableproperty(null); rf.setIsdic(f.isIsdic()); @@ -885,7 +885,7 @@ public class ReportDesignController extends Handler { rf.setFkfieldid(f.getFkfieldid()); rf.setFilterfieldid(f.getFilterfieldid()); - if(UKDataContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && UKDataContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { + if(MainContext.FilterConValueType.AUTO.toString().equals(f.getConvalue()) && MainContext.FilterModelType.SIGSEL.toString().equals(f.getModeltype())) { rf.setCascadeid(f.getCascadeid()); rf.setTableproperty(null); rf.setIsdic(f.isIsdic()); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportViewController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportViewController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportViewController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportViewController.java index 490f703b..880230d4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/report/ReportViewController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/report/ReportViewController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.report; +package com.chatopera.cc.app.handler.apps.report; import java.util.HashMap; import java.util.List; @@ -23,7 +23,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.webim.service.repository.PublishedReportRepository; +import com.chatopera.cc.app.service.repository.PublishedReportRepository; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -35,11 +35,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.DataDicRepository; -import com.chatopera.cc.webim.service.repository.ReportCubeService; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.PublishedReport; -import com.chatopera.cc.webim.web.model.ReportFilter; +import com.chatopera.cc.app.service.repository.DataDicRepository; +import com.chatopera.cc.app.service.repository.ReportCubeService; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.PublishedReport; +import com.chatopera.cc.app.model.ReportFilter; @Controller @RequestMapping("/apps/view") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/AgentSummaryController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/AgentSummaryController.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/AgentSummaryController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/AgentSummaryController.java index 7050cc77..45999a7a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/AgentSummaryController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/AgentSummaryController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import java.io.IOException; import java.text.ParseException; @@ -33,13 +33,14 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.task.export.ExcelExporterProcess; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.ServiceSummaryRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.model.AgentServiceSummary; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.ServiceSummaryRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.model.AgentServiceSummary; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -51,13 +52,12 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.MetadataTable; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.MetadataTable; @Controller @RequestMapping("/apps/agent/summary") @@ -100,7 +100,7 @@ public class AgentSummaryController extends Handler{ List list = new ArrayList(); list.add(cb.equal(root.get("orgi").as(String.class),orgi)) ; list.add(cb.equal(root.get("process").as(boolean.class), 0)) ; - list.add(cb.notEqual(root.get("channel").as(String.class), UKDataContext.ChannelTypeEnum.PHONE.toString())) ; + list.add(cb.notEqual(root.get("channel").as(String.class), MainContext.ChannelTypeEnum.PHONE.toString())) ; try { if(!StringUtils.isBlank(begin) && begin.matches("[\\d]{4}-[\\d]{2}-[\\d]{2} [\\d]{2}:[\\d]{2}:[\\d]{2}")){ list.add(cb.greaterThanOrEqualTo(root.get("createtime").as(Date.class), UKTools.dateFormate.parse(begin))) ; @@ -118,7 +118,7 @@ public class AgentSummaryController extends Handler{ map.addAttribute("begin", begin) ; map.addAttribute("end", end) ; - map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; return request(super.createAppsTempletResponse("/apps/service/summary/index")); } @@ -128,7 +128,7 @@ public class AgentSummaryController extends Handler{ public ModelAndView process(ModelMap map , HttpServletRequest request , @Valid final String id) { AgentServiceSummary summary = serviceSummaryRes.findByIdAndOrgi(id, super.getOrgi(request)) ; map.addAttribute("summary",summary) ; - map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; if(summary!=null && !StringUtils.isBlank(summary.getAgentserviceid())){ AgentService service = agentServiceRes.findByIdAndOrgi(summary.getAgentserviceid(), super.getOrgi(request)) ; map.addAttribute("service",service) ; @@ -179,7 +179,7 @@ public class AgentSummaryController extends Handler{ @RequestMapping("/expall") @Menu(type = "agent" , subtype = "agentsummary" , access = false) public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response) throws IOException { - Iterable statusEventList = serviceSummaryRes.findByChannelNotAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request) , new PageRequest(0, 10000)); + Iterable statusEventList = serviceSummaryRes.findByChannelNotAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request) , new PageRequest(0, 10000)); MetadataTable table = metadataRes.findByTablename("uk_servicesummary") ; List> values = new ArrayList>(); @@ -205,7 +205,7 @@ public class AgentSummaryController extends Handler{ List list = new ArrayList(); list.add(cb.and(cb.equal(root.get("process").as(boolean.class), 0))) ; list.add(cb.equal(root.get("orgi").as(String.class),orgi)) ; - list.add(cb.and(cb.notEqual(root.get("channel").as(String.class), UKDataContext.ChannelTypeEnum.PHONE.toString()))) ; + list.add(cb.and(cb.notEqual(root.get("channel").as(String.class), MainContext.ChannelTypeEnum.PHONE.toString()))) ; try { if(!StringUtils.isBlank(begin) && begin.matches("[\\d]{4}-[\\d]{2}-[\\d]{2} [\\d]{2}:[\\d]{2}:[\\d]{2}")){ list.add(cb.and(cb.greaterThanOrEqualTo(root.get("createtime").as(Date.class), UKTools.dateFormate.parse(begin)))) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ChatServiceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ChatServiceController.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ChatServiceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ChatServiceController.java index 810bc7f0..2a5d66f0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ChatServiceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ChatServiceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import java.text.ParseException; import java.util.ArrayList; @@ -28,14 +28,14 @@ import javax.persistence.criteria.Root; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.IP; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -48,21 +48,21 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.AgentStatusRepository; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.service.repository.LeaveMsgRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.AiUser; -import com.chatopera.cc.webim.web.model.LeaveMsg; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.AgentStatusRepository; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.app.service.repository.LeaveMsgRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.OrgiSkillRelRepository; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.AgentUser; +import com.chatopera.cc.app.model.AiUser; +import com.chatopera.cc.app.model.LeaveMsg; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.OrgiSkillRel; +import com.chatopera.cc.app.model.User; @Controller @RequestMapping("/service") @@ -147,7 +147,7 @@ public class ChatServiceController extends Handler { @RequestMapping("/current/index") @Menu(type = "service" , subtype = "current" , admin= true) public ModelAndView current(ModelMap map , HttpServletRequest request) { - map.put("agentServiceList", agentServiceRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.INSERVICE.toString() ,new PageRequest(super.getP(request), super.getPs(request), Direction.DESC , "createtime"))) ; + map.put("agentServiceList", agentServiceRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.AgentUserStatusEnum.INSERVICE.toString() ,new PageRequest(super.getP(request), super.getPs(request), Direction.DESC , "createtime"))) ; return request(super.createAppsTempletResponse("/apps/service/current/index")); } @@ -199,7 +199,7 @@ public class ChatServiceController extends Handler { agentUser.setAgentno(agentno); CacheHelper.getAgentUserCacheBean().put(agentService.getUserid() , agentUser , super.getOrgi(request)) ; agentUserRepository.save(agentUser) ; - if(UKDataContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus())){ //转接 , 发送消息给 目标坐席 + if(MainContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus())){ //转接 , 发送消息给 目标坐席 AgentStatus agentStatus = (AgentStatus) CacheHelper.getAgentStatusCacheBean().getCacheObject(super.getUser(request).getId(), super.getOrgi(request)) ; if(agentStatus!=null){ @@ -212,7 +212,7 @@ public class ChatServiceController extends Handler { agentService.setAgentno(agentno); agentService.setAgentusername(transAgentStatus.getUsername()); } - NettyClients.getInstance().sendAgentEventMessage(agentno, UKDataContext.MessageTypeEnum.NEW.toString(), agentUser); + NettyClients.getInstance().sendAgentEventMessage(agentno, MainContext.MessageTypeEnum.NEW.toString(), agentUser); } }else{ agentUser = agentUserRepository.findByIdAndOrgi(agentService.getAgentuserid(), super.getOrgi(request)); @@ -247,7 +247,7 @@ public class ChatServiceController extends Handler { if(agentUser!=null){ ServiceQuene.deleteAgentUser(agentUser, user.getOrgi()); } - agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.END.toString()); agentServiceRes.save(agentService) ; } } @@ -266,7 +266,7 @@ public class ChatServiceController extends Handler { IP ipdata = null ; if(aiUser != null ) { ipdata = aiUser.getIpdata() ; - OnlineUserUtils.newRequestMessage(aiUser.getUserid() , aiUser.getUsername(), user.getOrgi(), agentService.getSessionid(), agentService.getAppid() , agentService.getIpaddr(), agentService.getOsname() , agentService.getBrowser() , "" , ipdata!=null ? ipdata : null , agentService.getChannel() , user.getOrgan(), user.getId() , null ,null, agentService.getContactsid(), UKDataContext.ChatInitiatorType.AGENT.toString() , aiUser.getContextid()) ; + OnlineUserUtils.newRequestMessage(aiUser.getUserid() , aiUser.getUsername(), user.getOrgi(), agentService.getSessionid(), agentService.getAppid() , agentService.getIpaddr(), agentService.getOsname() , agentService.getBrowser() , "" , ipdata!=null ? ipdata : null , agentService.getChannel() , user.getOrgan(), user.getId() , null ,null, agentService.getContactsid(), MainContext.ChatInitiatorType.AGENT.toString() , aiUser.getContextid()) ; } } } @@ -278,7 +278,7 @@ public class ChatServiceController extends Handler { @RequestMapping("/quene/index") @Menu(type = "service" , subtype = "quene" , admin= true) public ModelAndView quene(ModelMap map , HttpServletRequest request) { - Page agentUserList = agentUserRes.findByOrgiAndStatus(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.INQUENE.toString() ,new PageRequest(super.getP(request), super.getPs(request), Direction.DESC , "createtime")) ; + Page agentUserList = agentUserRes.findByOrgiAndStatus(super.getOrgi(request), MainContext.AgentUserStatusEnum.INQUENE.toString() ,new PageRequest(super.getP(request), super.getPs(request), Direction.DESC , "createtime")) ; List skillList = new ArrayList(); for(AgentUser agentUser : agentUserList.getContent()){ agentUser.setWaittingtime((int) (System.currentTimeMillis() - agentUser.getCreatetime().getTime())); @@ -307,7 +307,7 @@ public class ChatServiceController extends Handler { @Menu(type = "service" , subtype = "queneclean" , admin= true) public ModelAndView clean(ModelMap map , HttpServletRequest request ,@Valid String id) { AgentUser agentUser = agentUserRes.findByIdAndOrgi(id, super.getOrgi(request)) ; - if(agentUser!=null && agentUser.getStatus().equals(UKDataContext.AgentUserStatusEnum.INQUENE.toString())){ + if(agentUser!=null && agentUser.getStatus().equals(MainContext.AgentUserStatusEnum.INQUENE.toString())){ agentUser.setAgent(null); agentUser.setSkill(null); agentUserRes.save(agentUser) ; @@ -321,7 +321,7 @@ public class ChatServiceController extends Handler { @Menu(type = "service" , subtype = "invite" , admin= true) public ModelAndView invite(ModelMap map , HttpServletRequest request ,@Valid String id) throws Exception { AgentUser agentUser = agentUserRes.findByIdAndOrgi(id, super.getOrgi(request)) ; - if(agentUser!=null && agentUser.getStatus().equals(UKDataContext.AgentUserStatusEnum.INQUENE.toString())){ + if(agentUser!=null && agentUser.getStatus().equals(MainContext.AgentUserStatusEnum.INQUENE.toString())){ ServiceQuene.allotAgentForInvite(super.getUser(request).getId() , agentUser, super.getOrgi(request)) ; } return request(super.createRequestPageTempletResponse("redirect:/service/quene/index.html")); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/CommentController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/CommentController.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/CommentController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/CommentController.java index 9d301c71..60467777 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/CommentController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/CommentController.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -29,8 +29,8 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentService; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentService; @Controller @RequestMapping("/service") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/OnlineUserController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/OnlineUserController.java similarity index 77% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/OnlineUserController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/OnlineUserController.java index abf4c8d6..4dc84d9e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/OnlineUserController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/OnlineUserController.java @@ -14,22 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.impl.AgentUserService; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentServiceSummary; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.AgentUserContacts; -import com.chatopera.cc.webim.web.model.OnlineUser; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.impl.AgentUserService; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentServiceSummary; +import com.chatopera.cc.app.model.AgentUser; +import com.chatopera.cc.app.model.AgentUserContacts; +import com.chatopera.cc.app.model.OnlineUser; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; @@ -40,18 +40,18 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.AgentUserContactsRepository; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserHisRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.service.repository.ServiceSummaryRepository; -import com.chatopera.cc.webim.service.repository.TagRelationRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.service.repository.UserEventRepository; -import com.chatopera.cc.webim.service.repository.WeiXinUserRepository; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.WeiXinUser; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.AgentUserContactsRepository; +import com.chatopera.cc.app.service.repository.ChatMessageRepository; +import com.chatopera.cc.app.service.repository.OnlineUserHisRepository; +import com.chatopera.cc.app.service.repository.OnlineUserRepository; +import com.chatopera.cc.app.service.repository.ServiceSummaryRepository; +import com.chatopera.cc.app.service.repository.TagRelationRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.service.repository.UserEventRepository; +import com.chatopera.cc.app.service.repository.WeiXinUserRepository; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.WeiXinUser; @Controller @RequestMapping("/service") @@ -100,7 +100,7 @@ public class OnlineUserController extends Handler { map.put("inviteResult", UKTools.getWebIMInviteResult(onlineUserRes.findByOrgiAndUserid(super.getOrgi(request), userid))) ; map.put("tagRelationList", tagRelationRes.findByUserid(userid)) ; map.put("onlineUserHistList", onlineUserHisRes.findByUseridAndOrgi(userid, super.getOrgi(request))) ; - map.put("agentServicesAvg", onlineUserRes.countByUserForAvagTime(super.getOrgi(request), UKDataContext.AgentUserStatusEnum.END.toString(),userid)) ; + map.put("agentServicesAvg", onlineUserRes.countByUserForAvagTime(super.getOrgi(request), MainContext.AgentUserStatusEnum.END.toString(),userid)) ; List agentServiceList = agentServiceRes.findByUseridAndOrgi(userid, super.getOrgi(request)) ; @@ -109,7 +109,7 @@ public class OnlineUserController extends Handler { map.put("serviceCount", Integer .valueOf(this.agentServiceRes .countByUseridAndOrgiAndStatus(userid, super.getOrgi(request), - UKDataContext.AgentUserStatusEnum.END.toString()))); + MainContext.AgentUserStatusEnum.END.toString()))); AgentService agentService = agentServiceList.get(0) ; if(!StringUtils.isBlank(agentservice)){ @@ -132,21 +132,21 @@ public class OnlineUserController extends Handler { map.put("contacts", contactsRes.findOne(agentUserContacts.getContactsid())) ; } - map.put("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.USER.toString())) ; - map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.put("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.USER.toString())) ; + map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; map.put("curAgentService", agentService) ; map.put("agentUserMessageList", chatMessageRepository.findByAgentserviceidAndOrgi(agentService.getId() , super.getOrgi(request), new PageRequest(0, 50, Direction.DESC , "updatetime"))); } - if(UKDataContext.ChannelTypeEnum.WEIXIN.toString().equals(channel)){ + if(MainContext.ChannelTypeEnum.WEIXIN.toString().equals(channel)){ List weiXinUserList = weiXinUserRes.findByOpenidAndOrgi(userid, super.getOrgi(request)) ; if(weiXinUserList.size() > 0){ WeiXinUser weiXinUser = weiXinUserList.get(0) ; map.put("weiXinUser",weiXinUser); } - }else if(UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(channel)){ + }else if(MainContext.ChannelTypeEnum.WEBIM.toString().equals(channel)){ List onlineUserList = onlineUserRes.findByUseridAndOrgi(userid, super.getOrgi(request)) ; if(onlineUserList.size() >0){ map.put("onlineUser", onlineUserList.get(0)) ; @@ -170,7 +170,7 @@ public class OnlineUserController extends Handler { map.put("title", title) ; } - map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; if(agentService!=null){ List summaries = serviceSummaryRes.findByAgentserviceidAndOrgi(agentService.getId(), super.getOrgi(request)) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ProcessedSummaryController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ProcessedSummaryController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ProcessedSummaryController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ProcessedSummaryController.java index 0d58148a..d289128e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/ProcessedSummaryController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/ProcessedSummaryController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import java.io.IOException; import java.text.SimpleDateFormat; @@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -43,20 +44,19 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.task.export.ExcelExporterProcess; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.ServiceSummaryRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.AgentServiceSummary; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.MetadataTable; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.ServiceSummaryRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.AgentServiceSummary; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.MetadataTable; @Controller @RequestMapping("/apps/agent/processed") @@ -99,7 +99,7 @@ public class ProcessedSummaryController extends Handler{ List list = new ArrayList(); list.add(cb.equal(root.get("process").as(boolean.class), 1)) ; list.add(cb.equal(root.get("orgi").as(String.class),orgi)) ; - list.add(cb.notEqual(root.get("channel").as(String.class), UKDataContext.ChannelTypeEnum.PHONE.toString())) ; + list.add(cb.notEqual(root.get("channel").as(String.class), MainContext.ChannelTypeEnum.PHONE.toString())) ; if(!StringUtils.isBlank(ani)){ list.add(cb.equal(root.get("ani").as(String.class), ani)) ; } @@ -125,7 +125,7 @@ public class ProcessedSummaryController extends Handler{ map.addAttribute("begin", begin) ; map.addAttribute("end", end) ; - map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.addAttribute("tags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; return request(super.createAppsTempletResponse("/apps/service/processed/index")); } @@ -136,7 +136,7 @@ public class ProcessedSummaryController extends Handler{ public ModelAndView process(ModelMap map , HttpServletRequest request , @Valid final String id) { AgentServiceSummary summary = serviceSummaryRes.findByIdAndOrgi(id, super.getOrgi(request)) ; map.addAttribute("summary",summary) ; - map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , UKDataContext.ModelType.SUMMARY.toString())) ; + map.put("summaryTags", tagRes.findByOrgiAndTagtype(super.getOrgi(request) , MainContext.ModelType.SUMMARY.toString())) ; if(summary!=null && !StringUtils.isBlank(summary.getAgentserviceid())){ AgentService service = agentServiceRes.findByIdAndOrgi(summary.getAgentserviceid(), super.getOrgi(request)) ; map.addAttribute("service",service) ; @@ -187,7 +187,7 @@ public class ProcessedSummaryController extends Handler{ @RequestMapping("/expall") @Menu(type = "agent" , subtype = "processed" , access = false) public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response) throws IOException { - Iterable statusEventList = serviceSummaryRes.findByChannelNotAndOrgi(UKDataContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request) , new PageRequest(0, 10000)); + Iterable statusEventList = serviceSummaryRes.findByChannelNotAndOrgi(MainContext.ChannelTypeEnum.PHONE.toString() , super.getOrgi(request) , new PageRequest(0, 10000)); MetadataTable table = metadataRes.findByTablename("uk_servicesummary") ; List> values = new ArrayList>(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/StatsController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/StatsController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/StatsController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/StatsController.java index cedb6130..e25feb67 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/service/StatsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/service/StatsController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.service; +package com.chatopera.cc.app.handler.apps.service; import java.text.SimpleDateFormat; import java.util.Date; @@ -25,8 +25,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.bi.ReportData; -import com.chatopera.cc.webim.service.repository.DataSourceService; +import com.chatopera.cc.app.service.repository.DataSourceService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -35,16 +36,15 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.bi.UKExcelUtil; import com.chatopera.cc.util.bi.model.Level; -import com.chatopera.cc.webim.service.repository.CubeService; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.repository.CubeService; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/service") @@ -63,7 +63,7 @@ public class StatsController extends Handler{ mapR.put("orgi",super.getOrgi(request)); ReportData reportData = new CubeService("coment.xml", path, dataSource ,mapR ).execute("SELECT [comment].[满意度].members on columns , NonEmptyCrossJoin([time].[日期].members , NonEmptyCrossJoin([skill].[技能组].members,[agent].[坐席].members)) on rows FROM [满意度]") ; - List dicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_DIC) ; + List dicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_COMMENT_DIC) ; for(Level title : reportData.getCol().getChilderen()){ for(SysDic dic : dicList){ if(dic.getCode().equals(title.getName())){ @@ -105,7 +105,7 @@ public class StatsController extends Handler{ mapR.put("orgi",super.getOrgi(request)); ReportData reportData = new CubeService("coment.xml", path, dataSource , mapR).execute("SELECT [comment].[满意度].members on columns , NonEmptyCrossJoin([time].[日期].members , NonEmptyCrossJoin([skill].[技能组].members,[agent].[坐席].members)) on rows FROM [满意度]") ; - List dicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_COMMENT_DIC) ; + List dicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_COMMENT_DIC) ; for(Level title : reportData.getCol().getChilderen()){ for(SysDic dic : dicList){ if(dic.getCode().equals(title.getName())){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/IMAgentController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/IMAgentController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/IMAgentController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/IMAgentController.java index f70198b9..302e1362 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/IMAgentController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/IMAgentController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.setting; +package com.chatopera.cc.app.handler.apps.setting; import java.io.File; import java.io.IOException; @@ -24,16 +24,17 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.AdTypeRepository; -import com.chatopera.cc.webim.service.repository.SessionConfigRepository; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.service.repository.TemplateRepository; -import com.chatopera.cc.webim.web.model.AdType; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.Tag; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.AdTypeRepository; +import com.chatopera.cc.app.service.repository.SessionConfigRepository; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.service.repository.TemplateRepository; +import com.chatopera.cc.app.model.AdType; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.Tag; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -47,13 +48,12 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.BlackListRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.BlackEntity; -import com.chatopera.cc.webim.web.model.SessionConfig; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.repository.BlackListRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.BlackEntity; +import com.chatopera.cc.app.model.SessionConfig; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/setting") @@ -87,13 +87,13 @@ public class IMAgentController extends Handler{ map.put("sessionConfig", sessionConfig) ; - List dicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC) ; + List dicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC) ; SysDic inputDic = null , outputDic = null ; for(SysDic dic : dicList){ - if(dic.getCode().equals(UKDataContext.UKEFU_SYSTEM_AI_INPUT)){ + if(dic.getCode().equals(MainContext.UKEFU_SYSTEM_AI_INPUT)){ inputDic = dic ; } - if(dic.getCode().equals(UKDataContext.UKEFU_SYSTEM_AI_OUTPUT)){ + if(dic.getCode().equals(MainContext.UKEFU_SYSTEM_AI_OUTPUT)){ outputDic = dic ; } } @@ -120,9 +120,9 @@ public class IMAgentController extends Handler{ tempSessionConfig.setOrgi(super.getOrgi(request)); sessionConfigRes.save(tempSessionConfig) ; - CacheHelper.getSystemCacheBean().put(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG+"_"+super.getOrgi(request),tempSessionConfig, super.getOrgi(request)) ; + CacheHelper.getSystemCacheBean().put(MainContext.SYSTEM_CACHE_SESSION_CONFIG+"_"+super.getOrgi(request),tempSessionConfig, super.getOrgi(request)) ; - CacheHelper.getSystemCacheBean().delete(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG_LIST , UKDataContext.SYSTEM_ORGI) ; + CacheHelper.getSystemCacheBean().delete(MainContext.SYSTEM_CACHE_SESSION_CONFIG_LIST , MainContext.SYSTEM_ORGI) ; ServiceQuene.initSessionConfigList() ; map.put("sessionConfig", tempSessionConfig) ; @@ -147,7 +147,7 @@ public class IMAgentController extends Handler{ BlackEntity tempBlackEntity = blackListRes.findByIdAndOrgi(id, super.getOrgi(request)) ; if(tempBlackEntity!=null){ blackListRes.delete(tempBlackEntity); - CacheHelper.getSystemCacheBean().delete(tempBlackEntity.getUserid(), UKDataContext.SYSTEM_ORGI) ; + CacheHelper.getSystemCacheBean().delete(tempBlackEntity.getUserid(), MainContext.SYSTEM_ORGI) ; } } return request(super.createRequestPageTempletResponse("redirect:/setting/blacklist.html")); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/QuickReplyController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/QuickReplyController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/QuickReplyController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/QuickReplyController.java index b106aaa5..5e681bb9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/setting/QuickReplyController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/setting/QuickReplyController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.setting; +package com.chatopera.cc.app.handler.apps.setting; import java.io.File; import java.io.IOException; @@ -29,7 +29,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.task.DSData; @@ -37,14 +37,14 @@ import com.chatopera.cc.util.task.DSDataEvent; import com.chatopera.cc.util.task.ExcelImportProecess; import com.chatopera.cc.util.task.export.ExcelExporterProcess; import com.chatopera.cc.util.task.process.QuickReplyProcess; -import com.chatopera.cc.webim.service.es.QuickReplyRepository; -import com.chatopera.cc.webim.service.repository.MetadataRepository; -import com.chatopera.cc.webim.service.repository.QuickTypeRepository; -import com.chatopera.cc.webim.service.repository.ReporterRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.QuickReply; -import com.chatopera.cc.webim.web.model.QuickType; +import com.chatopera.cc.app.service.es.QuickReplyRepository; +import com.chatopera.cc.app.service.repository.MetadataRepository; +import com.chatopera.cc.app.service.repository.QuickTypeRepository; +import com.chatopera.cc.app.service.repository.ReporterRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.QuickReply; +import com.chatopera.cc.app.model.QuickType; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -80,12 +80,12 @@ public class QuickReplyController extends Handler { @RequestMapping("/index") @Menu(type = "setting" , subtype = "quickreply" , admin= true) public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String typeid) { - List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString()) ; + List quickTypeList = quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString()) ; if(!StringUtils.isBlank(typeid)){ map.put("quickType", quickTypeRes.findByIdAndOrgi(typeid, super.getOrgi(request))) ; map.put("quickReplyList", quickReplyRes.getByOrgiAndCate(super.getOrgi(request) , typeid , null , new PageRequest(super.getP(request), super.getPs(request)))) ; }else{ - map.put("quickReplyList", quickReplyRes.getByOrgiAndType(super.getOrgi(request) ,UKDataContext.QuickTypeEnum.PUB.toString(), null, new PageRequest(super.getP(request), super.getPs(request)))) ; + map.put("quickReplyList", quickReplyRes.getByOrgiAndType(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString(), null, new PageRequest(super.getP(request), super.getPs(request)))) ; } map.put("pubQuickTypeList", quickTypeList) ; return request(super.createAppsTempletResponse("/apps/setting/quickreply/index")); @@ -96,7 +96,7 @@ public class QuickReplyController extends Handler { if(!StringUtils.isBlank(typeid) && !typeid.equals("0")){ map.put("quickReplyList", quickReplyRes.getByOrgiAndCate(super.getOrgi(request) , typeid, null, new PageRequest(super.getP(request), super.getPs(request)))) ; }else{ - map.put("quickReplyList", quickReplyRes.getByOrgiAndType(super.getOrgi(request),UKDataContext.QuickTypeEnum.PUB.toString() , null , new PageRequest(super.getP(request), super.getPs(request)))) ; + map.put("quickReplyList", quickReplyRes.getByOrgiAndType(super.getOrgi(request), MainContext.QuickTypeEnum.PUB.toString() , null , new PageRequest(super.getP(request), super.getPs(request)))) ; } map.put("quickType", quickTypeRes.findByIdAndOrgi(typeid, super.getOrgi(request))) ; return request(super.createRequestPageTempletResponse("/apps/setting/quickreply/replylist")); @@ -108,7 +108,7 @@ public class QuickReplyController extends Handler { if(!StringUtils.isBlank(parentid)){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(parentid, super.getOrgi(request))) ; } - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString())) ; return request(super.createRequestPageTempletResponse("/apps/setting/quickreply/add")); } @@ -118,7 +118,7 @@ public class QuickReplyController extends Handler { if(!StringUtils.isBlank(quickReply.getTitle()) && !StringUtils.isBlank(quickReply.getContent())){ quickReply.setOrgi(super.getOrgi(request)); quickReply.setCreater(super.getUser(request).getId()); - quickReply.setType(UKDataContext.QuickTypeEnum.PUB.toString()); + quickReply.setType(MainContext.QuickTypeEnum.PUB.toString()); quickReplyRes.save(quickReply) ; } return request(super.createRequestPageTempletResponse("redirect:/setting/quickreply/index.html?typeid="+quickReply.getCate())); @@ -141,7 +141,7 @@ public class QuickReplyController extends Handler { if(quickReply!=null){ map.put("quickType", quickTypeRes.findByIdAndOrgi(quickReply.getCate(), super.getOrgi(request))) ; } - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString())) ; return request(super.createRequestPageTempletResponse("/apps/setting/quickreply/edit")); } @@ -155,7 +155,7 @@ public class QuickReplyController extends Handler { if(temp!=null){ quickReply.setCreatetime(temp.getCreatetime()); } - quickReply.setType(UKDataContext.QuickTypeEnum.PUB.toString()); + quickReply.setType(MainContext.QuickTypeEnum.PUB.toString()); quickReplyRes.save(quickReply) ; } return request(super.createRequestPageTempletResponse("redirect:/setting/quickreply/index.html?typeid="+quickReply.getCate())); @@ -164,7 +164,7 @@ public class QuickReplyController extends Handler { @RequestMapping({"/addtype"}) @Menu(type="apps", subtype="kbs") public ModelAndView addtype(ModelMap map , HttpServletRequest request , @Valid String typeid){ - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString())) ; if(!StringUtils.isBlank(typeid)){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(typeid, super.getOrgi(request))) ; } @@ -179,7 +179,7 @@ public class QuickReplyController extends Handler { quickType.setOrgi(super.getOrgi(request)); quickType.setCreater(super.getUser(request).getId()); quickType.setCreatetime(new Date()); - quickType.setQuicktype(UKDataContext.QuickTypeEnum.PUB.toString()); + quickType.setQuicktype(MainContext.QuickTypeEnum.PUB.toString()); quickTypeRes.save(quickType) ; }else { return request(super.createRequestPageTempletResponse("redirect:/setting/quickreply/index.html?msg=qr_type_exist")); @@ -191,7 +191,7 @@ public class QuickReplyController extends Handler { @Menu(type="apps", subtype="kbs") public ModelAndView edittype(ModelMap map , HttpServletRequest request , String id){ map.addAttribute("quickType", quickTypeRes.findByIdAndOrgi(id, super.getOrgi(request))) ; - map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , UKDataContext.QuickTypeEnum.PUB.toString())) ; + map.addAttribute("quickTypeList", quickTypeRes.findByOrgiAndQuicktype(super.getOrgi(request) , MainContext.QuickTypeEnum.PUB.toString())) ; return request(super.createRequestPageTempletResponse("/apps/setting/quickreply/edittype")); } @@ -253,9 +253,9 @@ public class QuickReplyController extends Handler { if(!StringUtils.isBlank(type)){ event.getValues().put("cate", type) ; }else{ - event.getValues().put("cate", UKDataContext.DEFAULT_TYPE) ; + event.getValues().put("cate", MainContext.DEFAULT_TYPE) ; } - event.getValues().put("type", UKDataContext.QuickTypeEnum.PUB.toString()) ; + event.getValues().put("type", MainContext.QuickTypeEnum.PUB.toString()) ; event.getValues().put("creater", super.getUser(request).getId()) ; event.getDSData().setProcess(new QuickReplyProcess(quickReplyRes)); reporterRes.save(event.getDSData().getReport()) ; @@ -300,7 +300,7 @@ public class QuickReplyController extends Handler { @RequestMapping("/expall") @Menu(type = "setting" , subtype = "quickreplyexpall") public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response,@Valid String type) throws IOException { - Iterable topicList = quickReplyRes.getQuickReplyByOrgi(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : null, UKDataContext.QuickTypeEnum.PUB.toString(),null) ; + Iterable topicList = quickReplyRes.getQuickReplyByOrgi(super.getOrgi(request) , !StringUtils.isBlank(type) ? type : null, MainContext.QuickTypeEnum.PUB.toString(),null) ; MetadataTable table = metadataRes.findByTablename("uk_quickreply") ; List> values = new ArrayList>(); @@ -321,7 +321,7 @@ public class QuickReplyController extends Handler { @Menu(type = "setting" , subtype = "quickreplyexpsearch") public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String q , @Valid String type) throws IOException { - Iterable topicList = quickReplyRes.getQuickReplyByOrgi(super.getOrgi(request) , type,UKDataContext.QuickTypeEnum.PUB.toString(), q) ; + Iterable topicList = quickReplyRes.getQuickReplyByOrgi(super.getOrgi(request) , type, MainContext.QuickTypeEnum.PUB.toString(), q) ; MetadataTable table = metadataRes.findByTablename("uk_quickreply") ; List> values = new ArrayList>(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/tenant/TenantController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/tenant/TenantController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/tenant/TenantController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/tenant/TenantController.java index 57334827..09035c72 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/tenant/TenantController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/tenant/TenantController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.tenant; +package com.chatopera.cc.app.handler.apps.tenant; import java.io.File; import java.io.FileNotFoundException; @@ -30,11 +30,11 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.util.OnlineUserUtils; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.util.OnlineUserUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -46,17 +46,17 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.OrganizationRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.service.repository.TenantRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.Tenant; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.OrganizationRepository; +import com.chatopera.cc.app.service.repository.OrgiSkillRelRepository; +import com.chatopera.cc.app.service.repository.TenantRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.AgentUser; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.OrgiSkillRel; +import com.chatopera.cc.app.model.Tenant; @Controller @RequestMapping("/apps/tenant") @@ -156,7 +156,7 @@ public class TenantController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tenant.setOrgid(super.getUser(request).getOrgid()); }else { - tenant.setOrgid(UKDataContext.SYSTEM_ORGI); + tenant.setOrgid(MainContext.SYSTEM_ORGI); } tenantRes.save(tenant) ; OnlineUserUtils.clean(tenantid); @@ -201,7 +201,7 @@ public class TenantController extends Handler{ if(!StringUtils.isBlank(super.getUser(request).getOrgid())) { tenant.setOrgid(super.getUser(request).getOrgid()); }else { - tenant.setOrgid(UKDataContext.SYSTEM_ORGI); + tenant.setOrgid(MainContext.SYSTEM_ORGI); } tenantRes.save(tenant) ; List orgiSkillRelList = orgiSkillRelRes.findByOrgi(tenant.getId()) ; @@ -256,7 +256,7 @@ public class TenantController extends Handler{ return request(super.createRequestPageTempletResponse("redirect:/apps/tenant/index.html?msg=t0"+"¤torgi="+agentStatus.getOrgi()+"¤tname="+URLEncoder.encode(temp!=null?temp.getTenantname():"","UTF-8"))); } } - AgentUser agentUser = agentUserRepository.findOneByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request)); + AgentUser agentUser = agentUserRepository.findOneByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), MainContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request)); if(agentUser!=null) { if(tenant.getId().equals(agentUser.getOrgi())){ Tenant temp = tenantRes.findById(tenant.getId()) ; @@ -292,7 +292,7 @@ public class TenantController extends Handler{ } return view; } - AgentUser agentUser = agentUserRepository.findOneByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), UKDataContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request)); + AgentUser agentUser = agentUserRepository.findOneByAgentnoAndStatusAndOrgi(super.getUser(request).getId(), MainContext.AgentUserStatusEnum.INSERVICE.toString(), super.getOrgi(request)); if(agentUser!=null&&tenant.getId().equals(agentUser.getOrgi())) { Tenant temp = tenantRes.findById(tenant.getId()) ; if(temp!=null) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/test/TestController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/test/TestController.java similarity index 76% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/test/TestController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/test/TestController.java index f97ed8f4..514e04d7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/apps/test/TestController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/apps/test/TestController.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.apps.test; +package com.chatopera.cc.app.handler.apps.test; import javax.servlet.http.HttpServletRequest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.handler.Handler; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @@ -39,7 +39,7 @@ public class TestController extends Handler { for(int i=0 ; i<500; i++){ String user = UKTools.getUUID(); try { - OnlineUserUtils.newRequestMessage(user, "ukewo", "user", "system", "localhost" , "win10", "test" , UKDataContext.ChannelTypeEnum.WEBIM.toString() , null , null , "admin" , "标题" , "http://www.ukewo.cn" , "12434" , UKDataContext.ChatInitiatorType.USER.toString()) ; + OnlineUserUtils.newRequestMessage(user, "ukewo", "user", "system", "localhost" , "win10", "test" , MainContext.ChannelTypeEnum.WEBIM.toString() , null , null , "admin" , "标题" , "http://www.ukewo.cn" , "12434" , MainContext.ChatInitiatorType.USER.toString()) ; } catch (Exception e) { e.printStackTrace(); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CallAgentResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CallAgentResourceController.java similarity index 85% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CallAgentResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CallAgentResourceController.java index e1b70fe6..94f4a5b2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CallAgentResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CallAgentResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.util.ArrayList; import java.util.List; @@ -27,12 +27,12 @@ import javax.persistence.criteria.Root; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.util.CallCenterUtils; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.util.CallCenterUtils; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Controller; @@ -72,7 +72,7 @@ public class CallAgentResourceController extends Handler { in.value(id) ; } }else{ - in.value(UKDataContext.UKEFU_SYSTEM_NO_DAT) ; + in.value(MainContext.UKEFU_SYSTEM_NO_DAT) ; } list.add(in) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/ContactsResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/ContactsResourceController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/ContactsResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/ContactsResourceController.java index 43a72465..3fa92d38 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/ContactsResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/ContactsResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @@ -27,8 +27,8 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.handler.Handler; @Controller public class ContactsResourceController extends Handler{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CssResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CssResourceController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CssResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CssResourceController.java index 0e7be361..042dcef6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/CssResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/CssResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.io.IOException; @@ -26,7 +26,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.handler.Handler; @Controller public class CssResourceController extends Handler{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/MediaController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/MediaController.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/MediaController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/MediaController.java index 0f988483..1b848522 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/MediaController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/MediaController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.io.File; import java.io.IOException; @@ -40,10 +40,10 @@ import org.springframework.web.servlet.ModelAndView; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.repository.AttachmentRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.AttachmentFile; -import com.chatopera.cc.webim.web.model.UploadStatus; +import com.chatopera.cc.app.service.repository.AttachmentRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.AttachmentFile; +import com.chatopera.cc.app.model.UploadStatus; @Controller @RequestMapping("/res") @@ -147,8 +147,8 @@ public class MediaController extends Handler{ if(attachmentFile!=null){ response.setContentType(attachmentFile.getFiletype()); response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode(attachmentFile.getTitle(), "UTF-8")); - if(!StringUtils.isBlank(attachmentFile.getModel()) && attachmentFile.getModel().equals("webim")){ - response.getOutputStream().write(FileUtils.readFileToByteArray(new File(path , "app/webim/"+attachmentFile.getFileid()))); + if(!StringUtils.isBlank(attachmentFile.getModel()) && attachmentFile.getModel().equals("app")){ + response.getOutputStream().write(FileUtils.readFileToByteArray(new File(path , "app/app/"+attachmentFile.getFileid()))); }else{ response.getOutputStream().write(FileUtils.readFileToByteArray(new File(path , "app/workorders/"+attachmentFile.getFileid()))); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/QuickReplyResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/QuickReplyResourceController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/QuickReplyResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/QuickReplyResourceController.java index 99c690a5..f9932c23 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/QuickReplyResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/QuickReplyResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.io.IOException; @@ -22,13 +22,13 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.util.OnlineUserUtils; +import com.chatopera.cc.util.OnlineUserUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.web.handler.Handler; +import com.chatopera.cc.app.handler.Handler; import freemarker.template.TemplateException; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/SysDicResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/SysDicResourceController.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/SysDicResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/SysDicResourceController.java index c7192aa8..31d63518 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/SysDicResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/SysDicResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.io.IOException; import java.util.ArrayList; @@ -24,14 +24,14 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.web.model.SysDic; +import com.chatopera.cc.app.model.SysDic; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.UKeFuDic; @Controller @RequestMapping("/res") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/UsersResourceController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/UsersResourceController.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/UsersResourceController.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/UsersResourceController.java index fd447048..ddc21327 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/handler/resource/UsersResourceController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/resource/UsersResourceController.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.handler.resource; +package com.chatopera.cc.app.handler.resource; import java.util.ArrayList; import java.util.List; @@ -23,10 +23,10 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.service.repository.OrgiSkillRelRepository; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.service.repository.OrgiSkillRelRepository; +import com.chatopera.cc.app.model.OrgiSkillRel; +import com.chatopera.cc.app.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -35,9 +35,9 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.Organ; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.Organ; @Controller @RequestMapping("/res") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/ServerRunner.java similarity index 66% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/ServerRunner.java index a0e418d6..cfa020d4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/ServerRunner.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/ServerRunner.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server; +package com.chatopera.cc.app.im; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.util.server.handler.AgentEventHandler; -import com.chatopera.cc.webim.util.server.handler.EntIMEventHandler; -import com.chatopera.cc.webim.util.server.handler.IMEventHandler; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.im.handler.AgentEventHandler; +import com.chatopera.cc.app.im.handler.EntIMEventHandler; +import com.chatopera.cc.app.im.handler.IMEventHandler; import com.corundumstudio.socketio.SocketIONamespace; import com.corundumstudio.socketio.SocketIOServer; import org.springframework.beans.factory.annotation.Autowired; @@ -43,24 +43,24 @@ public class ServerRunner implements CommandLineRunner { @Autowired public ServerRunner(SocketIOServer server) { this.server = server; - imSocketNameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.IM.getNamespace()); - agentSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.AGENT.getNamespace()); - entIMSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.ENTIM.getNamespace()); + imSocketNameSpace = server.addNamespace(MainContext.NameSpaceEnum.IM.getNamespace()); + agentSocketIONameSpace = server.addNamespace(MainContext.NameSpaceEnum.AGENT.getNamespace()); + entIMSocketIONameSpace = server.addNamespace(MainContext.NameSpaceEnum.ENTIM.getNamespace()); - if (UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true) { - calloutSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLOUT.getNamespace()); + if (MainContext.model.get("sales") != null && MainContext.model.get("sales") == true) { + calloutSocketIONameSpace = server.addNamespace(MainContext.NameSpaceEnum.CALLOUT.getNamespace()); } else { calloutSocketIONameSpace = null; } - if (UKDataContext.model.get("callcenter") != null && UKDataContext.model.get("callcenter") == true) { - callCenterSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CALLCENTER.getNamespace()); + if (MainContext.model.get("callcenter") != null && MainContext.model.get("callcenter") == true) { + callCenterSocketIONameSpace = server.addNamespace(MainContext.NameSpaceEnum.CALLCENTER.getNamespace()); } else { callCenterSocketIONameSpace = null; } - if (UKDataContext.model.get("chatbot") != null && UKDataContext.model.get("chatbot") == true) { - chatbotSocketIONameSpace = server.addNamespace(UKDataContext.NameSpaceEnum.CHATBOT.getNamespace()); + if (MainContext.model.get("chatbot") != null && MainContext.model.get("chatbot") == true) { + chatbotSocketIONameSpace = server.addNamespace(MainContext.NameSpaceEnum.CHATBOT.getNamespace()); } else { chatbotSocketIONameSpace = null; } @@ -86,10 +86,10 @@ public class ServerRunner implements CommandLineRunner { @Bean(name = "chatbotNamespace") public SocketIONamespace getChatbotSocketIONameSpace(SocketIOServer server) { - if (UKDataContext.model.get("chatbot") != null && UKDataContext.model.get("chatbot") == true) { + if (MainContext.model.get("chatbot") != null && MainContext.model.get("chatbot") == true) { Constructor constructor; try { - constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.ChatbotEventHandler").getConstructor(new Class[]{SocketIOServer.class}); + constructor = Class.forName("com.chatopera.cc.app.im.handler.ChatbotEventHandler").getConstructor(new Class[]{SocketIOServer.class}); chatbotSocketIONameSpace.addListeners(constructor.newInstance(server)); } catch (NoSuchMethodException | SecurityException | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { @@ -102,10 +102,10 @@ public class ServerRunner implements CommandLineRunner { @Bean(name = "callCenterNamespace") public SocketIONamespace getCallCenterIMSocketIONameSpace(SocketIOServer server) { - if (UKDataContext.model.get("callcenter") != null && UKDataContext.model.get("callcenter") == true) { + if (MainContext.model.get("callcenter") != null && MainContext.model.get("callcenter") == true) { Constructor constructor; try { - constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.CallCenterEventHandler").getConstructor(new Class[]{SocketIOServer.class}); + constructor = Class.forName("com.chatopera.cc.app.im.server.handler.CallCenterEventHandler").getConstructor(new Class[]{SocketIOServer.class}); callCenterSocketIONameSpace.addListeners(constructor.newInstance(server)); } catch (NoSuchMethodException | SecurityException | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { @@ -117,10 +117,10 @@ public class ServerRunner implements CommandLineRunner { @Bean(name = "calloutNamespace") public SocketIONamespace getCalloutIMSocketIONameSpace(SocketIOServer server) { - if (UKDataContext.model.get("sales") != null && UKDataContext.model.get("sales") == true) { + if (MainContext.model.get("sales") != null && MainContext.model.get("sales") == true) { Constructor constructor; try { - constructor = Class.forName("com.chatopera.cc.webim.util.server.handler.CalloutEventHandler").getConstructor(new Class[]{SocketIOServer.class}); + constructor = Class.forName("com.chatopera.cc.app.im.handler.CalloutEventHandler").getConstructor(new Class[]{SocketIOServer.class}); calloutSocketIONameSpace.addListeners(constructor.newInstance(server)); } catch (NoSuchMethodException | SecurityException | ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { @@ -132,6 +132,6 @@ public class ServerRunner implements CommandLineRunner { public void run(String... args) throws Exception { server.start(); - UKDataContext.setIMServerStatus(true); //IMServer 启动成功 + MainContext.setIMServerStatus(true); //IMServer 启动成功 } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyAgentClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyAgentClient.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyAgentClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyAgentClient.java index 624b6775..402ecf33 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyAgentClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyAgentClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCallCenterClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCallCenterClient.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCallCenterClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCallCenterClient.java index f2ed9a12..521986f5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCallCenterClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCallCenterClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCalloutClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCalloutClient.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCalloutClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCalloutClient.java index bf9396a6..d66d87a9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyCalloutClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyCalloutClient.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import com.chatopera.cc.util.UKTools; import com.corundumstudio.socketio.SocketIOClient; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyChatbotClient.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyChatbotClient.java index 804405f0..dcc5f140 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyChatbotClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyChatbotClient.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import com.chatopera.cc.util.UKTools; import com.corundumstudio.socketio.SocketIOClient; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClient.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClient.java index acb2584b..358478e9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClients.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClients.java index 2c30e48a..9b2e0b25 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyClients.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyClients.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyIMClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyIMClient.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyIMClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyIMClient.java index 80e96ad8..ee93ad57 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/NettyIMClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/NettyIMClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/util/client/UserClient.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/UserClient.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/util/client/UserClient.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/client/UserClient.java index 10dafed0..d86f62e7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/util/client/UserClient.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/client/UserClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.util.client; +package com.chatopera.cc.app.im.client; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AgentEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/AgentEventHandler.java similarity index 73% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AgentEventHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/AgentEventHandler.java index ef200e73..35f942fe 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/AgentEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/AgentEventHandler.java @@ -14,21 +14,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.handler; +package com.chatopera.cc.app.im.handler; import java.net.InetSocketAddress; import java.util.Date; import java.util.List; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.util.router.OutMessageRouter; -import com.chatopera.cc.webim.util.server.message.AgentServiceMessage; -import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; -import com.chatopera.cc.webim.util.server.message.ChatMessage; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.im.router.OutMessageRouter; +import com.chatopera.cc.app.im.message.AgentServiceMessage; +import com.chatopera.cc.app.im.message.AgentStatusMessage; +import com.chatopera.cc.app.im.message.ChatMessage; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,16 +38,16 @@ import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.OnConnect; import com.corundumstudio.socketio.annotation.OnDisconnect; import com.corundumstudio.socketio.annotation.OnEvent; -import com.chatopera.cc.webim.service.repository.AgentStatusRepository; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.service.repository.AgentUserTaskRepository; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.service.repository.WorkSessionRepository; -import com.chatopera.cc.webim.web.model.AgentStatus; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.AgentUserTask; -import com.chatopera.cc.webim.web.model.MessageOutContent; -import com.chatopera.cc.webim.web.model.WorkSession; +import com.chatopera.cc.app.service.repository.AgentStatusRepository; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.app.service.repository.AgentUserTaskRepository; +import com.chatopera.cc.app.service.repository.ChatMessageRepository; +import com.chatopera.cc.app.service.repository.WorkSessionRepository; +import com.chatopera.cc.app.model.AgentStatus; +import com.chatopera.cc.app.model.AgentUser; +import com.chatopera.cc.app.model.AgentUserTask; +import com.chatopera.cc.app.model.MessageOutContent; +import com.chatopera.cc.app.model.WorkSession; public class AgentEventHandler { @@ -68,7 +68,7 @@ public class AgentEventHandler String admin = client.getHandshakeData().getSingleUrlParam("admin") ; if(!StringUtils.isBlank(user) && !StringUtils.isBlank(user)){ client.set("agentno", user); - AgentStatusRepository agentStatusRepository = UKDataContext.getContext().getBean(AgentStatusRepository.class) ; + AgentStatusRepository agentStatusRepository = MainContext.getContext().getBean(AgentStatusRepository.class) ; List agentStatusList = agentStatusRepository.findByAgentnoAndOrgi(user , orgi); if(agentStatusList.size() > 0){ AgentStatus agentStatus = agentStatusList.get(0) ; @@ -82,7 +82,7 @@ public class AgentEventHandler String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()) ; - WorkSessionRepository workSessionRepository = UKDataContext.getContext().getBean(WorkSessionRepository.class) ; + WorkSessionRepository workSessionRepository = MainContext.getContext().getBean(WorkSessionRepository.class) ; int count = workSessionRepository.countByAgentAndDatestrAndOrgi(user, UKTools.simpleDateFormat.format(new Date()), orgi) ; workSessionRepository.save(UKTools.createWorkSession(user, UKTools.getContextID(client.getSessionId().toString()), session, orgi, ip, address.getHostName() , admin , count == 0)) ; @@ -102,7 +102,7 @@ public class AgentEventHandler ServiceQuene.deleteAgentStatus(user, orgi, !StringUtils.isBlank(admin) && admin.equals("true")); NettyClients.getInstance().removeAgentEventClient(user , UKTools.getContextID(client.getSessionId().toString())); - WorkSessionRepository workSessionRepository = UKDataContext.getContext().getBean(WorkSessionRepository.class) ; + WorkSessionRepository workSessionRepository = MainContext.getContext().getBean(WorkSessionRepository.class) ; List workSessionList = workSessionRepository.findByOrgiAndClientid(orgi, UKTools.getContextID(client.getSessionId().toString())) ; if(workSessionList.size() > 0) { WorkSession workSession = workSessionList.get(0) ; @@ -142,21 +142,21 @@ public class AgentEventHandler AgentUser agentUser = (AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(data.getTouser(), data.getOrgi()); MessageOutContent outMessage = new MessageOutContent() ; outMessage.setMessage(data.getMessage()); - if(UKDataContext.MediaTypeEnum.COOPERATION.toString().equals(data.getMsgtype())){ - outMessage.setMessageType(UKDataContext.MediaTypeEnum.COOPERATION.toString()); + if(MainContext.MediaTypeEnum.COOPERATION.toString().equals(data.getMsgtype())){ + outMessage.setMessageType(MainContext.MediaTypeEnum.COOPERATION.toString()); }else{ - outMessage.setMessageType(UKDataContext.MediaTypeEnum.TEXT.toString()); + outMessage.setMessageType(MainContext.MediaTypeEnum.TEXT.toString()); } outMessage.setAttachmentid(data.getAttachmentid()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.OUT.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.OUT.toString()); outMessage.setAgentUser(agentUser); outMessage.setSnsAccount(null); AgentStatus agentStatus = (AgentStatus) CacheHelper.getAgentStatusCacheBean().getCacheObject(data.getUserid(), data.getOrgi()) ; if(agentUser == null){ - agentUser = UKDataContext.getContext().getBean(AgentUserRepository.class).findByIdAndOrgi(data.getTouser() , data.getOrgi()) ; + agentUser = MainContext.getContext().getBean(AgentUserRepository.class).findByIdAndOrgi(data.getTouser() , data.getOrgi()) ; try { ServiceQuene.serviceFinish(agentUser, data.getOrgi()); } catch (Exception e) { @@ -171,13 +171,13 @@ public class AgentEventHandler data.setAgentserviceid(agentUser.getAgentserviceid()); data.setCreater(agentUser.getAgentno()); - if(UKDataContext.MediaTypeEnum.COOPERATION.toString().equals(data.getMsgtype())){ - data.setMsgtype(UKDataContext.MediaTypeEnum.COOPERATION.toString()); + if(MainContext.MediaTypeEnum.COOPERATION.toString().equals(data.getMsgtype())){ + data.setMsgtype(MainContext.MediaTypeEnum.COOPERATION.toString()); }else{ - data.setMsgtype(UKDataContext.MediaTypeEnum.TEXT.toString()); + data.setMsgtype(MainContext.MediaTypeEnum.TEXT.toString()); } - data.setCalltype(UKDataContext.CallTypeEnum.OUT.toString()); + data.setCalltype(MainContext.CallTypeEnum.OUT.toString()); if(!StringUtils.isBlank(agentUser.getAgentno())){ data.setTouser(agentUser.getUserid()); } @@ -197,7 +197,7 @@ public class AgentEventHandler } outMessage.setCreatetime(data.getCreatetime()); - AgentUserTaskRepository agentUserTaskRes = UKDataContext.getContext().getBean(AgentUserTaskRepository.class) ; + AgentUserTaskRepository agentUserTaskRes = MainContext.getContext().getBean(AgentUserTaskRepository.class) ; AgentUserTask agentUserTask = agentUserTaskRes.getOne(agentUser.getId()) ; if(agentUserTask!=null){ @@ -225,19 +225,19 @@ public class AgentEventHandler /** * 保存消息 */ - UKDataContext.getContext().getBean(ChatMessageRepository.class).save(data) ; + MainContext.getContext().getBean(ChatMessageRepository.class).save(data) ; - client.sendEvent(UKDataContext.MessageTypeEnum.MESSAGE.toString(), data); + client.sendEvent(MainContext.MessageTypeEnum.MESSAGE.toString(), data); if(!StringUtils.isBlank(data.getTouser())){ OutMessageRouter router = null ; - router = (OutMessageRouter) UKDataContext.getContext().getBean(agentUser.getChannel()) ; + router = (OutMessageRouter) MainContext.getContext().getBean(agentUser.getChannel()) ; if(router!=null){ - router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); + router.handler(data.getTouser(), MainContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); } } }else if(user!=null && agentUser!=null && !user.equals(agentUser.getAgentno())){ - client.sendEvent(UKDataContext.MessageTypeEnum.END.toString(), agentUser); + client.sendEvent(MainContext.MessageTypeEnum.END.toString(), agentUser); } } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/CalloutEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/CalloutEventHandler.java similarity index 72% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/CalloutEventHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/CalloutEventHandler.java index d8a37487..bbc29942 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/CalloutEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/CalloutEventHandler.java @@ -14,37 +14,20 @@ * limitations under the License. */ -package com.chatopera.cc.webim.util.server.handler; +package com.chatopera.cc.app.im.handler; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.impl.AgentUserService; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.util.MessageUtils; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; -import com.chatopera.cc.webim.util.server.message.ChatMessage; -import com.chatopera.cc.webim.util.server.message.NewRequestMessage; -import com.chatopera.cc.webim.web.model.*; -import com.corundumstudio.socketio.AckRequest; +import com.chatopera.cc.app.im.client.NettyClients; import com.corundumstudio.socketio.SocketIOClient; import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.OnConnect; import com.corundumstudio.socketio.annotation.OnDisconnect; -import com.corundumstudio.socketio.annotation.OnEvent; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; -import java.util.Date; -import java.util.List; public class CalloutEventHandler { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/ChatbotEventHandler.java similarity index 75% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/ChatbotEventHandler.java index 599a3989..ee063f64 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/ChatbotEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/ChatbotEventHandler.java @@ -13,25 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.handler; +package com.chatopera.cc.app.im.handler; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.IP; import com.chatopera.cc.util.IPTools; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.service.repository.OnlineUserRepository; -import com.chatopera.cc.webim.util.MessageUtils; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.router.OutMessageRouter; -import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; -import com.chatopera.cc.webim.util.server.message.ChatMessage; -import com.chatopera.cc.webim.util.server.message.NewRequestMessage; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.app.service.repository.OnlineUserRepository; +import com.chatopera.cc.app.im.router.OutMessageRouter; +import com.chatopera.cc.util.MessageUtils; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.im.message.AgentStatusMessage; +import com.chatopera.cc.app.im.message.ChatMessage; +import com.chatopera.cc.app.im.message.NewRequestMessage; import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.SocketIOClient; import com.corundumstudio.socketio.SocketIOServer; @@ -78,19 +78,19 @@ public class ChatbotEventHandler { // */ NettyClients.getInstance().putChatbotEventClient(user, client); MessageOutContent outMessage = new MessageOutContent(); - CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + CousultInvite invite = OnlineUserUtils.cousult(appid, orgi, MainContext.getContext().getBean(ConsultInviteRepository.class)); if (invite != null && StringUtils.isNotBlank(invite.getAisuccesstip())) { outMessage.setMessage(invite.getAisuccesstip()); } else { outMessage.setMessage("欢迎使用华夏春松机器人客服!"); } - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); outMessage.setNickName(invite.getAiname()); outMessage.setCreatetime(UKTools.dateFormate.format(now)); - client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); + client.sendEvent(MainContext.MessageTypeEnum.STATUS.toString(), outMessage); InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress(); String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()); @@ -102,15 +102,15 @@ public class ChatbotEventHandler { if (StringUtils.isNotBlank(nickname)) { onlineUser.setUsername(nickname); } else { - onlineUser.setUsername(UKDataContext.GUEST_USER + "_" + UKTools.genIDByKey(user)); + onlineUser.setUsername(MainContext.GUEST_USER + "_" + UKTools.genIDByKey(user)); } onlineUser.setSessionid(session); - onlineUser.setOptype(UKDataContext.OptTypeEnum.CHATBOT.toString()); + onlineUser.setOptype(MainContext.OptTypeEnum.CHATBOT.toString()); onlineUser.setUserid(user); onlineUser.setId(user); onlineUser.setOrgi(orgi); - onlineUser.setChannel(UKDataContext.ChannelTypeEnum.WEBIM.toString()); + onlineUser.setChannel(MainContext.ChannelTypeEnum.WEBIM.toString()); onlineUser.setIp(ip); onlineUser.setUpdatetime(now); onlineUser.setLogintime(now); @@ -121,15 +121,15 @@ public class ChatbotEventHandler { onlineUser.setProvince(ipdata.getProvince()); onlineUser.setIsp(ipdata.getIsp()); onlineUser.setRegion(ipdata.getRegion()); - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.ONLINE.toString()); + onlineUser.setStatus(MainContext.OnlineUserOperatorStatus.ONLINE.toString()); } // 在线客服访客咨询记录 AgentUser agentUser = new AgentUser(onlineUser.getId(), - UKDataContext.ChannelTypeEnum.WEBIM.toString(), // callout + MainContext.ChannelTypeEnum.WEBIM.toString(), // callout onlineUser.getId(), onlineUser.getUsername(), - UKDataContext.SYSTEM_ORGI, + MainContext.SYSTEM_ORGI, appid); agentUser.setServicetime(now); @@ -137,7 +137,7 @@ public class ChatbotEventHandler { agentUser.setUpdatetime(now); agentUser.setSessionid(session); // 聊天机器人处理的请求 - agentUser.setOpttype(UKDataContext.OptTypeEnum.CHATBOT.toString()); + agentUser.setOpttype(MainContext.OptTypeEnum.CHATBOT.toString()); agentUser.setAgentno(aiid); // 聊天机器人ID agentUser.setCity(onlineUser.getCity()); agentUser.setProvince(onlineUser.getProvince()); @@ -166,10 +166,10 @@ public class ChatbotEventHandler { OnlineUser onlineUser = (OnlineUser) CacheHelper.getOnlineUserCacheBean().getCacheObject(user, orgi); if (agentUser != null) { ServiceQuene.processChatbotService(agentUser, orgi); - CacheHelper.getAgentUserCacheBean().delete(user, UKDataContext.SYSTEM_ORGI); + CacheHelper.getAgentUserCacheBean().delete(user, MainContext.SYSTEM_ORGI); CacheHelper.getOnlineUserCacheBean().delete(user, orgi); - agentUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); - onlineUser.setStatus(UKDataContext.OnlineUserOperatorStatus.OFFLINE.toString()); + agentUser.setStatus(MainContext.OnlineUserOperatorStatus.OFFLINE.toString()); + onlineUser.setStatus(MainContext.OnlineUserOperatorStatus.OFFLINE.toString()); getAgentUserRes().save(agentUser); getOnlineUserRes().save(onlineUser); } @@ -201,7 +201,7 @@ public class ChatbotEventHandler { /** * 以下代码主要用于检查 访客端的字数限制 */ - CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(), data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(), data.getOrgi(), MainContext.getContext().getBean(ConsultInviteRepository.class)); if (invite != null && invite.getMaxwordsnum() > 0) { if (!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()) { data.setMessage(data.getMessage().substring(0, invite.getMaxwordsnum())); @@ -227,13 +227,13 @@ public class ChatbotEventHandler { */ data.setContextid(agentUser.getAgentserviceid()); } - MessageOutContent outMessage = MessageUtils.createAiMessage(data, data.getAppid(), data.getChannel(), UKDataContext.CallTypeEnum.IN.toString(), UKDataContext.AiItemType.USERINPUT.toString(), UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); - if (StringUtils.isNotBlank(data.getUserid()) && UKDataContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())) { + MessageOutContent outMessage = MessageUtils.createAiMessage(data, data.getAppid(), data.getChannel(), MainContext.CallTypeEnum.IN.toString(), MainContext.AiItemType.USERINPUT.toString(), MainContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); + if (StringUtils.isNotBlank(data.getUserid()) && MainContext.MessageTypeEnum.MESSAGE.toString().equals(data.getType())) { if (!StringUtils.isBlank(data.getTouser())) { OutMessageRouter router = null; - router = (OutMessageRouter) UKDataContext.getContext().getBean(data.getChannel()); + router = (OutMessageRouter) MainContext.getContext().getBean(data.getChannel()); if (router != null) { - router.handler(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); + router.handler(data.getTouser(), MainContext.MessageTypeEnum.MESSAGE.toString(), data.getAppid(), outMessage); } } if (agentUser != null) { @@ -241,7 +241,7 @@ public class ChatbotEventHandler { agentUser.setUpdatetime(now); agentUser.setLastmessage(now); agentUser.setLastmsg(data.getMessage()); - CacheHelper.getAgentUserCacheBean().put(user, agentUser, UKDataContext.SYSTEM_ORGI); + CacheHelper.getAgentUserCacheBean().put(user, agentUser, MainContext.SYSTEM_ORGI); } } } @@ -252,7 +252,7 @@ public class ChatbotEventHandler { */ public AgentUserRepository getAgentUserRes() { if (agentUserRes == null) - agentUserRes = UKDataContext.getContext().getBean(AgentUserRepository.class); + agentUserRes = MainContext.getContext().getBean(AgentUserRepository.class); return agentUserRes; } @@ -262,7 +262,7 @@ public class ChatbotEventHandler { */ public OnlineUserRepository getOnlineUserRes() { if (onlineUserRes == null) - onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class); + onlineUserRes = MainContext.getContext().getBean(OnlineUserRepository.class); return onlineUserRes; } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/EntIMEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/EntIMEventHandler.java similarity index 73% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/EntIMEventHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/EntIMEventHandler.java index 74b1fd13..fdccf16d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/EntIMEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/EntIMEventHandler.java @@ -14,10 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.handler; +package com.chatopera.cc.app.im.handler; import java.util.List; +import com.chatopera.cc.app.MainContext; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -27,17 +28,16 @@ import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.OnConnect; import com.corundumstudio.socketio.annotation.OnDisconnect; import com.corundumstudio.socketio.annotation.OnEvent; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.repository.ChatMessageRepository; -import com.chatopera.cc.webim.service.repository.IMGroupUserRepository; -import com.chatopera.cc.webim.service.repository.RecentUserRepository; -import com.chatopera.cc.webim.util.server.message.ChatMessage; -import com.chatopera.cc.webim.web.model.IMGroupUser; -import com.chatopera.cc.webim.web.model.MessageOutContent; -import com.chatopera.cc.webim.web.model.RecentUser; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.repository.ChatMessageRepository; +import com.chatopera.cc.app.service.repository.IMGroupUserRepository; +import com.chatopera.cc.app.service.repository.RecentUserRepository; +import com.chatopera.cc.app.im.message.ChatMessage; +import com.chatopera.cc.app.model.IMGroupUser; +import com.chatopera.cc.app.model.MessageOutContent; +import com.chatopera.cc.app.model.RecentUser; +import com.chatopera.cc.app.model.User; public class EntIMEventHandler { @@ -65,14 +65,14 @@ public class EntIMEventHandler outMessage.setMessage("online"); outMessage.setNickName(name); outMessage.setContextid(user); - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); client.getNamespace().getBroadcastOperations().sendEvent("status", outMessage); //广播所有人,用户上线 } if(!StringUtils.isBlank(user)){ NettyClients.getInstance().putEntIMEventClient(user, client); } - IMGroupUserRepository imGroupUserRes = UKDataContext.getContext().getBean(IMGroupUserRepository.class) ; + IMGroupUserRepository imGroupUserRes = MainContext.getContext().getBean(IMGroupUserRepository.class) ; User imUser = new User(user); List imGroupUserList = imGroupUserRes.findByUserAndOrgi(imUser , orgi) ; for(IMGroupUser imGroupUser : imGroupUserList){ @@ -105,12 +105,12 @@ public class EntIMEventHandler outMessage.setMessage("offline"); outMessage.setNickName(name); outMessage.setContextid(user); - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); client.getNamespace().getBroadcastOperations().sendEvent("status", outMessage); //广播所有人,用户上线 } - IMGroupUserRepository imGroupUserRes = UKDataContext.getContext().getBean(IMGroupUserRepository.class) ; + IMGroupUserRepository imGroupUserRes = MainContext.getContext().getBean(IMGroupUserRepository.class) ; User imUser = new User(user); List imGroupUserList = imGroupUserRes.findByUserAndOrgi(imUser , orgi) ; for(IMGroupUser imGroupUser : imGroupUserList){ @@ -139,27 +139,27 @@ public class EntIMEventHandler // data.setUsername(name); data.setId(UKTools.getUUID()); data.setUsession(user); - data.setCalltype(UKDataContext.CallTypeEnum.OUT.toString()); + data.setCalltype(MainContext.CallTypeEnum.OUT.toString()); - if(UKDataContext.getContext()!=null){ - ChatMessageRepository chatMessageRes = UKDataContext.getContext().getBean(ChatMessageRepository.class) ; - RecentUserRepository recentUserRes = UKDataContext.getContext().getBean(RecentUserRepository.class) ; + if(MainContext.getContext()!=null){ + ChatMessageRepository chatMessageRes = MainContext.getContext().getBean(ChatMessageRepository.class) ; + RecentUserRepository recentUserRes = MainContext.getContext().getBean(RecentUserRepository.class) ; if(!StringUtils.isBlank(group)){ //如果是群聊 data.setContextid(group); chatMessageRes.save(data) ; - client.getNamespace().getRoomOperations(group).sendEvent(UKDataContext.MessageTypeEnum.MESSAGE.toString(), data); + client.getNamespace().getRoomOperations(group).sendEvent(MainContext.MessageTypeEnum.MESSAGE.toString(), data); }else{ //单聊 data.setContextid(data.getTouser()); chatMessageRes.save(data) ; - NettyClients.getInstance().sendEntIMEventMessage(data.getUserid(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data); //同时将消息发送给自己 - data.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + NettyClients.getInstance().sendEntIMEventMessage(data.getUserid(), MainContext.MessageTypeEnum.MESSAGE.toString(), data); //同时将消息发送给自己 + data.setCalltype(MainContext.CallTypeEnum.IN.toString()); data.setContextid(user); data.setUserid(data.getTouser()); // data.setId(null); chatMessageRes.save(data) ; //每条消息存放两条,一个是我的对话记录 , 另一条是对方的对话历史, 情况当前聊天记录的时候,只清理自己的 - NettyClients.getInstance().sendEntIMEventMessage(data.getTouser(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), data); //发送消息给目标用户 + NettyClients.getInstance().sendEntIMEventMessage(data.getTouser(), MainContext.MessageTypeEnum.MESSAGE.toString(), data); //发送消息给目标用户 RecentUser recentUser = recentUserRes.findByCreaterAndUserAndOrgi(data.getTouser() , new User(user) , orgi) ; if(recentUser!=null){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/IMEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/IMEventHandler.java similarity index 76% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/IMEventHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/IMEventHandler.java index a4829301..748f261b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/handler/IMEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/handler/IMEventHandler.java @@ -14,15 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.handler; +package com.chatopera.cc.app.im.handler; import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.util.server.message.ChatMessage; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.im.message.ChatMessage; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -32,22 +33,21 @@ import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.OnConnect; import com.corundumstudio.socketio.annotation.OnDisconnect; import com.corundumstudio.socketio.annotation.OnEvent; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.service.impl.AgentUserService; -import com.chatopera.cc.webim.service.repository.AgentServiceRepository; -import com.chatopera.cc.webim.service.repository.ConsultInviteRepository; -import com.chatopera.cc.webim.util.MessageUtils; -import com.chatopera.cc.webim.util.OnlineUserUtils; -import com.chatopera.cc.webim.util.server.message.AgentStatusMessage; -import com.chatopera.cc.webim.util.server.message.NewRequestMessage; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.AgentUser; -import com.chatopera.cc.webim.web.model.Contacts; -import com.chatopera.cc.webim.web.model.CousultInvite; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.impl.AgentUserService; +import com.chatopera.cc.app.service.repository.AgentServiceRepository; +import com.chatopera.cc.app.service.repository.ConsultInviteRepository; +import com.chatopera.cc.util.MessageUtils; +import com.chatopera.cc.util.OnlineUserUtils; +import com.chatopera.cc.app.im.message.AgentStatusMessage; +import com.chatopera.cc.app.im.message.NewRequestMessage; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.AgentUser; +import com.chatopera.cc.app.model.Contacts; +import com.chatopera.cc.app.model.CousultInvite; +import com.chatopera.cc.app.model.MessageOutContent; public class IMEventHandler { @@ -82,7 +82,7 @@ public class IMEventHandler */ InetSocketAddress address = (InetSocketAddress) client.getRemoteAddress() ; String ip = UKTools.getIpAddr(client.getHandshakeData().getHttpHeaders(), address.getHostString()) ; - NewRequestMessage newRequestMessage = OnlineUserUtils.newRequestMessage(user, orgi , session , appid , ip , client.getHandshakeData().getSingleUrlParam("osname") , client.getHandshakeData().getSingleUrlParam("browser") , UKDataContext.ChannelTypeEnum.WEBIM.toString() , skill , agent , nickname , title , url , traceid , UKDataContext.ChatInitiatorType.USER.toString()) ; + NewRequestMessage newRequestMessage = OnlineUserUtils.newRequestMessage(user, orgi , session , appid , ip , client.getHandshakeData().getSingleUrlParam("osname") , client.getHandshakeData().getSingleUrlParam("browser") , MainContext.ChannelTypeEnum.WEBIM.toString() , skill , agent , nickname , title , url , traceid , MainContext.ChatInitiatorType.USER.toString()) ; // /** // * 加入到 缓存列表 // */ @@ -91,15 +91,15 @@ public class IMEventHandler if(newRequestMessage!=null && !StringUtils.isBlank(newRequestMessage.getMessage())){ MessageOutContent outMessage = new MessageOutContent() ; outMessage.setMessage(newRequestMessage.getMessage()); - outMessage.setMessageType(UKDataContext.MessageTypeEnum.MESSAGE.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.MessageTypeEnum.MESSAGE.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); outMessage.setNickName(newRequestMessage.getUsername()); outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); outMessage.setAgentserviceid(newRequestMessage.getAgentserviceid()); outMessage.setNoagent(newRequestMessage.isNoagent()); - client.sendEvent(UKDataContext.MessageTypeEnum.STATUS.toString(), outMessage); + client.sendEvent(MainContext.MessageTypeEnum.STATUS.toString(), outMessage); } }else{//非法链接 client.disconnect(); @@ -121,7 +121,7 @@ public class IMEventHandler /** * 用户主动断开服务 */ - ServiceQuene.serviceFinish((AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(user, UKDataContext.SYSTEM_ORGI), orgi); + ServiceQuene.serviceFinish((AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(user, MainContext.SYSTEM_ORGI), orgi); } catch (Exception e) { e.printStackTrace(); } @@ -136,7 +136,7 @@ public class IMEventHandler String user = client.getHandshakeData().getSingleUrlParam("userid") ; String orgi = client.getHandshakeData().getSingleUrlParam("orgi") ; AgentUser agentUser = (AgentUser) CacheHelper.getAgentUserCacheBean().getCacheObject(user, orgi) ; - AgentUserService service = UKDataContext.getContext().getBean( + AgentUserService service = MainContext.getContext().getBean( AgentUserService.class); if(agentUser == null){ agentUser = service.findByUseridAndOrgi(user , orgi); @@ -147,10 +147,10 @@ public class IMEventHandler agentUser.setEmail(contacts.getEmail()); agentUser.setResion(contacts.getMemo()); service.save(agentUser); - CacheHelper.getAgentUserCacheBean().put(agentUser.getUserid(), agentUser , UKDataContext.SYSTEM_ORGI) ; + CacheHelper.getAgentUserCacheBean().put(agentUser.getUserid(), agentUser , MainContext.SYSTEM_ORGI) ; } - AgentServiceRepository agentServiceRes = UKDataContext.getContext().getBean(AgentServiceRepository.class) ; + AgentServiceRepository agentServiceRes = MainContext.getContext().getBean(AgentServiceRepository.class) ; List agentServiceList = agentServiceRes.findByUseridAndOrgi(user, orgi) ; if(agentServiceList.size() > 0){ AgentService agentService = agentServiceList.get(0) ; @@ -179,7 +179,7 @@ public class IMEventHandler /** * 以下代码主要用于检查 访客端的字数限制 */ - CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(),data.getOrgi(), UKDataContext.getContext().getBean(ConsultInviteRepository.class)); + CousultInvite invite = OnlineUserUtils.cousult(data.getAppid(),data.getOrgi(), MainContext.getContext().getBean(ConsultInviteRepository.class)); if(invite!=null && invite.getMaxwordsnum() > 0) { if(!StringUtils.isBlank(data.getMessage()) && data.getMessage().length() > invite.getMaxwordsnum()){ data.setMessage(data.getMessage().substring(0 , invite.getMaxwordsnum())); @@ -192,6 +192,6 @@ public class IMEventHandler */ data.setMessage(UKTools.processEmoti(data.getMessage())); - MessageUtils.createMessage(data , UKDataContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); + MessageUtils.createMessage(data , MainContext.MediaTypeEnum.TEXT.toString(), data.getUserid()); } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentServiceMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentServiceMessage.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentServiceMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentServiceMessage.java index 67a15ddf..15b6d5f7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentServiceMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentServiceMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import com.chatopera.cc.util.UKTools; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentStatusMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentStatusMessage.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentStatusMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentStatusMessage.java index b27f8219..a3e35bd1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/AgentStatusMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/AgentStatusMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import com.chatopera.cc.util.UKTools; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatMessage.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatMessage.java index 7dd4672e..8b09f812 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -32,8 +32,8 @@ import org.apache.commons.lang3.StringUtils; import org.hibernate.annotations.GenericGenerator; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.event.UserEvent; -import com.chatopera.cc.webim.util.OnlineUserUtils; +import com.chatopera.cc.event.UserEvent; +import com.chatopera.cc.util.OnlineUserUtils; @Entity @Table(name = "uk_chat_message") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatObject.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatObject.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatObject.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatObject.java index dc9d0510..cb159f91 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/ChatObject.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/ChatObject.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; public class ChatObject { private String userName; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/Message.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/Message.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/Message.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/Message.java index 6bfb0d25..6d362ae7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/Message.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/Message.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import com.chatopera.cc.util.UKTools; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/NewRequestMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/NewRequestMessage.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/NewRequestMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/NewRequestMessage.java index 30202c7e..82c2fc0a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/NewRequestMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/NewRequestMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import com.chatopera.cc.util.UKTools; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessage.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessage.java index 53f01851..fd3fc9f7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessageItem.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessageItem.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessageItem.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessageItem.java index 1118096d..c93c2b7e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/server/message/OtherMessageItem.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/message/OtherMessageItem.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.server.message; +package com.chatopera.cc.app.im.message; public class OtherMessageItem implements java.io.Serializable{ /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/AgentUserRouter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/AgentUserRouter.java similarity index 82% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/AgentUserRouter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/AgentUserRouter.java index 680a558f..0f94352c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/AgentUserRouter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/AgentUserRouter.java @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.webim.web.model.MessageDataBean; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.model.MessageDataBean; +import com.chatopera.cc.app.model.MessageOutContent; public class AgentUserRouter extends Router{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/CallOutMessageRouter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/CallOutMessageRouter.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/CallOutMessageRouter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/CallOutMessageRouter.java index db338129..7ae24e01 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/CallOutMessageRouter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/CallOutMessageRouter.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.model.MessageOutContent; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/MessageRouter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/MessageRouter.java similarity index 71% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/MessageRouter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/MessageRouter.java index 58cb8159..81eb3e23 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/MessageRouter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/MessageRouter.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.web.model.AgentService; -import com.chatopera.cc.webim.web.model.MessageDataBean; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.model.AgentService; +import com.chatopera.cc.app.model.MessageDataBean; +import com.chatopera.cc.app.model.MessageOutContent; public class MessageRouter extends Router{ @@ -41,23 +41,23 @@ public class MessageRouter extends Router{ * 首先交由 IMR处理 MESSAGE指令 , 如果当前用户是在 坐席对话列表中, 则直接推送给坐席,如果不在,则执行 IMR */ if(outMessage.getAgentUser()!=null && outMessage.getAgentUser().getStatus()!=null){ - if(outMessage.getAgentUser().getStatus().equals(UKDataContext.AgentUserStatusEnum.INQUENE.toString())){ + if(outMessage.getAgentUser().getStatus().equals(MainContext.AgentUserStatusEnum.INQUENE.toString())){ int queneIndex = ServiceQuene.getQueneIndex(inMessage.getAgentUser().getAgent() , inMessage.getOrgi(), inMessage.getAgentUser().getSkill()) ; - if(UKDataContext.AgentUserStatusEnum.INQUENE.toString().equals(outMessage.getAgentUser().getStatus())){ + if(MainContext.AgentUserStatusEnum.INQUENE.toString().equals(outMessage.getAgentUser().getStatus())){ outMessage.setMessage(ServiceQuene.getQueneMessage(queneIndex , outMessage.getAgentUser().getChannel(),inMessage.getOrgi())); } - }else if(outMessage.getAgentUser().getStatus().equals(UKDataContext.AgentUserStatusEnum.INSERVICE.toString())){ + }else if(outMessage.getAgentUser().getStatus().equals(MainContext.AgentUserStatusEnum.INSERVICE.toString())){ } - }else if(UKDataContext.MessageTypeEnum.NEW.toString().equals(inMessage.getMessageType())){ + }else if(MainContext.MessageTypeEnum.NEW.toString().equals(inMessage.getMessageType())){ /** * 找到空闲坐席,如果未找到坐席, 则将该用户放入到 排队队列 * */ AgentService agentService = ServiceQuene.allotAgent(inMessage.getAgentUser(), inMessage.getOrgi()) ; - if(agentService!=null && UKDataContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentService.getStatus())){ + if(agentService!=null && MainContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentService.getStatus())){ outMessage.setMessage(ServiceQuene.getSuccessMessage(agentService , inMessage.getAgentUser().getChannel(),inMessage.getOrgi())); - NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), UKDataContext.MessageTypeEnum.NEW.toString(), inMessage.getAgentUser()); + NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), MainContext.MessageTypeEnum.NEW.toString(), inMessage.getAgentUser()); }else{ if(agentService.getQueneindex() > 0){ //当前有坐席 outMessage.setMessage(ServiceQuene.getQueneMessage(agentService.getQueneindex(), inMessage.getAgentUser().getChannel(), inMessage.getOrgi())); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/OutMessageRouter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/OutMessageRouter.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/OutMessageRouter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/OutMessageRouter.java index e12ca5a5..b0a416a8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/OutMessageRouter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/OutMessageRouter.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.model.MessageOutContent; public interface OutMessageRouter { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/Router.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/Router.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/Router.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/Router.java index 8253e52f..5c55a308 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/Router.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/Router.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.webim.web.model.MessageDataBean; +import com.chatopera.cc.app.model.MessageDataBean; public abstract class Router { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/RouterHelper.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/RouterHelper.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/RouterHelper.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/RouterHelper.java index dec8b057..bac7bd3d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/RouterHelper.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/RouterHelper.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; public class RouterHelper { private static Router router = new MessageRouter(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/WebIMOutMessageRouter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/WebIMOutMessageRouter.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/WebIMOutMessageRouter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/im/router/WebIMOutMessageRouter.java index 31ec2bc0..8f60b68d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/util/router/WebIMOutMessageRouter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/im/router/WebIMOutMessageRouter.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.util.router; +package com.chatopera.cc.app.im.router; -import com.chatopera.cc.util.client.NettyClients; +import com.chatopera.cc.app.im.client.NettyClients; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; -import com.chatopera.cc.webim.web.model.MessageOutContent; +import com.chatopera.cc.app.model.MessageOutContent; @Component public class WebIMOutMessageRouter implements OutMessageRouter{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/CrossInterceptorHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/CrossInterceptorHandler.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/CrossInterceptorHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/CrossInterceptorHandler.java index 66d55c2f..f8a6665b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/CrossInterceptorHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/CrossInterceptorHandler.java @@ -14,16 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.interceptor; +package com.chatopera.cc.app.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.chatopera.cc.app.MainContext; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; -import com.chatopera.cc.core.UKDataContext; - public class CrossInterceptorHandler extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) @@ -40,7 +39,7 @@ public class CrossInterceptorHandler extends HandlerInterceptorAdapter { public void postHandle(HttpServletRequest arg0, HttpServletResponse response, Object arg2, ModelAndView view) throws Exception { if(view!=null){ - view.addObject("models", UKDataContext.model) ; + view.addObject("models", MainContext.model) ; } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/LogIntercreptorHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/LogIntercreptorHandler.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/LogIntercreptorHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/LogIntercreptorHandler.java index 8fa6f932..adc4ad25 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/LogIntercreptorHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/LogIntercreptorHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.interceptor; +package com.chatopera.cc.app.interceptor; import java.util.Date; import java.util.Enumeration; @@ -23,16 +23,16 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.ModelAndView; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.handler.Handler; -import com.chatopera.cc.webim.web.model.RequestLog; +import com.chatopera.cc.app.handler.Handler; +import com.chatopera.cc.app.model.RequestLog; /** * 系统访问记录 @@ -72,8 +72,8 @@ public class LogIntercreptorHandler implements org.springframework.web.servlet.H log.setHostname(request.getRemoteHost()) ; log.setEndtime(new Date()); - log.setType(UKDataContext.LogTypeEnum.REQUEST.toString()) ; - User user = (User) request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) ; + log.setType(MainContext.LogTypeEnum.REQUEST.toString()) ; + User user = (User) request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) ; if(user!=null){ log.setUserid(user.getId()) ; log.setUsername(user.getUsername()) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/UserInterceptorHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/UserInterceptorHandler.java similarity index 78% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/UserInterceptorHandler.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/UserInterceptorHandler.java index 8e6db8e5..a1608239 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/interceptor/UserInterceptorHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/interceptor/UserInterceptorHandler.java @@ -14,14 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.interceptor; +package com.chatopera.cc.app.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.Menu; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; @@ -30,18 +31,17 @@ import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.service.acd.ServiceQuene; -import com.chatopera.cc.webim.web.model.SystemConfig; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.service.acd.ServiceQuene; +import com.chatopera.cc.app.model.SystemConfig; +import com.chatopera.cc.app.model.UKeFuDic; public class UserInterceptorHandler extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { boolean filter = false; - User user = (User) request.getSession(true).getAttribute(UKDataContext.USER_SESSION_NAME) ; + User user = (User) request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) ; if(handler instanceof HandlerMethod) { HandlerMethod handlerMethod = (HandlerMethod ) handler ; Menu menu = handlerMethod.getMethod().getAnnotation(Menu.class) ; @@ -60,8 +60,8 @@ public class UserInterceptorHandler extends HandlerInterceptorAdapter { public void postHandle(HttpServletRequest arg0, HttpServletResponse response, Object arg2, ModelAndView view) throws Exception { - User user = (User) arg0.getSession().getAttribute(UKDataContext.USER_SESSION_NAME) ; - String infoace = (String) arg0.getSession().getAttribute(UKDataContext.UKEFU_SYSTEM_INFOACQ) ; //进入信息采集模式 + User user = (User) arg0.getSession().getAttribute(MainContext.USER_SESSION_NAME) ; + String infoace = (String) arg0.getSession().getAttribute(MainContext.UKEFU_SYSTEM_INFOACQ) ; //进入信息采集模式 SystemConfig systemConfig = UKTools.getSystemConfig(); if( view!=null){ if(user!=null){ @@ -92,10 +92,10 @@ public class UserInterceptorHandler extends HandlerInterceptorAdapter { if(!StringUtils.isBlank(infoace)){ view.addObject("infoace", infoace) ; //进入信息采集模式 } - view.addObject("webimport",UKDataContext.getWebIMPort()) ; + view.addObject("webimport", MainContext.getWebIMPort()) ; view.addObject("sessionid", UKTools.getContextID(arg0.getSession().getId())) ; - view.addObject("models", UKDataContext.model) ; + view.addObject("models", MainContext.model) ; if(user!=null){ view.addObject("agentStatusReport",ServiceQuene.getAgentReport(user.getOrgi())) ; @@ -103,10 +103,10 @@ public class UserInterceptorHandler extends HandlerInterceptorAdapter { /** * WebIM共享用户 */ - User imUser = (User) arg0.getSession().getAttribute(UKDataContext.IM_USER_SESSION_NAME) ; + User imUser = (User) arg0.getSession().getAttribute(MainContext.IM_USER_SESSION_NAME) ; if(imUser == null && view!=null){ imUser = new User(); - imUser.setUsername(UKDataContext.GUEST_USER) ; + imUser.setUsername(MainContext.GUEST_USER) ; imUser.setId(UKTools.getContextID(arg0.getSession(true).getId())) ; imUser.setSessionid(imUser.getId()) ; view.addObject("imuser", imUser) ; @@ -117,7 +117,7 @@ public class UserInterceptorHandler extends HandlerInterceptorAdapter { } view.addObject("uKeFuDic", UKeFuDic.getInstance()) ; //处理系统 字典数据 , 通过 字典code 获取 - view.addObject("uKeFuSecField", CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.UKEFU_SYSTEM_SECFIELD, UKDataContext.SYSTEM_ORGI)) ; //处理系统 需要隐藏号码的字段, 启动的时候加载 + view.addObject("uKeFuSecField", CacheHelper.getSystemCacheBean().getCacheObject(MainContext.UKEFU_SYSTEM_SECFIELD, MainContext.SYSTEM_ORGI)) ; //处理系统 需要隐藏号码的字段, 启动的时候加载 if(systemConfig != null){ view.addObject("systemConfig", systemConfig) ; @@ -128,7 +128,7 @@ public class UserInterceptorHandler extends HandlerInterceptorAdapter { view.addObject("advTypeList", UKeFuDic.getInstance().getDic("com.dic.adv.type")) ; - Logger logger = LogManager.getLogger("com.chatopera.cc.webim.web.handler.apps.internet.UCKeFuWeiXinController") ; + Logger logger = LogManager.getLogger("com.chatopera.cc.app.handler.apps.internet.UCKeFuWeiXinController") ; if(logger!=null && logger.getLevel() != null){ systemConfig.setLoglevel(logger.getLevel().toString()); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Acl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Acl.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Acl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Acl.java index 56982a2b..4e93a186 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Acl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Acl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AdType.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AdType.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AdType.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AdType.java index 22e76df4..efdc9b62 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AdType.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AdType.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentReport.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentReport.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentReport.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentReport.java index 9e5eaa74..c6f6245d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentReport.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentReport.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentService.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentService.java index e4abfb9e..d89409b6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.text.SimpleDateFormat; @@ -27,7 +27,7 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Proxy; @@ -110,7 +110,7 @@ public class AgentService implements Serializable { private String solvestatus ; //问题解决状态 private boolean leavemsg ; //是否留言 - private String leavemsgstatus = UKDataContext.LeaveMsgStatus.NOTPROCESS.toString(); //已处理、未处理 + private String leavemsgstatus = MainContext.LeaveMsgStatus.NOTPROCESS.toString(); //已处理、未处理 private String qualitystatus ;//质检状态 , 已分配/未分配 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSatis.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSatis.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSatis.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSatis.java index af0623a5..b31a45c8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSatis.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSatis.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSummary.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSummary.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSummary.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSummary.java index 051472c4..cd487960 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentServiceSummary.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentServiceSummary.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentStatus.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentStatus.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentStatus.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentStatus.java index c0bfe76b..a3028fa9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/AgentStatus.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/AgentStatus.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; @@ -25,11 +25,11 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; +import com.chatopera.cc.app.MainContext; import org.apache.commons.lang3.StringUtils; import org.hibernate.annotations.GenericGenerator; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.acd.ServiceQuene; +import com.chatopera.cc.app.service.acd.ServiceQuene; @Entity @Table(name = "uk_agentstatus") @@ -44,7 +44,7 @@ public class AgentStatus implements java.io.Serializable , Comparable suggest = null ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/MetadataTable.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/MetadataTable.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/MetadataTable.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/MetadataTable.java index 9683fe1f..bac89248 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/MetadataTable.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/MetadataTable.java @@ -16,7 +16,7 @@ */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUser.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUser.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUser.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUser.java index 3a31f04c..458dc5de 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUser.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUser.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; @@ -26,7 +26,7 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; -import com.chatopera.cc.util.event.UserEvent; +import com.chatopera.cc.event.UserEvent; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Proxy; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUserHis.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUserHis.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUserHis.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUserHis.java index cbd9475b..ee8d759f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OnlineUserHis.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OnlineUserHis.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrdersComment.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrdersComment.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrdersComment.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/OrdersComment.java index a4f99da7..04412537 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrdersComment.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrdersComment.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organ.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Organ.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organ.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Organ.java index 60e5d70b..af90c645 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organ.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Organ.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrganRole.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrganRole.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrganRole.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/OrganRole.java index b724a896..f5c36956 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrganRole.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrganRole.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organization.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Organization.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organization.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Organization.java index 8d833b05..6c9ea604 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Organization.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Organization.java @@ -16,7 +16,7 @@ */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrgiSkillRel.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrgiSkillRel.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrgiSkillRel.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/OrgiSkillRel.java index 71985780..d826e4c1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/OrgiSkillRel.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/OrgiSkillRel.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PbxHost.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PbxHost.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PbxHost.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/PbxHost.java index 0529f3f7..f6a95bc3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PbxHost.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PbxHost.java @@ -16,7 +16,7 @@ */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ProcessContent.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ProcessContent.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ProcessContent.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/ProcessContent.java index fa9b333a..1eaf6b5f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ProcessContent.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ProcessContent.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Product.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Product.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Product.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Product.java index 7da1f152..0457ca99 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Product.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Product.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PropertiesEvent.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PropertiesEvent.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PropertiesEvent.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/PropertiesEvent.java index e223065f..e51dbf09 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PropertiesEvent.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PropertiesEvent.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedCube.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedCube.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedCube.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedCube.java index 25a46504..b68948c0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedCube.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedCube.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedReport.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedReport.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedReport.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedReport.java index 919660da..dd91e3b5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/PublishedReport.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/PublishedReport.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Quality.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Quality.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Quality.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Quality.java index 21a7e869..bc0216d1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Quality.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Quality.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QualityRequest.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QualityRequest.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QualityRequest.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QualityRequest.java index 964726a0..0f6fda8c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QualityRequest.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QualityRequest.java @@ -16,7 +16,7 @@ */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; public class QualityRequest { private String[] title; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyAnswer.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyAnswer.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyAnswer.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyAnswer.java index e3b70557..e3ab9ed6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyAnswer.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyAnswer.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; import javax.persistence.Column; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyProcess.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyProcess.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyProcess.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyProcess.java index 0db6b12a..70628af5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyProcess.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyProcess.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyQuestion.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyQuestion.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyQuestion.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyQuestion.java index e702b5ca..4129d5b2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QueSurveyQuestion.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QueSurveyQuestion.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; import javax.persistence.Column; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickReply.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickReply.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickReply.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickReply.java index 9e52c56b..7afdbc8d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickReply.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickReply.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickType.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickType.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickType.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickType.java index 835b9759..db4f767b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/QuickType.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/QuickType.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RecentUser.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RecentUser.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RecentUser.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/RecentUser.java index c91bc6ae..f502f914 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RecentUser.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RecentUser.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Report.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Report.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Report.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Report.java index 8561e0be..262c2358 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Report.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Report.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.ArrayList; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportFilter.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportFilter.java index 4c8d2b82..47bdd1d4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportFilter.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportModel.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportModel.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportModel.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportModel.java index 06dc08c3..f397bf8c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ReportModel.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ReportModel.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.ArrayList; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Reporter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Reporter.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Reporter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Reporter.java index a40339cf..445879ec 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Reporter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Reporter.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; import java.util.concurrent.atomic.AtomicInteger; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RequestLog.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RequestLog.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RequestLog.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/RequestLog.java index 7fdf09d3..b65d4cea 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RequestLog.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RequestLog.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; @@ -25,7 +25,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; -import com.chatopera.cc.util.event.UserEvent; +import com.chatopera.cc.event.UserEvent; import org.hibernate.annotations.GenericGenerator; /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Role.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Role.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Role.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Role.java index b1970807..1f3a9900 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Role.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Role.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RoleAuth.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RoleAuth.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RoleAuth.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/RoleAuth.java index 346f8cdc..13f1c155 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RoleAuth.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RoleAuth.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RouterRules.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RouterRules.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RouterRules.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/RouterRules.java index 7c748254..a024b4fd 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/RouterRules.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/RouterRules.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SNSAccount.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SNSAccount.java index 3dfa5ba5..fc1f0902 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SNSAccount.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SNSAccount.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SaleStatus.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SaleStatus.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SaleStatus.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SaleStatus.java index 02e6eb9a..2c098e02 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SaleStatus.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SaleStatus.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Scene.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Scene.java similarity index 99% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Scene.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Scene.java index 55d76ff1..718c1c8c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Scene.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Scene.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SceneType.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SceneType.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SceneType.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SceneType.java index 28d708b9..8b98dcc7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SceneType.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SceneType.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Secret.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Secret.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Secret.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Secret.java index 8fb2c2ff..c36d81b8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Secret.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Secret.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ServiceAi.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ServiceAi.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ServiceAi.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/ServiceAi.java index 4070b05e..61ed56fe 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/ServiceAi.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/ServiceAi.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SessionConfig.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SessionConfig.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SessionConfig.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SessionConfig.java index 8f6f4fbf..746e8706 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SessionConfig.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SessionConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SipTrunk.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SipTrunk.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SipTrunk.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SipTrunk.java index 4161a759..d481aa2a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SipTrunk.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SipTrunk.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Skill.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Skill.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Skill.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Skill.java index 30e16888..6a78d146 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Skill.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Skill.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SkillExtention.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SkillExtention.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SkillExtention.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SkillExtention.java index c688e1c4..1353934e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SkillExtention.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SkillExtention.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEvent.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEvent.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEvent.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEvent.java index 7b4f3bbd..8ca567ed 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEvent.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEvent.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.text.SimpleDateFormat; @@ -30,7 +30,7 @@ import javax.persistence.Transient; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Proxy; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; @Entity @@ -118,7 +118,7 @@ public class StatusEvent implements Serializable, Comparable{ private String batid ; //呼叫ID,电销业务产生的 private String dataid ; //呼叫ID,电销业务产生的 private String nameid ; //名单ID,电销业务产生的 - private String statustype = UKDataContext.StatusTypeEnum.INBOUND.toString(); //呼叫类型 : 电销业务产生的 + private String statustype = MainContext.StatusTypeEnum.INBOUND.toString(); //呼叫类型 : 电销业务产生的 private String disphonenum ; //是否隐藏号码 private String distype ; //号码隐藏方式 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEventSatisf.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEventSatisf.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEventSatisf.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEventSatisf.java index 6f0c7c13..65d3f331 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/StatusEventSatisf.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/StatusEventSatisf.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SysDic.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SysDic.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SysDic.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SysDic.java index ccb8ce04..9e862432 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SysDic.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SysDic.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemConfig.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemConfig.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemConfig.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemConfig.java index 9f7fe184..aa269fcc 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemConfig.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemMessage.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemMessage.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemMessage.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemMessage.java index bd142ef7..408cf21d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/SystemMessage.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/SystemMessage.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TableProperties.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TableProperties.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TableProperties.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/TableProperties.java index c20b74b5..bcc0925e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TableProperties.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TableProperties.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tag.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Tag.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tag.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Tag.java index 8c9f47e2..980ef606 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tag.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Tag.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TagRelation.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TagRelation.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TagRelation.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/TagRelation.java index 4655bace..a4bd51a2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TagRelation.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TagRelation.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Template.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Template.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Template.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Template.java index 0b02e7d6..aabf8f48 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Template.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Template.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tenant.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Tenant.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tenant.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Tenant.java index 2277c7ba..891102a6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Tenant.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Tenant.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Topic.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Topic.java similarity index 99% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Topic.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/Topic.java index 5ab2a811..feaa4759 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/Topic.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/Topic.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.ArrayList; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TopicItem.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TopicItem.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TopicItem.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/TopicItem.java index 33c84a69..1574f0af 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/TopicItem.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/TopicItem.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKAgg.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKAgg.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKAgg.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKAgg.java index 1fe04221..100344ff 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKAgg.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKAgg.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKFacet.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKFacet.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKFacet.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKFacet.java index 61a962d5..89200003 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKFacet.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKFacet.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKeFuDic.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKeFuDic.java similarity index 82% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKeFuDic.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKeFuDic.java index 9e202186..34e14035 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKeFuDic.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKeFuDic.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; public class UKeFuDic extends HashMap{ @@ -37,20 +37,20 @@ public class UKeFuDic extends HashMap{ @SuppressWarnings("unchecked") public List getSysDic(String key){ - return (List) CacheHelper.getSystemCacheBean().getCacheObject(key, UKDataContext.SYSTEM_ORGI) ; + return (List) CacheHelper.getSystemCacheBean().getCacheObject(key, MainContext.SYSTEM_ORGI) ; } @Override @SuppressWarnings("unchecked") public V get(Object key) { - Object obj = CacheHelper.getSystemCacheBean().getCacheObject(String.valueOf(key), UKDataContext.SYSTEM_ORGI) ; + Object obj = CacheHelper.getSystemCacheBean().getCacheObject(String.valueOf(key), MainContext.SYSTEM_ORGI) ; if(obj!=null && obj instanceof List){ obj = getDic((String) key) ; }else if(obj == null && (String.valueOf(key)).endsWith(".subdic") && (String.valueOf(key)).lastIndexOf(".subdic") > 0){ String id = (String.valueOf(key)).substring(0 , (String.valueOf(key)).lastIndexOf(".subdic")) ; - SysDic dic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, UKDataContext.SYSTEM_ORGI) ; + SysDic dic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, MainContext.SYSTEM_ORGI) ; if(dic!=null){ - SysDic sysDic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(dic.getDicid(), UKDataContext.SYSTEM_ORGI) ; + SysDic sysDic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(dic.getDicid(), MainContext.SYSTEM_ORGI) ; obj = getDic(sysDic.getCode(), dic.getParentid()) ; } } @@ -60,7 +60,7 @@ public class UKeFuDic extends HashMap{ @SuppressWarnings("unchecked") public List getDic(String code){ List dicList = new ArrayList() ; - List sysDicList = (List) CacheHelper.getSystemCacheBean().getCacheObject(code, UKDataContext.SYSTEM_ORGI) ; + List sysDicList = (List) CacheHelper.getSystemCacheBean().getCacheObject(code, MainContext.SYSTEM_ORGI) ; if(sysDicList!=null){ for(SysDic dic : sysDicList){ if(dic.getParentid().equals(dic.getDicid())){ @@ -74,7 +74,7 @@ public class UKeFuDic extends HashMap{ @SuppressWarnings("unchecked") public List getDic(String code , String id){ List dicList = new ArrayList() ; - List sysDicList = (List) CacheHelper.getSystemCacheBean().getCacheObject(code, UKDataContext.SYSTEM_ORGI) ; + List sysDicList = (List) CacheHelper.getSystemCacheBean().getCacheObject(code, MainContext.SYSTEM_ORGI) ; if(sysDicList!=null){ for(SysDic dic : sysDicList){ if(dic.getParentid().equals(id)){ @@ -92,6 +92,6 @@ public class UKeFuDic extends HashMap{ } public SysDic getDicItem(String id){ - return (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, UKDataContext.SYSTEM_ORGI) ; + return (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, MainContext.SYSTEM_ORGI) ; } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutConfig.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutConfig.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutConfig.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutConfig.java index d847f011..3571f100 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutConfig.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutFilter.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutFilter.java index 98f1b896..ee8da76b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutFilter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutNames.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutNames.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutNames.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutNames.java index 29088704..244e6967 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutNames.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutNames.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutRole.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutRole.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutRole.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutRole.java index 0945fc61..f3dfb0c7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutRole.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutRole.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutTask.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutTask.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutTask.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutTask.java index f3ca0f4d..ca7eb911 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UKefuCallOutTask.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UKefuCallOutTask.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.io.Serializable; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UploadStatus.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UploadStatus.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UploadStatus.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UploadStatus.java index 03cd2127..57a2e3ea 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UploadStatus.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UploadStatus.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; public class UploadStatus { private String error ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/User.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/User.java similarity index 99% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/User.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/User.java index 8199f1f8..3d54e472 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/User.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/User.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.*; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserHistory.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserHistory.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserHistory.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UserHistory.java index 81f3c8c7..c5c550da 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserHistory.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserHistory.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; @@ -24,7 +24,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; -import com.chatopera.cc.util.event.UserEvent; +import com.chatopera.cc.event.UserEvent; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Proxy; @@ -67,7 +67,7 @@ public class UserHistory implements UserEvent { private String param ; private int times ; private String createdate = UKTools.simpleDateFormat.format(new Date()); - private String model = "webim"; + private String model = "app"; @Id @Column(length=32) @GeneratedValue(generator="system-uuid") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserRole.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserRole.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserRole.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UserRole.java index b67e8589..e460aca3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserRole.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserRole.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserTraceHistory.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserTraceHistory.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserTraceHistory.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/UserTraceHistory.java index acf19e7c..8b08cb7a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/UserTraceHistory.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/UserTraceHistory.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; @@ -24,7 +24,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; -import com.chatopera.cc.util.event.UserEvent; +import com.chatopera.cc.event.UserEvent; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Proxy; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WebIMReport.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WebIMReport.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WebIMReport.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WebIMReport.java index 80753a0f..d9bfe801 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WebIMReport.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WebIMReport.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; public class WebIMReport { private long users ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WeiXinUser.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WeiXinUser.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WeiXinUser.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WeiXinUser.java index b31c2b29..bde993a4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WeiXinUser.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WeiXinUser.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkMonitor.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkMonitor.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkMonitor.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkMonitor.java index d826bcaa..cd67c286 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkMonitor.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkMonitor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrderType.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrderType.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrderType.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrderType.java index d5b51715..2ab8dd7c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrderType.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrderType.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrders.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrders.java similarity index 99% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrders.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrders.java index eff5a1dc..750b2421 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkOrders.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkOrders.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkSession.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkSession.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkSession.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkSession.java index c68f8fb3..41b6be90 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkSession.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkSession.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkTime.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkTime.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkTime.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkTime.java index 3f68185a..033cac36 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WorkTime.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WorkTime.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WxMpEvent.java b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WxMpEvent.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WxMpEvent.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/model/WxMpEvent.java index 81025657..17c9b122 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/web/model/WxMpEvent.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/model/WxMpEvent.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.web.model; +package com.chatopera.cc.app.model; import java.util.Date; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/acd/ServiceQuene.java similarity index 79% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/acd/ServiceQuene.java index 792729e6..16a53c21 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/acd/ServiceQuene.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/acd/ServiceQuene.java @@ -14,19 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.acd; +package com.chatopera.cc.app.service.acd; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.WebIMReport; -import com.chatopera.cc.util.client.NettyClients; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.quene.AgentStatusBusyOrgiFilter; -import com.chatopera.cc.webim.service.quene.AgentStatusOrgiFilter; -import com.chatopera.cc.webim.service.quene.AgentUserOrgiFilter; -import com.chatopera.cc.webim.service.repository.*; -import com.chatopera.cc.webim.util.router.OutMessageRouter; -import com.chatopera.cc.webim.web.model.*; +import com.chatopera.cc.app.im.client.NettyClients; +import com.chatopera.cc.app.model.*; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.quene.AgentStatusBusyOrgiFilter; +import com.chatopera.cc.app.service.quene.AgentStatusOrgiFilter; +import com.chatopera.cc.app.service.quene.AgentUserOrgiFilter; +import com.chatopera.cc.app.service.repository.*; +import com.chatopera.cc.app.im.router.OutMessageRouter; import com.corundumstudio.socketio.SocketIONamespace; import com.hazelcast.core.IMap; import com.hazelcast.mapreduce.aggregation.Aggregations; @@ -57,13 +57,13 @@ public class ServiceQuene { */ public static SessionConfig initSessionConfig(String orgi) { SessionConfig sessionConfig = null; - if (UKDataContext.getContext() != null && (sessionConfig = (SessionConfig) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG + "_" + orgi, orgi)) == null) { - SessionConfigRepository sessionConfigRes = UKDataContext.getContext().getBean(SessionConfigRepository.class); + if (MainContext.getContext() != null && (sessionConfig = (SessionConfig) CacheHelper.getSystemCacheBean().getCacheObject(MainContext.SYSTEM_CACHE_SESSION_CONFIG + "_" + orgi, orgi)) == null) { + SessionConfigRepository sessionConfigRes = MainContext.getContext().getBean(SessionConfigRepository.class); sessionConfig = sessionConfigRes.findByOrgi(orgi); if (sessionConfig == null) { sessionConfig = new SessionConfig(); } else { - CacheHelper.getSystemCacheBean().put(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG + "_" + orgi, sessionConfig, orgi); + CacheHelper.getSystemCacheBean().put(MainContext.SYSTEM_CACHE_SESSION_CONFIG + "_" + orgi, sessionConfig, orgi); } } return sessionConfig; @@ -78,11 +78,11 @@ public class ServiceQuene { @SuppressWarnings("unchecked") public static List initSessionConfigList() { List sessionConfigList = null; - if (UKDataContext.getContext() != null && (sessionConfigList = (List) CacheHelper.getSystemCacheBean().getCacheObject(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG_LIST, UKDataContext.SYSTEM_ORGI)) == null) { - SessionConfigRepository sessionConfigRes = UKDataContext.getContext().getBean(SessionConfigRepository.class); + if (MainContext.getContext() != null && (sessionConfigList = (List) CacheHelper.getSystemCacheBean().getCacheObject(MainContext.SYSTEM_CACHE_SESSION_CONFIG_LIST, MainContext.SYSTEM_ORGI)) == null) { + SessionConfigRepository sessionConfigRes = MainContext.getContext().getBean(SessionConfigRepository.class); sessionConfigList = sessionConfigRes.findAll(); if (sessionConfigList != null && sessionConfigList.size() > 0) { - CacheHelper.getSystemCacheBean().put(UKDataContext.SYSTEM_CACHE_SESSION_CONFIG_LIST, sessionConfigList, UKDataContext.SYSTEM_ORGI); + CacheHelper.getSystemCacheBean().put(MainContext.SYSTEM_CACHE_SESSION_CONFIG_LIST, sessionConfigList, MainContext.SYSTEM_ORGI); } } return sessionConfigList; @@ -113,10 +113,10 @@ public class ServiceQuene { * 统计当前服务中的用户数量 */ IMap agentUserMap = (IMap) CacheHelper.getAgentUserCacheBean().getCache(); - Long users = (Long) agentUserMap.aggregate(Supplier.fromKeyPredicate(new AgentUserOrgiFilter(orgi, UKDataContext.AgentUserStatusEnum.INSERVICE.toString())), Aggregations.count()); + Long users = (Long) agentUserMap.aggregate(Supplier.fromKeyPredicate(new AgentUserOrgiFilter(orgi, MainContext.AgentUserStatusEnum.INSERVICE.toString())), Aggregations.count()); report.setUsers(users.intValue()); - Long queneUsers = (Long) agentUserMap.aggregate(Supplier.fromKeyPredicate(new AgentUserOrgiFilter(orgi, UKDataContext.AgentUserStatusEnum.INQUENE.toString())), Aggregations.count()); + Long queneUsers = (Long) agentUserMap.aggregate(Supplier.fromKeyPredicate(new AgentUserOrgiFilter(orgi, MainContext.AgentUserStatusEnum.INQUENE.toString())), Aggregations.count()); report.setInquene(queneUsers.intValue()); return report; @@ -194,7 +194,7 @@ public class ServiceQuene { agentStatusList.addAll(((IMap) CacheHelper.getAgentUserCacheBean().getCache()).values(pagingPredicate)); for (AgentUser agentUser : agentStatusList) { SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); - long maxusers = sessionConfig != null ? sessionConfig.getMaxuser() : UKDataContext.AGENT_STATUS_MAX_USER; + long maxusers = sessionConfig != null ? sessionConfig.getMaxuser() : MainContext.AGENT_STATUS_MAX_USER; if (agentStatus != null && agentStatus.getUsers() < maxusers) { //坐席未达到最大咨询访客数量 CacheHelper.getAgentUserCacheBean().delete(agentUser.getUserid(), orgi); //从队列移除,进入正在处理的队列, 避免使用 分布式锁 try { @@ -202,20 +202,20 @@ public class ServiceQuene { MessageOutContent outMessage = new MessageOutContent(); outMessage.setMessage(ServiceQuene.getSuccessMessage(agentService, agentUser.getChannel(), orgi)); - outMessage.setMessageType(UKDataContext.MediaTypeEnum.TEXT.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.MediaTypeEnum.TEXT.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); outMessage.setNickName(agentStatus.getUsername()); outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); if (!StringUtils.isBlank(agentUser.getUserid())) { OutMessageRouter router = null; - router = (OutMessageRouter) UKDataContext.getContext().getBean(agentUser.getChannel()); + router = (OutMessageRouter) MainContext.getContext().getBean(agentUser.getChannel()); if (router != null) { - router.handler(agentUser.getUserid(), UKDataContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); + router.handler(agentUser.getUserid(), MainContext.MessageTypeEnum.MESSAGE.toString(), agentUser.getAppid(), outMessage); } } - NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), UKDataContext.MessageTypeEnum.NEW.toString(), agentUser); + NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), MainContext.MessageTypeEnum.NEW.toString(), agentUser); } catch (Exception ex) { ex.printStackTrace(); } @@ -235,17 +235,17 @@ public class ServiceQuene { public static void serviceFinish(AgentUser agentUser, String orgi) throws Exception { if (agentUser != null) { AgentStatus agentStatus = null; - if (UKDataContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus()) && agentUser.getAgentno() != null) { + if (MainContext.AgentUserStatusEnum.INSERVICE.toString().equals(agentUser.getStatus()) && agentUser.getAgentno() != null) { agentStatus = (AgentStatus) CacheHelper.getAgentStatusCacheBean().getCacheObject(agentUser.getAgentno(), orgi); } CacheHelper.getAgentUserCacheBean().delete(agentUser.getUserid(), orgi); - AgentUserRepository agentUserRepository = UKDataContext.getContext().getBean(AgentUserRepository.class); + AgentUserRepository agentUserRepository = MainContext.getContext().getBean(AgentUserRepository.class); AgentUser agentUseDataBean = agentUserRepository.findByIdAndOrgi(agentUser.getId(), agentUser.getOrgi()); SessionConfig sessionConfig = ServiceQuene.initSessionConfig(orgi); if (agentUseDataBean != null) { - agentUseDataBean.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + agentUseDataBean.setStatus(MainContext.AgentUserStatusEnum.END.toString()); if (agentUser.getServicetime() != null) { agentUseDataBean.setSessiontimes(System.currentTimeMillis() - agentUser.getServicetime().getTime()); } @@ -255,19 +255,19 @@ public class ServiceQuene { /** * 更新OnlineUser对象,变更为服务中,不可邀请 , WebIM渠道专用 */ - if (UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())) { - OnlineUserRepository onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class); + if (MainContext.ChannelTypeEnum.WEBIM.toString().equals(agentUser.getChannel())) { + OnlineUserRepository onlineUserRes = MainContext.getContext().getBean(OnlineUserRepository.class); List onlineUserList = onlineUserRes.findByUseridAndOrgi(agentUser.getUserid(), agentUser.getOrgi()); if (onlineUserList.size() > 0) { OnlineUser onlineUser = onlineUserList.get(0); - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.DEFAULT.toString()); + onlineUser.setInvitestatus(MainContext.OnlineUserInviteStatus.DEFAULT.toString()); onlineUserRes.save(onlineUser); } } } - final boolean isPhone = UKDataContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel()); - AgentServiceRepository agentServiceRes = UKDataContext.getContext().getBean(AgentServiceRepository.class); + final boolean isPhone = MainContext.ChannelTypeEnum.PHONE.toString().equals(agentUser.getChannel()); + AgentServiceRepository agentServiceRes = MainContext.getContext().getBean(AgentServiceRepository.class); AgentService service = null; if (!StringUtils.isBlank(agentUser.getAgentserviceid())) { service = agentServiceRes.findByIdAndOrgi(agentUser.getAgentserviceid(), agentUser.getOrgi()); @@ -276,13 +276,13 @@ public class ServiceQuene { service = processAgentService(agentStatus, agentUser, orgi, true); } if (service != null) { - service.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + service.setStatus(MainContext.AgentUserStatusEnum.END.toString()); service.setEndtime(new Date()); if (service.getServicetime() != null) { service.setSessiontimes(System.currentTimeMillis() - service.getServicetime().getTime()); } - AgentUserTaskRepository agentUserTaskRes = UKDataContext.getContext().getBean(AgentUserTaskRepository.class); + AgentUserTaskRepository agentUserTaskRes = MainContext.getContext().getBean(AgentUserTaskRepository.class); List agentUserTaskList = agentUserTaskRes.findByIdAndOrgi(agentUser.getId(), agentUser.getOrgi()); if (agentUserTaskList.size() > 0) { AgentUserTask agentUserTask = agentUserTaskList.get(0); @@ -300,25 +300,25 @@ public class ServiceQuene { * 启用了质检任务,开启质检 */ if (sessionConfig.isQuality() && service.getUserasks() > 0) { //开启了质检,并且是有效对话 - service.setQualitystatus(UKDataContext.QualityStatus.NODIS.toString()); //未分配质检任务 + service.setQualitystatus(MainContext.QualityStatus.NODIS.toString()); //未分配质检任务 } else { - service.setQualitystatus(UKDataContext.QualityStatus.NO.toString()); //未开启质检 或无效对话无需质检 + service.setQualitystatus(MainContext.QualityStatus.NO.toString()); //未开启质检 或无效对话无需质检 } agentServiceRes.save(service); } if (isPhone) { // 语音渠道,强制发送 - NettyClients.getInstance().sendCalloutEventMessage(agentUser.getAgentno(), UKDataContext.MessageTypeEnum.END.toString(), agentUser); + NettyClients.getInstance().sendCalloutEventMessage(agentUser.getAgentno(), MainContext.MessageTypeEnum.END.toString(), agentUser); } else { if (agentStatus != null) // WebIM 查看用户状态 - NettyClients.getInstance().sendAgentEventMessage(agentUser.getAgentno(), UKDataContext.MessageTypeEnum.END.toString(), agentUser); + NettyClients.getInstance().sendAgentEventMessage(agentUser.getAgentno(), MainContext.MessageTypeEnum.END.toString(), agentUser); OutMessageRouter router = null; - router = (OutMessageRouter) UKDataContext.getContext().getBean(agentUser.getChannel()); + router = (OutMessageRouter) MainContext.getContext().getBean(agentUser.getChannel()); if (router != null) { MessageOutContent outMessage = new MessageOutContent(); outMessage.setMessage(ServiceQuene.getServiceFinishMessage(agentUser.getChannel(), orgi)); - outMessage.setMessageType(UKDataContext.AgentUserStatusEnum.END.toString()); - outMessage.setCalltype(UKDataContext.CallTypeEnum.IN.toString()); + outMessage.setMessageType(MainContext.AgentUserStatusEnum.END.toString()); + outMessage.setCalltype(MainContext.CallTypeEnum.IN.toString()); if (agentStatus != null) { outMessage.setNickName(agentStatus.getUsername()); } else { @@ -327,14 +327,14 @@ public class ServiceQuene { outMessage.setCreatetime(UKTools.dateFormate.format(new Date())); outMessage.setAgentserviceid(agentUser.getAgentserviceid()); - router.handler(agentUser.getUserid(), UKDataContext.MessageTypeEnum.STATUS.toString(), agentUser.getAppid(), outMessage); + router.handler(agentUser.getUserid(), MainContext.MessageTypeEnum.STATUS.toString(), agentUser.getAppid(), outMessage); } } if (agentStatus != null) { updateAgentStatus(agentStatus, agentUser, orgi, false); - long maxusers = sessionConfig != null ? sessionConfig.getMaxuser() : UKDataContext.AGENT_STATUS_MAX_USER; + long maxusers = sessionConfig != null ? sessionConfig.getMaxuser() : MainContext.AGENT_STATUS_MAX_USER; if (agentStatus.getUsers() < maxusers) { allotAgent(agentStatus.getAgentno(), orgi); } @@ -368,7 +368,7 @@ public class ServiceQuene { * 坐席状态改变,通知监测服务 */ AgentReport agentReport = ServiceQuene.getAgentReport(orgi); - AgentReportRepository agentReportRes = UKDataContext.getContext().getBean(AgentReportRepository.class); + AgentReportRepository agentReportRes = MainContext.getContext().getBean(AgentReportRepository.class); if (agentReportRes != null) { agentReport.setOrgi(orgi); agentReport.setWorktype(worktype); @@ -377,7 +377,7 @@ public class ServiceQuene { agentReportRes.save(agentReport); } - UKDataContext.getContext().getBean("agentNamespace", SocketIONamespace.class).getBroadcastOperations().sendEvent("status", agentReport); + MainContext.getContext().getBean("agentNamespace", SocketIONamespace.class).getBroadcastOperations().sendEvent("status", agentReport); } /** @@ -390,7 +390,7 @@ public class ServiceQuene { * @param lasttime */ public static void recordAgentStatus(String agent, String username, String extno, String skill, boolean admin, String userid, String status, String current, String worktype, String orgi, Date lasttime) { - WorkMonitorRepository workMonitorRes = UKDataContext.getContext().getBean(WorkMonitorRepository.class); + WorkMonitorRepository workMonitorRes = MainContext.getContext().getBean(WorkMonitorRepository.class); WorkMonitor workMonitor = new WorkMonitor(); if (!StringUtils.isBlank(agent) && !StringUtils.isBlank(status)) { workMonitor.setAgent(agent); @@ -403,16 +403,16 @@ public class ServiceQuene { if (lasttime != null) { workMonitor.setDuration((int) (System.currentTimeMillis() - lasttime.getTime()) / 1000); } - if (status.equals(UKDataContext.AgentStatusEnum.BUSY.toString())) { + if (status.equals(MainContext.AgentStatusEnum.BUSY.toString())) { workMonitor.setBusy(true); } - if (status.equals(UKDataContext.AgentStatusEnum.READY.toString())) { - int count = workMonitorRes.countByAgentAndDatestrAndStatusAndOrgi(agent, UKTools.simpleDateFormat.format(new Date()), UKDataContext.AgentStatusEnum.READY.toString(), orgi); + if (status.equals(MainContext.AgentStatusEnum.READY.toString())) { + int count = workMonitorRes.countByAgentAndDatestrAndStatusAndOrgi(agent, UKTools.simpleDateFormat.format(new Date()), MainContext.AgentStatusEnum.READY.toString(), orgi); if (count == 0) { workMonitor.setFirsttime(true); } } - if (current.equals(UKDataContext.AgentStatusEnum.NOTREADY.toString())) { + if (current.equals(MainContext.AgentStatusEnum.NOTREADY.toString())) { List workMonitorList = workMonitorRes.findByOrgiAndAgentAndDatestrAndFirsttime(orgi, agent, UKTools.simpleDateFormat.format(new Date()), true); if (workMonitorList.size() > 0) { WorkMonitor firstWorkMonitor = workMonitorList.get(0); @@ -474,14 +474,14 @@ public class ServiceQuene { } try { agentService = processAgentService(agentStatus, agentUser, orgi); - if (agentService.getStatus().equals(UKDataContext.AgentUserStatusEnum.INQUENE.toString())) { + if (agentService.getStatus().equals(MainContext.AgentUserStatusEnum.INQUENE.toString())) { agentService.setQueneindex(getQueneIndex(agentUser.getAgent(), orgi, agentUser.getSkill())); } } catch (Exception ex) { ex.printStackTrace(); } - publishMessage(orgi, "user", agentService != null && agentService.getStatus().equals(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()) ? "inservice" : "inquene", agentUser.getId()); + publishMessage(orgi, "user", agentService != null && agentService.getStatus().equals(MainContext.AgentUserStatusEnum.INSERVICE.toString()) ? "inservice" : "inquene", agentUser.getId()); return agentService; } @@ -500,7 +500,7 @@ public class ServiceQuene { if (agentStatus != null) { agentService = processAgentService(agentStatus, agentUser, orgi); publishMessage(orgi, "invite", "success", agentno); - NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), UKDataContext.MessageTypeEnum.NEW.toString(), agentUser); + NettyClients.getInstance().sendAgentEventMessage(agentService.getAgentno(), MainContext.MessageTypeEnum.NEW.toString(), agentUser); } else { agentService = allotAgent(agentUser, orgi); } @@ -530,7 +530,7 @@ public class ServiceQuene { */ public static AgentService processChatbotService(final AgentUser agentUser, final String orgi) { AgentService agentService = new AgentService(); //放入缓存的对象 - AgentServiceRepository agentServiceRes = UKDataContext.getContext().getBean(AgentServiceRepository.class); + AgentServiceRepository agentServiceRes = MainContext.getContext().getBean(AgentServiceRepository.class); Date now = new Date(); if (StringUtils.isNotBlank(agentUser.getAgentserviceid())) { agentService = agentServiceRes.findByIdAndOrgi(agentUser.getAgentserviceid(), orgi); @@ -538,7 +538,7 @@ public class ServiceQuene { if (agentService.getServicetime() != null) { agentService.setSessiontimes(System.currentTimeMillis() - agentService.getServicetime().getTime()); } - agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.END.toString()); } else { agentService.setServicetime(now); agentService.setLogindate(now); @@ -558,7 +558,7 @@ public class ServiceQuene { agentService.setUserid(agentUser.getUserid()); agentService.setAiid(agentUser.getAgentno()); agentService.setAiservice(true); - agentService.setStatus(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.INSERVICE.toString()); agentService.setAppid(agentUser.getAppid()); agentService.setLeavemsg(false); @@ -589,7 +589,7 @@ public class ServiceQuene { agentService.setChannel(agentUser.getChannel()); agentService.setSessionid(agentUser.getSessionid()); - OnlineUserRepository onlineUserRes = UKDataContext.getContext().getBean(OnlineUserRepository.class); + OnlineUserRepository onlineUserRes = MainContext.getContext().getBean(OnlineUserRepository.class); agentUser.setLogindate(new Date()); List onlineUserList = onlineUserRes.findByUseridAndOrgi(agentUser.getUserid(), agentUser.getOrgi()); OnlineUser onlineUser = null; @@ -621,27 +621,27 @@ public class ServiceQuene { } } - agentUser.setStatus(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()); - agentService.setStatus(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()); + agentUser.setStatus(MainContext.AgentUserStatusEnum.INSERVICE.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.INSERVICE.toString()); - agentService.setSessiontype(UKDataContext.AgentUserStatusEnum.INSERVICE.toString()); + agentService.setSessiontype(MainContext.AgentUserStatusEnum.INSERVICE.toString()); agentService.setAgentno(agentStatus.getUserid()); agentService.setAgentusername(agentStatus.getUsername()); //agent } else { if (finished == true) { - agentUser.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); - agentService.setStatus(UKDataContext.AgentUserStatusEnum.END.toString()); - agentService.setSessiontype(UKDataContext.AgentUserStatusEnum.END.toString()); + agentUser.setStatus(MainContext.AgentUserStatusEnum.END.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.END.toString()); + agentService.setSessiontype(MainContext.AgentUserStatusEnum.END.toString()); if (agentStatus == null) { agentService.setLeavemsg(true); //是留言 - agentService.setLeavemsgstatus(UKDataContext.LeaveMsgStatus.NOTPROCESS.toString()); //未处理的留言 + agentService.setLeavemsgstatus(MainContext.LeaveMsgStatus.NOTPROCESS.toString()); //未处理的留言 } } else { - agentUser.setStatus(UKDataContext.AgentUserStatusEnum.INQUENE.toString()); - agentService.setStatus(UKDataContext.AgentUserStatusEnum.INQUENE.toString()); + agentUser.setStatus(MainContext.AgentUserStatusEnum.INQUENE.toString()); + agentService.setStatus(MainContext.AgentUserStatusEnum.INQUENE.toString()); - agentService.setSessiontype(UKDataContext.AgentUserStatusEnum.INQUENE.toString()); + agentService.setSessiontype(MainContext.AgentUserStatusEnum.INQUENE.toString()); } } if (finished || agentStatus != null) { @@ -649,7 +649,7 @@ public class ServiceQuene { agentService.setAgentuserid(agentUser.getId()); - agentService.setInitiator(UKDataContext.ChatInitiatorType.USER.toString()); + agentService.setInitiator(MainContext.ChatInitiatorType.USER.toString()); long waittingtime = 0; if (agentUser.getWaittingtimestart() != null) { @@ -666,7 +666,7 @@ public class ServiceQuene { agentService.setTimes(0); agentUser.setAgentno(agentService.getAgentno()); - AgentServiceRepository agentServiceRes = UKDataContext.getContext().getBean(AgentServiceRepository.class); + AgentServiceRepository agentServiceRes = MainContext.getContext().getBean(AgentServiceRepository.class); if (!StringUtils.isBlank(agentUser.getName())) { agentService.setName(agentUser.getName()); @@ -711,14 +711,14 @@ public class ServiceQuene { /** * 将 AgentUser 放入到 当前坐席的 服务队列 */ - AgentUserRepository agentUserRepository = UKDataContext.getContext().getBean(AgentUserRepository.class); + AgentUserRepository agentUserRepository = MainContext.getContext().getBean(AgentUserRepository.class); /** * 更新OnlineUser对象,变更为服务中,不可邀请 */ if (onlineUser != null) { - onlineUser.setInvitestatus(UKDataContext.OnlineUserInviteStatus.INSERV.toString()); + onlineUser.setInvitestatus(MainContext.OnlineUserInviteStatus.INSERV.toString()); onlineUserRes.save(onlineUser); } @@ -727,7 +727,7 @@ public class ServiceQuene { */ agentUserRepository.save(agentUser); - CacheHelper.getAgentUserCacheBean().put(agentUser.getUserid(), agentUser, UKDataContext.SYSTEM_ORGI); + CacheHelper.getAgentUserCacheBean().put(agentUser.getUserid(), agentUser, MainContext.SYSTEM_ORGI); if (agentStatus != null) { updateAgentStatus(agentStatus, agentUser, orgi, true); @@ -739,12 +739,12 @@ public class ServiceQuene { public static AgentUser deleteAgentUser(AgentUser agentUser, String orgi) throws Exception { if (agentUser != null) { - if (!UKDataContext.AgentUserStatusEnum.END.toString().equals( + if (!MainContext.AgentUserStatusEnum.END.toString().equals( agentUser.getStatus())) { serviceFinish(agentUser, orgi); } if (!StringUtils.isBlank(agentUser.getId())) { - AgentUserRepository agentUserRes = UKDataContext.getContext().getBean(AgentUserRepository.class); + AgentUserRepository agentUserRes = MainContext.getContext().getBean(AgentUserRepository.class); agentUser = agentUserRes.findByIdAndOrgi(agentUser.getId(), orgi); if (agentUser != null) { agentUserRes.delete(agentUser); @@ -761,7 +761,7 @@ public class ServiceQuene { */ public static String getSuccessMessage(AgentService agentService, String channel, String orgi) { String queneTip = "" + agentService.getAgentusername() + ""; - if (!UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { + if (!MainContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { queneTip = agentService.getAgentusername(); } SessionConfig sessionConfig = initSessionConfig(orgi); @@ -790,7 +790,7 @@ public class ServiceQuene { queneIndex = 0; } String queneTip = "" + queneIndex + ""; - if (!UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { + if (!MainContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { queneTip = String.valueOf(queneIndex); } SessionConfig sessionConfig = initSessionConfig(orgi); @@ -804,7 +804,7 @@ public class ServiceQuene { public static String getQueneMessage(int queneIndex, String channel, String orgi) { String queneTip = "" + queneIndex + ""; - if (!UKDataContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { + if (!MainContext.ChannelTypeEnum.WEBIM.toString().equals(channel)) { queneTip = String.valueOf(queneIndex); } SessionConfig sessionConfig = initSessionConfig(orgi); @@ -822,10 +822,10 @@ public class ServiceQuene { * @param status */ public static void deleteAgentStatus(String userid, String orgi, boolean isAdmin) { - AgentStatusRepository agentStatusRes = UKDataContext.getContext().getBean(AgentStatusRepository.class); + AgentStatusRepository agentStatusRes = MainContext.getContext().getBean(AgentStatusRepository.class); List agentStatusList = agentStatusRes.findByAgentnoAndOrgi(userid, orgi); for (AgentStatus agentStatus : agentStatusList) { - ServiceQuene.recordAgentStatus(agentStatus.getAgentno(), agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), isAdmin, agentStatus.getAgentno(), agentStatus.isBusy() ? UKDataContext.AgentStatusEnum.BUSY.toString() : UKDataContext.AgentStatusEnum.NOTREADY.toString(), UKDataContext.AgentStatusEnum.NOTREADY.toString(), UKDataContext.AgentWorkType.MEIDIACHAT.toString(), agentStatus.getOrgi(), agentStatus.getUpdatetime()); + ServiceQuene.recordAgentStatus(agentStatus.getAgentno(), agentStatus.getUsername(), agentStatus.getAgentno(), agentStatus.getSkill(), isAdmin, agentStatus.getAgentno(), agentStatus.isBusy() ? MainContext.AgentStatusEnum.BUSY.toString() : MainContext.AgentStatusEnum.NOTREADY.toString(), MainContext.AgentStatusEnum.NOTREADY.toString(), MainContext.AgentWorkType.MEIDIACHAT.toString(), agentStatus.getOrgi(), agentStatus.getUpdatetime()); agentStatusRes.delete(agentStatus); } CacheHelper.getAgentStatusCacheBean().delete(userid, orgi); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheBean.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheBean.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheBean.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheBean.java index dd8a1b76..7f16ad83 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheBean.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheBean.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache; +package com.chatopera.cc.app.service.cache; import java.util.Collection; import java.util.concurrent.locks.Lock; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheHelper.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheHelper.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheHelper.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheHelper.java index df1a2869..cd931256 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheHelper.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheHelper.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache; +package com.chatopera.cc.app.service.cache; -import com.chatopera.cc.webim.service.cache.hazelcast.HazlcastCacheHelper; +import com.chatopera.cc.app.service.cache.hazelcast.HazlcastCacheHelper; public class CacheHelper { private static CacheHelper instance = new CacheHelper(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheInstance.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheInstance.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheInstance.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheInstance.java index 7de1bbc2..62b8862d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/CacheInstance.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/CacheInstance.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache; +package com.chatopera.cc.app.service.cache; public interface CacheInstance { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/HazlcastCacheHelper.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/HazlcastCacheHelper.java new file mode 100644 index 00000000..73387d20 --- /dev/null +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/HazlcastCacheHelper.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2017 优客服-多渠道客服系统 + * Modifications copyright (C) 2018 Chatopera Inc, + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chatopera.cc.app.service.cache.hazelcast; + +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheInstance; +import com.chatopera.cc.app.service.cache.hazelcast.impl.AgentStatusCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.AgentUserCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.ApiUserCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.CallCenterCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.JobCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.MultiCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.OnlineCache; +import com.chatopera.cc.app.service.cache.hazelcast.impl.SystemCache; +/** + * Hazlcast缓存处理实例类 + * @author admin + * + */ +public class HazlcastCacheHelper implements CacheInstance { + /** + * 服务类型枚举 + * @author admin + * + */ + public enum CacheServiceEnum{ + HAZLCAST_CLUSTER_AGENT_USER_CACHE, HAZLCAST_CLUSTER_AGENT_STATUS_CACHE, HAZLCAST_CLUSTER_QUENE_USER_CACHE,HAZLCAST_ONLINE_CACHE , HAZLCAST_CULUSTER_SYSTEM , HAZLCAST_IMR_CACHE , API_USER_CACHE , CALLCENTER_CURRENT_CALL ,CALLCENTER_AGENT,JOB_CACHE,HAZLCAST_CALLOUT_CACHE; + public String toString(){ + return super.toString().toLowerCase(); + } + } + + @Override + public CacheBean getAgentStatusCacheBean() { + // TODO Auto-generated method stub + return MainContext.getContext().getBean(AgentStatusCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_CLUSTER_AGENT_STATUS_CACHE.toString()) ; + } + @Override + public CacheBean getAgentUserCacheBean() { + // TODO Auto-generated method stub + return MainContext.getContext().getBean(AgentUserCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_CLUSTER_QUENE_USER_CACHE.toString()) ; + } + @Override + public CacheBean getOnlineCacheBean() { + return MainContext.getContext().getBean(OnlineCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_ONLINE_CACHE.toString()) ; + } + @Override + public CacheBean getSystemCacheBean() { + return MainContext.getContext().getBean(SystemCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_CULUSTER_SYSTEM.toString()) ; + } + @Override + public CacheBean getIMRCacheBean() { + return MainContext.getContext().getBean(MultiCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_IMR_CACHE.toString()) ; + } + @Override + public CacheBean getCallCenterCacheBean() { + return MainContext.getContext().getBean(CallCenterCache.class).getCacheInstance(CacheServiceEnum.CALLCENTER_CURRENT_CALL.toString()) ; + } + @Override + public CacheBean getCallCenterAgentCacheBean() { + return MainContext.getContext().getBean(CallCenterCache.class).getCacheInstance(CacheServiceEnum.CALLCENTER_AGENT.toString()) ; + } + @Override + public CacheBean getApiUserCacheBean() { + return MainContext.getContext().getBean(ApiUserCache.class).getCacheInstance(CacheServiceEnum.API_USER_CACHE.toString()) ; + } + @Override + public CacheBean getJobCacheBean() { + return MainContext.getContext().getBean(JobCache.class).getCacheInstance(CacheServiceEnum.JOB_CACHE.toString()) ; + } + @Override + public CacheBean getCallOutCacheBean() { + // TODO Auto-generated method stub + return MainContext.getContext().getBean(JobCache.class).getCacheInstance(CacheServiceEnum.HAZLCAST_CALLOUT_CACHE.toString()) ; + } +} diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentStatusCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentStatusCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentStatusCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentStatusCache.java index d1455c80..8e93b012 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentStatusCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentStatusCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("agentstatus_cache") public class AgentStatusCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentUserCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentUserCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentUserCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentUserCache.java index 4b5a7206..0d8b083f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/AgentUserCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/AgentUserCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("agentuser_cache") public class AgentUserCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/ApiUserCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/ApiUserCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/ApiUserCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/ApiUserCache.java index 6ec0458f..184a077a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/ApiUserCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/ApiUserCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("api_user_cache") public class ApiUserCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/CallCenterCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/CallCenterCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/CallCenterCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/CallCenterCache.java index 91916785..c490ca74 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/CallCenterCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/CallCenterCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("callcenter_current_call") public class CallCenterCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/JobCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/JobCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/JobCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/JobCache.java index 7e97067a..04d4a16f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/JobCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/JobCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("job_cache") public class JobCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/MultiCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/MultiCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/MultiCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/MultiCache.java index 86f97a72..a7ad0b49 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/MultiCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/MultiCache.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/OnlineCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/OnlineCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/OnlineCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/OnlineCache.java index 8bfe68c1..259da2d0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/OnlineCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/OnlineCache.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -24,7 +24,7 @@ import org.springframework.stereotype.Service; import com.hazelcast.com.eclipsesource.json.JsonObject; import com.hazelcast.core.HazelcastInstance; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; @Service("online_cache") public class OnlineCache implements CacheBean{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/SystemCache.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/SystemCache.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/SystemCache.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/SystemCache.java index c0a1d342..4d04a202 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/cache/hazelcast/impl/SystemCache.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/cache/hazelcast/impl/SystemCache.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.cache.hazelcast.impl; +package com.chatopera.cc.app.service.cache.hazelcast.impl; import java.util.Collection; import java.util.concurrent.locks.Lock; -import com.chatopera.cc.webim.service.cache.CacheBean; +import com.chatopera.cc.app.service.cache.CacheBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactNotesRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactNotesRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactNotesRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactNotesRepository.java index 19cb4804..583c44e3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactNotesRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactNotesRepository.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; -import com.chatopera.cc.webim.web.model.ContactNotes; +import com.chatopera.cc.app.model.ContactNotes; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsEsCommonRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsEsCommonRepository.java index bfb2b52e..4ecb9cb9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsEsCommonRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.Date; @@ -22,7 +22,7 @@ import org.elasticsearch.index.query.BoolQueryBuilder; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import com.chatopera.cc.webim.web.model.Contacts; +import com.chatopera.cc.app.model.Contacts; public interface ContactsEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepository.java index 800dca9d..8fc6febf 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; -import com.chatopera.cc.webim.web.model.Contacts; +import com.chatopera.cc.app.model.Contacts; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepositoryImpl.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepositoryImpl.java index 8acc39f1..99dd473c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/ContactsRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/ContactsRepositoryImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; @@ -38,8 +38,8 @@ import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.stereotype.Component; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.Contacts; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.Contacts; @Component public class ContactsRepositoryImpl implements ContactsEsCommonRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerEsCommonRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerEsCommonRepository.java index 95709bf9..cd9983ff 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerEsCommonRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.Date; -import com.chatopera.cc.webim.web.model.EntCustomer; +import com.chatopera.cc.app.model.EntCustomer; import org.elasticsearch.index.query.BoolQueryBuilder; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepository.java index ff32da9d..9d23bed4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; -import com.chatopera.cc.webim.web.model.EntCustomer; +import com.chatopera.cc.app.model.EntCustomer; public interface EntCustomerRepository extends ElasticsearchRepository , EntCustomerEsCommonRepository { } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepositoryImpl.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepositoryImpl.java index 4b41d9d5..119853f2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/EntCustomerRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/EntCustomerRepositoryImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; @@ -39,8 +39,8 @@ import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.stereotype.Repository; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.EntCustomer; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.EntCustomer; @Repository public class EntCustomerRepositoryImpl implements EntCustomerEsCommonRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentEsCommonRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentEsCommonRepository.java index dfb807d0..19ecc586 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentEsCommonRepository.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; -import com.chatopera.cc.webim.web.model.KbsTopicComment; +import com.chatopera.cc.app.model.KbsTopicComment; public interface KbsTopicCommentEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepository.java index 28f49925..34753ff3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; -import com.chatopera.cc.webim.web.model.KbsTopicComment; +import com.chatopera.cc.app.model.KbsTopicComment; public interface KbsTopicCommentRepository extends ElasticsearchRepository , KbsTopicCommentEsCommonRepository { } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepositoryImpl.java similarity index 95% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepositoryImpl.java index 5d3ab5cd..84683de9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicCommentRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicCommentRepositoryImpl.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; import java.util.List; -import com.chatopera.cc.webim.web.model.Topic; +import com.chatopera.cc.app.model.Topic; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.QueryStringQueryBuilder; import org.elasticsearch.index.query.QueryStringQueryBuilder.Operator; @@ -35,7 +35,7 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilde import org.springframework.data.elasticsearch.core.query.SearchQuery; import org.springframework.stereotype.Component; -import com.chatopera.cc.webim.web.model.KbsTopicComment; +import com.chatopera.cc.app.model.KbsTopicComment; @Component public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicEsCommonRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicEsCommonRepository.java index 84060eda..30b5e295 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicEsCommonRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.List; -import com.chatopera.cc.webim.web.model.KbsTopic; +import com.chatopera.cc.app.model.KbsTopic; import org.elasticsearch.index.query.BoolQueryBuilder; import org.springframework.data.domain.Page; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepository.java index c2c14c86..115b82f6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; -import com.chatopera.cc.webim.web.model.KbsTopic; +import com.chatopera.cc.app.model.KbsTopic; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface KbsTopicRepository extends ElasticsearchRepository , KbsTopicEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepositoryImpl.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepositoryImpl.java index 6e205df1..d9627757 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/KbsTopicRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/KbsTopicRepositoryImpl.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.web.model.KbsTopic; +import com.chatopera.cc.app.model.KbsTopic; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyEsCommonRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyEsCommonRepository.java index e8a41065..a4b6fa24 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyEsCommonRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.List; @@ -22,7 +22,7 @@ import org.elasticsearch.index.query.BoolQueryBuilder; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import com.chatopera.cc.webim.web.model.QuickReply; +import com.chatopera.cc.app.model.QuickReply; public interface QuickReplyEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepository.java index a86d35ff..f65dd63d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; -import com.chatopera.cc.webim.web.model.QuickReply; +import com.chatopera.cc.app.model.QuickReply; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface QuickReplyRepository extends ElasticsearchRepository , QuickReplyEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepositoryImpl.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepositoryImpl.java index be2454b0..bce8b127 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/QuickReplyRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/QuickReplyRepositoryImpl.java @@ -14,14 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.web.model.QuickReply; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.model.QuickReply; import org.apache.commons.lang.StringUtils; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; @@ -41,8 +42,6 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilde import org.springframework.data.elasticsearch.core.query.SearchQuery; import org.springframework.stereotype.Component; -import com.chatopera.cc.core.UKDataContext; - @Component public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository{ private ElasticsearchTemplate elasticsearchTemplate; @@ -81,11 +80,11 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository{ BoolQueryBuilder quickQueryBuilder = QueryBuilders.boolQuery(); - quickQueryBuilder.should(termQuery("type" , UKDataContext.QuickTypeEnum.PUB.toString())) ; + quickQueryBuilder.should(termQuery("type" , MainContext.QuickTypeEnum.PUB.toString())) ; BoolQueryBuilder priQueryBuilder = QueryBuilders.boolQuery(); - priQueryBuilder.must(termQuery("type" , UKDataContext.QuickTypeEnum.PRI.toString())) ; + priQueryBuilder.must(termQuery("type" , MainContext.QuickTypeEnum.PRI.toString())) ; priQueryBuilder.must(termQuery("creater" , creater)) ; quickQueryBuilder.should(priQueryBuilder) ; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicEsCommonRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicEsCommonRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicEsCommonRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicEsCommonRepository.java index e091eea7..5485d88d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicEsCommonRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicEsCommonRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.List; -import com.chatopera.cc.webim.web.model.Topic; +import com.chatopera.cc.app.model.Topic; import org.elasticsearch.index.query.BoolQueryBuilder; import org.springframework.data.domain.Page; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepository.java index 662bd75e..4b4f9b5f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; -import com.chatopera.cc.webim.web.model.Topic; +import com.chatopera.cc.app.model.Topic; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface TopicRepository extends ElasticsearchRepository , TopicEsCommonRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepositoryImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepositoryImpl.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepositoryImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepositoryImpl.java index ccf6e6d5..5b37ce31 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/TopicRepositoryImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/TopicRepositoryImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import static org.elasticsearch.index.query.QueryBuilders.termQuery; @@ -38,8 +38,8 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilde import org.springframework.data.elasticsearch.core.query.SearchQuery; import org.springframework.stereotype.Component; -import com.chatopera.cc.webim.service.repository.XiaoEUKResultMapper; -import com.chatopera.cc.webim.web.model.Topic; +import com.chatopera.cc.app.service.repository.XiaoEUKResultMapper; +import com.chatopera.cc.app.model.Topic; @Component public class TopicRepositoryImpl implements TopicEsCommonRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggResultExtractor.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggResultExtractor.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggResultExtractor.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggResultExtractor.java index ac478ac4..ca64a659 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggResultExtractor.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggResultExtractor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.ArrayList; import java.util.List; @@ -27,8 +27,8 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage; import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl; -import com.chatopera.cc.webim.web.model.KbsTopic; -import com.chatopera.cc.webim.web.model.KbsTopicComment; +import com.chatopera.cc.app.model.KbsTopic; +import com.chatopera.cc.app.model.KbsTopicComment; public class UKAggResultExtractor extends UKResultMapper{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggTopResultExtractor.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggTopResultExtractor.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggTopResultExtractor.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggTopResultExtractor.java index 86605c14..8d416f28 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKAggTopResultExtractor.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKAggTopResultExtractor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.util.ArrayList; import java.util.List; @@ -29,7 +29,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage; import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl; -import com.chatopera.cc.webim.web.model.UKAgg; +import com.chatopera.cc.app.model.UKAgg; public class UKAggTopResultExtractor extends UKResultMapper{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKResultMapper.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKResultMapper.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKResultMapper.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKResultMapper.java index 9ced713a..3839525d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/es/UKResultMapper.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/es/UKResultMapper.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.es; +package com.chatopera.cc.app.service.es; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/hibernate/BaseService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/hibernate/BaseService.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/hibernate/BaseService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/hibernate/BaseService.java index 2aa37ddf..6543a801 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/hibernate/BaseService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/hibernate/BaseService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.hibernate; +package com.chatopera.cc.app.service.hibernate; import java.util.List; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/AgentUserService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/AgentUserService.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/AgentUserService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/AgentUserService.java index afe87190..db3e4b76 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/AgentUserService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/AgentUserService.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.List; -import com.chatopera.cc.webim.service.repository.AgentUserRepository; -import com.chatopera.cc.webim.web.model.AgentUser; +import com.chatopera.cc.app.service.repository.AgentUserRepository; +import com.chatopera.cc.app.model.AgentUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/BatchDataProcess.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/BatchDataProcess.java similarity index 85% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/BatchDataProcess.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/BatchDataProcess.java index 4a8625b8..5185a69d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/BatchDataProcess.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/BatchDataProcess.java @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.Map; -import com.chatopera.cc.util.es.UKDataBean; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.es.UKDataBean; import org.elasticsearch.action.bulk.BulkRequestBuilder; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.task.process.JPAProcess; -import com.chatopera.cc.webim.web.model.MetadataTable; +import com.chatopera.cc.app.model.MetadataTable; public class BatchDataProcess implements JPAProcess{ @@ -34,7 +34,7 @@ public class BatchDataProcess implements JPAProcess{ public BatchDataProcess(MetadataTable metadata , ESDataExchangeImpl esDataExchangeImpl) { this.metadata = metadata ; this.esDataExchangeImpl = esDataExchangeImpl ; - builder = UKDataContext.getTemplet().getClient().prepareBulk() ; + builder = MainContext.getTemplet().getClient().prepareBulk() ; } @SuppressWarnings("unchecked") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/CallOutQuene.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/CallOutQuene.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/CallOutQuene.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/CallOutQuene.java index edf4b6f9..2c8ee076 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/CallOutQuene.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/CallOutQuene.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.ArrayList; import java.util.List; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.service.quene.AgentCallOutFilter; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.service.quene.AgentCallOutFilter; import org.springframework.stereotype.Service; import com.hazelcast.core.IMap; @@ -29,8 +29,8 @@ import com.hazelcast.mapreduce.aggregation.Supplier; import com.hazelcast.query.PagingPredicate; import com.hazelcast.query.SqlPredicate; import com.chatopera.cc.util.freeswitch.model.CallCenterAgent; -import com.chatopera.cc.webim.service.quene.AiCallOutFilter; -import com.chatopera.cc.webim.web.model.UKefuCallOutNames; +import com.chatopera.cc.app.service.quene.AiCallOutFilter; +import com.chatopera.cc.app.model.UKefuCallOutNames; @SuppressWarnings("deprecation") @Service("calloutquene") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ContactsDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ContactsDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ContactsDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ContactsDataExchangeImpl.java index f56a2450..1a280121 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ContactsDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ContactsDataExchangeImpl.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.io.Serializable; import java.util.List; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.es.ContactsRepository; -import com.chatopera.cc.webim.web.model.Contacts; +import com.chatopera.cc.app.service.es.ContactsRepository; +import com.chatopera.cc.app.model.Contacts; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/DataBatProcess.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/DataBatProcess.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/DataBatProcess.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/DataBatProcess.java index b1df38b5..d4f732af 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/DataBatProcess.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/DataBatProcess.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import org.elasticsearch.action.bulk.BulkRequestBuilder; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.util.es.UKDataBean; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.es.UKDataBean; import com.chatopera.cc.util.task.process.JPAProcess; public class DataBatProcess implements JPAProcess{ @@ -29,7 +29,7 @@ public class DataBatProcess implements JPAProcess{ public DataBatProcess(ESDataExchangeImpl esDataExchangeImpl) { this.esDataExchangeImpl = esDataExchangeImpl ; - builder = UKDataContext.getTemplet().getClient().prepareBulk() ; + builder = MainContext.getTemplet().getClient().prepareBulk() ; } @Override diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ESDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ESDataExchangeImpl.java similarity index 79% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ESDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ESDataExchangeImpl.java index a15b0501..e4ae6d98 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ESDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ESDataExchangeImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.ArrayList; import java.util.HashMap; @@ -22,11 +22,12 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import com.chatopera.cc.util.es.UKDataBean; -import com.chatopera.cc.webim.service.repository.UKefuCallOutTaskRepository; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.web.model.TableProperties; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.es.UKDataBean; +import com.chatopera.cc.app.service.repository.UKefuCallOutTaskRepository; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.model.TableProperties; +import com.chatopera.cc.app.model.User; import org.apache.commons.lang3.StringUtils; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.get.GetResponse; @@ -50,11 +51,10 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Order; import org.springframework.stereotype.Repository; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.UKefuCallOutTask; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.Organ; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.UKefuCallOutTask; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.Organ; @Repository("esdataservice") public class ESDataExchangeImpl{ @@ -97,11 +97,11 @@ public class ESDataExchangeImpl{ dataBean.setId((String) dataBean.getValues().get("id")); } if(!StringUtils.isBlank(dataBean.getType())) { - indexRequestBuilder = UKDataContext.getTemplet().getClient().prepareIndex(UKDataContext.SYSTEM_INDEX, + indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(MainContext.SYSTEM_INDEX, dataBean.getType(), dataBean.getId()) .setSource(processValues(dataBean)); }else { - indexRequestBuilder = UKDataContext.getTemplet().getClient().prepareIndex(UKDataContext.SYSTEM_INDEX, + indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(MainContext.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()) .setSource(processValues(dataBean)); } @@ -134,7 +134,7 @@ public class ESDataExchangeImpl{ public void deleteIObject(UKDataBean dataBean ) throws Exception { if(dataBean.getTable()!=null){ - UKDataContext.getTemplet().getClient().prepareDelete(UKDataContext.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()).setRefresh(true).execute().actionGet(); + MainContext.getTemplet().getClient().prepareDelete(MainContext.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()).setRefresh(true).execute().actionGet(); } } /** @@ -145,15 +145,15 @@ public class ESDataExchangeImpl{ * @throws Exception */ public void deleteByCon(QueryBuilder query ,String type) throws Exception { - BulkRequestBuilder bulkRequest = UKDataContext.getTemplet().getClient().prepareBulk(); - SearchResponse response = UKDataContext.getTemplet().getClient().prepareSearch(UKDataContext.SYSTEM_INDEX).setTypes(type) + BulkRequestBuilder bulkRequest = MainContext.getTemplet().getClient().prepareBulk(); + SearchResponse response = MainContext.getTemplet().getClient().prepareSearch(MainContext.SYSTEM_INDEX).setTypes(type) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(query) .setFrom(0).setSize(10000).setExplain(true).execute().actionGet(); if(response.getHits().getTotalHits() > 0) { for(SearchHit hit : response.getHits()){ String id = hit.getId(); - bulkRequest.add(UKDataContext.getTemplet().getClient().prepareDelete(UKDataContext.SYSTEM_INDEX, type, id).request()); + bulkRequest.add(MainContext.getTemplet().getClient().prepareDelete(MainContext.SYSTEM_INDEX, type, id).request()); } bulkRequest.get(); } @@ -161,16 +161,16 @@ public class ESDataExchangeImpl{ public void deleteById(String type , String id){ if(!StringUtils.isBlank(type) && !StringUtils.isBlank(id)){ - UKDataContext.getTemplet().getClient() - .prepareDelete(UKDataContext.SYSTEM_INDEX, type, id).execute().actionGet(); + MainContext.getTemplet().getClient() + .prepareDelete(MainContext.SYSTEM_INDEX, type, id).execute().actionGet(); } } public UKDataBean getIObjectByPK(UKDataBean dataBean , String id) { if(dataBean.getTable()!=null){ - GetResponse getResponse = UKDataContext.getTemplet().getClient() - .prepareGet(UKDataContext.SYSTEM_INDEX, + GetResponse getResponse = MainContext.getTemplet().getClient() + .prepareGet(MainContext.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()) .execute().actionGet(); dataBean.setValues(getResponse.getSource()); @@ -185,8 +185,8 @@ public class ESDataExchangeImpl{ public UKDataBean getIObjectByPK(String type , String id) { UKDataBean dataBean = new UKDataBean() ; if(!StringUtils.isBlank(type)){ - GetResponse getResponse = UKDataContext.getTemplet().getClient() - .prepareGet(UKDataContext.SYSTEM_INDEX, + GetResponse getResponse = MainContext.getTemplet().getClient() + .prepareGet(MainContext.SYSTEM_INDEX, type, id) .execute().actionGet(); dataBean.setValues(getResponse.getSource()); @@ -210,8 +210,8 @@ public class ESDataExchangeImpl{ } } } - UKDataContext.getTemplet().getClient() - .prepareUpdate(UKDataContext.SYSTEM_INDEX, + MainContext.getTemplet().getClient() + .prepareUpdate(MainContext.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()).setDoc(processValues(dataBean)).execute().actionGet(); } @@ -235,7 +235,7 @@ public class ESDataExchangeImpl{ */ public PageImpl findAllPageResult(QueryBuilder query,String index ,MetadataTable metadata, Pageable page , boolean loadRef , String types) { List dataBeanList = new ArrayList() ; - SearchRequestBuilder searchBuilder = UKDataContext.getTemplet().getClient().prepareSearch(UKDataContext.SYSTEM_INDEX); + SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(MainContext.SYSTEM_INDEX); if(!StringUtils.isBlank(types)) { searchBuilder.setTypes(types) ; } @@ -261,14 +261,14 @@ public class ESDataExchangeImpl{ if(loadRef == true) { - if(!StringUtils.isBlank((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT))) { - users.add((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT)) ; + if(!StringUtils.isBlank((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT))) { + users.add((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT)) ; } - if(!StringUtils.isBlank((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_ASSUSER))) { - users.add((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_ASSUSER)) ; + if(!StringUtils.isBlank((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_ASSUSER))) { + users.add((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_ASSUSER)) ; } - if(!StringUtils.isBlank((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_ORGAN))) { - organs.add((String)temp.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_ORGAN)) ; + if(!StringUtils.isBlank((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_DIS_ORGAN))) { + organs.add((String)temp.getValues().get(MainContext.UKEFU_SYSTEM_DIS_ORGAN)) ; } if(!StringUtils.isBlank((String)temp.getValues().get("taskid"))) { taskList.add((String)temp.getValues().get("taskid")) ; @@ -285,7 +285,7 @@ public class ESDataExchangeImpl{ if(users.size() > 0) { List userList = userRes.findAll(users) ; for(UKDataBean dataBean : dataBeanList) { - String userid = (String)dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT) ; + String userid = (String)dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT) ; if(!StringUtils.isBlank(userid)) { for(User user : userList) { if(user.getId().equals(userid)) { @@ -294,7 +294,7 @@ public class ESDataExchangeImpl{ } } } - String assuer = (String)dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_ASSUSER) ; + String assuer = (String)dataBean.getValues().get(MainContext.UKEFU_SYSTEM_ASSUSER) ; if(!StringUtils.isBlank(assuer)) { for(User user : userList) { if(user.getId().equals(assuer)) { @@ -308,7 +308,7 @@ public class ESDataExchangeImpl{ if(organs.size() > 0) { List organList = organRes.findAll(organs) ; for(UKDataBean dataBean : dataBeanList) { - String organid = (String)dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_ORGAN) ; + String organid = (String)dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_ORGAN) ; if(!StringUtils.isBlank(organid)) { for(Organ organ : organList) { if(organ.getId().equals(organid)) { @@ -347,7 +347,7 @@ public class ESDataExchangeImpl{ */ public PageImpl findAllPageAggResult(QueryBuilder query,String aggField,Pageable page , boolean loadRef , String types) { List dataBeanList = new ArrayList() ; - SearchRequestBuilder searchBuilder = UKDataContext.getTemplet().getClient().prepareSearch(UKDataContext.SYSTEM_INDEX); + SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(MainContext.SYSTEM_INDEX); if(!StringUtils.isBlank(types)) { searchBuilder.setTypes(types) ; } @@ -369,10 +369,10 @@ public class ESDataExchangeImpl{ Terms agg = response.getAggregations().get(aggField) ; if(agg!=null){ if(loadRef == true) { - if(aggField.equals(UKDataContext.UKEFU_SYSTEM_DIS_AGENT)) { + if(aggField.equals(MainContext.UKEFU_SYSTEM_DIS_AGENT)) { users.add(agg.getName()) ; } - if(aggField.equals(UKDataContext.UKEFU_SYSTEM_DIS_ORGAN)) { + if(aggField.equals(MainContext.UKEFU_SYSTEM_DIS_ORGAN)) { organs.add(agg.getName()) ; } if(aggField.equals("taskid")) { @@ -415,7 +415,7 @@ public class ESDataExchangeImpl{ if(users.size() > 0) { List userList = userRes.findAll(users) ; for(UKDataBean dataBean : dataBeanList) { - String userid = (String)dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_AGENT) ; + String userid = (String)dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_AGENT) ; if(!StringUtils.isBlank(userid)) { for(User user : userList) { if(user.getId().equals(userid)) { @@ -429,7 +429,7 @@ public class ESDataExchangeImpl{ if(organs.size() > 0) { List organList = organRes.findAll(organs) ; for(UKDataBean dataBean : dataBeanList) { - String organid = (String)dataBean.getValues().get(UKDataContext.UKEFU_SYSTEM_DIS_ORGAN) ; + String organid = (String)dataBean.getValues().get(MainContext.UKEFU_SYSTEM_DIS_ORGAN) ; if(!StringUtils.isBlank(organid)) { for(Organ organ : organList) { if(organ.getId().equals(organid)) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/HazelcastService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/HazelcastService.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/HazelcastService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/HazelcastService.java index d6f7ba7a..2d317dbe 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/HazelcastService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/HazelcastService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/OrganDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/OrganDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/OrganDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/OrganDataExchangeImpl.java index 29613674..b8e1c54a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/OrganDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/OrganDataExchangeImpl.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.io.Serializable; import java.util.List; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.repository.OrganRepository; -import com.chatopera.cc.webim.web.model.Organ; +import com.chatopera.cc.app.service.repository.OrganRepository; +import com.chatopera.cc.app.model.Organ; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/QuickTypeDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/QuickTypeDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/QuickTypeDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/QuickTypeDataExchangeImpl.java index 5188dae0..4f965827 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/QuickTypeDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/QuickTypeDataExchangeImpl.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.io.Serializable; import java.util.List; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.web.model.QuickType; +import com.chatopera.cc.app.model.QuickType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.chatopera.cc.webim.service.repository.QuickTypeRepository; +import com.chatopera.cc.app.service.repository.QuickTypeRepository; @Service("quicktypedata") public class QuickTypeDataExchangeImpl implements DataExchangeInterface { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ServiceDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ServiceDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ServiceDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ServiceDataExchangeImpl.java index 619fbda4..cfccbed3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/ServiceDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/ServiceDataExchangeImpl.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.io.Serializable; import java.util.List; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.repository.TagRepository; -import com.chatopera.cc.webim.web.model.Tag; +import com.chatopera.cc.app.service.repository.TagRepository; +import com.chatopera.cc.app.model.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicDataExchangeImpl.java index 7a4feac8..ee093d57 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicDataExchangeImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.List; @@ -22,8 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.es.TopicRepository; -import com.chatopera.cc.webim.web.model.Topic; +import com.chatopera.cc.app.service.es.TopicRepository; +import com.chatopera.cc.app.model.Topic; @Service("topic") public class TopicDataExchangeImpl implements DataExchangeInterface{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicMoreDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicMoreDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicMoreDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicMoreDataExchangeImpl.java index 5e5ab9a1..77241aaa 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicMoreDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicMoreDataExchangeImpl.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.List; -import com.chatopera.cc.webim.service.repository.TopicItemRepository; +import com.chatopera.cc.app.service.repository.TopicItemRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.chatopera.cc.util.extra.DataExchangeInterface; import com.chatopera.cc.util.task.process.TopicProcess; -import com.chatopera.cc.webim.web.model.TopicItem; +import com.chatopera.cc.app.model.TopicItem; @Service("topicmore") public class TopicMoreDataExchangeImpl implements DataExchangeInterface{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicTypeDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicTypeDataExchangeImpl.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicTypeDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicTypeDataExchangeImpl.java index 488310df..1b0d8401 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/TopicTypeDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/TopicTypeDataExchangeImpl.java @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.util.List; -import com.chatopera.cc.webim.web.model.KnowledgeType; +import com.chatopera.cc.app.model.KnowledgeType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.repository.KnowledgeTypeRepository; +import com.chatopera.cc.app.service.repository.KnowledgeTypeRepository; @Service("topictype") public class TopicTypeDataExchangeImpl implements DataExchangeInterface{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserDataExchangeImpl.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserDataExchangeImpl.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserDataExchangeImpl.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserDataExchangeImpl.java index 5d5a8151..4f39f069 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserDataExchangeImpl.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserDataExchangeImpl.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import java.io.Serializable; import java.util.List; import com.chatopera.cc.util.extra.DataExchangeInterface; -import com.chatopera.cc.webim.service.repository.UserRepository; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.service.repository.UserRepository; +import com.chatopera.cc.app.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserService.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserService.java index 35477709..f21ab39a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/impl/UserService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/impl/UserService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.impl; +package com.chatopera.cc.app.service.impl; import org.springframework.stereotype.Service; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentCallOutFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentCallOutFilter.java similarity index 77% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentCallOutFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentCallOutFilter.java index bc125f51..7b8eba3e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentCallOutFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentCallOutFilter.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.quene; +package com.chatopera.cc.app.service.quene; -import com.chatopera.cc.webim.service.cache.CacheHelper; +import com.chatopera.cc.app.service.cache.CacheHelper; import org.apache.commons.lang.StringUtils; import com.hazelcast.mapreduce.KeyPredicate; -import com.chatopera.cc.core.UKDataContext; -import com.chatopera.cc.webim.web.model.UKefuCallOutNames; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.model.UKefuCallOutNames; @SuppressWarnings("deprecation") public class AgentCallOutFilter implements KeyPredicate{ @@ -38,6 +38,6 @@ public class AgentCallOutFilter implements KeyPredicate{ } public boolean evaluate(String key) { UKefuCallOutNames ukefuCallOutNames = (UKefuCallOutNames) CacheHelper.getCallOutCacheBean().getCacheObject(key, orgi); - return ukefuCallOutNames !=null && !StringUtils.isBlank(orgi) && orgi.equals(ukefuCallOutNames.getOrgi()) && UKDataContext.CallOutType.AGENT.toString().equals(ukefuCallOutNames.getCalltype()); + return ukefuCallOutNames !=null && !StringUtils.isBlank(orgi) && orgi.equals(ukefuCallOutNames.getOrgi()) && MainContext.CallOutType.AGENT.toString().equals(ukefuCallOutNames.getCalltype()); } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusBusyOrgiFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusBusyOrgiFilter.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusBusyOrgiFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusBusyOrgiFilter.java index 133145c2..6faa885e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusBusyOrgiFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusBusyOrgiFilter.java @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.quene; +package com.chatopera.cc.app.service.quene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.AgentStatus; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.AgentStatus; import org.apache.commons.lang.StringUtils; import com.hazelcast.mapreduce.KeyPredicate; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusOrgiFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusOrgiFilter.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusOrgiFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusOrgiFilter.java index 8e5aa7c2..21ee926e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentStatusOrgiFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentStatusOrgiFilter.java @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.quene; +package com.chatopera.cc.app.service.quene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.AgentStatus; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.AgentStatus; import org.apache.commons.lang.StringUtils; import com.hazelcast.mapreduce.KeyPredicate; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentUserOrgiFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentUserOrgiFilter.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentUserOrgiFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentUserOrgiFilter.java index 9a57e1d6..71960a84 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AgentUserOrgiFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AgentUserOrgiFilter.java @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.quene; +package com.chatopera.cc.app.service.quene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.AgentUser; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.AgentUser; import org.apache.commons.lang.StringUtils; import com.hazelcast.mapreduce.KeyPredicate; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AiCallOutFilter.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AiCallOutFilter.java similarity index 77% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AiCallOutFilter.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AiCallOutFilter.java index ab98453d..7ddd6be0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/quene/AiCallOutFilter.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/quene/AiCallOutFilter.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.quene; +package com.chatopera.cc.app.service.quene; -import com.chatopera.cc.webim.service.cache.CacheHelper; -import com.chatopera.cc.webim.web.model.UKefuCallOutNames; +import com.chatopera.cc.app.MainContext; +import com.chatopera.cc.app.service.cache.CacheHelper; +import com.chatopera.cc.app.model.UKefuCallOutNames; import org.apache.commons.lang.StringUtils; import com.hazelcast.mapreduce.KeyPredicate; -import com.chatopera.cc.core.UKDataContext; @SuppressWarnings("deprecation") public class AiCallOutFilter implements KeyPredicate{ @@ -38,6 +38,6 @@ public class AiCallOutFilter implements KeyPredicate{ } public boolean evaluate(String key) { UKefuCallOutNames ukefuCallOutNames = (UKefuCallOutNames) CacheHelper.getCallOutCacheBean().getCacheObject(key, orgi); - return ukefuCallOutNames !=null && !StringUtils.isBlank(orgi) && orgi.equals(ukefuCallOutNames.getOrgi()) && UKDataContext.CallOutType.AI.toString().equals(ukefuCallOutNames.getCalltype()); + return ukefuCallOutNames !=null && !StringUtils.isBlank(orgi) && orgi.equals(ukefuCallOutNames.getOrgi()) && MainContext.CallOutType.AI.toString().equals(ukefuCallOutNames.getCalltype()); } } \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AclRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AclRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AclRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AclRepository.java index f405b9d3..2934fd08 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AclRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AclRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Acl; +import com.chatopera.cc.app.model.Acl; import org.springframework.data.jpa.repository.JpaRepository; public interface AclRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AdTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AdTypeRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AdTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AdTypeRepository.java index 07266dfd..37b88d39 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AdTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AdTypeRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.AdType; +import com.chatopera.cc.app.model.AdType; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface AdTypeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentReportRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentReportRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentReportRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentReportRepository.java index d2c17f6b..68c841f9 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentReportRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentReportRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AgentReport; +import com.chatopera.cc.app.model.AgentReport; public abstract interface AgentReportRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceRepository.java index ea29bd1a..05024a73 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -24,7 +24,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AgentService; +import com.chatopera.cc.app.model.AgentService; public abstract interface AgentServiceRepository extends JpaRepository diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceSatisRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceSatisRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceSatisRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceSatisRepository.java index e92dfd65..8770beb4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentServiceSatisRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentServiceSatisRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.AgentServiceSatis; +import com.chatopera.cc.app.model.AgentServiceSatis; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface AgentServiceSatisRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentStatusRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentStatusRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentStatusRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentStatusRepository.java index 03a3edae..68a5d52d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentStatusRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentStatusRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.AgentStatus; +import com.chatopera.cc.app.model.AgentStatus; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserContactsRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserContactsRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserContactsRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserContactsRepository.java index 4745a865..057740c8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserContactsRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserContactsRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.AgentUserContacts; +import com.chatopera.cc.app.model.AgentUserContacts; import org.springframework.data.jpa.repository.JpaRepository; public interface AgentUserContactsRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserRepository.java index cbdc97d3..bfcab763 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.AgentUser; +import com.chatopera.cc.app.model.AgentUser; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserTaskRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserTaskRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserTaskRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserTaskRepository.java index 99c1d20e..197a6799 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AgentUserTaskRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AgentUserTaskRepository.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.Date; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AgentUserTask; +import com.chatopera.cc.app.model.AgentUserTask; public abstract interface AgentUserTaskRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiConfigRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiConfigRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiConfigRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiConfigRepository.java index 37bdb00f..7feb9c6a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiConfigRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiConfigRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AiConfig; +import com.chatopera.cc.app.model.AiConfig; public abstract interface AiConfigRepository extends JpaRepository{ public abstract List findByOrgi(String orgi); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiSNSAccountRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiSNSAccountRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiSNSAccountRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiSNSAccountRepository.java index 0f4ee8c9..0c70e29e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AiSNSAccountRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AiSNSAccountRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AiSNSAccount; +import com.chatopera.cc.app.model.AiSNSAccount; public abstract interface AiSNSAccountRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AreaTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AreaTypeRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AreaTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AreaTypeRepository.java index e9560099..c16ccfe2 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AreaTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AreaTypeRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AreaType; +import com.chatopera.cc.app.model.AreaType; public abstract interface AreaTypeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AttachmentRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AttachmentRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AttachmentRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AttachmentRepository.java index 95522901..92a9a0b6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/AttachmentRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/AttachmentRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.AttachmentFile; +import com.chatopera.cc.app.model.AttachmentFile; public abstract interface AttachmentRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BaseRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BaseRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BaseRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BaseRepository.java index 4e1a254e..0eb54b18 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BaseRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BaseRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.User; import org.springframework.data.jpa.repository.JpaRepository; public interface BaseRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BlackListRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BlackListRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BlackListRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BlackListRepository.java index 86c33035..ef36e950 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/BlackListRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/BlackListRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.BlackEntity; +import com.chatopera.cc.app.model.BlackEntity; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallAgentRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallAgentRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallAgentRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallAgentRepository.java index 3cf0c332..0999cec7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallAgentRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallAgentRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.CallAgent; +import com.chatopera.cc.app.model.CallAgent; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallCenterSkillRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallCenterSkillRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallCenterSkillRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallCenterSkillRepository.java index 7c7d4b7c..2b43dfd1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallCenterSkillRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallCenterSkillRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.CallCenterSkill; +import com.chatopera.cc.app.model.CallCenterSkill; import org.springframework.data.jpa.repository.JpaRepository; public interface CallCenterSkillRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorPerformanceRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorPerformanceRepository.java similarity index 86% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorPerformanceRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorPerformanceRepository.java index 56d82ddf..3a07f30d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorPerformanceRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorPerformanceRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.CallMonitorPerformance; +import com.chatopera.cc.app.model.CallMonitorPerformance; /* diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorRepository.java index ceec3f5c..b73c4f4b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallMonitorRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallMonitorRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.CallMonitor; +import com.chatopera.cc.app.model.CallMonitor; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutDialplanRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutDialplanRepository.java similarity index 94% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutDialplanRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutDialplanRepository.java index f5db8316..b68f6222 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutDialplanRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutDialplanRepository.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.CallOutDialplan; +import com.chatopera.cc.app.model.CallOutDialplan; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutLogDialPlanRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutLogDialPlanRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutLogDialPlanRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutLogDialPlanRepository.java index e90516e1..902eccc4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutLogDialPlanRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutLogDialPlanRepository.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.CallOutLogDialPlan; +import com.chatopera.cc.app.model.CallOutLogDialPlan; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutTargetRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutTargetRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutTargetRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutTargetRepository.java index c0fa7fa8..dd6bdc73 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CallOutTargetRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CallOutTargetRepository.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.CallOutTarget; +import com.chatopera.cc.app.model.CallOutTarget; import org.springframework.data.jpa.repository.JpaRepository; import java.util.stream.Stream; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatMessageRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatMessageRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatMessageRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatMessageRepository.java index 0dcd199a..47b58080 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatMessageRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatMessageRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.util.server.message.ChatMessage; +import com.chatopera.cc.app.im.message.ChatMessage; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatbotRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatbotRepository.java index 9e7a7d87..59b3a821 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ChatbotRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ChatbotRepository.java @@ -1,6 +1,6 @@ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.Chatbot; +import com.chatopera.cc.app.model.Chatbot; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ColumnPropertiesRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ColumnPropertiesRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ColumnPropertiesRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ColumnPropertiesRepository.java index 10b7bf96..91fcdc5f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ColumnPropertiesRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ColumnPropertiesRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.ColumnProperties; +import com.chatopera.cc.app.model.ColumnProperties; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface ColumnPropertiesRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ConsultInviteRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ConsultInviteRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ConsultInviteRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ConsultInviteRepository.java index 2192e6b6..ece57d87 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ConsultInviteRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ConsultInviteRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.CousultInvite; +import com.chatopera.cc.app.model.CousultInvite; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface ConsultInviteRepository diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeLevelRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeLevelRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeLevelRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeLevelRepository.java index 37e3a221..bcc2072a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeLevelRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeLevelRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.CubeLevel; +import com.chatopera.cc.app.model.CubeLevel; public abstract interface CubeLevelRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMeasureRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMeasureRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMeasureRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMeasureRepository.java index a02713b9..85e7b3ea 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMeasureRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMeasureRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.CubeMeasure; +import com.chatopera.cc.app.model.CubeMeasure; public abstract interface CubeMeasureRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMetadataRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMetadataRepository.java similarity index 85% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMetadataRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMetadataRepository.java index 5a4f5a4c..81d33f03 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeMetadataRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeMetadataRepository.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.CubeMetadata; -import com.chatopera.cc.webim.web.model.MetadataTable; +import com.chatopera.cc.app.model.CubeMetadata; +import com.chatopera.cc.app.model.MetadataTable; public abstract interface CubeMetadataRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeRepository.java index 8806ec7e..c9f1746b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.Cube; +import com.chatopera.cc.app.model.Cube; public abstract interface CubeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeService.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeService.java index cfd1f5c4..3c21b501 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.io.File; import java.io.IOException; @@ -25,12 +25,12 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.bi.model.ValueData; -import com.chatopera.cc.webim.web.model.ColumnProperties; +import com.chatopera.cc.app.model.ColumnProperties; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import com.chatopera.cc.core.UKDataContext; import com.chatopera.cc.util.UKTools; import com.chatopera.cc.util.bi.CubeReportData; import com.chatopera.cc.util.bi.model.FirstTitle; @@ -194,7 +194,7 @@ public class CubeService { if(level.getFirstTitle()==null){ level.setFirstTitle(firstTitle); FirstTitle first = new FirstTitle(); - first.setName(UKDataContext.CUBE_TITLE_MEASURE); + first.setName(MainContext.CUBE_TITLE_MEASURE); first.setLevel(cubeLevel.getUniqueName()) ; addFirstTitle(level.getFirstTitle(), -1 , first) ; while((cubeLevel = (RolapLevel) cubeLevel.getParentLevel())!=null && cubeLevel.getName().indexOf("All")<0){ @@ -218,7 +218,7 @@ public class CubeService { } if(!isHave){ FirstTitle first = new FirstTitle(); - first.setName(UKDataContext.CUBE_TITLE_MEASURE); + first.setName(MainContext.CUBE_TITLE_MEASURE); first.setLevel(cubeLevel.getUniqueName()) ; addFirstTitle(level.getFirstTitle(), -1 , first ) ; while((cubeLevel = (RolapLevel) cubeLevel.getParentLevel())!=null && cubeLevel.getName().indexOf("All")<0){ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeTypeRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeTypeRepository.java index 9fe93609..5b4472f1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/CubeTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/CubeTypeRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.CubeType; +import com.chatopera.cc.app.model.CubeType; public abstract interface CubeTypeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataDicRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataDicRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataDicRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataDicRepository.java index 8befb65d..3ecf7a6b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataDicRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataDicRepository.java @@ -14,14 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.DataDic; +import com.chatopera.cc.app.model.DataDic; public interface DataDicRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataEventRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataEventRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataEventRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataEventRepository.java index 0df3efe0..f7363723 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataEventRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataEventRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -23,7 +23,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.DataEvent; +import com.chatopera.cc.app.model.DataEvent; public interface DataEventRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataSourceService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataSourceService.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataSourceService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataSourceService.java index 62abf719..84b728a3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DataSourceService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DataSourceService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import mondrian.olap.Connection; import mondrian.olap.DriverManager; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DbDataRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DbDataRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DbDataRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DbDataRepository.java index f9e5b97c..cf464925 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DbDataRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DbDataRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.User; import org.springframework.data.jpa.repository.JpaRepository; /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DimensionRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DimensionRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DimensionRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DimensionRepository.java index 40962675..716e801f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DimensionRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DimensionRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Dimension; +import com.chatopera.cc.app.model.Dimension; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface DimensionRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DrilldownRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DrilldownRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DrilldownRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DrilldownRepository.java index 51704e96..9f6b46dc 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/DrilldownRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/DrilldownRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.DrillDown; +import com.chatopera.cc.app.model.DrillDown; public abstract interface DrilldownRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ExtentionRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ExtentionRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ExtentionRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ExtentionRepository.java index aaa9d307..62fac53c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ExtentionRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ExtentionRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Extention; +import com.chatopera.cc.app.model.Extention; import org.springframework.data.jpa.repository.JpaRepository; public interface ExtentionRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterItemRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterItemRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterItemRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterItemRepository.java index f9fcadcd..70ccde0f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterItemRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterItemRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.FormFilterItem; +import com.chatopera.cc.app.model.FormFilterItem; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface FormFilterItemRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterRepository.java index 97b8a0c8..d9e9514b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/FormFilterRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/FormFilterRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.FormFilter; +import com.chatopera.cc.app.model.FormFilter; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/GenerationRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/GenerationRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/GenerationRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/GenerationRepository.java index 37dd9df1..eb42eef5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/GenerationRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/GenerationRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Generation; +import com.chatopera.cc.app.model.Generation; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface GenerationRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupRepository.java similarity index 88% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupRepository.java index c088f10b..44a30d2a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.IMGroup; +import com.chatopera.cc.app.model.IMGroup; public abstract interface IMGroupRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupUserRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupUserRepository.java similarity index 83% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupUserRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupUserRepository.java index 0f6c4996..2b0ba690 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IMGroupUserRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IMGroupUserRepository.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.IMGroupUser; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.IMGroupUser; +import com.chatopera.cc.app.model.User; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.IMGroup; +import com.chatopera.cc.app.model.IMGroup; public abstract interface IMGroupUserRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InstructionRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InstructionRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InstructionRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InstructionRepository.java index 594b3fdd..2e972f6d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InstructionRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InstructionRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Instruction; +import com.chatopera.cc.app.model.Instruction; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InviteRecordRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InviteRecordRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InviteRecordRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InviteRecordRepository.java index b7d20f3c..d81e3a19 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/InviteRecordRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/InviteRecordRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.InviteRecord; +import com.chatopera.cc.app.model.InviteRecord; public abstract interface InviteRecordRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IvrMenuRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IvrMenuRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IvrMenuRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IvrMenuRepository.java index e10b7add..0507cff7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/IvrMenuRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/IvrMenuRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.IvrMenu; +import com.chatopera.cc.app.model.IvrMenu; import org.springframework.data.jpa.repository.JpaRepository; public interface IvrMenuRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/JobDetailRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/JobDetailRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/JobDetailRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/JobDetailRepository.java index 82e0cfce..92a796b6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/JobDetailRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/JobDetailRepository.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.Date; import java.util.List; -import com.chatopera.cc.webim.web.model.JobDetail; +import com.chatopera.cc.app.model.JobDetail; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsExpertRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsExpertRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsExpertRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsExpertRepository.java index 177fc928..a671a0b6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsExpertRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsExpertRepository.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.KbsExpert; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.KbsExpert; +import com.chatopera.cc.app.model.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsTypeRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsTypeRepository.java index a6ab796c..da4b6a2b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KbsTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KbsTypeRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.KbsType; +import com.chatopera.cc.app.model.KbsType; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface KbsTypeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KnowledgeTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KnowledgeTypeRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KnowledgeTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KnowledgeTypeRepository.java index 5f3b4aa2..0a7e7fb6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/KnowledgeTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/KnowledgeTypeRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.KnowledgeType; +import com.chatopera.cc.app.model.KnowledgeType; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LeaveMsgRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LeaveMsgRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LeaveMsgRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LeaveMsgRepository.java index 1f5fdd38..f6d53399 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LeaveMsgRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LeaveMsgRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.LeaveMsg; +import com.chatopera.cc.app.model.LeaveMsg; public abstract interface LeaveMsgRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LogRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LogRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LogRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LogRepository.java index 9f929736..98654bb7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/LogRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/LogRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.Log; +import com.chatopera.cc.app.model.Log; public abstract interface LogRepository extends JpaRepository{ public abstract Page findByOrgi(String orgi, Pageable page); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MediaRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MediaRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MediaRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MediaRepository.java index decad039..b5c29925 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MediaRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MediaRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.Media; +import com.chatopera.cc.app.model.Media; public interface MediaRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MetadataRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MetadataRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MetadataRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MetadataRepository.java index 247b0c98..518b6b27 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/MetadataRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/MetadataRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.MetadataTable; +import com.chatopera.cc.app.model.MetadataTable; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserHisRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserHisRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserHisRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserHisRepository.java index f77d66ca..b278bcd5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserHisRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserHisRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.OnlineUserHis; +import com.chatopera.cc.app.model.OnlineUserHis; public abstract interface OnlineUserHisRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserRepository.java similarity index 96% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserRepository.java index a36d5bfc..f272c91e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OnlineUserRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OnlineUserRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.Date; import java.util.List; @@ -24,7 +24,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import com.chatopera.cc.webim.web.model.OnlineUser; +import com.chatopera.cc.app.model.OnlineUser; public abstract interface OnlineUserRepository extends JpaRepository { public abstract OnlineUser findBySessionidAndOrgi(String paramString, String orgi); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRepository.java similarity index 92% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRepository.java index bd4e3bd1..645a38d3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.Organ; +import com.chatopera.cc.app.model.Organ; public abstract interface OrganRepository extends JpaRepository diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRoleRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRoleRepository.java similarity index 84% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRoleRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRoleRepository.java index 36751538..994b376a 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganRoleRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganRoleRepository.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Organ; -import com.chatopera.cc.webim.web.model.OrganRole; +import com.chatopera.cc.app.model.Organ; +import com.chatopera.cc.app.model.OrganRole; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface OrganRoleRepository extends JpaRepository diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganizationRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganizationRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganizationRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganizationRepository.java index 21b22998..6190f226 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrganizationRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrganizationRepository.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; -import com.chatopera.cc.webim.web.model.Organization; +import com.chatopera.cc.app.model.Organization; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface OrganizationRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrgiSkillRelRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrgiSkillRelRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrgiSkillRelRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrgiSkillRelRepository.java index 2aca93c2..70337e51 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/OrgiSkillRelRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/OrgiSkillRelRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.OrgiSkillRel; +import com.chatopera.cc.app.model.OrgiSkillRel; /** diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PbxHostRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PbxHostRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PbxHostRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PbxHostRepository.java index acea463a..223871b1 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PbxHostRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PbxHostRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.PbxHost; +import com.chatopera.cc.app.model.PbxHost; public interface PbxHostRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProcessContentRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProcessContentRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProcessContentRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProcessContentRepository.java index 3fa55592..b14b3251 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProcessContentRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProcessContentRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.ProcessContent; +import com.chatopera.cc.app.model.ProcessContent; public abstract interface ProcessContentRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProductRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProductRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProductRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProductRepository.java index a08d58fd..cdbd4253 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ProductRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ProductRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.Product; +import com.chatopera.cc.app.model.Product; public abstract interface ProductRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PropertiesEventRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PropertiesEventRepository.java similarity index 87% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PropertiesEventRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PropertiesEventRepository.java index 61c1ba67..360e1c43 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PropertiesEventRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PropertiesEventRepository.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.PropertiesEvent; +import com.chatopera.cc.app.model.PropertiesEvent; public interface PropertiesEventRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedCubeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedCubeRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedCubeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedCubeRepository.java index ef9a276a..feec30fa 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedCubeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedCubeRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.PublishedCube; +import com.chatopera.cc.app.model.PublishedCube; public abstract interface PublishedCubeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedReportRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedReportRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedReportRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedReportRepository.java index 0771e368..1aa8447b 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/PublishedReportRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/PublishedReportRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -22,7 +22,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.PublishedReport; +import com.chatopera.cc.app.model.PublishedReport; public abstract interface PublishedReportRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QualityRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QualityRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QualityRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QualityRepository.java index 0781fb41..f197abd4 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QualityRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QualityRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.Quality; +import com.chatopera.cc.app.model.Quality; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface QualityRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyAnswerRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyAnswerRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyAnswerRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyAnswerRepository.java index 26ba14ce..63897dc6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyAnswerRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyAnswerRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.QueSurveyAnswer; +import com.chatopera.cc.app.model.QueSurveyAnswer; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyProcessRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyProcessRepository.java similarity index 89% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyProcessRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyProcessRepository.java index ad5186ed..6ee8ed2f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyProcessRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyProcessRepository.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.QueSurveyProcess; +import com.chatopera.cc.app.model.QueSurveyProcess; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyQuestionRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyQuestionRepository.java similarity index 90% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyQuestionRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyQuestionRepository.java index 5454e731..e2dc7aae 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QueSurveyQuestionRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QueSurveyQuestionRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; @@ -23,7 +23,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import com.chatopera.cc.webim.web.model.QueSurveyQuestion; +import com.chatopera.cc.app.model.QueSurveyQuestion; public abstract interface QueSurveyQuestionRepository extends JpaRepository{ diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QuickTypeRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QuickTypeRepository.java similarity index 91% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QuickTypeRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QuickTypeRepository.java index 805a6632..f14589ab 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/QuickTypeRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/QuickTypeRepository.java @@ -14,11 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.QuickType; +import com.chatopera.cc.app.model.QuickType; import org.springframework.data.jpa.repository.JpaRepository; public abstract interface QuickTypeRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/RecentUserRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/RecentUserRepository.java similarity index 85% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/RecentUserRepository.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/RecentUserRepository.java index 67a7e91b..4a62436e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/RecentUserRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/RecentUserRepository.java @@ -14,12 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.util.List; -import com.chatopera.cc.webim.web.model.RecentUser; -import com.chatopera.cc.webim.web.model.User; +import com.chatopera.cc.app.model.RecentUser; +import com.chatopera.cc.app.model.User; import org.springframework.data.jpa.repository.JpaRepository; public interface RecentUserRepository extends JpaRepository { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ReportCubeService.java b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ReportCubeService.java similarity index 93% rename from contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ReportCubeService.java rename to contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ReportCubeService.java index e16e9995..972c351e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/webim/service/repository/ReportCubeService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/service/repository/ReportCubeService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.chatopera.cc.webim.service.repository; +package com.chatopera.cc.app.service.repository; import java.io.IOException; import java.util.HashMap; @@ -23,7 +23,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; -import com.chatopera.cc.core.UKDataContext; +import com.chatopera.cc.app.MainContext; import com.chatopera.cc.util.bi.ReportData; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -31,19 +31,19 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.chatopera.cc.util.UKTools; -import com.chatopera.cc.webim.web.model.ColumnProperties; -import com.chatopera.cc.webim.web.model.Cube; -import com.chatopera.cc.webim.web.model.CubeLevel; -import com.chatopera.cc.webim.web.model.CubeMeasure; -import com.chatopera.cc.webim.web.model.CubeMetadata; -import com.chatopera.cc.webim.web.model.Dimension; -import com.chatopera.cc.webim.web.model.MetadataTable; -import com.chatopera.cc.webim.web.model.ReportFilter; -import com.chatopera.cc.webim.web.model.ReportModel; -import com.chatopera.cc.webim.web.model.SysDic; -import com.chatopera.cc.webim.web.model.TableProperties; -import com.chatopera.cc.webim.web.model.Template; -import com.chatopera.cc.webim.web.model.UKeFuDic; +import com.chatopera.cc.app.model.ColumnProperties; +import com.chatopera.cc.app.model.Cube; +import com.chatopera.cc.app.model.CubeLevel; +import com.chatopera.cc.app.model.CubeMeasure; +import com.chatopera.cc.app.model.CubeMetadata; +import com.chatopera.cc.app.model.Dimension; +import com.chatopera.cc.app.model.MetadataTable; +import com.chatopera.cc.app.model.ReportFilter; +import com.chatopera.cc.app.model.ReportModel; +import com.chatopera.cc.app.model.SysDic; +import com.chatopera.cc.app.model.TableProperties; +import com.chatopera.cc.app.model.Template; +import com.chatopera.cc.app.model.UKeFuDic; import freemarker.template.TemplateException; @@ -81,7 +81,7 @@ public class ReportCubeService{ Template tp = null; - List tpDicList = UKeFuDic.getInstance().getDic(UKDataContext.UKEFU_SYSTEM_DIC) ; + List tpDicList = UKeFuDic.getInstance().getDic(MainContext.UKEFU_SYSTEM_DIC) ; for(SysDic sysDic : tpDicList) { if(sysDic.getCode().equals("reportquery")) { List