Kaynağa Gözat

邮件模块:更新邮件发送规则

wangPH 2 yıl önce
ebeveyn
işleme
fc98736d01

+ 14 - 6
pdf-office-api/pdf-office-api-email/src/main/java/cn/kdan/cloud/pdf/office/api/email/bo/EmailSendBO.java

@@ -22,18 +22,26 @@ public class EmailSendBO implements Serializable {
      * 收件方
      */
     private String toEmail;
-    /**
-     * 模板id
-     */
-    private String templateId;
+//    /**
+//     * 模板id
+//     */
+//    private String templateId;
     /**
      * 发送内容
      */
     private Map<String, String> sendContent;
 
     /**
-     * 邮件标题
+     * 发送标题
+     */
+    private Map<String, String> sendTitleContent;
+//    /**
+//     * 邮件标题
+//     */
+//    private String emailTitle;
+    /**
+     * 使用事件
      */
-    private String emailTitle;
+    private String useEvent;
 
 }

+ 8 - 0
pdf-office-api/pdf-office-api-email/src/main/java/cn/kdan/cloud/pdf/office/api/email/bo/TemplateHtmlBO.java

@@ -16,5 +16,13 @@ public class TemplateHtmlBO {
      * 模板内容HTML
      */
     private String templateHtml;
+    /**
+     * 标题
+     */
+    private String templateTitle;
+    /**
+     * id
+     */
+    private String emailTemplateId;
 
 }

+ 8 - 0
pdf-office-email/src/main/java/cn/kdan/cloud/pdf/office/email/entity/EmailTemplate.java

@@ -28,5 +28,13 @@ public class EmailTemplate extends BaseEntity{
      * 是否启用,1启用,0禁用
      */
     private Integer isEnable;
+    /**
+     * 使用事件
+     */
+    private String useEvent;
+    /**
+     * 标题
+     */
+    private String templateTitle;
 
 }

+ 9 - 5
pdf-office-email/src/main/java/cn/kdan/cloud/pdf/office/email/rabbit/listener/SendEmailListener.java

@@ -49,7 +49,7 @@ public class SendEmailListener {
     public void backgroundApiAddQueue(Message message, Channel channel, EmailSendBO emailSendBO) {
         try {
             log.info("邮件发送监听内容:{}", emailSendBO);
-            TemplateHtmlBO template = emailTemplateService.getTemplate(emailSendBO.getTemplateId());
+            TemplateHtmlBO template = emailTemplateService.getTemplateByUseEvent(emailSendBO.getUseEvent());
 
             JavaMailSenderImpl mailSender = mailSenderConfig.getDefaultSender();
             Map<String, String> sendContent = emailSendBO.getSendContent();
@@ -57,10 +57,15 @@ public class SendEmailListener {
             for (String key : sendContent.keySet()) {
                 templateHtml = templateHtml.replaceAll(key,sendContent.get(key));
             }
+            String templateTitle = template.getTemplateTitle();
+            Map<String, String> sendTitleContent = emailSendBO.getSendTitleContent();
+            for (String key : sendTitleContent.keySet()) {
+                templateTitle = templateTitle.replaceAll(key,sendTitleContent.get(key));
+            }
 
             MimeMessage mimeMessage = mailSender.createMimeMessage();
             MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
-            helper.setSubject(emailSendBO.getEmailTitle());
+            helper.setSubject(templateTitle);
             helper.setText(templateHtml, true);
             helper.setTo(emailSendBO.getToEmail());
             helper.setFrom(ObjectUtils.isEmpty(emailSendBO.getFromEmail())
@@ -72,10 +77,9 @@ public class SendEmailListener {
             emailLog.setSendTo(emailSendBO.getToEmail());
             emailLog.setSendFrom(emailSendBO.getFromEmail());
             emailLog.setSendTime(new Date());
-            emailLog.setSendTemplate(emailSendBO.getTemplateId());
-            emailLog.setSendContent(JsonUtils.getJsonString(emailSendBO.getSendContent()));
+            emailLog.setSendTemplate(template.getEmailTemplateId());
+            emailLog.setSendContent(JsonUtils.getJsonString(emailSendBO.getSendContent()) + ";" + JsonUtils.getJsonString(emailSendBO.getSendTitleContent()));
             emailLogService.getBaseMapper().insert(emailLog);
-
             channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
         } catch (Exception e) {
             // TODO 补救策略

+ 8 - 1
pdf-office-email/src/main/java/cn/kdan/cloud/pdf/office/email/service/EmailTemplateService.java

@@ -22,6 +22,13 @@ public interface EmailTemplateService extends IService<EmailTemplate> {
      * @param uuid uuid
      * @return 模板HTML
      */
-    TemplateHtmlBO getTemplate(String uuid);
+    TemplateHtmlBO getTemplateById(String uuid);
+
+    /**
+     * 通过useEvent 获取模板
+     * @param useEvent useEvent
+     * @return 模板HTML
+     */
+    TemplateHtmlBO getTemplateByUseEvent(String useEvent);
 
 }

+ 16 - 1
pdf-office-email/src/main/java/cn/kdan/cloud/pdf/office/email/service/impl/EmailTemplateServiceImpl.java

@@ -23,7 +23,7 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
     }
 
     @Override
-    public TemplateHtmlBO getTemplate(String uuid) {
+    public TemplateHtmlBO getTemplateById(String uuid) {
         EmailTemplate emailTemplate = this.baseMapper
                 .selectOne(new LambdaQueryWrapper<EmailTemplate>().select(EmailTemplate::getTemplateHtml)
                 .eq(EmailTemplate::getId, uuid));
@@ -32,4 +32,19 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
                 .build();
     }
 
+    @Override
+    public TemplateHtmlBO getTemplateByUseEvent(String useEvent) {
+        EmailTemplate emailTemplate = this.baseMapper
+                .selectOne(new LambdaQueryWrapper<EmailTemplate>()
+                        .select(EmailTemplate::getTemplateHtml,EmailTemplate::getTemplateTitle,EmailTemplate::getId)
+                        .eq(EmailTemplate::getUseEvent, useEvent)
+                        .eq(EmailTemplate::getIsEnable,1));
+
+        return TemplateHtmlBO.builder()
+                .templateHtml(emailTemplate.getTemplateHtml())
+                .templateTitle(emailTemplate.getTemplateTitle())
+                .emailTemplateId(emailTemplate.getId())
+                .build();
+    }
+
 }