ApplicationTest.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.simuwang;
  2. import cn.hutool.core.collection.ListUtil;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.simuwang.base.common.conts.DateConst;
  5. import com.simuwang.base.pojo.dto.MailboxInfoDTO;
  6. import com.simuwang.daq.service.EmailParseApiService;
  7. import com.simuwang.daq.service.EmailParseService;
  8. import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
  9. import org.jasypt.iv.RandomIvGenerator;
  10. import org.jasypt.util.text.BasicTextEncryptor;
  11. import org.junit.jupiter.api.Test;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.boot.test.context.SpringBootTest;
  14. import java.io.File;
  15. import java.util.*;
  16. import java.util.List;
  17. import java.util.regex.Matcher;
  18. import java.util.regex.Pattern;
  19. @SpringBootTest(classes = Application.class)
  20. public class ApplicationTest {
  21. @Autowired
  22. private EmailParseService emailParseService;
  23. @Autowired
  24. private EmailParseApiService emailParseApiService;
  25. @Test
  26. public void test() {
  27. MailboxInfoDTO emailInfoDTO = this.buildMailbox("", "");
  28. //
  29. // emailInfoDTO.setAccount("jjpj_test");
  30. // emailInfoDTO.setPassword("shzq#919");
  31. // emailInfoDTO.setHost("mail.shzq.com");
  32. // emailInfoDTO.setPort("993");
  33. // emailInfoDTO.setProtocol("imap");
  34. Date startDate = DateUtil.parse("2024-10-10 15:00:00", DateConst.YYYY_MM_DD_HH_MM_SS);
  35. Date endDate = DateUtil.parse("2024-10-10 16:40:00", DateConst.YYYY_MM_DD_HH_MM_SS);
  36. try {
  37. emailParseService.parseEmail(emailInfoDTO, startDate, endDate);
  38. } catch (Exception e) {
  39. throw new RuntimeException(e);
  40. }
  41. }
  42. @Test
  43. public void reportTest() {
  44. MailboxInfoDTO emailInfoDTO = this.buildMailbox("x", "x");
  45. Date startDate = DateUtil.parse("2024-10-15 15:10:30", DateConst.YYYY_MM_DD_HH_MM_SS);
  46. Date endDate = DateUtil.parse("2024-10-15 17:50:30", DateConst.YYYY_MM_DD_HH_MM_SS);
  47. try {
  48. emailParseService.parseEmail(emailInfoDTO, startDate, endDate);
  49. } catch (Exception e) {
  50. throw new RuntimeException(e);
  51. }
  52. }
  53. @Test
  54. public void testReparseEmail() {
  55. String regexp = ".*【(.*?基金)】.*";
  56. String fileName = "【国恩回报61号私募证券投资基金】投资经理变更通知.pdf";
  57. Pattern pattern = Pattern.compile(regexp);
  58. Matcher matcher = pattern.matcher(fileName);
  59. if(matcher.find()){
  60. System.out.println(matcher.group(1));
  61. }
  62. }
  63. @Test
  64. public void testReparseFile() {
  65. emailParseApiService.reparseFile(ListUtil.toList(40, 43));
  66. }
  67. @Test
  68. public void testDateFormat() {
  69. String input = "11aaAA@@";
  70. BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
  71. textEncryptor.setPassword("qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm12"); // 用您自己的密钥替换"yourSecretKey"
  72. String encryptedString = textEncryptor.encrypt(input);
  73. String decrypt = textEncryptor.decrypt(encryptedString);
  74. System.out.println("加密后的字符串为: " + encryptedString);
  75. System.out.println("解密后的字符串为: " + decrypt);
  76. }
  77. private MailboxInfoDTO buildMailbox(String account, String pwd) {
  78. MailboxInfoDTO emailInfoDTO = new MailboxInfoDTO();
  79. emailInfoDTO.setUserId(1);
  80. emailInfoDTO.setAccount(account);
  81. emailInfoDTO.setPassword(pwd);
  82. emailInfoDTO.setHost("imap.exmail.qq.com");
  83. emailInfoDTO.setPort("993");
  84. emailInfoDTO.setProtocol("imap");
  85. return emailInfoDTO;
  86. }
  87. //
  88. // @Autowired
  89. // private StringEncryptor stringEncryptor;
  90. @Test
  91. public void encrypt() {
  92. StandardPBEStringEncryptor stringEncryptor = new StandardPBEStringEncryptor();
  93. stringEncryptor.setAlgorithm("PBEWithMD5AndDES");
  94. stringEncryptor.setPassword("123456qwertyasdfghzxcvbn");
  95. stringEncryptor.setIvGenerator(new RandomIvGenerator());
  96. String name = stringEncryptor.encrypt("PPW_EMAIL");
  97. String password = stringEncryptor.encrypt("Dmppw2024");
  98. System.out.println("database username: " + name);
  99. System.out.println("database password: " + password);
  100. }
  101. /**
  102. * 得到文件名称
  103. *
  104. * @param path 路径
  105. * @return {@link List}<{@link String}>
  106. */
  107. private static List<String> getFileNames(String path) {
  108. File file = new File(path);
  109. if (!file.exists()) {
  110. return null;
  111. }
  112. List<String> fileNames = new ArrayList<>();
  113. return getFileNames(file, fileNames);
  114. }
  115. /**
  116. * 得到文件名称
  117. *
  118. * @param file 文件
  119. * @param fileNames 文件名
  120. * @return {@link List}<{@link String}>
  121. */
  122. private static List<String> getFileNames(File file, List<String> fileNames) {
  123. File[] files = file.listFiles();
  124. for (File f : files) {
  125. if (f.isDirectory()) {
  126. getFileNames(f, fileNames);
  127. } else {
  128. fileNames.add(f.getName());
  129. }
  130. }
  131. return fileNames;
  132. }
  133. public static int getPercent2(float h, float w) {
  134. int p = 0;
  135. float p2 = 0.0f;
  136. p2 = 450 / w * 100;
  137. p = Math.round(p2);
  138. return p;
  139. }
  140. }