From c08cc2df7c3df6b61e3c7742cee6ce99c3397d79 Mon Sep 17 00:00:00 2001 From: jack ning Date: Mon, 14 Apr 2025 11:55:26 +0800 Subject: [PATCH] update modules/core: mod 6 files --- .../ai/robot_message/RobotMessageRequest.java | 6 ++- .../RobotMessageSpecification.java | 23 ++++++++--- .../core/message/AbstractMessageEntity.java | 3 +- .../bytedesk/core/message/MessageExcel.java | 18 ++++---- .../core/message/MessageResponse.java | 5 +-- .../core/message/MessageRestService.java | 41 +++++++++++-------- 6 files changed, 59 insertions(+), 37 deletions(-) diff --git a/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageRequest.java b/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageRequest.java index eefdda4e79..21b5231334 100644 --- a/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageRequest.java +++ b/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageRequest.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2025-04-14 07:07:29 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-04-14 10:26:22 + * @LastEditTime: 2025-04-14 11:33:43 * @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. @@ -32,6 +32,10 @@ public class RobotMessageRequest extends BaseRequest { private String threadUid; + private String userNickname; + + private String robotNickname; + private String status; // 可以在这里添加特有的字段(如果有的话) diff --git a/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageSpecification.java b/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageSpecification.java index 8d8128d178..de43641f54 100644 --- a/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageSpecification.java +++ b/modules/ai/src/main/java/com/bytedesk/ai/robot_message/RobotMessageSpecification.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2025-04-14 07:08:01 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-04-14 11:15:03 + * @LastEditTime: 2025-04-14 11:33:21 * @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. @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.List; import org.springframework.data.jpa.domain.Specification; +import org.springframework.util.StringUtils; import com.bytedesk.core.base.BaseSpecification; @@ -32,10 +33,22 @@ public class RobotMessageSpecification extends BaseSpecification { return (root, query, criteriaBuilder) -> { List predicates = new ArrayList<>(); predicates.addAll(getBasicPredicates(root, criteriaBuilder, request.getOrgUid())); - // - // if (StringUtils.hasText(request.getUserUid())) { - // predicates.add(criteriaBuilder.equal(root.get("userUid"), request.getUserUid())); - // } + // user.nickname + if (StringUtils.hasText(request.getUserNickname())) { + predicates.add(criteriaBuilder.like(root.get("user"), "%" + request.getUserNickname() + "%")); + } + // robot.nickname + if (StringUtils.hasText(request.getRobotNickname())) { + predicates.add(criteriaBuilder.like(root.get("robot"), "%" + request.getRobotNickname() + "%")); + } + // + if (StringUtils.hasText(request.getContent())) { + predicates.add(criteriaBuilder.like(root.get("content"), "%" + request.getContent() + "%")); + } + //answer + if (StringUtils.hasText(request.getAnswer())) { + predicates.add(criteriaBuilder.like(root.get("answer"), "%" + request.getAnswer() + "%")); + } // return criteriaBuilder.and(predicates.toArray(new Predicate[0])); }; diff --git a/modules/core/src/main/java/com/bytedesk/core/message/AbstractMessageEntity.java b/modules/core/src/main/java/com/bytedesk/core/message/AbstractMessageEntity.java index e11fe61fc5..55d30b8cb1 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/AbstractMessageEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/AbstractMessageEntity.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-10-18 14:30:00 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-04-09 17:29:07 + * @LastEditTime: 2025-04-14 11:54:54 * @Description: 消息实体抽象基类,用于统一所有消息类型的字段结构 */ package com.bytedesk.core.message; @@ -70,4 +70,5 @@ public abstract class AbstractMessageEntity extends BaseEntity { @Builder.Default @Column(name = "message_user", length = BytedeskConsts.COLUMN_EXTRA_LENGTH) private String user = BytedeskConsts.EMPTY_JSON_STRING; + } diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageExcel.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageExcel.java index 61d8fab0a5..637cef57f6 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageExcel.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageExcel.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-05-22 22:12:03 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2024-07-30 17:00:01 + * @LastEditTime: 2025-04-14 11:53: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. @@ -23,20 +23,20 @@ import lombok.Data; @Data public class MessageExcel { - @ExcelProperty(value = "threadTopic") - @ColumnWidth(20) - private String threadTopic; - - @ExcelProperty(value = "Content") + @ExcelProperty(value = "内容") @ColumnWidth(20) private String content; - @ExcelProperty(value = "Type") + @ExcelProperty(value = "类型") @ColumnWidth(20) private String type; - @ExcelProperty(value = "updatedAt") + @ExcelProperty(value = "发送者") @ColumnWidth(20) - private String updatedAt; + private String sender; + + @ExcelProperty(value = "时间") + @ColumnWidth(20) + private String createdAt; } diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageResponse.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageResponse.java index 02c146b4c2..a9748c23a2 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageResponse.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageResponse.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-02-21 10:00:55 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-04-14 10:51:05 + * @LastEditTime: 2025-04-14 11:34:53 * @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,9 +53,6 @@ public class MessageResponse extends BaseResponse { private ThreadResponse thread; - // private String topic; - - // private String threadUid; private UserProtobuf user; 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 b6bd5c65a1..80bfffb18e 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 @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-01-29 16:21:24 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-04-14 11:00:02 + * @LastEditTime: 2025-04-14 11:53:54 * @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. @@ -25,7 +25,7 @@ import org.springframework.orm.ObjectOptimisticLockingFailureException; import org.springframework.stereotype.Service; import com.alibaba.fastjson2.JSON; -import com.bytedesk.core.base.BaseRestService; +import com.bytedesk.core.base.BaseRestServiceWithExcel; import com.bytedesk.core.rbac.auth.AuthService; import com.bytedesk.core.rbac.user.UserEntity; import com.bytedesk.core.utils.ConvertUtils; @@ -36,16 +36,21 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @AllArgsConstructor -public class MessageRestService extends BaseRestService { +public class MessageRestService extends BaseRestServiceWithExcel { private final MessageRepository messageRepository; private final AuthService authService; - public Page queryByOrg(MessageRequest request) { + @Override + public Page queryByOrgEntity(MessageRequest request) { Pageable pageable = request.getPageable(); Specification specs = MessageSpecification.search(request); - Page messagePage = messageRepository.findAll(specs, pageable); + return messageRepository.findAll(specs, pageable); + } + + public Page queryByOrg(MessageRequest request) { + Page messagePage = queryByOrgEntity(request); return messagePage.map(this::convertToResponse); } @@ -60,14 +65,12 @@ public class MessageRestService extends BaseRestService queryByTopic(MessageRequest request) { - // Pageable pageable = request.getPageable(); - // Specification specs = MessageSpecification.search(request); - // Page messagePage = messageRepository.findAll(specs, pageable); - // return messagePage.map(ConvertUtils::convertToMessageResponse); - // } + @Override + public MessageResponse queryByUid(MessageRequest request) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'queryByUid'"); + } + @Cacheable(value = "message", key = "#uid", unless = "#result == null") public Optional findByUid(String uid) { @@ -188,11 +191,15 @@ public class MessageRestService extends BaseRestService