diff --git a/nflg-mobilebroken-admin/pom.xml b/nflg-mobilebroken-admin/pom.xml
index 58685ac6..1016298f 100644
--- a/nflg-mobilebroken-admin/pom.xml
+++ b/nflg-mobilebroken-admin/pom.xml
@@ -81,10 +81,27 @@
+
+
+
+
+
+
+ org.xhtmlrenderer
+ flying-saucer-pdf
+ 9.1.22
+
+
com.itextpdf
- html2pdf
- 4.0.3
+ itextpdf
+ 5.5.13.3
+
+
+
+ com.itextpdf
+ itext-asian
+ 5.2.0
cn.dev33
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java
index c778a334..31ab56d8 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java
@@ -2,9 +2,7 @@ package com.nflg.mobilebroken.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
-import com.itextpdf.html2pdf.ConverterProperties;
-import com.itextpdf.html2pdf.HtmlConverter;
-import com.itextpdf.layout.font.FontProvider;
+import com.itextpdf.text.pdf.BaseFont;
import com.nflg.mobilebroken.admin.annotation.ApiMark;
import com.nflg.mobilebroken.admin.publisher.TicketEventPublisher;
import com.nflg.mobilebroken.admin.service.SsePushService;
@@ -14,6 +12,7 @@ import com.nflg.mobilebroken.common.exception.NflgException;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
+import com.nflg.mobilebroken.common.pojo.dto.FileInfo;
import com.nflg.mobilebroken.common.pojo.request.*;
import com.nflg.mobilebroken.common.pojo.vo.*;
import com.nflg.mobilebroken.common.util.*;
@@ -28,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
+import org.xhtmlrenderer.pdf.ITextRenderer;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@@ -36,6 +36,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.IOException;
+import java.io.OutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
@@ -302,24 +303,30 @@ public class TicketController extends ControllerBase {
public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotBlank(message = "工单编号不能为空") String id) {
Ticket ticket = ticketService.getById(id);
AppUser user = appUserService.getById(ticket.getUserId());
- TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId()));
+ List companyIds= Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList());
+ List companys = customerService.listByIds(companyIds);
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) {
List adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList()));
handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(","));
}
- List images = new ArrayList<>();
- List files = new ArrayList<>();
+ List images = new ArrayList<>();
+ List files = new ArrayList<>();
if (StrUtil.isNotBlank(ticket.getAttachments())) {
StrUtil.split(ticket.getAttachments(), ",").forEach(item -> {
if (item.endsWith(".jpg") || item.endsWith(".png") || item.endsWith(".jpeg")) {
- images.add(item);
+ images.add(new FileInfo(item.substring(item.lastIndexOf("/")+1),item));
} else {
- files.add(item);
+ files.add(new FileInfo(item.substring(item.lastIndexOf("/")+1),item));
}
});
}
+ if (StrUtil.isNotBlank(ticket.getImages())) {
+ StrUtil.split(ticket.getImages(), ",").forEach(item -> {
+ images.add(new FileInfo(item.substring(item.lastIndexOf("/")+1),item));
+ });
+ }
TicketPdfVO vo = new TicketPdfVO()
.setNo(ticket.getNo())
.setTitle(ticket.getTitle())
@@ -330,10 +337,10 @@ public class TicketController extends ControllerBase {
.setDescription(ticket.getDescription())
.setState(ticket.getState())
.setCreateUserName(user.getName())
- .setCreateTime(ticket.getCreateTime())
- .setCompanyName(company.getAgencyCompanyName())
+ .setCreateTime(DateTimeUtil.format(ticket.getCreateTime()))
+ .setCompanyName(StrUtil.join(",",companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())))
.setUrgency(ticket.getUrgency())
- .setUpdateTime(ticket.getUpdateTime())
+ .setUpdateTime(DateTimeUtil.format(ticket.getUpdateTime()))
.setHandleUserName(handle)
.setSolution(ticket.getSolution())
.setImages(images)
@@ -356,18 +363,29 @@ public class TicketController extends ControllerBase {
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline;filename=" +encode );
// 生成PDF
try {
- ConverterProperties converterProperties = new ConverterProperties();
- converterProperties.setCharset("UTF-8");
- FontProvider fontProvider = new FontProvider();
- fontProvider.addSystemFonts();
- converterProperties.setFontProvider(fontProvider);
- HtmlConverter.convertToPdf(html, response.getOutputStream(), converterProperties);
+// ConverterProperties converterProperties = new ConverterProperties();
+// converterProperties.setCharset("UTF-8");
+// FontProvider fontProvider = new FontProvider();
+// fontProvider.addSystemFonts();
+// String fontPath = ResourceUtils.getFile("classpath:static/fonts/msyh.ttc").getPath();
+// fontProvider.addFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
+// converterProperties.setFontProvider(fontProvider);
+// HtmlConverter.convertToPdf(html, response.getOutputStream(), converterProperties);
// ITextRenderer renderer = new ITextRenderer();
// ITextFontResolver fontResolver = renderer.getFontResolver();
// fontResolver.addFont("fonts/simsun.ttc", true);
// renderer.setDocumentFromString(html);
// renderer.layout();
// renderer.createPDF(response.getOutputStream());
+ ITextRenderer renderer = new ITextRenderer();
+ BaseFont baseFont = BaseFont.createFont("fonts/simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
+ renderer.getFontResolver().addFont("fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
+ renderer.setDocumentFromString(html);
+ renderer.layout();
+
+ try (OutputStream outputStream = response.getOutputStream()) {
+ renderer.createPDF(outputStream);
+ }
} catch (Exception e) {
log.error("生成pdf出错", e);
throw new NflgException(STATE.BusinessError, "生成pdf出错");
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketAssignedEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketAssignedEvent.java
index 186f863f..83f8543d 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketAssignedEvent.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketAssignedEvent.java
@@ -65,6 +65,7 @@ public class TicketAssignedEvent extends ApplicationEvent implements Application
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(c.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java
index b55b7c82..dcc3cb12 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java
@@ -60,6 +60,7 @@ public class TicketCloseEvent extends ApplicationEvent implements ApplicationCon
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(c.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java
index 6cab0dd7..ea7e1e54 100644
--- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java
+++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java
@@ -69,6 +69,7 @@ public class TicketCompleteEvent extends ApplicationEvent implements Application
adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(cqmUser.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-admin/src/main/resources/bootstrap.properties b/nflg-mobilebroken-admin/src/main/resources/bootstrap.properties
index e2b6f2d3..d77293c8 100644
--- a/nflg-mobilebroken-admin/src/main/resources/bootstrap.properties
+++ b/nflg-mobilebroken-admin/src/main/resources/bootstrap.properties
@@ -25,4 +25,6 @@ spring.cloud.nacos.discovery.server-addr=${nacos.server-addr}
spring.cloud.nacos.discovery.namespace=mobilebroken
spring.cloud.nacos.discovery.group=${spring.profiles.active}
spring.cloud.nacos.discovery.metadata.env=${spring.profiles.active}
-spring.thymeleaf.encoding=UTF-8
\ No newline at end of file
+
+spring.thymeleaf.encoding=UTF-8
+#spring.thymeleaf.cache=true
\ No newline at end of file
diff --git a/nflg-mobilebroken-admin/src/main/resources/fonts/simsun.ttc b/nflg-mobilebroken-admin/src/main/resources/fonts/simsun.ttc
new file mode 100644
index 00000000..4cbcb711
Binary files /dev/null and b/nflg-mobilebroken-admin/src/main/resources/fonts/simsun.ttc differ
diff --git a/nflg-mobilebroken-admin/src/main/resources/templates/ticketpdf.html b/nflg-mobilebroken-admin/src/main/resources/templates/ticketpdf.html
index ee851369..17fc0b4d 100644
--- a/nflg-mobilebroken-admin/src/main/resources/templates/ticketpdf.html
+++ b/nflg-mobilebroken-admin/src/main/resources/templates/ticketpdf.html
@@ -4,15 +4,12 @@
-
移动破售后问题反馈表
-
+
+

+
+移动破售后问题反馈表
| 标题 |
@@ -76,13 +87,21 @@
文件 |
- |
+
+
+ |
| 图片 |
- ![]() |
+
+
+ ![]()
+
+ |
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java
index 557ab47d..9ae7f291 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java
@@ -183,9 +183,11 @@ public class UserController extends ControllerBase {
AppUserApplyfor applyfor=appUserApplyforService.add(request);
List adminUsers=adminUserService.getForAccountReview();
if (CollectionUtil.isNotEmpty(adminUsers)){
+ AppUser createdUser=appUserService.getById(AppUserUtil.getUserId());
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(request.getEmail())
+ .setTitle(createdUser.getName()+"申请新的账号")
.setUserId(c.getId())
.setSourceId(applyfor.getId())
.setSource(1)
@@ -210,9 +212,11 @@ public class UserController extends ControllerBase {
AppUser user=appUserService.getById(request.getId());
List adminUsers=adminUserService.getForAccountReview();
if (CollectionUtil.isNotEmpty(adminUsers)){
+ AppUser createdUser=appUserService.getById(AppUserUtil.getUserId());
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(user.getEmail())
+ .setTitle(createdUser.getName()+"申请账号启用")
.setUserId(c.getId())
.setSourceId(applyfor.getId())
.setSource(1)
@@ -237,9 +241,11 @@ public class UserController extends ControllerBase {
AppUserApplyfor applyfor=appUserApplyforService.applyForExtension(request);
List adminUsers=adminUserService.getForAccountReview();
if (CollectionUtil.isNotEmpty(adminUsers)){
+ AppUser createdUser=appUserService.getById(AppUserUtil.getUserId());
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(applyfor.getUserEmail())
+ .setTitle(createdUser.getName()+"请账号延期")
.setUserId(c.getId())
.setSourceId(applyfor.getId())
.setSource(1)
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java
index e58721f5..f966fa34 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java
@@ -71,6 +71,7 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo
cqmUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(c.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java
index 43eaba8c..be4bd4c2 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java
@@ -59,6 +59,7 @@ public class TicketReopenEvent extends ApplicationEvent implements ApplicationCo
adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(cqmUser.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java
index 35ab2a34..96c7bd2b 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java
@@ -71,6 +71,7 @@ public class TicketReplyEvent extends ApplicationEvent implements ApplicationCon
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(c.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java
index 77a3c219..fd030f75 100644
--- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java
+++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java
@@ -64,6 +64,7 @@ public class TicketRevokeEvent extends ApplicationEvent implements ApplicationCo
adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(cqmUser.getId())
.setSourceId(ticket.getId())
.setSource(0)
@@ -78,6 +79,7 @@ public class TicketRevokeEvent extends ApplicationEvent implements ApplicationCo
adminUsers.forEach(c -> adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
+ .setTitle(ticket.getTitle())
.setUserId(c.getId())
.setSourceId(ticket.getId())
.setSource(0)
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/FileInfo.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/FileInfo.java
new file mode 100644
index 00000000..10ca5ef7
--- /dev/null
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/FileInfo.java
@@ -0,0 +1,13 @@
+package com.nflg.mobilebroken.common.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class FileInfo {
+
+ private String name;
+
+ private String url;
+}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdminTicketSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdminTicketSearchRequest.java
index 1fc9afa6..c42c967e 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdminTicketSearchRequest.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdminTicketSearchRequest.java
@@ -1,5 +1,6 @@
package com.nflg.mobilebroken.common.pojo.request;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -24,4 +25,8 @@ public class AdminTicketSearchRequest extends TicketSearchRequest {
//质保状态
private Integer warrantyStatus;
+
+ //是否是工单管理者
+ @JsonIgnore
+ private boolean ticketManager;
}
\ No newline at end of file
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java
index 3b18ed16..522f8e3a 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java
@@ -16,6 +16,9 @@ public class AdminMessageVO {
//任务编号
private String no;
+ //标题
+ private String title;
+
//来源,0:工单;1:代理商账户
private Integer source;
@@ -27,28 +30,33 @@ public class AdminMessageVO {
//任务事项描述
private String subTypeDesc;
- //任务类别,0:账号审核;1:工单处理
- private Integer type;
- //任务类别描述
- private String typeDesc;
- //提交人
- private String sourceCreateUserName;
- //提交时间
- private LocalDateTime sourceCreateTime;
-
- //消息时间
- private LocalDateTime createTime;
- //待处理人
- private String userName;
public String getSubTypeDesc() {
return MessageSubType.findByValue(subType).getDescription();
}
- public String gettypeDesc() {
+ //任务类别,0:账号审核;1:工单处理
+ private Integer type;
+
+ //任务类别描述
+ private String typeDesc;
+
+ public String getTypeDesc() {
return MessageType.findByValue(type).getDescription();
}
+ //提交人
+ private String sourceCreateUserName;
+
+ //提交时间
+ private LocalDateTime sourceCreateTime;
+
+ //消息时间
+ private LocalDateTime createTime;
+
+ //待处理人
+ private String userName;
+
//是否已读
private boolean isRead;
}
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
index 560dfd27..4b876dc4 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketPdfVO.java
@@ -1,10 +1,10 @@
package com.nflg.mobilebroken.common.pojo.vo;
import com.nflg.mobilebroken.common.constant.TicketState;
+import com.nflg.mobilebroken.common.pojo.dto.FileInfo;
import lombok.Data;
import lombok.experimental.Accessors;
-import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@@ -25,7 +25,7 @@ public class TicketPdfVO {
private String createUserName;
//提交时间
- private LocalDateTime createTime;
+ private String createTime;
//工单状态
private Byte state;
@@ -52,15 +52,15 @@ public class TicketPdfVO {
//解决状态描述
private String stateDesc;
//更新时间
- private LocalDateTime updateTime;
+ private String updateTime;
//处理人
private String handleUserName;
//解决方案
private String solution;
//图片
- private List images;
+ private List images;
//文件
- private List files;
+ private List files;
public String getUrgencyDesc() {
if (Objects.isNull(urgency)) {
diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/DateTimeUtil.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/DateTimeUtil.java
index 1c1946e0..ff16a1dd 100644
--- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/DateTimeUtil.java
+++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/DateTimeUtil.java
@@ -1,6 +1,15 @@
package com.nflg.mobilebroken.common.util;
+import cn.hutool.core.date.DatePattern;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
public class DateTimeUtil {
+ private static final DateTimeFormatter FORMATTER=DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
+ public static String format(LocalDateTime dateTime){
+ return dateTime.format(FORMATTER);
+ }
}
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
index 42aeb977..5967562b 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMessage.java
@@ -34,6 +34,11 @@ public class AdminMessage implements Serializable {
*/
private String no;
+ /**
+ * 标题
+ */
+ private String title;
+
/**
* 来源,0:工单;1:代理商账户
*/
diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java
index a4b1b3f9..bebfb7f7 100644
--- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java
+++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java
@@ -103,7 +103,10 @@ public class TicketServiceImpl extends ServiceImpl impleme
if (request.getType() == 2) {
return baseMapper.searchFromAdminAndFollow(request, AdminUserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
} else if (request.getType() == 4) {
- return baseMapper.searchFromAdmin(request, AdminUserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
+ Integer userId=AdminUserUtil.getUserId();
+ List tickerMangagers=adminUserService.getTickerMangagers();
+ request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId)));
+ return baseMapper.searchFromAdmin(request, userId, new Page<>(request.getPage(), request.getPageSize()));
}
return new Page<>(request.getPage(), request.getPageSize(), 0);
}
@@ -205,7 +208,10 @@ public class TicketServiceImpl extends ServiceImpl impleme
if (request.getType() == 2) {
return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId());
} else if (request.getType() == 4) {
- return baseMapper.searchAllFromAdmin(request, AdminUserUtil.getUserId());
+ Integer userId=AdminUserUtil.getUserId();
+ List tickerMangagers=adminUserService.getTickerMangagers();
+ request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId)));
+ return baseMapper.searchAllFromAdmin(request, userId);
}
return Collections.emptyList();
}
diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml
index 415cd157..bbdb2d7c 100644
--- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml
+++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml
@@ -3,7 +3,7 @@