feat(定时报告): 富文本编辑器

This commit is contained in:
fit2cloud-chenyw 2022-11-23 11:32:47 +08:00
parent f51f02a57a
commit 164d398ca5
4 changed files with 20 additions and 13 deletions

View File

@ -41,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.quartz.*;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.util.HtmlUtils;
import javax.annotation.Resource;
import java.io.File;
@ -67,9 +68,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
protected JobDataMap jobDataMap(GlobalTaskEntity taskEntity) {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("taskEntity", taskEntity);
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
XpackEmailTemplateDTO emailTemplateDTO = emailXpackService.emailTemplate(taskEntity.getTaskId());
jobDataMap.put("emailTemplate", emailTemplateDTO);
SysUserEntity creator = authUserServiceImpl.getUserByIdNoCache(taskEntity.getCreator());
jobDataMap.put("creator", creator);
return jobDataMap;
@ -109,10 +108,9 @@ public class EmailTaskHandler extends TaskHandler implements Job {
Long instanceId = saveInstance(taskInstance);
taskInstance.setInstanceId(instanceId);
XpackEmailTemplateDTO emailTemplate = (XpackEmailTemplateDTO) jobDataMap.get("emailTemplate");
SysUserEntity creator = (SysUserEntity) jobDataMap.get("creator");
LogUtil.info("start execute send panel report task...");
proxy(taskEntity.getTaskType()).sendReport(taskInstance, emailTemplate, creator, isTempTask);
proxy(taskEntity.getTaskType()).sendReport(taskInstance, creator, isTempTask);
if (isTempTask) {
removeTask(scheduleManager, taskEntity);
}
@ -160,13 +158,14 @@ public class EmailTaskHandler extends TaskHandler implements Job {
}
@Async("priorityExecutor")
public void sendReport(GlobalTaskInstance taskInstance, XpackEmailTemplateDTO emailTemplateDTO, SysUserEntity user, Boolean isTempTask) {
public void sendReport(GlobalTaskInstance taskInstance, SysUserEntity user, Boolean isTempTask) {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
AuthUserServiceImpl userService = SpringContextUtil.getBean(AuthUserServiceImpl.class);
SysUserService sysUserService = SpringContextUtil.getBean(SysUserService.class);
List<File> files = null;
try {
XpackEmailTemplateDTO emailTemplateDTO = emailXpackService.emailTemplate(taskInstance.getTaskId());
XpackEmailTaskRequest taskForm = emailXpackService.taskForm(taskInstance.getTaskId());
if (ObjectUtils.isEmpty(taskForm) || (!isTempTask && CronUtils.taskExpire(taskForm.getEndTime()))) {
removeInstance(taskInstance);
@ -202,7 +201,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
String contentStr = "";
if (ObjectUtils.isNotEmpty(content)) {
contentStr = new String(content, "UTF-8");
contentStr = HtmlUtils.htmlUnescape(new String(content, "UTF-8"));
}

View File

@ -4,20 +4,17 @@ import io.dataease.auth.entity.SysUserEntity;
import io.dataease.plugins.common.entity.GlobalTaskInstance;
import io.dataease.plugins.xpack.email.dto.response.XpackEmailTemplateDTO;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service("emailTaskViewHandler")
public class EmailTaskViewHandler extends EmailTaskHandler {
@Async("priorityExecutor")
public void sendReport(GlobalTaskInstance taskInstance, XpackEmailTemplateDTO emailTemplateDTO, SysUserEntity user, Boolean isTempTask) {
super.sendReport(taskInstance, emailTemplateDTO, user, isTempTask);
public void sendReport(GlobalTaskInstance taskInstance, SysUserEntity user, Boolean isTempTask) {
super.sendReport(taskInstance, user, isTempTask);
}
}

View File

@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.HtmlUtils;
import springfox.documentation.annotations.ApiIgnore;
import java.io.*;
@ -136,6 +137,9 @@ public class XEmailTaskServer {
String emailContent;
try {
emailContent = new String(bytes, "UTF-8");
if (StringUtils.isNotBlank(emailContent)) {
emailContent = HtmlUtils.htmlUnescape(emailContent);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -176,7 +180,7 @@ public class XEmailTaskServer {
}
String imageUrl = "/system/ui/image/" + fileId;
String html = "<div>" +
"<h2>" + content + "</h2>" +
content +
"<img style='width: 100%;' id='" + panelId + "' src='" + imageUrl + "' />" +
"</div>";

View File

@ -39,3 +39,10 @@ WHERE (`component` = 'msg/setting');
ALTER TABLE `panel_group`
ADD COLUMN `panel_sort` bigint(13) NULL COMMENT '排序' AFTER `watermark_open`;
ALTER TABLE `sys_task_email`
CHANGE COLUMN `content` `content` MEDIUMBLOB NULL DEFAULT NULL COMMENT '内容' ;