From 9b142c8e2900ccccfc817d905b0216c735f400c3 Mon Sep 17 00:00:00 2001 From: lecjy <565572696@qq.com> Date: Sat, 9 Dec 2023 18:50:23 +0800 Subject: [PATCH] fix #987 Signed-off-by: lecjy <565572696@qq.com> --- .../cc/controller/api/ApiContactsController.java | 2 +- .../cc/controller/apps/ContactsController.java | 13 +++++++------ .../resource/ContactsResourceController.java | 2 +- .../persistence/repository/ContactsRepository.java | 7 +++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/contact-center/app/src/main/java/com/cskefu/cc/controller/api/ApiContactsController.java b/contact-center/app/src/main/java/com/cskefu/cc/controller/api/ApiContactsController.java index b28e4df7..83362a2a 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/controller/api/ApiContactsController.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/controller/api/ApiContactsController.java @@ -86,7 +86,7 @@ public ResponseEntity list(HttpServletRequest request, @Valid String if (!StringUtils.isBlank(creater)) { User user = super.getUser(request); - contactsList = contactsRepository.findByCreaterAndSharesInAndDatastatus(user.getId(), Arrays.asList(user.getId(),"all"), false, + contactsList = contactsRepository.findByCreaterAndSharesInOrSharesIsNullAndDatastatus(user.getId(), Arrays.asList(user.getId(),"all"), false, PageRequest.of( super.getP(request), super.getPs(request))); diff --git a/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/ContactsController.java b/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/ContactsController.java index 7bd4e94c..a95311ac 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/ContactsController.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/ContactsController.java @@ -118,6 +118,7 @@ public ModelAndView index( Page contacts = contactsRes.findByOrganInAndCkindAndSharesAllAndDatastatusFalse( super.getMyCurrentAffiliatesFlat(logined), + Arrays.asList(logined.getId(), "all"), ckind, PageRequest.of(super.getP(request), super.getPs(request))); @@ -147,7 +148,7 @@ public ModelAndView today(ModelMap map, HttpServletRequest request, @Valid Strin map.put("ckind", ckind); } - Page contacts = contactsRes.findByCreaterAndSharesInAndDatastatus(logined.getId(), + Page contacts = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus(logined.getId(), Arrays.asList(logined.getId(),"all"), false, PageRequest.of( @@ -181,7 +182,7 @@ public ModelAndView week(ModelMap map, HttpServletRequest request, @Valid String map.put("ckind", ckind); } - Page contacts = contactsRes.findByCreaterAndSharesInAndDatastatus(logined.getId(), + Page contacts = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus(logined.getId(), Arrays.asList(logined.getId(),"all"), false, PageRequest.of( @@ -215,7 +216,7 @@ public ModelAndView creater(ModelMap map, HttpServletRequest request, @Valid Str map.put("ckind", ckind); } - Page contacts = contactsRes.findByCreaterAndSharesInAndDatastatus(logined.getId(), + Page contacts = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus(logined.getId(), Arrays.asList(logined.getId(),"all"), false, PageRequest.of( @@ -485,7 +486,7 @@ public void expall(ModelMap map, HttpServletRequest request, HttpServletResponse map.put("ckind", ckind); } - Iterable contactsList = contactsRes.findByCreaterAndSharesInAndDatastatus( + Iterable contactsList = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus( logined.getId(), Arrays.asList(logined.getId(),"all"),false, PageRequest.of(super.getP(request), super.getPs(request))); MetadataTable table = metadataRes.findByTablename("uk_contacts"); @@ -519,7 +520,7 @@ public void expall(ModelMap map, HttpServletRequest request, HttpServletResponse map.put("ckind", ckind); } - Iterable contactsList = contactsRes.findByCreaterAndSharesInAndDatastatus( + Iterable contactsList = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus( logined.getId(), Arrays.asList(logined.getId(),"all"), false, PageRequest.of(super.getP(request), super.getPs(request))); MetadataTable table = metadataRes.findByTablename("uk_contacts"); List> values = new ArrayList<>(); @@ -559,7 +560,7 @@ public ModelAndView embed(ModelMap map, HttpServletRequest request, @Valid Strin if (StringUtils.isNotBlank(agentserviceid)) { AgentService service = agentServiceRes.findById(agentserviceid).orElse(null); } - Page contactsList = contactsRes.findByCreaterAndSharesInAndDatastatus( + Page contactsList = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus( logined.getId(), Arrays.asList(logined.getId(),"all"), false, PageRequest.of(super.getP(request), super.getPs(request))); diff --git a/contact-center/app/src/main/java/com/cskefu/cc/controller/resource/ContactsResourceController.java b/contact-center/app/src/main/java/com/cskefu/cc/controller/resource/ContactsResourceController.java index 48a6f24c..567b47f4 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/controller/resource/ContactsResourceController.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/controller/resource/ContactsResourceController.java @@ -46,7 +46,7 @@ public String add(ModelMap map, HttpServletRequest request, @Valid String q) { if (q == null) { q = ""; } - Page contactsList = contactsRes.findByCreaterAndSharesInAndDatastatus(super.getUser(request).getId(), Arrays.asList(super.getUser(request).getId(),"all"),false, PageRequest.of(0, 10)); + Page contactsList = contactsRes.findByCreaterAndSharesInOrSharesIsNullAndDatastatus(super.getUser(request).getId(), Arrays.asList(super.getUser(request).getId(),"all"),false, PageRequest.of(0, 10)); JSONArray result = new JSONArray(); for (Contacts contact : contactsList.getContent()) { diff --git a/contact-center/app/src/main/java/com/cskefu/cc/persistence/repository/ContactsRepository.java b/contact-center/app/src/main/java/com/cskefu/cc/persistence/repository/ContactsRepository.java index 236413ba..74dd48a0 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/persistence/repository/ContactsRepository.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/persistence/repository/ContactsRepository.java @@ -40,8 +40,7 @@ public interface ContactsRepository extends JpaRepository { @Query(nativeQuery = true, value = "SELECT * FROM uk_contacts WHERE id = ?1") Optional findOneById(final String id); - Page findByCreaterAndSharesInAndDatastatus(String id, Collection shares, boolean datastatus, Pageable pageRequest); - + Page findByCreaterAndSharesInOrSharesIsNullAndDatastatus(String id, Collection shares, boolean datastatus, Pageable pageRequest); /** * 根据条件返回联系人,符合一下条件之一: * 1. 联系人的 organ 字段在传入的 organs 列表中,并且联系人的 shares 字段值是 all @@ -50,8 +49,8 @@ public interface ContactsRepository extends JpaRepository { * @param pageRequest * @return */ - @Query("select c from Contacts c where c.organ IN :organs and (:ckind IS NULL OR c.ckind = :ckind) AND c.shares = 'all' AND c.datastatus = false") - Page findByOrganInAndCkindAndSharesAllAndDatastatusFalse(@Param("organs") Collection organs, @Param("ckind") String ckind, Pageable pageRequest); + @Query("select c from Contacts c where c.organ IN :organs and (:ckind IS NULL OR c.ckind = :ckind) AND (c.shares in :shares or c.shares IS NULL) AND c.datastatus = false") + Page findByOrganInAndCkindAndSharesAllAndDatastatusFalse(@Param("organs") Collection organs, @Param("shares") Collection shares, @Param("ckind") String ckind, Pageable pageRequest); Page findByDatastatus(boolean b, Pageable pageRequest); }