From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 25 六月 2025 11:18:22 +0800
Subject: [PATCH] 验收报告修改

---
 src/main/java/com/whyc/service/MailService.java |   72 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/service/MailService.java b/src/main/java/com/whyc/service/MailService.java
index 61054d2..a1037e5 100644
--- a/src/main/java/com/whyc/service/MailService.java
+++ b/src/main/java/com/whyc/service/MailService.java
@@ -1,13 +1,83 @@
 package com.whyc.service;
 
+import com.whyc.constant.UserOperation;
 import com.whyc.dto.MailDTO;
+import com.whyc.dto.Response;
+import com.whyc.pojo.MailQueue;
+import com.whyc.util.ActionUtil;
+import com.whyc.util.MailUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mail.MailException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.mail.MessagingException;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 
 @Service
 public class MailService {
 
+    @Autowired
+    private MailUtil mailUtil;
 
-    public void sendMail(MailDTO mailDTO) {
+    @Autowired
+    private DocLogService logService;
 
+    @Autowired
+    private MailQueueService mailQueueService;
+
+    @Transactional
+    public Response sendMail(MailDTO mailDTO) {
+        Long uId = ActionUtil.getUser().getId();
+        String name=ActionUtil.getUser().getName();
+        //鏃ュ織鍐呭鍑嗗
+        StringBuilder mailUserStr = new StringBuilder();
+        List<String> mailList = mailDTO.getMailList();
+        for (int i = 0; i < mailList.size(); i++) {
+            if(i==0){
+                mailUserStr.append(mailList.get(i));
+            }else{
+                mailUserStr.append(","+mailList.get(i));
+            }
+        }
+        try {
+            mailUtil.sendMailBatch(name,mailDTO.getMailList(),mailDTO.getTitle(),mailDTO.getContent());
+
+            String msgDetail = "鍙戦�佺粰閭" + mailUserStr + ",鏍囬涓�:" + mailDTO.getTitle() + ",鍐呭涓�:" + mailDTO.getContent();
+            logService.record(uId, name, UserOperation.TYPE_SEND_MAIL.getType(), "閭欢鍙戦��", msgDetail);
+            return new Response().set(1,true,"鍙戦�佸畬鎴�");
+        } catch (MessagingException | MailException ex) { //閭欢鍙戦�佸紓甯�,瀛樺叆鏁版嵁搴撳緟閲嶆柊鍙戦�佸垪琛�
+            MailQueue queue = new MailQueue();
+            queue.setMails(mailUserStr.toString());
+            queue.setTitle(mailDTO.getTitle());
+            queue.setContent(mailDTO.getContent());
+            queue.setCreateTime(new Date());
+            queue.setSenderUserId(uId);
+            queue.setSenderUserName(name);
+            mailQueueService.add(queue);
+            return new Response().set(1,false,"鍙戦�佸け璐�,缃戠粶寮傚父,缃戠粶鎭㈠鍚庤嚜鍔ㄥ欢鏃跺彂閫�");
+        }
+    }
+
+    public void sendQueueMail(MailQueue queue) {
+        Long uId = queue.getSenderUserId();
+        String name = queue.getSenderUserName();
+
+        String mails = queue.getMails();
+        String[] mailSplits = mails.split(",");
+        List<String> mailList = new LinkedList<>(Arrays.asList(mailSplits));
+        try{
+            mailUtil.sendMailBatch(name,mailList,queue.getTitle(),queue.getContent());
+            //鍒犻櫎 鏁版嵁搴撻偖浠堕槦鍒楄〃涓� 宸茶鍙戦�佺殑閭欢璁板綍
+            mailQueueService.deleteById(queue.getId());
+            //鏃ュ織
+            String msgDetail = "鍙戦�佺粰閭" + mails + ",鏍囬涓�:" + queue.getTitle() + ",鍐呭涓�:" + queue.getContent();
+            logService.record(uId, name, UserOperation.TYPE_SEND_MAIL.getType(), "閭欢鍥犵綉缁滈棶棰樼敱绯荤粺寤舵椂鍙戦��", msgDetail);
+        } catch (MessagingException | MailException ex) { //閭欢鍙戦�佸紓甯�
+            //System.out.println("閭欢鍙戦�佸紓甯�,鍚庣画浼氭寔缁彂閫佺洿鍒版垚鍔�");
+        }
     }
 }

--
Gitblit v1.9.1