Quellcode durchsuchen

fix:修复正文html文件名报错的问题

mozuwen vor 2 Monaten
Ursprung
Commit
63ca7c310c

+ 1 - 3
service-base/src/main/java/com/simuwang/base/common/util/EmailUtil.java

@@ -182,9 +182,7 @@ public class EmailUtil {
                             html = html.replace("charset="+contentType.toLowerCase(),"charset=UTF-8");
                             html = html.replace("charset="+contentType.toUpperCase(),"charset=UTF-8");
                         }
-                        if(savePath.contains(":")){
-                            savePath = savePath.replaceAll(":","");
-                        }
+                        savePath = savePath.replaceAll("[/:*?\\\"<>|]","");
                         FileUtils.write(new File(savePath), html);
                     }catch (Exception e){
                         logger.error(e.getMessage(),e);

+ 19 - 16
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -167,8 +167,8 @@ public class EmailParseService {
             try {
                 // 保存相关信息 -> 邮件信息表,邮件文件表,邮件净值表,邮件规模表,基金净值表
                 saveRelatedTable(mailboxInfoDTO.getAccount(), emailContentInfoDTOList, fileNameNavMap);
-            }catch (Exception exception){
-                log.error("邮件信息:{},堆栈信息:{}", emailContentInfoDTOList,ExceptionUtil.stacktraceToString(exception));
+            } catch (Exception exception) {
+                log.error("邮件信息:{},堆栈信息:{}", emailContentInfoDTOList, ExceptionUtil.stacktraceToString(exception));
             }
 
             log.info("结束邮件解析 -> 邮箱信息:{},开始时间:{},结束时间:{}", mailboxInfoDTO, DateUtil.format(startDate, DateConst.YYYY_MM_DD_HH_MM_SS), DateUtil.format(endDate, DateConst.YYYY_MM_DD_HH_MM_SS));
@@ -845,6 +845,9 @@ public class EmailParseService {
             Integer emailType;
             String senderEmail;
             try {
+                if (!folder.isOpen()) {
+                    folder.open(Folder.READ_ONLY);
+                }
                 Date emailDate = message.getSentDate();
                 boolean isNotParseConditionSatisfied = emailDate == null || (endDate != null && emailDate.compareTo(endDate) > 0) || (startDate != null && emailDate.compareTo(startDate) < 0);
                 if (isNotParseConditionSatisfied) {
@@ -914,13 +917,13 @@ public class EmailParseService {
             }
             // 此时的address是含有编码(MIME编码方式)后的文本和实际的邮件地址
             String address = "";
-            for(Address from : senderAddress){
-                if(StringUtil.isNotEmpty(from.toString())){
+            for (Address from : senderAddress) {
+                if (StringUtil.isNotEmpty(from.toString())) {
                     address = from.toString();
                     break;
                 }
             }
-            log.info("发件人地址:"+address+"========================senderAddress size:"+senderAddress.length);
+            log.info("发件人地址:" + address + "========================senderAddress size:" + senderAddress.length);
             // 正则表达式匹配邮件地址
             Pattern pattern = Pattern.compile("<(\\S+)>");
             Matcher matcher = pattern.matcher(address);
@@ -929,24 +932,24 @@ public class EmailParseService {
             }
             //说明匹配不到,直接获取sender
             Address sender = message.getSender();
-            if(sender == null){
+            if (sender == null) {
                 return address;
             }
             String senderEmail = sender.toString();
-            log.info("senderEmail:"+senderEmail+"====================");
-            if(senderEmail.contains("<") && senderEmail.contains(">") && senderEmail.indexOf("<") < senderEmail.indexOf(">")){
-                senderEmail = senderEmail.substring(senderEmail.indexOf("<")+1,senderEmail.length()-1);
+            log.info("senderEmail:" + senderEmail + "====================");
+            if (senderEmail.contains("<") && senderEmail.contains(">") && senderEmail.indexOf("<") < senderEmail.indexOf(">")) {
+                senderEmail = senderEmail.substring(senderEmail.indexOf("<") + 1, senderEmail.length() - 1);
             }
             return senderEmail;
         } catch (MessagingException e) {
-            log.error(e.getMessage(),e);
+            log.error(e.getMessage(), e);
         }
         return null;
     }
 
     public List<NameValueVO> searchEmailCount(DataboardQuery databoardQuery) {
-        if(StringUtil.isNotEmpty(databoardQuery.getEndDate())){
-            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(),DateUtils.YYYY_MM_DD),1));
+        if (StringUtil.isNotEmpty(databoardQuery.getEndDate())) {
+            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(), DateUtils.YYYY_MM_DD), 1));
         }
         List<Map<String, Object>> dataList = emailParseInfoMapper.searchEmailDataBoard(databoardQuery);
         List<NameValueVO> result = new ArrayList<>();
@@ -971,8 +974,8 @@ public class EmailParseService {
     }
 
     public List<NameValueVO> searchEmailTypeCount(DataboardQuery databoardQuery) {
-        if(StringUtil.isNotEmpty(databoardQuery.getEndDate())){
-            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(),DateUtils.YYYY_MM_DD),1));
+        if (StringUtil.isNotEmpty(databoardQuery.getEndDate())) {
+            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(), DateUtils.YYYY_MM_DD), 1));
         }
         //邮件类型,1-净值,2-估值表,3-定期报告
         List<Map<String, Object>> dataList = emailParseInfoMapper.searchEmailTypeCount(databoardQuery);
@@ -998,8 +1001,8 @@ public class EmailParseService {
     }
 
     public EmailParseFailAnalysisVO parseFailAnalysis(DataboardQuery databoardQuery) {
-        if(StringUtil.isNotEmpty(databoardQuery.getEndDate())){
-            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(),DateUtils.YYYY_MM_DD),1));
+        if (StringUtil.isNotEmpty(databoardQuery.getEndDate())) {
+            databoardQuery.setEndDate(com.smppw.utils.DateUtil.getAroundDate(DateUtils.parse(databoardQuery.getEndDate(), DateUtils.YYYY_MM_DD), 1));
         }
         EmailParseFailAnalysisVO result = new EmailParseFailAnalysisVO();
         //净值规模