guochao 5 gadi atpakaļ
vecāks
revīzija
ad4b7a0f93
97 mainītis faili ar 908 papildinājumiem un 50 dzēšanām
  1. 13 0
      .idea/libraries/Maven__antlr_antlr_2_7_7.xml
  2. 13 0
      .idea/libraries/Maven__com_google_guava_guava_18_0.xml
  3. 13 0
      .idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml
  4. 13 0
      .idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml
  5. 13 0
      .idea/libraries/Maven__javax_transaction_javax_transaction_api_1_3.xml
  6. 13 0
      .idea/libraries/Maven__mysql_mysql_connector_java_8_0_17.xml
  7. 13 0
      .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_4.xml
  8. 13 0
      .idea/libraries/Maven__org_dom4j_dom4j_2_1_1.xml
  9. 13 0
      .idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_4_Final.xml
  10. 13 0
      .idea/libraries/Maven__org_hibernate_hibernate_core_5_3_11_Final.xml
  11. 13 0
      .idea/libraries/Maven__org_javassist_javassist_3_23_2_GA.xml
  12. 13 0
      .idea/libraries/Maven__org_jboss_jandex_2_0_5_Final.xml
  13. 13 0
      .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_8_RELEASE.xml
  14. 13 0
      .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_1_8_RELEASE.xml
  15. 13 0
      .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_8_RELEASE.xml
  16. 13 0
      .idea/libraries/Maven__org_springframework_data_spring_data_commons_2_1_10_RELEASE.xml
  17. 13 0
      .idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_1_10_RELEASE.xml
  18. 13 0
      .idea/libraries/Maven__org_springframework_spring_aspects_5_1_9_RELEASE.xml
  19. 13 0
      .idea/libraries/Maven__org_springframework_spring_jdbc_5_1_9_RELEASE.xml
  20. 13 0
      .idea/libraries/Maven__org_springframework_spring_orm_5_1_9_RELEASE.xml
  21. 13 0
      .idea/libraries/Maven__org_springframework_spring_tx_5_1_9_RELEASE.xml
  22. 42 1
      .idea/workspace.xml
  23. 28 7
      gateway-demo.iml
  24. 16 0
      pom.xml
  25. 3 0
      src/main/java/cn/iselab/mooctest/site/Application.java
  26. 15 0
      src/main/java/cn/iselab/mooctest/site/Exception/BaseException.java
  27. 11 0
      src/main/java/cn/iselab/mooctest/site/Exception/ReportTaskNotExistException.java
  28. 20 0
      src/main/java/cn/iselab/mooctest/site/dao/ReportTaskDao.java
  29. 15 0
      src/main/java/cn/iselab/mooctest/site/domainObject/ReportTask.java
  30. 10 0
      src/main/java/cn/iselab/mooctest/site/domainObject/ReportTaskStatus.java
  31. 13 0
      src/main/java/cn/iselab/mooctest/site/factory/ReportTaskFactory.java
  32. 36 0
      src/main/java/cn/iselab/mooctest/site/model/ReportTaskPO.java
  33. 15 0
      src/main/java/cn/iselab/mooctest/site/repository/IReportTaskRepo.java
  34. 35 0
      src/main/java/cn/iselab/mooctest/site/repository/ReportTaskRepo.java
  35. 11 0
      src/main/java/cn/iselab/mooctest/site/service/AutoReportProductService.java
  36. 97 3
      src/main/java/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.java
  37. 82 0
      src/main/java/cn/iselab/mooctest/site/util/Converter.java
  38. 47 38
      src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java
  39. 31 1
      src/main/resources/application.yml
  40. 16 0
      target/classes/application.properties
  41. 70 0
      target/classes/application.yml
  42. 22 0
      target/classes/bootstrap.yaml
  43. BIN
      target/classes/cn/iselab/mooctest/site/Application.class
  44. BIN
      target/classes/cn/iselab/mooctest/site/Exception/BaseException.class
  45. BIN
      target/classes/cn/iselab/mooctest/site/Exception/ReportTaskNotExistException.class
  46. BIN
      target/classes/cn/iselab/mooctest/site/dao/ReportTaskDao.class
  47. BIN
      target/classes/cn/iselab/mooctest/site/domainObject/ReportTask.class
  48. BIN
      target/classes/cn/iselab/mooctest/site/domainObject/ReportTaskStatus.class
  49. BIN
      target/classes/cn/iselab/mooctest/site/factory/ReportTaskFactory.class
  50. BIN
      target/classes/cn/iselab/mooctest/site/model/ReportTaskPO.class
  51. BIN
      target/classes/cn/iselab/mooctest/site/repository/IReportTaskRepo.class
  52. BIN
      target/classes/cn/iselab/mooctest/site/repository/ReportTaskRepo.class
  53. BIN
      target/classes/cn/iselab/mooctest/site/service/AutoReportProductService.class
  54. BIN
      target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl$1.class
  55. BIN
      target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl$2.class
  56. BIN
      target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.class
  57. BIN
      target/classes/cn/iselab/mooctest/site/util/Converter$CopierIdentity.class
  58. BIN
      target/classes/cn/iselab/mooctest/site/util/Converter$PrimitiveConverter.class
  59. BIN
      target/classes/cn/iselab/mooctest/site/util/Converter.class
  60. BIN
      target/classes/cn/iselab/mooctest/site/web/ctrl/HandleReportController.class
  61. BIN
      target/classes/cn/iselab/mooctest/site/web/data/enums/VulVerifyStatus.class
  62. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/Bug.class
  63. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceBugListItem.class
  64. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceDetailItem.class
  65. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceDistributionData.class
  66. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceUCListItem.class
  67. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/FunctionalTestVO.class
  68. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/GeneralResult.class
  69. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/ScreenShot.class
  70. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/TypePassResult.class
  71. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCItemCaseInfo.class
  72. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCPassResult.class
  73. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCResultDeviceItem.class
  74. BIN
      target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCResultItem.class
  75. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/ActiveIssueDetailVO.class
  76. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/AppBasicInfoVO.class
  77. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/DeviceDetailVO.class
  78. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/IssueDistributionAttributeVO.class
  79. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/IssueDistributionVO.class
  80. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/IssuePhoneVO.class
  81. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/NeedOptimizedProblemVO.class
  82. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceDetailAttributeVO.class
  83. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceDetailItemVO.class
  84. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceSummaryAttributeVO.class
  85. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceSummaryItemVO.class
  86. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/PieDataVO.class
  87. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/ReportDataVO.class
  88. BIN
      target/classes/cn/iselab/mooctest/site/web/data/reportData/TestResultVO.class
  89. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/ProjectInfoVO.class
  90. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/StatVO.class
  91. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/Vul2TaskVo.class
  92. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/VulCheckVo.class
  93. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/VulReferenceVo.class
  94. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/VulReportDataVO.class
  95. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/VulStatisticsVO.class
  96. BIN
      target/classes/cn/iselab/mooctest/site/web/data/vulData/VulnerabilityVo.class
  97. BIN
      target/test-classes/com/example/demo/DemoApplicationTests.class

+ 13 - 0
.idea/libraries/Maven__antlr_antlr_2_7_7.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: antlr:antlr:2.7.7">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_google_guava_guava_18_0.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.google.guava:guava:18.0">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.zaxxer:HikariCP:3.2.0">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.2.0/HikariCP-3.2.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.2.0/HikariCP-3.2.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.2.0/HikariCP-3.2.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: javax.persistence:javax.persistence-api:2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: javax.transaction:javax.transaction-api:1.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/transaction/javax.transaction-api/1.3/javax.transaction-api-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/transaction/javax.transaction-api/1.3/javax.transaction-api-1.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/transaction/javax.transaction-api/1.3/javax.transaction-api-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__mysql_mysql_connector_java_8_0_17.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: mysql:mysql-connector-java:8.0.17">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_4.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.aspectj:aspectjweaver:1.9.4">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.9.4/aspectjweaver-1.9.4.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.9.4/aspectjweaver-1.9.4-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.9.4/aspectjweaver-1.9.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_dom4j_dom4j_2_1_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.dom4j:dom4j:2.1.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/dom4j/dom4j/2.1.1/dom4j-2.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/dom4j/dom4j/2.1.1/dom4j-2.1.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_4_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.4.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_hibernate_hibernate_core_5_3_11_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.hibernate:hibernate-core:5.3.11.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/5.3.11.Final/hibernate-core-5.3.11.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/5.3.11.Final/hibernate-core-5.3.11.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/5.3.11.Final/hibernate-core-5.3.11.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_javassist_javassist_3_23_2_GA.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.javassist:javassist:3.23.2-GA">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_jboss_jandex_2_0_5_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jboss:jandex:2.0.5.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_8_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.8.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-aop/2.1.8.RELEASE/spring-boot-starter-aop-2.1.8.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-aop/2.1.8.RELEASE/spring-boot-starter-aop-2.1.8.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-aop/2.1.8.RELEASE/spring-boot-starter-aop-2.1.8.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_1_8_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.1.8.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jpa/2.1.8.RELEASE/spring-boot-starter-data-jpa-2.1.8.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jpa/2.1.8.RELEASE/spring-boot-starter-data-jpa-2.1.8.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jpa/2.1.8.RELEASE/spring-boot-starter-data-jpa-2.1.8.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_8_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.8.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.1.8.RELEASE/spring-boot-starter-jdbc-2.1.8.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.1.8.RELEASE/spring-boot-starter-jdbc-2.1.8.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.1.8.RELEASE/spring-boot-starter-jdbc-2.1.8.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_1_10_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.data:spring-data-commons:2.1.10.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.1.10.RELEASE/spring-data-commons-2.1.10.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.1.10.RELEASE/spring-data-commons-2.1.10.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.1.10.RELEASE/spring-data-commons-2.1.10.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_1_10_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.data:spring-data-jpa:2.1.10.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/2.1.10.RELEASE/spring-data-jpa-2.1.10.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/2.1.10.RELEASE/spring-data-jpa-2.1.10.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/2.1.10.RELEASE/spring-data-jpa-2.1.10.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_aspects_5_1_9_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-aspects:5.1.9.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/5.1.9.RELEASE/spring-aspects-5.1.9.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/5.1.9.RELEASE/spring-aspects-5.1.9.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/5.1.9.RELEASE/spring-aspects-5.1.9.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_jdbc_5_1_9_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-jdbc:5.1.9.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.1.9.RELEASE/spring-jdbc-5.1.9.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.1.9.RELEASE/spring-jdbc-5.1.9.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.1.9.RELEASE/spring-jdbc-5.1.9.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_orm_5_1_9_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-orm:5.1.9.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/5.1.9.RELEASE/spring-orm-5.1.9.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/5.1.9.RELEASE/spring-orm-5.1.9.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/5.1.9.RELEASE/spring-orm-5.1.9.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_tx_5_1_9_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-tx:5.1.9.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.1.9.RELEASE/spring-tx-5.1.9.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.1.9.RELEASE/spring-tx-5.1.9.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.1.9.RELEASE/spring-tx-5.1.9.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 42 - 1
.idea/workspace.xml

@@ -2,8 +2,45 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="c25ee83f-38b8-4a56-8a1f-62ecc8d6cec2" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__antlr_antlr_2_7_7.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_guava_guava_18_0.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_3.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_17.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_4.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_dom4j_dom4j_2_1_1.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_4_Final.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_hibernate_core_5_3_11_Final.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_javassist_javassist_3_23_2_GA.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_jandex_2_0_5_Final.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_8_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_1_8_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_8_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_1_10_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_1_10_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_aspects_5_1_9_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jdbc_5_1_9_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_orm_5_1_9_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_tx_5_1_9_RELEASE.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/Exception/BaseException.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/Exception/ReportTaskNotExistException.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/dao/ReportTaskDao.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/domainObject/ReportTask.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/domainObject/ReportTaskStatus.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/factory/ReportTaskFactory.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/model/ReportTaskPO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/repository/IReportTaskRepo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/repository/ReportTaskRepo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/util/Converter.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/gateway-demo.iml" beforeDir="false" afterPath="$PROJECT_DIR$/gateway-demo.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/Application.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/Application.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/service/AutoReportProductService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/service/AutoReportProductService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -14,6 +51,7 @@
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
+        <option value="Interface" />
         <option value="Class" />
       </list>
     </option>
@@ -49,6 +87,9 @@
   </component>
   <component name="RecentsManager">
     <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="cn.iselab.mooctest.site.util" />
+      <recent name="cn.iselab.mooctest.site.Exception" />
+      <recent name="cn.iselab.mooctest.site.model" />
       <recent name="com.example.demo" />
     </key>
     <key name="CopyFile.RECENT_KEYS">
@@ -110,7 +151,7 @@
       <workItem from="1573803183351" duration="6316000" />
       <workItem from="1573817067721" duration="3410000" />
       <workItem from="1573886504964" duration="7019000" />
-      <workItem from="1574039613479" duration="1254000" />
+      <workItem from="1574039613479" duration="16033000" />
     </task>
     <servers />
   </component>

+ 28 - 7
gateway-demo.iml

@@ -49,10 +49,7 @@
     <orderEntry type="library" name="Maven: org.glassfish:javax.el:3.0.0" level="project" />
     <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.17.Final" level="project" />
     <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.3.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.9.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-webflux:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.synchronoss.cloud:nio-multipart-parser:1.1.0" level="project" />
     <orderEntry type="library" name="Maven: org.synchronoss.cloud:nio-stream-storage:1.1.3" level="project" />
@@ -113,7 +110,6 @@
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9.3" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.9.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
     <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.1.6" level="project" />
@@ -130,7 +126,7 @@
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.9.16" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.16" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.16" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
@@ -141,11 +137,36 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.9.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
     <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.6" level="project" />
     <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
     <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
     <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.17" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.3" level="project" />
+    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.3.11.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.3.Final" level="project" />
+    <orderEntry type="library" name="Maven: javax.persistence:javax.persistence-api:2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.23.2-GA" level="project" />
+    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.5.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.4.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.1.10.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.1.10.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
   </component>
 </module>

+ 16 - 0
pom.xml

@@ -74,6 +74,22 @@
 <!--            <groupId>org.springframework.boot</groupId>-->
 <!--            <artifactId>spring-boot-starter-webflux</artifactId>-->
 <!--        </dependency>-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>18.0</version>
+        </dependency>
+
+
     </dependencies>
 
     <dependencyManagement>

+ 3 - 0
src/main/java/cn/iselab/mooctest/site/Application.java

@@ -2,8 +2,11 @@ package cn.iselab.mooctest.site;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
+
 
 @SpringBootApplication
+@EnableAsync
 public class Application {
 
     public static void main(String[] args) {

+ 15 - 0
src/main/java/cn/iselab/mooctest/site/Exception/BaseException.java

@@ -0,0 +1,15 @@
+package cn.iselab.mooctest.site.Exception;
+
+import lombok.NoArgsConstructor;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 00:15
+ */
+@NoArgsConstructor
+public class BaseException extends RuntimeException {
+    public BaseException(String msg){
+        super(msg);
+    }
+}

+ 11 - 0
src/main/java/cn/iselab/mooctest/site/Exception/ReportTaskNotExistException.java

@@ -0,0 +1,11 @@
+package cn.iselab.mooctest.site.Exception;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 17:04
+ */
+public class ReportTaskNotExistException extends BaseException {
+    public ReportTaskNotExistException(String msg){
+        super(msg);
+    }
+}

+ 20 - 0
src/main/java/cn/iselab/mooctest/site/dao/ReportTaskDao.java

@@ -0,0 +1,20 @@
+package cn.iselab.mooctest.site.dao;
+
+import cn.iselab.mooctest.site.model.ReportTaskPO;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Component;
+
+import java.util.Optional;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 16:19
+ */
+@Component
+public interface ReportTaskDao extends CrudRepository<ReportTaskPO, Long> {
+
+    Optional<Long> findByTaskIdAndOwnerId(Long taskId, Long ownerId);
+
+    @Override
+    <S extends ReportTaskPO> S save(S s);
+}

+ 15 - 0
src/main/java/cn/iselab/mooctest/site/domainObject/ReportTask.java

@@ -0,0 +1,15 @@
+package cn.iselab.mooctest.site.domainObject;
+
+import lombok.Data;
+/**
+ * @author guochao
+ * @date 2019-11-18 16:19
+ */
+@Data
+public class ReportTask {
+    private Long id;
+    private Long taskId;
+    private Long ownerId;
+    private String taskUrl;
+    private int status;
+}

+ 10 - 0
src/main/java/cn/iselab/mooctest/site/domainObject/ReportTaskStatus.java

@@ -0,0 +1,10 @@
+package cn.iselab.mooctest.site.domainObject;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 16:24
+ */
+public class ReportTaskStatus {
+    public static final int GENERATING = 0; //报告任务生成中
+    public static final int COMPLETED = 1;  //报告任务已完成
+}

+ 13 - 0
src/main/java/cn/iselab/mooctest/site/factory/ReportTaskFactory.java

@@ -0,0 +1,13 @@
+package cn.iselab.mooctest.site.factory;
+
+import cn.iselab.mooctest.site.domainObject.ReportTask;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 17:15
+ */
+public class ReportTaskFactory {
+    public static ReportTask createReportTask() {
+        return new ReportTask();
+    }
+}

+ 36 - 0
src/main/java/cn/iselab/mooctest/site/model/ReportTaskPO.java

@@ -0,0 +1,36 @@
+package cn.iselab.mooctest.site.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 16:19
+ */
+@Data
+@Entity
+@Table(name = "report_task")
+public class ReportTaskPO implements Serializable {
+
+    @Id
+    @Column(name = "RT_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "RT_TASK_ID")
+    private Long taskId;
+
+    @Column(name = "RT_OWNER_ID")
+    private Long ownerId;
+
+    @Column(name = "RT_URL")
+    private String taskUrl;
+
+    @Column(name = "RT_STATUS")
+    private int status;
+
+
+
+}

+ 15 - 0
src/main/java/cn/iselab/mooctest/site/repository/IReportTaskRepo.java

@@ -0,0 +1,15 @@
+package cn.iselab.mooctest.site.repository;
+
+import cn.iselab.mooctest.site.domainObject.ReportTask;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 16:59
+ */
+
+public interface IReportTaskRepo {
+
+    ReportTask getByTaskId(Long taskId, Long ownerId);
+
+    Long saveReportTask(ReportTask reportTask);
+}

+ 35 - 0
src/main/java/cn/iselab/mooctest/site/repository/ReportTaskRepo.java

@@ -0,0 +1,35 @@
+package cn.iselab.mooctest.site.repository;
+
+import cn.iselab.mooctest.site.Exception.ReportTaskNotExistException;
+import cn.iselab.mooctest.site.dao.ReportTaskDao;
+import cn.iselab.mooctest.site.domainObject.ReportTask;
+import cn.iselab.mooctest.site.model.ReportTaskPO;
+import cn.iselab.mooctest.site.util.Converter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+/**
+ * @author guochao
+ * @date 2019-11-18 17:01
+ */
+@Repository
+public class ReportTaskRepo implements IReportTaskRepo {
+    @Autowired
+    private ReportTaskDao reportTaskDao;
+
+    @Override
+    public ReportTask getByTaskId(Long taskId, Long ownerId) {
+        Optional<Long> reportTaskOptional = reportTaskDao.findByTaskIdAndOwnerId(taskId, ownerId);
+        if(!reportTaskOptional.isPresent()){
+            return null;
+        }
+        return Converter.convert(ReportTask.class, reportTaskOptional.get());
+    }
+
+    @Override
+    public Long saveReportTask(ReportTask reportTask) {
+        return reportTaskDao.save(Converter.convert(ReportTaskPO.class, reportTask)).getId();
+    }
+}

+ 11 - 0
src/main/java/cn/iselab/mooctest/site/service/AutoReportProductService.java

@@ -1,11 +1,22 @@
 package cn.iselab.mooctest.site.service;
 
+import cn.iselab.mooctest.site.domainObject.ReportTask;
+import cn.iselab.mooctest.site.web.data.vulData.VulReportDataVO;
+
+import java.util.concurrent.Future;
+
 /**
  * Created by yangdenghui on 2018/3/6.
  */
 
 public interface AutoReportProductService {
 
+    int getReportTaskStatus(Long orderId, Long ownerId);
+
+    ReportTask getReportTask(Long orderId, Long ownerId);
+
+    Future<String> generateReport(Long orderId, Long ownerId, VulReportDataVO reportData) throws InterruptedException;
+
     void writeDataToJsonFile(String jsonData,String path);
 
     boolean runBuilderToProductReport(String command,String path);

+ 97 - 3
src/main/java/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.java

@@ -1,16 +1,33 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.dao.ReportTaskDao;
+import cn.iselab.mooctest.site.domainObject.ReportTask;
+import cn.iselab.mooctest.site.domainObject.ReportTaskStatus;
+import cn.iselab.mooctest.site.factory.ReportTaskFactory;
+import cn.iselab.mooctest.site.repository.IReportTaskRepo;
 import cn.iselab.mooctest.site.service.AutoReportProductService;
+import cn.iselab.mooctest.site.web.data.vulData.VulReportDataVO;
+import com.google.gson.Gson;
+import net.lingala.zip4j.exception.ZipException;
+import net.lingala.zip4j.model.ZipParameters;
+import net.lingala.zip4j.util.Zip4jConstants;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Service;
 import java.io.*;
+import java.util.concurrent.Future;
 
 @Service
 public class AutoReportProductServiceImpl implements AutoReportProductService {
 
+    @Autowired
+    private IReportTaskRepo iReportTaskRepo;
+
     private static final Logger log = LoggerFactory.getLogger(Process.class.getName());
 
     @Value("${order.autoReport.service.path}")
@@ -21,6 +38,82 @@ public class AutoReportProductServiceImpl implements AutoReportProductService {
     private String BUILDER_COPYPATH;
     @Value("${static.resource.autoReport.url}")
     private String AUTOREPORT_URL;
+    @Value("${order.vulReport.json.upload.path}")
+    private String REPORT_JSON_UPLOAD_PATH;
+    @Value("${host.ip}")
+    private String HOST_IP;
+
+    @Override
+    public int getReportTaskStatus(Long orderId, Long ownerId) {
+        ReportTask reportTask = iReportTaskRepo.getByTaskId(orderId, ownerId);
+        if(reportTask == null){
+            return -1;
+        }
+        return reportTask.getStatus();
+    }
+
+    @Override
+    public ReportTask getReportTask(Long orderId, Long ownerId) {
+        return iReportTaskRepo.getByTaskId(orderId, ownerId);
+    }
+
+    @Async
+    @Override
+    public Future<String> generateReport(Long orderId, Long ownerId, VulReportDataVO reportData) throws InterruptedException {
+        log.info("开始做任务" + orderId);
+        log.info("当前线程:" + Thread.currentThread().getName() + "=-=====queryUserMsgCount");
+        //存入数据库
+        ReportTask reportTask = ReportTaskFactory.createReportTask();
+        reportTask.setTaskId(orderId);
+        reportTask.setOwnerId(ownerId);
+        reportTask.setStatus(ReportTaskStatus.GENERATING);
+        Long reportTaskId = iReportTaskRepo.saveReportTask(reportTask);
+
+        long start = System.currentTimeMillis();
+
+        String builderPath = copyReportBuilderToPath(orderId, "static-scan-report");
+        writeDataToJsonFile(new Gson().toJson(reportData), builderPath + REPORT_JSON_UPLOAD_PATH);
+        boolean bale = runBuilderToProductReport("npm run build", builderPath + "/static-scan-report/");
+        if (bale) {
+            reportTransferToPath(orderId, ownerId, builderPath + "/static-scan-report/");
+        }
+        String taskUrl = "http://" + HOST_IP + "/reportFile/" + ownerId + "/" + orderId + "/vulReport/dist/vulResults.html";
+
+
+        //存入数据库
+        reportTask.setId(reportTaskId);
+        reportTask.setTaskUrl(taskUrl);
+        reportTask.setStatus(ReportTaskStatus.COMPLETED);
+        iReportTaskRepo.saveReportTask(reportTask);
+
+        long end = System.currentTimeMillis();
+        log.info("完成任务"+orderId+",耗时:" + (end - start) + "毫秒");
+
+        return new AsyncResult<>(taskUrl);
+    }
+
+    private void reportTransferToPath(Long orderId, Long ownerId, String path) {
+        String autoReportPath = REPORT_UPLOAD_PATH + ownerId + "/" + orderId + "/vulReport";
+        String downloadPath = autoReportPath + "/report.zip";
+        File uploadFile = new File(autoReportPath);
+        File downloadFile = new File(downloadPath);
+        boolean sign = uploadFile.mkdirs();
+        log.info("------------mkdirs------------", sign);
+        try {
+            log.info("开始拷贝文件");
+            FileUtils.copyDirectoryToDirectory(new File(path + "dist"), new File(autoReportPath));
+            net.lingala.zip4j.core.ZipFile zipFile = new net.lingala.zip4j.core.ZipFile(downloadFile);
+            ZipParameters parameters = new ZipParameters();
+            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+            zipFile.addFolder(new File(autoReportPath + "/dist"), parameters);
+            log.info("----------------拷贝结束-------------------");
+        } catch (IOException e) {
+            log.info("----------copy error{}---------", e);
+        } catch (ZipException e) {
+            log.info("----------copy error{}---------", e);
+        }
+    }
 
     @Override
     public void writeDataToJsonFile(String jsonData, String path) {
@@ -55,10 +148,10 @@ public class AutoReportProductServiceImpl implements AutoReportProductService {
                     try {
                         while ((line = in.readLine())!=null || (errline = err.readLine())!=null){
                             if(line!=null){
-                                log.info(line);
+//                                log.info(line);
                             }
                             if(errline!=null) {
-                               log.info(errline);
+//                               log.info(errline);
                             }
                         }
                     }catch (IOException e){
@@ -76,7 +169,8 @@ public class AutoReportProductServiceImpl implements AutoReportProductService {
 
             int status = process.waitFor();
             if (status == 0) {
-                System.out.println(status);
+                log.info(String.valueOf(status));
+//                System.out.println(status);
                 return true;
             }
             return false;

+ 82 - 0
src/main/java/cn/iselab/mooctest/site/util/Converter.java

@@ -0,0 +1,82 @@
+package cn.iselab.mooctest.site.util;
+
+import com.google.common.collect.Maps;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.cglib.beans.BeanCopier;
+
+import java.util.Map;
+
+public class Converter {
+
+    private static Map<CopierIdentity, BeanCopier> copierCache = Maps.newConcurrentMap();
+    private static PrimitiveConverter primitiveConverter = new PrimitiveConverter();
+
+    public static <T> T copy(T target, Object source) {
+        BeanCopier copier = getCopier(source.getClass(), target.getClass());
+        copier.copy(source, target, primitiveConverter);
+        return target;
+    }
+
+    public static <T> T convert(Class<T> targetClass, Object source) {
+        try {
+            T target = targetClass.newInstance();
+            BeanCopier copier = getCopier(source.getClass(), targetClass);
+            copier.copy(source, target, primitiveConverter);
+            return target;
+        } catch (InstantiationException | IllegalAccessException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static BeanCopier getCopier(Class<?> source, Class<?> target) {
+        CopierIdentity identity = new CopierIdentity(source, target);
+        BeanCopier copier;
+        if (copierCache.containsKey(identity)) {
+            copier = copierCache.get(identity);
+        } else {
+            copier = BeanCopier.create(source, target, true);
+            copierCache.putIfAbsent(identity, copier);
+        }
+        return copier;
+    }
+
+    public static class PrimitiveConverter implements org.springframework.cglib.core.Converter {
+        @Override
+        @SuppressWarnings("unchecked")
+        public Object convert(Object value, Class target, Object context) {
+            if (value == null) return null;
+            if (target.equals(String.class)
+                    && !String.class.isAssignableFrom(value.getClass()))
+                return value.toString();
+            if (Number.class.isAssignableFrom(value.getClass())) {
+                Number num = (Number) value;
+                if (target.equals(int.class) || target.equals(Integer.class))
+                    return num.intValue();
+                else if (target.equals(long.class) || target.equals(Long.class))
+                    return num.longValue();
+                else if (target.equals(short.class) || target.equals(Short.class))
+                    return num.shortValue();
+                else if (target.equals(float.class) || target.equals(Float.class))
+                    return num.floatValue();
+                else if (target.equals(double.class) || target.equals(Double.class))
+                    return num.doubleValue();
+                else if (target.equals(byte.class) || target.equals(Byte.class))
+                    return num.byteValue();
+            } else if (target.isAssignableFrom(value.getClass()))
+                return value;
+            return null;
+        }
+    }
+
+    @AllArgsConstructor
+    @Data
+    @EqualsAndHashCode
+    private static class CopierIdentity {
+        private Class<?> source;
+        private Class<?> target;
+    }
+
+}
+

+ 47 - 38
src/main/java/cn/iselab/mooctest/site/web/ctrl/HandleReportController.java

@@ -1,5 +1,6 @@
 package cn.iselab.mooctest.site.web.ctrl;
 
+import cn.iselab.mooctest.site.domainObject.ReportTask;
 import cn.iselab.mooctest.site.service.AutoReportProductService;
 import cn.iselab.mooctest.site.web.data.vulData.ProjectInfoVO;
 import cn.iselab.mooctest.site.web.data.vulData.VulReportDataVO;
@@ -13,21 +14,20 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.web.bind.annotation.*;
 import com.google.gson.Gson;
-
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.Future;
 
 /**
  * @author guochao
  * @date 2019-11-14 22:22
  */
+
 @RestController
 public class HandleReportController {
 
@@ -81,45 +81,54 @@ public class HandleReportController {
      *
      * @param orderId 任务ID
      * @param ownerId 用户ID
-     * @param reportData
+//     * @param reportData
      * @return
      */
+    @ResponseBody
     @RequestMapping(value = "/generate/report/order/{orderId}/owner/{ownerId}", method = RequestMethod.POST)
-    private String handleReport(@PathVariable(value = "orderId") Long orderId,
-                                @PathVariable(value = "ownerId") Long ownerId,
-                                @RequestBody VulReportDataVO reportData) {
-        String builderPath = autoReportProductService.copyReportBuilderToPath(orderId, "static-scan-report");
-        autoReportProductService.writeDataToJsonFile(new Gson().toJson(reportData), builderPath + REPORT_JSON_UPLOAD_PATH);
-        boolean bale = autoReportProductService.runBuilderToProductReport("npm run build", builderPath + "/static-scan-report/");
-        if (bale) {
-            reportTransferToPath(orderId, ownerId, builderPath + "/static-scan-report/");
-        }
-        return "http://" + HOST_IP + "/reportFile/" + ownerId + "/" + orderId + "/vulReport/dist/vulResults.html";
-    }
+    public Map handleReport(@PathVariable(value = "orderId") Long orderId,
+                               @PathVariable(value = "ownerId") Long ownerId) throws Exception {
+        List<String> menus = new ArrayList<>();
+        menus.add("APK扫描");
+        ProjectInfoVO projectInfoVO = new ProjectInfoVO();
+        projectInfoVO.setCostTime("2019/11/15");
+        projectInfoVO.setProjectName("途牛APP");
+        projectInfoVO.setStartTime(new Timestamp(new Date().getTime()));
+        projectInfoVO.setUserName("郭超");
+        List<VulnerabilityVo> vulnerabilityVos = new ArrayList<>();
+        VulStatisticsVO vulStatisticsVO = new VulStatisticsVO();
+
+        VulReportDataVO vulReportDataVO = new VulReportDataVO();
+        vulReportDataVO.setMenus(menus);
+        vulReportDataVO.setProjectInfo(projectInfoVO);
+        vulReportDataVO.setVulnerability(vulnerabilityVos);
+        vulReportDataVO.setVulStatistics(vulStatisticsVO);
 
-    private void reportTransferToPath(Long orderId, Long ownerId, String path) {
-        String autoReportPath = REPORT_UPLOAD_PATH + ownerId + "/" + orderId + "/vulReport";
-        String downloadPath = autoReportPath + "/report.zip";
-        File uploadFile = new File(autoReportPath);
-        File downloadFile = new File(downloadPath);
-        boolean sign = uploadFile.mkdirs();
-        log.info("------------mkdirs------------", sign);
-        try {
-            log.info("开始拷贝文件");
-            FileUtils.copyDirectoryToDirectory(new File(path + "dist"), new File(autoReportPath));
-            net.lingala.zip4j.core.ZipFile zipFile = new net.lingala.zip4j.core.ZipFile(downloadFile);
-            ZipParameters parameters = new ZipParameters();
-            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
-            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
-            zipFile.addFolder(new File(autoReportPath + "/dist"), parameters);
-            log.info("----------------拷贝结束-------------------");
-        } catch (IOException e) {
-            log.info("----------copy error{}---------", e);
-        } catch (ZipException e) {
-            log.info("----------copy error{}---------", e);
+        Map<String, Object> map = new HashMap<>();
+
+        ReportTask reportTask = autoReportProductService.getReportTask(orderId, ownerId);
+        if(reportTask == null){
+            // 没有当前报告任务,执行报告生成任务
+            autoReportProductService.generateReport(orderId, ownerId, vulReportDataVO);
+            map.put("status", -1);
+            map.put("describe", "异步生成报告");
+        }else if(reportTask.getStatus() == 0){
+            // 报告任务正在执行
+            map.put("status", 0);
+            map.put("describe", "报告生成中");
+        }else{
+            // 报告任务执行结束,返回任务状态和url
+            map.put("status", 1);
+            map.put("describe", "报告生成结束");
+            map.put("url",reportTask.getTaskUrl());
         }
+        return map;
     }
 
+
+
+
+
 //    @RequestMapping(value = "/download/report/{orderId}/{ownerId}", method = RequestMethod.GET)
 //    public void downloadFile(@PathVariable(value = "orderId") Long orderId, @PathVariable(value = "ownerId") Long ownerId, HttpServletResponse response){
 //

+ 31 - 1
src/main/resources/application.yml

@@ -1,4 +1,26 @@
-spring.profiles.active: report-server-online
+spring:
+  profiles:
+    active: report-server-dev
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+    #    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    #    username: mooctest
+    #    password: secr3t!
+    # Keep the connection alive if idle for a long time (needed in production)
+    testWhileIdle: true
+    validationQuery: SELECT 1
+    # Show or not log for each sql query
+  jpa:
+    show-sql: true
+  # Hibernate ddl auto (create, create-drop, update)
+  hibernate:
+    ddl-auto: validate
+    #hbm2ddl.auto: update
+    # Naming strategy
+    naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+  # The SQL dialect makes Hibernate generate better SQL for the chosen database
+  properties.hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
+
 sleep: 0
 
 # 配置输出日志
@@ -21,6 +43,10 @@ management:
 # 报告服务开发环境
 spring:
   profiles: report-server-dev
+  datasource:
+    url: jdbc:mysql://106.14.81.62:3306/report_service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    username: root
+    password: 123456
 order.autoReport.upload.path: /Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportFile/
 order.autoReport.builder.copyPath: /Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportBuilder/
 order.autoReport.service.path: /Users/guochao/Desktop/project/enterprise-mooctest-site/projects/
@@ -32,6 +58,10 @@ host.ip: 106.14.81.62
 # 报告服务线上环境
 spring:
   profiles: report-server-online
+  datasource:
+    url: jdbc:mysql://106.14.81.62:3306/report_service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    username: root
+    password: 123456
 static.resource.autoReport.url: /reportFile/
 order.autoReport.upload.path: /var/www/reportFile/
 order.autoReport.service.path: /root/

+ 16 - 0
target/classes/application.properties

@@ -0,0 +1,16 @@
+#static.resource.autoReport.url=/reportFile/
+#order.autoReport.upload.path=/var/www/reportFile/
+#order.autoReport.image.upload.path=/mooctest-report/src/images/
+#order.autoReport.service.path: /projects/
+#order.autoReport.builder.copyPath: /var/www/reportBuilder/
+#order.vulReport.json.upload.path=/static-scan-report/src/json/
+#
+#order.autoReport.upload.path=/Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportFile/
+#order.autoReport.builder.copyPath=/Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportBuilder/
+#order.autoReport.service.path=/Users/guochao/Desktop/project/enterprise-mooctest-site/projects/
+#static.resource.autoReport.url=/reportFile/
+#order.autoReport.image.upload.path=/mooctest-report/src/images/
+#order.vulReport.json.upload.path=/static-scan-report/src/json/
+#host.ip=106.14.81.62
+#
+#

+ 70 - 0
target/classes/application.yml

@@ -0,0 +1,70 @@
+spring:
+  profiles:
+    active: report-server-dev
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+    #    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    #    username: mooctest
+    #    password: secr3t!
+    # Keep the connection alive if idle for a long time (needed in production)
+    testWhileIdle: true
+    validationQuery: SELECT 1
+    # Show or not log for each sql query
+  jpa:
+    show-sql: true
+  # Hibernate ddl auto (create, create-drop, update)
+  hibernate:
+    ddl-auto: validate
+    #hbm2ddl.auto: update
+    # Naming strategy
+    naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+  # The SQL dialect makes Hibernate generate better SQL for the chosen database
+  properties.hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
+
+sleep: 0
+
+# 配置输出日志
+logging:
+  level:
+    org.springframework.cloud.gateway: TRACE
+    org.springframework.http.server.reactive: DEBUG
+    org.springframework.web.reactive: DEBUG
+    reactor.ipc.netty: DEBUG
+
+#开启端点
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+  security:
+    enabled: false
+---
+# 报告服务开发环境
+spring:
+  profiles: report-server-dev
+  datasource:
+    url: jdbc:mysql://106.14.81.62:3306/report_service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    username: root
+    password: 123456
+order.autoReport.upload.path: /Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportFile/
+order.autoReport.builder.copyPath: /Users/guochao/Desktop/project/enterprise-mooctest-site/var/www/reportBuilder/
+order.autoReport.service.path: /Users/guochao/Desktop/project/enterprise-mooctest-site/projects/
+static.resource.autoReport.url: /reportFile/
+order.vulReport.json.upload.path: /static-scan-report/src/json/
+host.ip: 106.14.81.62
+
+---
+# 报告服务线上环境
+spring:
+  profiles: report-server-online
+  datasource:
+    url: jdbc:mysql://106.14.81.62:3306/report_service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    username: root
+    password: 123456
+static.resource.autoReport.url: /reportFile/
+order.autoReport.upload.path: /var/www/reportFile/
+order.autoReport.service.path: /root/
+order.autoReport.builder.copyPath: /var/www/reportBuilder/
+order.vulReport.json.upload.path: /static-scan-report/src/json/
+host.ip: 106.14.81.62

+ 22 - 0
target/classes/bootstrap.yaml

@@ -0,0 +1,22 @@
+server:
+    port: 8082
+spring:
+    application:
+        name: mooctest-report-server
+    cloud:
+        nacos:
+            discovery:
+                # 指定nacos server的地址
+                server-addr: 127.0.0.1:8848
+
+# actuator相关配置
+management:
+    endpoints:
+        web:
+            exposure:
+                # 暴露所有监控端点
+                include: '*'
+    endpoint:
+        health:
+            # 总是显示健康检测详情
+            show-details: always

BIN
target/classes/cn/iselab/mooctest/site/Application.class


BIN
target/classes/cn/iselab/mooctest/site/Exception/BaseException.class


BIN
target/classes/cn/iselab/mooctest/site/Exception/ReportTaskNotExistException.class


BIN
target/classes/cn/iselab/mooctest/site/dao/ReportTaskDao.class


BIN
target/classes/cn/iselab/mooctest/site/domainObject/ReportTask.class


BIN
target/classes/cn/iselab/mooctest/site/domainObject/ReportTaskStatus.class


BIN
target/classes/cn/iselab/mooctest/site/factory/ReportTaskFactory.class


BIN
target/classes/cn/iselab/mooctest/site/model/ReportTaskPO.class


BIN
target/classes/cn/iselab/mooctest/site/repository/IReportTaskRepo.class


BIN
target/classes/cn/iselab/mooctest/site/repository/ReportTaskRepo.class


BIN
target/classes/cn/iselab/mooctest/site/service/AutoReportProductService.class


BIN
target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl$1.class


BIN
target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl$2.class


BIN
target/classes/cn/iselab/mooctest/site/service/impl/AutoReportProductServiceImpl.class


BIN
target/classes/cn/iselab/mooctest/site/util/Converter$CopierIdentity.class


BIN
target/classes/cn/iselab/mooctest/site/util/Converter$PrimitiveConverter.class


BIN
target/classes/cn/iselab/mooctest/site/util/Converter.class


BIN
target/classes/cn/iselab/mooctest/site/web/ctrl/HandleReportController.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/enums/VulVerifyStatus.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/Bug.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceBugListItem.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceDetailItem.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceDistributionData.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/DeviceUCListItem.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/FunctionalTestVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/GeneralResult.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/ScreenShot.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/TypePassResult.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCItemCaseInfo.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCPassResult.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCResultDeviceItem.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/functionalTestData/UCResultItem.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/ActiveIssueDetailVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/AppBasicInfoVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/DeviceDetailVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/IssueDistributionAttributeVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/IssueDistributionVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/IssuePhoneVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/NeedOptimizedProblemVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceDetailAttributeVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceDetailItemVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceSummaryAttributeVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/PerformanceSummaryItemVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/PieDataVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/ReportDataVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/reportData/TestResultVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/ProjectInfoVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/StatVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/Vul2TaskVo.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/VulCheckVo.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/VulReferenceVo.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/VulReportDataVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/VulStatisticsVO.class


BIN
target/classes/cn/iselab/mooctest/site/web/data/vulData/VulnerabilityVo.class


BIN
target/test-classes/com/example/demo/DemoApplicationTests.class