mirror of
https://gitee.com/270580156/weiyu.git
synced 2025-12-30 02:42:25 +00:00
auto commit: 2025-02-05 16:03:59
This commit is contained in:
@@ -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
BIN
images/trademark.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 353 KiB |
@@ -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]));
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user