From 7a402bad40f0f086c8de483bf0d75bfb0d7931e5 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Thu, 26 Dec 2019 17:55:43 +0800 Subject: [PATCH] https://github.com/chatopera/cosin/issues/256 enable collect feedback --- .../middleware/visitor/ACDVisBindingMw.java | 2 +- .../com/chatopera/cc/basic/MainContext.java | 1 + .../cc/controller/apps/AgentController.java | 22 +++++++++++++++ .../com/chatopera/cc/peer/im/ComposeMw2.java | 7 +++++ .../templates/apps/agent/mainagentuser.html | 27 ++++++++++++++++--- .../resources/templates/apps/im/index.html | 11 +++++++- .../resources/templates/apps/im/mobile.html | 8 +++++- 7 files changed, 71 insertions(+), 7 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/acd/middleware/visitor/ACDVisBindingMw.java b/contact-center/app/src/main/java/com/chatopera/cc/acd/middleware/visitor/ACDVisBindingMw.java index 59fd2915..0d7a3d04 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/acd/middleware/visitor/ACDVisBindingMw.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/acd/middleware/visitor/ACDVisBindingMw.java @@ -67,7 +67,7 @@ public class ACDVisBindingMw implements Middleware { ctx.getAgentUser().setSkill(null); } - if (StringUtils.isNotBlank(ctx.getAgentno())) { + if (StringUtils.isNotBlank(ctx.getAgentno()) && (!StringUtils.equalsIgnoreCase(ctx.getAgentno(), "null"))) { logger.info("[apply] bind agentno {}, isInvite {}", ctx.getAgentno(), ctx.isInvite()); // 绑定坐席 // 绑定坐席有可能是因为前端展示了技能组和坐席 diff --git a/contact-center/app/src/main/java/com/chatopera/cc/basic/MainContext.java b/contact-center/app/src/main/java/com/chatopera/cc/basic/MainContext.java index 89e12907..a2dd4a23 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/basic/MainContext.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/basic/MainContext.java @@ -790,6 +790,7 @@ public class MainContext { SERVICE, WRITING, LEAVE, // 浏览器端执行退出 + SATISFACTION, AUDIT_MESSAGE, // 会话监控消息类型 AUDIT_NEW, AUDIT_END, diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/AgentController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/AgentController.java index 56edf444..c63e3cec 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/AgentController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/AgentController.java @@ -56,6 +56,7 @@ import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; + import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; @@ -1039,6 +1040,27 @@ return request(super.createRequestPageTempletResponse("/apps/agent/contacts")); } + @ResponseBody + @RequestMapping(value = "/evaluation") + @Menu(type = "apps", subtype = "evaluation") + public String evaluation(HttpServletRequest request, @Valid String agentuserid) { + AgentUser agentUser = agentUserRes.findByIdAndOrgi(agentuserid, super.getOrgi(request)); + + Message outMessage = new Message(); + outMessage.setChannelMessage(agentUser); + outMessage.setAgentUser(agentUser); + + peerSyncIM.send( + MainContext.ReceiverType.VISITOR, + MainContext.ChannelType.toValue(agentUser.getChannel()), + agentUser.getAppid(), + MainContext.MessageType.SATISFACTION, + agentUser.getUserid(), + outMessage, + true); + + return "ok"; + } @RequestMapping(value = "/summary") @Menu(type = "apps", subtype = "summary") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/peer/im/ComposeMw2.java b/contact-center/app/src/main/java/com/chatopera/cc/peer/im/ComposeMw2.java index ac804764..c30168e0 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/peer/im/ComposeMw2.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/peer/im/ComposeMw2.java @@ -78,6 +78,13 @@ public class ComposeMw2 implements Middleware { ctx.getMessage().getChannelMessage(), true); return true; + case SATISFACTION: + NettyClients.getInstance().publishIMEventMessage( + ctx.getTouser(), + MainContext.MessageType.SATISFACTION.toString(), + ctx.getMessage(), + true); + return true; } return false; } diff --git a/contact-center/app/src/main/resources/templates/apps/agent/mainagentuser.html b/contact-center/app/src/main/resources/templates/apps/agent/mainagentuser.html index 9f9a2c55..4b1334b5 100644 --- a/contact-center/app/src/main/resources/templates/apps/agent/mainagentuser.html +++ b/contact-center/app/src/main/resources/templates/apps/agent/mainagentuser.html @@ -81,14 +81,26 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura