From 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 20 十一月 2024 15:30:12 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/service/EmailService.java |   88 +++++++++++++++++++++++++------------------
 1 files changed, 51 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/yssh/service/EmailService.java b/src/main/java/com/yssh/service/EmailService.java
index d17cadc..192131d 100644
--- a/src/main/java/com/yssh/service/EmailService.java
+++ b/src/main/java/com/yssh/service/EmailService.java
@@ -1,5 +1,6 @@
 package com.yssh.service;
 
+import com.yssh.config.InitConfig;
 import com.yssh.mapper.QxshMapper;
 import com.yssh.utils.StringUtils;
 import org.slf4j.Logger;
@@ -15,12 +16,6 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 
-/**
- * 閭欢鏈嶅姟绫�
- *
- * @author www
- * @date 2024-03-21
- */
 @Service
 public class EmailService {
     @Value("${email.userName}")
@@ -71,8 +66,13 @@
     @Value("${email.enable}")
     private Boolean enable;
 
+    @Value("${email.debug}")
+    private Boolean debug;
+
     @Resource
     private QxshMapper qxshMapper;
+
+    private static boolean isBusy = false;
 
     private final static SimpleDateFormat YMDH = new SimpleDateFormat("yyyyMMddHH");
 
@@ -81,14 +81,13 @@
     protected final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     public Session createSession() {
-        // 鍒涘缓涓�涓厤缃枃浠讹紝骞朵繚瀛�
         Properties props = new Properties();
 
-        // SMTP鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭細126鈥攕mtp.126.com锛�163鈥攕mtp.163.com锛宷q-smtp.qq.com"
-        props.put("mail.smtp.host", smtpHost); // SMTP涓绘満鍚�
-        props.put("mail.smtp.port", smtpPort); // 涓绘満绔彛鍙凤細126鈥�25锛�163鈥�645锛宷q-587
-        props.put("mail.smtp.auth", smtpAuth); // 鏄惁闇�瑕佺敤鎴疯璇�
-        props.put("mail.smtp.starttls.enale", smtpTls); // 鍚敤TlS鍔犲瘑
+        // 126鈥攕mtp.126.com锛�163鈥攕mtp.163.com锛宷q-smtp.qq.com"
+        props.put("mail.smtp.host", smtpHost);
+        props.put("mail.smtp.port", smtpPort);
+        props.put("mail.smtp.auth", smtpAuth);
+        props.put("mail.smtp.starttls.enale", smtpTls);
 
         Session session = Session.getInstance(props, new Authenticator() {
             @Override
@@ -97,8 +96,7 @@
             }
         });
 
-        // 鎺у埗鍙版墦鍗拌皟璇曚俊鎭�
-        session.setDebug(true);
+        session.setDebug(debug);
 
         return session;
     }
@@ -109,10 +107,8 @@
                 return null;
             }
 
-            // 鍒涘缓Session浼氳瘽
             Session session = createSession();
 
-            // 鍒涘缓閭欢瀵硅薄
             MimeMessage message = new MimeMessage(session);
             message.setSubject(title);
             message.setText(text);
@@ -128,7 +124,6 @@
                 message.setRecipients(Message.RecipientType.CC, ias);
             }
 
-            // 鍙戦��
             Transport.send(message);
 
             return true;
@@ -138,23 +133,49 @@
         }
     }
 
-    public int calcData() {
-        List<String> list = new ArrayList<>();
+    public Integer calcData() {
+        try {
+            if (isBusy) {
+                return null;
+            }
 
+            isBusy = true;
+            List<String> list = new ArrayList<>();
+            calcCsvData(list);
+            calcDbData(list);
+
+            int size = list.size();
+            if (size > 0) {
+                String text = String.join("銆�", list.toArray(new String[list.size()])) + "锛岃繎" + hours + "灏忔椂鍐呭瓨鍦ㄦ暟鎹己澶便��";
+                send(title, text);
+            }
+            isBusy = false;
+
+            return size;
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            isBusy = false;
+            return null;
+        }
+    }
+
+    private void calcCsvData(List<String> list) {
         String[] strs = names.split(",");
         int count = countCsv(bigPath, hours);
         if (0 == count) {
-            list.add(strs[0] + "杩�" + hours + "灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+            list.add(strs[0]);
         }
         count = countCsv(filePath, hours);
         if (0 == count) {
-            list.add(strs[1] + "杩�" + hours + "灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+            list.add(strs[1]);
         }
         count = countCsv(vocPath, hours);
         if (0 == count) {
-            list.add(strs[2] + "杩�" + hours + "灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+            list.add(strs[2]);
         }
+    }
 
+    private void calcDbData(List<String> list) {
         Calendar calendar = getCalendar(0);
         Integer iEnd = Integer.parseInt(YMDH.format(calendar.getTime()));
         String sEnd = Y_M_D_H.format(calendar.getTime());
@@ -162,34 +183,27 @@
         Integer iStart = Integer.parseInt(YMDH.format(calendar.getTime()));
         String sStart = Y_M_D_H.format(calendar.getTime());
 
-        count = qxshMapper.countGcsjByTime(iStart, iEnd);
+        String[] strs = names.split(",");
+        int count = qxshMapper.countGcsjByTime(iStart, iEnd);
         if (0 == count) {
-            list.add(strs[3] + "杩�" + hours + "灏忔椂瀛樺湪鏁版嵁缂哄け锛�");
+            list.add(strs[3]);
         }
         count = qxshMapper.countQxshByTime(iStart, iEnd);
         if (0 == count) {
-            list.add(strs[4] + "杩�" + hours + "灏忔椂瀛樺湪鏁版嵁缂哄け锛�");
+            list.add(strs[4]);
         }
         count = qxshMapper.countSuYuan46ByTime(sStart, sEnd);
         if (0 == count) {
-            list.add(strs[5] + "杩�" + hours + "灏忔椂瀛樺湪鏁版嵁缂哄け锛�");
+            list.add(strs[5]);
         }
         count = qxshMapper.countSuYuan70ByTime(sStart, sEnd);
         if (0 == count) {
-            list.add(strs[6] + "杩�" + hours + "灏忔椂瀛樺湪鏁版嵁缂哄け锛�");
+            list.add(strs[6]);
         }
         count = qxshMapper.countSuYuanFastByTime(sStart, sEnd);
         if (0 == count) {
-            list.add(strs[7] + "杩�" + hours + "灏忔椂瀛樺湪鏁版嵁缂哄け锛�");
+            list.add(strs[7]);
         }
-
-        int size = list.size();
-        if (size > 0) {
-            String text = String.join("锛�", list.toArray(new String[list.size()])) + "銆�";
-            send(title, text);
-        }
-
-        return size;
     }
 
     public int countCsv(String path, Integer hours) {
@@ -213,7 +227,7 @@
 
     public Calendar getCalendar(int start) {
         Calendar calendar = Calendar.getInstance();
-        calendar.setTime(new Date());
+        calendar.setTime(InitConfig.getDate());
         calendar.add(Calendar.HOUR, start);
         calendar.set(Calendar.MINUTE, 0);
         calendar.set(Calendar.SECOND, 0);

--
Gitblit v1.9.3