auto commit: 2025-02-05 16:03:59

This commit is contained in:
jack ning
2025-02-05 16:03:59 +08:00
parent 40491f4799
commit cf74b04ac6
3 changed files with 23 additions and 13 deletions

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2024-06-05 09:44:23
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-02-04 14:50:51
* @LastEditTime: 2025-02-05 15:36:28
* @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.
@@ -80,13 +80,13 @@
### 克隆项目并启动docker compose容器
```bash
git clone https://gitee.com/270580156/weiyu.im.git && cd bytedesk/deploy/docker && docker compose -p bytedesk -f docker-compose.yaml up -d
git clone https://gitee.com/270580156/weiyu.im.git && cd weiyu.im/deploy/docker && docker compose -p weiyu -f docker-compose.yaml up -d
```
### 停止容器
```bash
docker compose -p bytedesk -f docker-compose.yaml stop
docker compose -p weiyu -f docker-compose.yaml stop
```
## 演示

BIN
images/trademark.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2025-01-20 17:04:33
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-02-05 14:07:18
* @LastEditTime: 2025-02-05 15:37:48
* @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.
@@ -13,6 +13,8 @@
*/
package com.bytedesk.ticket.ticket;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@@ -27,12 +29,14 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TicketSpecification extends BaseSpecification {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static Specification<TicketEntity> search(TicketRequest request) {
log.info("request: {}", request);
return (root, query, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
predicates.addAll(getBasicPredicates(root, criteriaBuilder, request.getOrgUid()));
//
if (StringUtils.hasText(request.getTitle())) {
predicates.add(criteriaBuilder.like(root.get("title"), "%" + request.getTitle() + "%"));
}
@@ -40,8 +44,10 @@ public class TicketSpecification extends BaseSpecification {
predicates.add(criteriaBuilder.like(root.get("description"), "%" + request.getDescription() + "%"));
}
if (StringUtils.hasText(request.getSearchText())) {
predicates.add(criteriaBuilder.like(root.get("title"), "%" + request.getSearchText() + "%"));
predicates.add(criteriaBuilder.like(root.get("description"), "%" + request.getSearchText() + "%"));
predicates.add(criteriaBuilder.or(
criteriaBuilder.like(root.get("title"), "%" + request.getSearchText() + "%"),
criteriaBuilder.like(root.get("description"), "%" + request.getSearchText() + "%")
));
}
if (StringUtils.hasText(request.getStatus())) {
predicates.add(criteriaBuilder.equal(root.get("status"), request.getStatus()));
@@ -50,27 +56,31 @@ public class TicketSpecification extends BaseSpecification {
predicates.add(criteriaBuilder.equal(root.get("priority"), request.getPriority()));
}
if (StringUtils.hasText(request.getCategoryUid())) {
predicates.add(criteriaBuilder.equal(root.get("categoryUid"), request.getCategoryUid()));
predicates.add(criteriaBuilder.equal(root.get("category").get("uid"), request.getCategoryUid()));
}
if (StringUtils.hasText(request.getThreadTopic())) {
predicates.add(criteriaBuilder.equal(root.get("threadTopic"), request.getThreadTopic()));
predicates.add(criteriaBuilder.equal(root.get("thread").get("topic"), request.getThreadTopic()));
}
if (StringUtils.hasText(request.getWorkgroupUid())) {
predicates.add(criteriaBuilder.equal(root.get("workgroup").get("uid"), request.getWorkgroupUid()));
}
if (StringUtils.hasText(request.getAssigneeUid())) {
predicates.add(criteriaBuilder.equal(root.get("assigneeUid").get("uid"), request.getAssigneeUid()));
predicates.add(criteriaBuilder.equal(root.get("assignee").get("uid"), request.getAssigneeUid()));
}
if (StringUtils.hasText(request.getReporterUid())) {
predicates.add(criteriaBuilder.equal(root.get("reporter").get("uid"), request.getReporterUid()));
}
// 处理日期范围查询
if (StringUtils.hasText(request.getStartDate())) {
predicates.add(criteriaBuilder.greaterThanOrEqualTo(root.get("createdAt"), request.getStartDate()));
LocalDateTime startDate = LocalDateTime.parse(request.getStartDate(), formatter);
predicates.add(criteriaBuilder.greaterThanOrEqualTo(root.get("createdAt"), startDate));
}
if (StringUtils.hasText(request.getEndDate())) {
predicates.add(criteriaBuilder.lessThanOrEqualTo(root.get("createdAt"), request.getEndDate()));
LocalDateTime endDate = LocalDateTime.parse(request.getEndDate(), formatter);
predicates.add(criteriaBuilder.lessThanOrEqualTo(root.get("createdAt"), endDate));
}
//
return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
};
}