diff --git a/contact-center/Dockerfile b/contact-center/Dockerfile index bda6859b..fe4493d0 100644 --- a/contact-center/Dockerfile +++ b/contact-center/Dockerfile @@ -19,7 +19,7 @@ RUN chmod +x /opt/install-corretto-8.sh && /opt/install-corretto-8.sh # install other lib and configure timezone RUN apt-get update && \ - apt-get install --no-install-recommends -y tzdata mysql-client-5.7 zip unzip vim-tiny libfontconfig1 libfreetype6 && \ + apt-get install --no-install-recommends -y tzdata iputils-ping mysql-client-5.7 zip unzip vim-tiny libfontconfig1 libfreetype6 && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ DEBIAN_FRONTEND=noninteractive dpkg-reconfigure --frontend noninteractive tzdata && \ rm -rf /var/lib/apt/lists/* diff --git a/contact-center/app/pom.xml b/contact-center/app/pom.xml index 5eef9af8..93ab3eb1 100644 --- a/contact-center/app/pom.xml +++ b/contact-center/app/pom.xml @@ -145,6 +145,10 @@ org.springframework.boot spring-boot-starter-thymeleaf + + org.springframework.boot + spring-boot-starter-actuator + commons-beanutils commons-beanutils diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/admin/config/SystemConfigController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/admin/config/SystemConfigController.java index 5ee71363..6c9c596f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/admin/config/SystemConfigController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/admin/config/SystemConfigController.java @@ -239,7 +239,7 @@ public class SystemConfigController extends Handler { systemConfig.setConsolelogo(super.saveImageFileWithMultipart(consolelogo)); } if (favlogo != null && StringUtils.isNotBlank( - favlogo.getOriginalFilename()) && consolelogo.getOriginalFilename().lastIndexOf(".") > 0) { + favlogo.getOriginalFilename()) && favlogo.getOriginalFilename().lastIndexOf(".") > 0) { systemConfig.setFavlogo(super.saveImageFileWithMultipart(favlogo)); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/ContactsController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/ContactsController.java index 1bc5914d..b49aa9db 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/ContactsController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/ContactsController.java @@ -242,14 +242,14 @@ public class ContactsController extends Handler { @RequestMapping("/delete") @Menu(type = "contacts", subtype = "contacts") - public ModelAndView delete(HttpServletRequest request, @Valid Contacts contacts, @Valid String p) { + public ModelAndView delete(HttpServletRequest request, @Valid Contacts contacts, @Valid String p, @Valid String ckind) { if (contacts != null) { contacts = contactsRes.findOne(contacts.getId()); contacts.setDatastatus(true); //客户和联系人都是 逻辑删除 contactsRes.save(contacts); } return request(super.createRequestPageTempletResponse( - "redirect:/apps/contacts/index.html?p=" + p + "&ckind=" + contacts.getCkind())); + "redirect:/apps/contacts/index.html?p=" + p + "&ckind=" + ckind)); } @RequestMapping("/add") @@ -296,8 +296,9 @@ public class ContactsController extends Handler { @RequestMapping("/edit") @Menu(type = "contacts", subtype = "contacts") - public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id) { + public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String ckind) { map.addAttribute("contacts", contactsRes.findOne(id)); + map.addAttribute("ckindId", ckind); return request(super.createRequestPageTempletResponse("/apps/business/contacts/edit")); } @@ -350,7 +351,7 @@ public class ContactsController extends Handler { @RequestMapping("/update") @Menu(type = "contacts", subtype = "contacts") - public ModelAndView update(HttpServletRequest request, @Valid Contacts contacts) { + public ModelAndView update(HttpServletRequest request, @Valid Contacts contacts , @Valid String ckindId) { final User logined = super.getUser(request); final String orgi = logined.getOrgi(); Contacts data = contactsRes.findOne(contacts.getId()); @@ -372,13 +373,13 @@ public class ContactsController extends Handler { } else { //无修改,直接点击确定 return request(super.createRequestPageTempletResponse( - "redirect:/apps/contacts/index.html?ckind=" + contacts.getCkind())); + "redirect:/apps/contacts/index.html?ckind=" + ckindId)); } } else { logger.info("[contacts edit] errer :The same skypeid exists"); msg = "edit_contacts_fail"; return request(super.createRequestPageTempletResponse( - "redirect:/apps/contacts/index.html?ckind=" + contacts.getCkind() + "&msg=" + msg)); + "redirect:/apps/contacts/index.html?ckind=" + ckindId + "&msg=" + msg)); } @@ -411,7 +412,7 @@ public class ContactsController extends Handler { contactsRes.save(contacts); } return request(super.createRequestPageTempletResponse( - "redirect:/apps/contacts/index.html?ckind=" + contacts.getCkind() + "&msg=" + msg)); + "redirect:/apps/contacts/index.html?ckind=" + ckindId + "&msg=" + msg)); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/CustomerController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/CustomerController.java index 78ab3358..1ed0590e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/CustomerController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/CustomerController.java @@ -262,25 +262,26 @@ public class CustomerController extends Handler { @RequestMapping("/delete") @Menu(type = "customer", subtype = "customer") - public ModelAndView delete(HttpServletRequest request, @Valid EntCustomer entCustomer, @Valid String p) { + public ModelAndView delete(HttpServletRequest request, @Valid EntCustomer entCustomer, @Valid String p, @Valid String ekind) { if (entCustomer != null) { entCustomer = entCustomerRes.findOne(entCustomer.getId()); entCustomer.setDatastatus(true); //客户和联系人都是 逻辑删除 entCustomerRes.save(entCustomer); } - return request(super.createRequestPageTempletResponse("redirect:/apps/customer/index.html?p=" + p + "&ekind=" + entCustomer.getEkind())); + return request(super.createRequestPageTempletResponse("redirect:/apps/customer/index.html?p=" + p + "&ekind=" + ekind)); } @RequestMapping("/edit") @Menu(type = "customer", subtype = "customer") - public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id) { + public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String ekind) { map.addAttribute("entCustomer", entCustomerRes.findOne(id)); + map.addAttribute("ekindId", ekind); return request(super.createRequestPageTempletResponse("/apps/business/customer/edit")); } @RequestMapping("/update") @Menu(type = "customer", subtype = "customer") - public ModelAndView update(HttpServletRequest request, @Valid CustomerGroupForm customerGroupForm) { + public ModelAndView update(HttpServletRequest request, @Valid CustomerGroupForm customerGroupForm, @Valid String ekindId) { final User logined = super.getUser(request); EntCustomer customer = entCustomerRes.findOne(customerGroupForm.getEntcustomer().getId()); String msg = ""; @@ -306,7 +307,7 @@ public class CustomerController extends Handler { customerGroupForm.getEntcustomer().setPinyin(PinYinTools.getInstance().getFirstPinYin(customerGroupForm.getEntcustomer().getName())); entCustomerRes.save(customerGroupForm.getEntcustomer()); - return request(super.createRequestPageTempletResponse("redirect:/apps/customer/index.html?ekind=" + customerGroupForm.getEntcustomer().getEkind() + "&msg=" + msg)); + return request(super.createRequestPageTempletResponse("redirect:/apps/customer/index.html?ekind=" + ekindId + "&msg=" + msg)); } @RequestMapping("/imp") diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java index 55ac7867..34537204 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java @@ -319,6 +319,7 @@ public class IMController extends Handler { data.setWlsid(sid); data.setWlsystem_name(system_name); data.setName(username + '@' + company_name); + data.setShares("all"); data.setPinyin(PinYinTools.getInstance().getFirstPinYin(username)); contactsRes.save(data); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/AgentSummaryController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/AgentSummaryController.java index 3e29bc53..4eb167f3 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/AgentSummaryController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/AgentSummaryController.java @@ -96,11 +96,11 @@ public class AgentSummaryController extends Handler{ list.add(cb.equal(root.get("process").as(boolean.class), 0)) ; list.add(cb.notEqual(root.get("channel").as(String.class), MainContext.ChannelType.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), MainUtils.dateFormate.parse(begin))) ; + if(!StringUtils.isBlank(begin) && begin.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}")){ + list.add(cb.greaterThanOrEqualTo(root.get("createtime").as(Date.class),MainUtils.simpleDateFormat.parse(begin))); } - if(!StringUtils.isBlank(end) && end.matches("[\\d]{4}-[\\d]{2}-[\\d]{2} [\\d]{2}:[\\d]{2}:[\\d]{2}")){ - list.add(cb.lessThanOrEqualTo(root.get("createtime").as(Date.class), MainUtils.dateFormate.parse(end))) ; + if(!StringUtils.isBlank(end) && end.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}")){ + list.add(cb.lessThanOrEqualTo(root.get("createtime").as(Date.class),MainUtils.dateFormate.parse(end + " 23:59:59"))); } } catch (ParseException e) { e.printStackTrace(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/ProcessedSummaryController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/ProcessedSummaryController.java index e83be7fe..1bbd2112 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/ProcessedSummaryController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/service/ProcessedSummaryController.java @@ -102,10 +102,10 @@ public class ProcessedSummaryController extends Handler{ } try { if(!StringUtils.isBlank(begin) && begin.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}")) { - list.add(cb.greaterThanOrEqualTo(root.get("createtime").as(Date.class), MainUtils.simpleDateFormat.parse(begin))) ; + list.add(cb.greaterThanOrEqualTo(root.get("createtime").as(Date.class), MainUtils.simpleDateFormat.parse(begin))); } if(!StringUtils.isBlank(end) && end.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}")){ - list.add(cb.lessThanOrEqualTo(root.get("createtime").as(Date.class), MainUtils.dateFormate.parse(end + " 23:59:59"))); + list.add(cb.lessThanOrEqualTo(root.get("createtime").as(Date.class),MainUtils.dateFormate.parse(end + " 23:59:59"))); } } catch (Exception e) { e.printStackTrace(); diff --git a/contact-center/app/src/main/java/com/chatopera/cc/proxy/UserProxy.java b/contact-center/app/src/main/java/com/chatopera/cc/proxy/UserProxy.java index 17246da2..5688e6b7 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/proxy/UserProxy.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/proxy/UserProxy.java @@ -502,7 +502,7 @@ public class UserProxy { * * @param user */ - public void processAffiliates(final User user, final Map skills, final Organ organ) { + public void processAffiliates(final User user, final Organ organ) { if (organ == null) { return; } @@ -513,15 +513,13 @@ public class UserProxy { user.getAffiliates().add(organ.getId()); - if (organ.isSkill()) skills.put(organ.getId(), organ.getName()); - // 获得子部门 List y = organRes.findByOrgiAndParent(user.getOrgi(), organ.getId()); for (Organ x : y) { try { // 递归调用 - processAffiliates(user, skills, x); + processAffiliates(user, x); } catch (Exception e) { logger.error("processAffiliates", e); } @@ -544,9 +542,12 @@ public class UserProxy { // 添加直属部门到organs final Organ o = organRes.findOne(organ.getOrgan()); user.getOrgans().put(organ.getOrgan(), o); + if (o.isSkill()) { + skills.put(o.getId(), o.getName()); + } // 添加部门及附属部门 - processAffiliates(user, skills, o); + processAffiliates(user, o); } user.setSkills(skills); diff --git a/contact-center/app/src/main/resources/static/css/entim.css b/contact-center/app/src/main/resources/static/css/entim.css index 3ba0b04c..e36214a8 100644 --- a/contact-center/app/src/main/resources/static/css/entim.css +++ b/contact-center/app/src/main/resources/static/css/entim.css @@ -512,6 +512,8 @@ input,textarea{ border: 1px solid #DDDDDD; float: left; min-width: 25px; + max-width: 400px; + word-break: break-all; } .chatting-left div.chat-content *{ background-color: #EDEDED !important; diff --git a/contact-center/app/src/main/resources/static/fonts/csfont/iconfont.eot b/contact-center/app/src/main/resources/static/fonts/csfont/iconfont.eot index e959ba54..95223e15 100644 Binary files a/contact-center/app/src/main/resources/static/fonts/csfont/iconfont.eot and b/contact-center/app/src/main/resources/static/fonts/csfont/iconfont.eot differ diff --git a/contact-center/app/src/main/resources/static/im/css/ukefu.css b/contact-center/app/src/main/resources/static/im/css/ukefu.css index 40e46e25..05c8ce53 100644 --- a/contact-center/app/src/main/resources/static/im/css/ukefu.css +++ b/contact-center/app/src/main/resources/static/im/css/ukefu.css @@ -418,7 +418,7 @@ input,textarea{ position: absolute; right: 5px; width:70px; - top:5px; + top:9px; } .mobile-chat-bottom .send-btn{ width: 96px; @@ -467,8 +467,8 @@ input,textarea{ } .mobile-chat-bottom #message { position: absolute; - left: 45px; - width: calc(100% - 130px); + left: 80px; + width: calc(100% - 160px); border:1px solid #cccccc; font-size:16px; height:40px; diff --git a/contact-center/app/src/main/resources/static/im/img/evaluationm.png b/contact-center/app/src/main/resources/static/im/img/evaluationm.png new file mode 100644 index 00000000..da0f99b9 Binary files /dev/null and b/contact-center/app/src/main/resources/static/im/img/evaluationm.png differ diff --git a/contact-center/app/src/main/resources/templates/admin/config/index.html b/contact-center/app/src/main/resources/templates/admin/config/index.html index dfb4332b..af5b31ba 100644 --- a/contact-center/app/src/main/resources/templates/admin/config/index.html +++ b/contact-center/app/src/main/resources/templates/admin/config/index.html @@ -126,7 +126,7 @@
- + 上传图片
diff --git a/contact-center/app/src/main/resources/templates/admin/webim/index.html b/contact-center/app/src/main/resources/templates/admin/webim/index.html index 401ce65e..167e5190 100644 --- a/contact-center/app/src/main/resources/templates/admin/webim/index.html +++ b/contact-center/app/src/main/resources/templates/admin/webim/index.html @@ -318,7 +318,7 @@
-
2、自定义LOGO
+
2、自定义LOGO (建议尺寸:220*60)
-
3、自定义客服图标
+
3、自定义客服图标 (建议尺寸:80*80)
-
7、自定义访客邀请框背景图片
+
7、自定义访客邀请框背景图片 (建议尺寸:273*230)
-
7、自定义形象图片
+
7、自定义形象图片 (建议尺寸:276*236)