diff --git a/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotSpecification.java b/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotSpecification.java index f0581f042c..30d3a5dec3 100644 --- a/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotSpecification.java +++ b/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotSpecification.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-06-12 09:07:53 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-15 14:01:37 + * @LastEditTime: 2025-03-15 14:04:44 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -41,6 +41,10 @@ public class RobotSpecification extends BaseSpecification { if (StringUtils.hasText(request.getNickname())) { predicates.add(criteriaBuilder.like(root.get("nickname"), "%" + request.getNickname() + "%")); } + // description + if (StringUtils.hasText(request.getDescription())) { + predicates.add(criteriaBuilder.like(root.get("description"), "%" + request.getDescription() + "%")); + } // if (StringUtils.hasText(request.getOrgUid())) { predicates.add(criteriaBuilder.equal(root.get("orgUid"), request.getOrgUid())); diff --git a/modules/core/src/main/java/com/bytedesk/core/constant/TypeConsts.java b/modules/core/src/main/java/com/bytedesk/core/constant/TypeConsts.java index 65aa502581..adbeb00dec 100644 --- a/modules/core/src/main/java/com/bytedesk/core/constant/TypeConsts.java +++ b/modules/core/src/main/java/com/bytedesk/core/constant/TypeConsts.java @@ -36,5 +36,6 @@ public class TypeConsts { public static final String COMPONENT_TYPE_TEAM = "team"; public static final String COMPONENT_TYPE_SERVICE = "service"; public static final String COMPONENT_TYPE_ROBOT = "robot"; + public static final String COMPONENT_TYPE_VISITOR = "visitor"; } diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageRestController.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageRestController.java index 9885119436..f42cb4295d 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageRestController.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageRestController.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-01-29 16:21:24 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-05 16:36:20 + * @LastEditTime: 2025-03-15 14:20:07 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -72,7 +72,7 @@ public class MessageRestController extends BaseRestController { @GetMapping("/query/topic") public ResponseEntity queryByTopic(MessageRequest request) { - Page response = messageService.queryByTopic(request); + Page response = messageService.queryByOrg(request); // return ResponseEntity.ok(JsonResult.success(response)); } diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageRestService.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageRestService.java index 27c3e23a1c..2d48e1feec 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageRestService.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageRestService.java @@ -19,9 +19,7 @@ import org.springframework.cache.annotation.Caching; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.CacheEvict; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.lang.NonNull; import org.springframework.orm.ObjectOptimisticLockingFailureException; @@ -61,18 +59,13 @@ public class MessageRestService extends BaseRestService queryByTopic(MessageRequest request) { - - Pageable pageable = PageRequest.of(request.getPageNumber(), request.getPageSize(), Sort.Direction.DESC, - "createdAt"); - - Specification specs = MessageSpecification.search(request); - - Page messagePage = messageRepository.findAll(specs, pageable); - - return messagePage.map(ConvertUtils::convertToMessageResponse); - } + // @Cacheable(value = "message", key = "#request.topic", unless = "#result == null") + // public Page queryByTopic(MessageRequest request) { + // Pageable pageable = request.getPageable(); + // Specification specs = MessageSpecification.search(request); + // Page messagePage = messageRepository.findAll(specs, pageable); + // return messagePage.map(ConvertUtils::convertToMessageResponse); + // } @Cacheable(value = "message", key = "#uid", unless = "#result == null") public Optional findByUid(String uid) { diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageSpecification.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageSpecification.java index 17dc23c1de..d9da58c6fa 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageSpecification.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageSpecification.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-06-05 22:53:57 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-13 11:01:27 + * @LastEditTime: 2025-03-15 14:14:41 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -49,6 +49,15 @@ public class MessageSpecification extends BaseSpecification { } else if (TypeConsts.COMPONENT_TYPE_ROBOT.equals(request.getComponentType())) { // topic like '%robot%' predicates.add(criteriaBuilder.like(root.get("topic"), "%robot%")); + } else if (TypeConsts.COMPONENT_TYPE_VISITOR.equals(request.getComponentType())) { + // 访客端查询消息:过滤掉一些消息类型,比如:TRANSFER, TRANSFER_ACCEPT, TRANSFER_REJECT + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.TRANSFER.name())); + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.TRANSFER_ACCEPT.name())); + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.TRANSFER_REJECT.name())); + // 过滤掉 INVITE, INVITE_ACCEPT, INVITE_REJECT + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.INVITE.name())); + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.INVITE_ACCEPT.name())); + predicates.add(criteriaBuilder.notEqual(root.get("type"), MessageTypeEnum.INVITE_REJECT.name())); } } predicates.add(criteriaBuilder.equal(root.get("deleted"), false)); diff --git a/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestController.java b/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestController.java index 9b25ef434a..c3f2168b8d 100644 --- a/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestController.java +++ b/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestController.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-12-20 13:19:47 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-05 16:34:14 + * @LastEditTime: 2025-03-15 14:15:52 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -53,7 +53,7 @@ public class VisitorMessageRestController extends BaseRestController queryByTopic(MessageRequest request) { - Page response = messageRestService.queryByThreadTopic(request); + Page response = messageRestService.queryByOrg(request); // return ResponseEntity.ok(JsonResult.success(response)); } diff --git a/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestService.java b/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestService.java index 6da8261322..c954e693e7 100644 --- a/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestService.java +++ b/modules/service/src/main/java/com/bytedesk/service/visitor_message/VisitorMessageRestService.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-12-20 13:21:03 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2024-12-20 13:26:40 + * @LastEditTime: 2025-03-15 14:15:40 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -15,11 +15,8 @@ package com.bytedesk.service.visitor_message; import java.util.Optional; -import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.orm.ObjectOptimisticLockingFailureException; import org.springframework.stereotype.Service; @@ -42,13 +39,9 @@ public class VisitorMessageRestService extends BaseRestService queryByOrg(MessageRequest request) { - Pageable pageable = PageRequest.of(request.getPageNumber(), request.getPageSize(), Sort.Direction.DESC, - "createdAt"); - + Pageable pageable = request.getPageable(); Specification specs = MessageSpecification.search(request); - Page messagePage = messageRepository.findAll(specs, pageable); - return messagePage.map(ConvertUtils::convertToMessageResponse); } @@ -58,18 +51,13 @@ public class VisitorMessageRestService extends BaseRestService queryByThreadTopic(MessageRequest request) { - - Pageable pageable = PageRequest.of(request.getPageNumber(), request.getPageSize(), Sort.Direction.DESC, - "createdAt"); - - Specification specs = MessageSpecification.search(request); - - Page messagePage = messageRepository.findAll(specs, pageable); - - return messagePage.map(ConvertUtils::convertToMessageResponse); - } + // @Cacheable(value = "message", key = "#request.threadTopic", unless = "#result == null") + // public Page queryByThreadTopic(MessageRequest request) { + // Pageable pageable = request.getPageable(); + // Specification specs = MessageSpecification.search(request); + // Page messagePage = messageRepository.findAll(specs, pageable); + // return messagePage.map(ConvertUtils::convertToMessageResponse); + // } @Override public Optional findByUid(String uid) {