linzhijie
2021-03-16 8f781f3cb17187a7ee58f41632c25fbb2aa81cc7
补充环境配置
5个文件已添加
8个文件已修改
835 ■■■■ 已修改文件
.idea/workspace.xml 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jar/tai-ots-framework.jar 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/OtsApplication.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/exam/restcontroller/ExamPaperAnswerController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-local.yml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-online.yml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-sand.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/logback.xml 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mailConfig.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/workspace.xml
@@ -1,7 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="BranchesTreeState">
    <expand>
      <path>
        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
        <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
      </path>
      <path>
        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
      </path>
      <path>
        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
        <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
      </path>
    </expand>
    <select />
  </component>
  <component name="ChangeListManager">
    <list default="true" id="cd72c5cc-17e9-4269-9d87-e1dc29ad79ec" name="Default Changelist" comment="" />
    <list default="true" id="cd72c5cc-17e9-4269-9d87-e1dc29ad79ec" name="Default Changelist" comment="">
      <change afterPath="$PROJECT_DIR$/jar/tai-ots-framework.jar" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/src/main/resources/application-dev.yml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/src/main/resources/application-local.yml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/src/main/resources/application-online.yml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/src/main/resources/application-prod.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/java/com/ots/OtsApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/ots/OtsApplication.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/java/com/ots/project/exam/restcontroller/ExamPaperAnswerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/ots/project/exam/restcontroller/ExamPaperAnswerController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/resources/application-sand.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-sand.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/resources/logback.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/logback.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/src/main/resources/mailConfig.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mailConfig.properties" afterDir="false" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -36,8 +68,11 @@
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="aspect.path.notification.shown" value="true" />
    <property name="ignore_missing_gitignore" value="true" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$/../tai-ots-framework" />
    <property name="nodejs_package_manager_path" value="npm" />
    <property name="project.structure.last.edited" value="Project" />
    <property name="project.structure.proportion" value="0.0" />
    <property name="project.structure.side.proportion" value="0.0" />
    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
    <property name="vue.rearranger.settings.migration" value="true" />
  </component>
@@ -56,13 +91,24 @@
    </option>
  </component>
  <component name="RunManager">
    <configuration name="OtsApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
      <module name="ots" />
    <configuration name="OtsApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
      <module name="tai-ots-master" />
      <extension name="coverage">
        <pattern>
          <option name="PATTERN" value="com.ots.*" />
          <option name="ENABLED" value="true" />
        </pattern>
      </extension>
      <option name="SPRING_BOOT_MAIN_CLASS" value="com.ots.OtsApplication" />
      <method v="2">
        <option name="Make" enabled="true" />
      </method>
    </configuration>
    <recent_temporary>
      <list>
        <item itemvalue="Spring Boot.OtsApplication (1)" />
      </list>
    </recent_temporary>
  </component>
  <component name="SvnConfiguration">
    <configuration useDefault="false">C:\Users\大头\AppData\Roaming\Subversion</configuration>
@@ -81,6 +127,14 @@
      <workItem from="1615431745167" duration="7921000" />
      <workItem from="1615460071688" duration="345000" />
      <workItem from="1615460464699" duration="344000" />
      <workItem from="1615515164765" duration="60000" />
      <workItem from="1615515231455" duration="3810000" />
      <workItem from="1615531321544" duration="6553000" />
      <workItem from="1615620801064" duration="4071000" />
      <workItem from="1615646368004" duration="3950000" />
      <workItem from="1615687698610" duration="24365000" />
      <workItem from="1615790694638" duration="12801000" />
      <workItem from="1615859554413" duration="19554000" />
    </task>
    <task id="LOCAL-00001" summary="测评项目最新代码">
      <created>1615212708854</created>
@@ -102,60 +156,125 @@
  <component name="TypeScriptGeneratedFilesManager">
    <option name="version" value="2" />
  </component>
  <component name="Vcs.Log.Tabs.Properties">
    <option name="TAB_STATES">
      <map>
        <entry key="1">
          <value>
            <State>
              <option name="SHOW_ONLY_AFFECTED_CHANGES" value="true" />
              <option name="FILTERS">
                <map>
                  <entry key="branch">
                    <value>
                      <list>
                        <option value="HEAD" />
                      </list>
                    </value>
                  </entry>
                  <entry key="roots">
                    <value>
                      <list>
                        <option value="$PROJECT_DIR$" />
                      </list>
                    </value>
                  </entry>
                </map>
              </option>
            </State>
          </value>
        </entry>
      </map>
    </option>
    <option name="OPEN_GENERIC_TABS">
      <map>
        <entry key="1" value="TOOL_WINDOW" />
      </map>
    </option>
    <option name="oldMeFiltersMigrated" value="true" />
  </component>
  <component name="VcsManagerConfiguration">
    <MESSAGE value="测评项目最新代码" />
    <MESSAGE value="测评系统外部代码" />
    <option name="LAST_COMMIT_MESSAGE" value="测评系统外部代码" />
  </component>
  <component name="WindowStateProjectService">
    <state x="414" y="174" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1615210973816">
    <state x="590" y="113" key="#OtsApplication" timestamp="1615515366491">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="414" y="174" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1615210973816" />
    <state x="590" y="113" key="#OtsApplication/0.0.1920.1040@0.0.1920.1040" timestamp="1615515366491" />
    <state x="440" y="94" key="#Project_Structure" timestamp="1615515318160">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="440" y="94" key="#Project_Structure/0.0.1920.1040@0.0.1920.1040" timestamp="1615515318160" />
    <state x="414" y="174" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1615688571928">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="414" y="174" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1615688571928" />
    <state x="456" y="74" key="CommitChangelistDialog2" timestamp="1615460721590">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="456" y="74" key="CommitChangelistDialog2/0.0.1920.1040@0.0.1920.1040" timestamp="1615460721590" />
    <state x="740" y="274" key="FileChooserDialogImpl" timestamp="1615460475306">
    <state x="135" y="145" width="1736" height="856" key="DiffContextDialog" timestamp="1615732620930">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="740" y="274" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1615460475306" />
    <state x="135" y="145" width="1736" height="856" key="DiffContextDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1615732620930" />
    <state x="740" y="274" key="FileChooserDialogImpl" timestamp="1615860106593">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="740" y="274" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1615860106593" />
    <state width="267" height="357" key="Git.Branch.Popup" timestamp="1615460729320">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="267" height="357" key="Git.Branch.Popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615460729320" />
    <state width="1877" height="469" key="GridCell.Tab.0.bottom" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.0.bottom" timestamp="1615889667308">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.0.center" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1615889667308" />
    <state width="1877" height="385" key="GridCell.Tab.0.center" timestamp="1615889667308">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.0.left" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1615889667308" />
    <state width="1877" height="385" key="GridCell.Tab.0.left" timestamp="1615889667308">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.0.right" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1615889667308" />
    <state width="1877" height="385" key="GridCell.Tab.0.right" timestamp="1615889667308">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.1.bottom" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1615889667308" />
    <state width="1877" height="385" key="GridCell.Tab.1.bottom" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.1.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.1.center" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.1.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.1.center" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.1.center/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.1.left" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.1.center/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.1.left" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.1.left/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="469" key="GridCell.Tab.1.right" timestamp="1615455836101">
    <state width="1877" height="385" key="GridCell.Tab.1.left/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.1.right" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="469" key="GridCell.Tab.1.right/0.0.1920.1040@0.0.1920.1040" timestamp="1615455836101" />
    <state width="1877" height="385" key="GridCell.Tab.1.right/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.2.bottom" timestamp="1615889660606">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="385" key="GridCell.Tab.2.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660606" />
    <state width="1877" height="385" key="GridCell.Tab.2.center" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="385" key="GridCell.Tab.2.center/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.2.left" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="385" key="GridCell.Tab.2.left/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state width="1877" height="385" key="GridCell.Tab.2.right" timestamp="1615889660605">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="1877" height="385" key="GridCell.Tab.2.right/0.0.1920.1040@0.0.1920.1040" timestamp="1615889660605" />
    <state x="490" y="174" key="Maven.ArtifactSearchDialog" timestamp="1615427932582">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
@@ -168,25 +287,179 @@
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="552" y="252" key="Vcs.Push.Dialog.v2/0.0.1920.1040@0.0.1920.1040" timestamp="1615460743690" />
    <state width="968" height="528" key="XDebugger.FullValuePopup" timestamp="1615866063087">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state width="968" height="528" key="XDebugger.FullValuePopup/0.0.1920.1040@0.0.1920.1040" timestamp="1615866063087" />
    <state x="754" y="432" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1615427969273">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="754" y="432" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1040@0.0.1920.1040" timestamp="1615427969273" />
    <state x="661" y="252" width="598" height="748" key="find.popup" timestamp="1615459508061">
    <state x="1083" y="283" width="603" height="748" key="find.popup" timestamp="1615866113491">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="661" y="252" width="598" height="748" key="find.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615459508061" />
    <state x="1083" y="283" width="603" height="748" key="find.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615866113491" />
    <state x="761" y="426" key="git4idea.remote.GitConfigureRemotesDialog" timestamp="1615460537318">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="761" y="426" key="git4idea.remote.GitConfigureRemotesDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1615460537318" />
    <state x="616" y="240" width="672" height="677" key="run.anything.popup" timestamp="1615428502881">
    <state x="616" y="240" width="672" height="677" key="run.anything.popup" timestamp="1615795422622">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="616" y="240" width="672" height="677" key="run.anything.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615428502881" />
    <state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1615458094744">
    <state x="616" y="240" width="672" height="677" key="run.anything.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615795422622" />
    <state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1615864418427">
      <screen x="0" y="0" width="1920" height="1040" />
    </state>
    <state x="623" y="225" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615458094744" />
    <state x="623" y="225" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1615864418427" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <breakpoints>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/controller/TExamReportController.java</url>
          <line>1078</line>
          <option name="timeStamp" value="3" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/controller/TExamReportController.java</url>
          <line>1295</line>
          <option name="timeStamp" value="4" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/monitor/job/task/SenderTask.java</url>
          <line>219</line>
          <option name="timeStamp" value="11" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/monitor/job/task/SenderEmailReportTask.java</url>
          <line>62</line>
          <option name="timeStamp" value="13" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java</url>
          <line>851</line>
          <option name="timeStamp" value="22" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>700</line>
          <option name="timeStamp" value="23" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>679</line>
          <option name="timeStamp" value="25" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>266</line>
          <option name="timeStamp" value="26" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>339</line>
          <option name="timeStamp" value="27" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>277</line>
          <option name="timeStamp" value="30" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>300</line>
          <option name="timeStamp" value="31" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>284</line>
          <option name="timeStamp" value="32" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>250</line>
          <option name="timeStamp" value="35" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>291</line>
          <option name="timeStamp" value="36" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/common/utils/poi/WordUtil.class</url>
          <line>707</line>
          <option name="timeStamp" value="37" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/common/utils/poi/WordUtil.class</url>
          <line>818</line>
          <option name="timeStamp" value="38" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/common/utils/poi/WordUtil.class</url>
          <line>827</line>
          <option name="timeStamp" value="39" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/common/utils/poi/WordUtil.class</url>
          <line>1039</line>
          <option name="timeStamp" value="40" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>486</line>
          <option name="timeStamp" value="41" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>555</line>
          <option name="timeStamp" value="42" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/project/tool/report/CAQ/CAQReport.class</url>
          <line>35</line>
          <option name="timeStamp" value="43" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>507</line>
          <option name="timeStamp" value="44" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/project/tool/report/CAQ/CAQReport.class</url>
          <line>61</line>
          <option name="timeStamp" value="45" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/project/tool/report/CAQ/CAQReport.class</url>
          <line>49</line>
          <option name="timeStamp" value="49" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java</url>
          <line>619</line>
          <option name="timeStamp" value="50" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>jar://$PROJECT_DIR$/jar/tai-ots-framework.jar!/com/ots/project/tool/exam/ImageUtil.class</url>
          <line>135</line>
          <option name="timeStamp" value="51" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
    <pin-to-top-manager>
      <pinned-members>
        <PinnedItemInfo typeName="com.ots.project.exam.viewmodel.ExamPaperSubmitVM" fieldName="partOrder" />
      </pinned-members>
    </pin-to-top-manager>
    <watches-manager>
      <configuration name="SpringBootApplicationConfigurationType">
        <watch expression="tExamReportList" />
        <watch expression="reportAPIResultList" />
        <watch expression="document" />
        <watch expression="tReportTemplateList" />
        <watch expression="barImage" />
      </configuration>
    </watches-manager>
  </component>
</project>
jar/tai-ots-framework.jar
Binary files differ
pom.xml
@@ -248,6 +248,12 @@
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        
        <!-- 获取系统信息 -->
        <dependency>
@@ -360,7 +366,7 @@
            <artifactId>tai-ots-framework</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/jar/tai-ots-framework-1.0.jar</systemPath>
            <systemPath>${project.basedir}/jar/tai-ots-framework.jar</systemPath>
        </dependency>
    </dependencies>
@@ -397,6 +403,7 @@
                    <mainClass>com.ots.OtsApplication</mainClass>
                    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
            <plugin>
src/main/java/com/ots/OtsApplication.java
@@ -1,8 +1,15 @@
package com.ots;
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import org.jasypt.encryption.StringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
/**
 * 启动程序
@@ -10,7 +17,17 @@
 * @author ots
 */
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class OtsApplication {
@EnableEncryptableProperties
public class OtsApplication implements CommandLineRunner {
    private static final Logger l = LoggerFactory.getLogger(OtsApplication.class);
    @Autowired
    private StringEncryptor stringEncryptor;
    @Autowired
    private ApplicationContext applicationContext;
    public static void main(String[] args) {
        // System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication.run(OtsApplication.class, args);
@@ -23,4 +40,10 @@
        builder.append("********************************************************************\n");
        System.out.println(builder.toString());
    }
    @Override
    public void run(String... args) throws Exception {
        Environment environment = applicationContext.getEnvironment();
        l.info(stringEncryptor.encrypt(environment.getProperty("password")));
    }
}
src/main/java/com/ots/project/exam/restcontroller/ExamPaperAnswerController.java
@@ -357,6 +357,7 @@
        tExamReport.setTestId(relatedParty.getTestId());
        // finish
        tExamReport.setFinish(examPaperSubmitVM.getFinish());
        //更新用户答题状态
        setVerifyStatus(examPaperSubmitVM, tExamReport);
        // questionTemplateId
src/main/resources/application-dev.yml
New file
@@ -0,0 +1,92 @@
# 项目相关配置
ots:
    # 名称
    name: ots
    # 版本
    version: 1.0.5
    # 版权年份
    copyrightYear: 2020
    # 实例演示开关
    demoEnabled: false
    # 文件路径 示例( Windows配置D:/ots/uploadPath,Linux配置 /home/data/ots/uploadPath)
    profile: D:/测评系统/home/uploadPath
    # 图片的url,如:vue端读http://139.199.11.114/images地址
    imagePath: http://127.0.0.1:8090/profile/images
    # 获取ip地址开关
    addressEnabled: true
    # 报告模版地址
    reportTemplates: D:/测评系统/home/reportTemplates/
    # http profile
    httpProfilePath: http://127.0.0.1:8090/profile
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://192.168.21.252:3306/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: Cc19970921
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url:
                username:
                password:
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username:
                login-password:
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
# 邮件服务
mail:
# VUE端访问地址
vue:
    url: http://192.168.21.252:8080/exam-stu/#/ots/{0}/login
# 远程泰国计算服务
ATSTai:
    host: 192.168.21.252
    port: 9123
jasypt:
    encryptor:
        password: 5ciqxnka5s02w9qu
        algorithm: PBEWithMD5AndDES
src/main/resources/application-local.yml
New file
@@ -0,0 +1,85 @@
# 项目相关配置
ots:
    # 名称
    name: ots
    # 版本
    version: 1.0.5
    # 版权年份
    copyrightYear: 2020
    # 实例演示开关
    demoEnabled: true
    # 文件路径 示例( Windows配置D:/ots/uploadPath,Linux配置 /home/data/ots/uploadPath)
    profile: /home/data/ots/uploadPath
    # 图片的url,如:vue端读http://139.199.11.114/images地址
    imagePath: http://localhost:8090/profile/images
    # 获取ip地址开关
    addressEnabled: true
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://127.0.0.1:3306/ess_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#                url: jdbc:mysql://192.168.77.29:3306/ess?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: perfect
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url:
                username:
                password:
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username:
                login-password:
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
# 邮件服务
mail:
# VUE端访问地址
vue:
    url: http://139.199.11.114/exam-stu/#/ots/{0}/login
# 远程泰国计算服务
ATSTai:
    host: 120.24.39.179
    port: 9123
src/main/resources/application-online.yml
New file
@@ -0,0 +1,88 @@
# 项目相关配置
ots:
    # 名称
    name: ots
    # 版本
    version: 1.0.5
    # 版权年份
    copyrightYear: 2020
    # 实例演示开关
    demoEnabled: false
    # 文件路径 示例( Windows配置D:/ots/uploadPath,Linux配置 /home/data/ots/uploadPath)
    profile: /root/UserClient/data/ots/uploadPath
    # 图片的url,如:vue端读http://139.199.11.114/images地址
    imagePath: http://47.241.14.161:8090/profile/images
    # 获取ip地址开关
    addressEnabled: true
    # 报告模版地址
    reportTemplates: /home/data/ots/reportTemplates/
    # http profile
    httpProfilePath: http://47.241.14.161:8090/profile
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://127.0.0.1:3306/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: TAI@2019##root
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url:
                username:
                password:
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username:
                login-password:
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
# 邮件服务
mail:
# VUE端访问地址
vue:
    url: http://en.tai-online.com/exam-stu/#/ots/{0}/login
# 远程泰国计算服务
ATSTai:
    host: 127.0.0.1
    port: 9123
src/main/resources/application-prod.yml
New file
@@ -0,0 +1,88 @@
# 项目相关配置
ots:
    # 名称
    name: ots
    # 版本
    version: 1.0.5
    # 版权年份
    copyrightYear: 2020
    # 实例演示开关
    demoEnabled: false
    # 文件路径 示例( Windows配置D:/ots/uploadPath,Linux配置 /home/data/ots/uploadPath)
    profile: /root/UserClient/data/ots/uploadPath
    # 图片的url,如:vue端读http://139.199.11.114/images地址
    imagePath: http://47.99.65.48:8090/profile/images
    # 获取ip地址开关
    addressEnabled: true
    # 报告模版地址
    reportTemplates: /home/data/ots/reportTemplates/
    # http profile
    httpProfilePath: http://47.99.65.48:8090/profile
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://127.0.0.1:3306/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: TAI@2019##root
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url:
                username:
                password:
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username:
                login-password:
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
# 邮件服务
mail:
# VUE端访问地址
vue:
    url: http://tai-online.com/exam-stu/#/ots/{0}/login
# 远程泰国计算服务
ATSTai:
    host: 127.0.0.1
    port: 9123
src/main/resources/application-sand.yml
@@ -85,4 +85,8 @@
# 远程泰国计算服务
ATSTai:
    host: 127.0.0.1
    port: 9123
    port: 9123
jasypt:
    encryptor:
        password: 5ciqxnka5s02w9qu
        algorithm: PBEWithMD5AndDES
src/main/resources/application.yml
@@ -39,15 +39,15 @@
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  profiles:
    active: online
  profiles:
    active: dev
  # 文件上传
  servlet:
     multipart:
       # 单个文件大小
       max-file-size:  10MB
       # 设置总上传的文件大小
       max-request-size:  20MB
    multipart:
      # 单个文件大小
      max-file-size:  10MB
      # 设置总上传的文件大小
      max-request-size:  20MB
  # 服务模块
  devtools:
    restart:
@@ -56,19 +56,19 @@
# MyBatis
mybatis:
    # 搜索指定包别名
    typeAliasesPackage: com.ots.project
    # 配置mapper的扫描,找到所有的mapper.xml映射文件
    mapperLocations: classpath:mybatis/**/*Mapper.xml
    # 加载全局的配置文件
    configLocation: classpath:mybatis/mybatis-config.xml
  # 搜索指定包别名
  typeAliasesPackage: com.ots.project
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath:mybatis/**/*Mapper.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql
  params: count=countSql
# Shiro
shiro:
@@ -85,7 +85,7 @@
    captchaType: math
  cookie:
    # 设置Cookie的域名 默认空,即当前访问的域名
    domain:
    domain:
    # 设置cookie的有效访问路径
    path: /
    # 设置HttpOnly属性
@@ -105,7 +105,7 @@
    kickoutAfter: false
# 防止XSS攻击
xss:
xss:
  # 过滤开关
  enabled: true
  # 排除链接(多个用逗号分隔)
@@ -114,7 +114,7 @@
  urlPatterns: /system/*,/monitor/*,/tool/*
# 代码生成
gen:
gen:
  # 作者
  author: ots
  # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
src/main/resources/logback.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志存放路径 -->
    <!-- 日志存放路径 -->
    <property name="log.path" value="/home/data/ots/logs" />
    <!-- 日志输出格式 -->
    <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- 控制台输出 -->
@@ -11,13 +11,13 @@
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- 系统日志输出 -->
    <appender name="file_sys" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/ots-sys.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <file>${log.path}/ots-sys.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
@@ -25,30 +25,30 @@
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
<!--            &lt;!&ndash; 过滤的级别 &ndash;&gt;-->
<!--            <level>INFO</level>-->
<!--            &lt;!&ndash; 匹配时的操作:接收(记录) &ndash;&gt;-->
<!--            <onMatch>ACCEPT</onMatch>-->
<!--            &lt;!&ndash; 不匹配时的操作:拒绝(不记录) &ndash;&gt;-->
<!--            <onMismatch>DENY</onMismatch>-->
<!--        </filter>-->
        <!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
        <!--            &lt;!&ndash; 过滤的级别 &ndash;&gt;-->
        <!--            <level>INFO</level>-->
        <!--            &lt;!&ndash; 匹配时的操作:接收(记录) &ndash;&gt;-->
        <!--            <onMatch>ACCEPT</onMatch>-->
        <!--            &lt;!&ndash; 不匹配时的操作:拒绝(不记录) &ndash;&gt;-->
        <!--            <onMismatch>DENY</onMismatch>-->
        <!--        </filter>-->
    </appender>
    <!-- 用户访问日志输出  -->
    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/sys-user.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- 系统模块日志级别控制  -->
    <logger name="com.ots" level="info" />
    <!-- Spring日志级别控制  -->
@@ -57,14 +57,14 @@
    <root level="info">
        <appender-ref ref="console" />
    </root>
    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_sys" />
    </root>
    <root level="info">
        <appender-ref ref="file_sys" />
    </root>
    <!--系统用户操作日志-->
    <logger name="sys-user" level="info">
        <appender-ref ref="sys-user"/>
    </logger>
    <logger name="sys-user" level="info">
        <appender-ref ref="sys-user"/>
    </logger>
</configuration> 
src/main/resources/mailConfig.properties
@@ -5,7 +5,7 @@
#\u90AE\u7BB1\u8D26\u53F7
mailUsername=guobiao8900@126.com
#\u90AE\u7BB1\u6388\u6743\u7801
mailPassword=
mailPassword=Perfect8900
#\u65F6\u95F4\u5EF6\u8FDF
mailTimeout=25000
#\u53D1\u9001\u4EBA