commit
						006286da0c
					
				@ -0,0 +1,42 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>wusthelper-backend</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <packaging>pom</packaging> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,3 @@ | 
				
			||||
[submodule "external-library/mywust"] | 
				
			||||
	path = external-library/mywust | 
				
			||||
	url = https://github.com/LingHangStudio/mywust.git | 
				
			||||
@ -0,0 +1,8 @@ | 
				
			||||
# Default ignored files | 
				
			||||
/shelf/ | 
				
			||||
/workspace.xml | 
				
			||||
# Editor-based HTTP Client requests | 
				
			||||
/httpRequests/ | 
				
			||||
# Datasource local storage ignored files | 
				
			||||
/dataSources/ | 
				
			||||
/dataSources.local.xml | 
				
			||||
@ -0,0 +1,42 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project version="4"> | 
				
			||||
  <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8"> | 
				
			||||
    <file url="file://$PROJECT_DIR$/backend-main/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/backend-main/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/backend-main/web/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/backend-main/web/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/common/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/common/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-common/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-common/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-core/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-core/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network-httpclient/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network-httpclient/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network-okhttp/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network-okhttp/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-network/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-test/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-test/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-util/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/mywust-util/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/mywust/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/external-library/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/graduate/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/graduate/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/library/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/library/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/physics/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/physics/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/undergrad/src/main/java" charset="UTF-8" /> | 
				
			||||
    <file url="file://$PROJECT_DIR$/sub-services/undergrad/src/main/resources" charset="UTF-8" /> | 
				
			||||
    <file url="PROJECT" charset="UTF-8" /> | 
				
			||||
  </component> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project version="4"> | 
				
			||||
  <component name="ExternalStorageConfigurationManager" enabled="true" /> | 
				
			||||
  <component name="MavenProjectsManager"> | 
				
			||||
    <option name="originalFiles"> | 
				
			||||
      <list> | 
				
			||||
        <option value="$PROJECT_DIR$/pom.xml" /> | 
				
			||||
        <option value="$PROJECT_DIR$/external-library/mywust/pom.xml" /> | 
				
			||||
      </list> | 
				
			||||
    </option> | 
				
			||||
  </component> | 
				
			||||
  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="graalvm-17" project-jdk-type="JavaSDK"> | 
				
			||||
    <output url="file://$PROJECT_DIR$/out" /> | 
				
			||||
  </component> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,124 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project version="4"> | 
				
			||||
  <component name="Palette2"> | 
				
			||||
    <group name="Swing"> | 
				
			||||
      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> | 
				
			||||
        <initial-values> | 
				
			||||
          <property name="text" value="Button" /> | 
				
			||||
        </initial-values> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> | 
				
			||||
        <initial-values> | 
				
			||||
          <property name="text" value="RadioButton" /> | 
				
			||||
        </initial-values> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> | 
				
			||||
        <initial-values> | 
				
			||||
          <property name="text" value="CheckBox" /> | 
				
			||||
        </initial-values> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> | 
				
			||||
        <initial-values> | 
				
			||||
          <property name="text" value="Label" /> | 
				
			||||
        </initial-values> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | 
				
			||||
          <preferred-size width="150" height="-1" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | 
				
			||||
          <preferred-size width="150" height="-1" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> | 
				
			||||
          <preferred-size width="150" height="-1" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="150" height="50" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="200" height="200" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> | 
				
			||||
          <preferred-size width="200" height="200" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> | 
				
			||||
          <preferred-size width="-1" height="20" /> | 
				
			||||
        </default-constraints> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> | 
				
			||||
      </item> | 
				
			||||
      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> | 
				
			||||
        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> | 
				
			||||
      </item> | 
				
			||||
    </group> | 
				
			||||
  </component> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project version="4"> | 
				
			||||
  <component name="VcsDirectoryMappings"> | 
				
			||||
    <mapping directory="$PROJECT_DIR$" vcs="Git" /> | 
				
			||||
    <mapping directory="$PROJECT_DIR$/external-library/mywust" vcs="Git" /> | 
				
			||||
  </component> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,42 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>backend-main</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <packaging>pom</packaging> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>wusthelper-backend</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>backend-main</artifactId> | 
				
			||||
    <packaging>pom</packaging> | 
				
			||||
    <modules> | 
				
			||||
        <module>web</module> | 
				
			||||
    </modules> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
package cn.wustlinghang; | 
				
			||||
 | 
				
			||||
public class Main { | 
				
			||||
    public static void main(String[] args) { | 
				
			||||
        System.out.println("Hello world!"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,41 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>web</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>backend-main</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>web</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
package cn.wustlinghang; | 
				
			||||
 | 
				
			||||
public class Main { | 
				
			||||
    public static void main(String[] args) { | 
				
			||||
        System.out.println("Hello world!"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,41 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>common</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>wusthelper-backend</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>common</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.rpc.request; | 
				
			||||
 | 
				
			||||
import lombok.Data; | 
				
			||||
 | 
				
			||||
import java.util.HashMap; | 
				
			||||
import java.util.Map; | 
				
			||||
 | 
				
			||||
@Data | 
				
			||||
public class RpcRequest { | 
				
			||||
    private final Map<String, String> arg; | 
				
			||||
 | 
				
			||||
    public RpcRequest() { | 
				
			||||
        this.arg = new HashMap<>(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public RpcRequest addArg(String key, String value) { | 
				
			||||
        this.arg.put(key, value); | 
				
			||||
        return this; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,63 @@ | 
				
			||||
/* | 
				
			||||
 * Class created by lensfrex. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
package cn.wustlinghang.wusthelper.rpc.response; | 
				
			||||
 | 
				
			||||
public enum ResponseCode { | 
				
			||||
    SUCCESS(20000, "成功"), | 
				
			||||
    REQUEST_TOO_FAST(20001, "技能冷却中..."), | 
				
			||||
    INVALID_REQUEST(30000, "非法请求"), | 
				
			||||
    PARAM_WRONG(30001, "参数错误"), | 
				
			||||
    PERMISSION_DENIED(40000, "权限不足"), | 
				
			||||
    TOKEN_EXPIRED(40001, "token过期"), | 
				
			||||
    TOKEN_INVALID(40002, "token无效"), | 
				
			||||
    SERVER_INTERNAL_ERROR(50000, "服务器内部错误"), | 
				
			||||
    API_NOT_IMPLEMENT(0, "接口未实现"), | 
				
			||||
 | 
				
			||||
    STUDENT_ID_DOES_NOT_EXISTS(60001,"学生学号不存在"), | 
				
			||||
    USER_WAS_BANNED_PUBLISH(60201, "用户被禁止发布告示信息"), | 
				
			||||
    IMAGE_FORMAT_WORN(60202, "上传的图片格式有误"), | 
				
			||||
    NOTICE_WAS_INTERCEPT(60203, "消息被系统拦截发布"), | 
				
			||||
 | 
				
			||||
    USER_DOES_NOT_MATCH_PUBLISHER(60301, "请求用户与告示发表者不匹配"), | 
				
			||||
 | 
				
			||||
    REQUEST_FILE_DOES_NOT_EXIST(60701, "请求的文件不存在"); | 
				
			||||
 | 
				
			||||
    private final int code; | 
				
			||||
 | 
				
			||||
    private final String message; | 
				
			||||
 | 
				
			||||
    ResponseCode(int code, String message) { | 
				
			||||
        this.code = code; | 
				
			||||
        this.message = message; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public int getCode() { | 
				
			||||
        return code; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getMessage() { | 
				
			||||
        return message; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
 | 
				
			||||
enum Code { | 
				
			||||
    Success, Fail, Wron | 
				
			||||
} | 
				
			||||
 | 
				
			||||
class Singleton { | 
				
			||||
    private static Singleton instance; | 
				
			||||
 | 
				
			||||
    private Singleton() { | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static Singleton getInstance() { | 
				
			||||
        if (instance == null) { | 
				
			||||
            instance = new Singleton(); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        return instance; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,19 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.rpc.response; | 
				
			||||
 | 
				
			||||
public record RpcResponse<T>(int code, String msg, T data) { | 
				
			||||
    public static <T> RpcResponse<T> success(T data) { | 
				
			||||
        return new RpcResponse<>(ResponseCode.SUCCESS.getCode(), "ok", data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static <T> RpcResponse<T> success() { | 
				
			||||
        return success(null); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static <T> RpcResponse<T> error(int code, String message) { | 
				
			||||
        return new RpcResponse<>(code, message, null); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static <T> RpcResponse<T> error(ResponseCode code) { | 
				
			||||
        return error(code.getCode(), code.getMessage()); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,42 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>external-library</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <packaging>pom</packaging> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1 @@ | 
				
			||||
Subproject commit 4b32c584249bffec4767d4b6a075af842127d5d2 | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>wusthelper-backend</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>external-library</artifactId> | 
				
			||||
    <packaging>pom</packaging> | 
				
			||||
    <modules> | 
				
			||||
        <module>mywust</module> | 
				
			||||
    </modules> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,117 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
 | 
				
			||||
    <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
    <artifactId>wusthelper-backend</artifactId> | 
				
			||||
    <version>${revision}</version> | 
				
			||||
 | 
				
			||||
    <packaging>pom</packaging> | 
				
			||||
    <modules> | 
				
			||||
        <module>backend-main</module> | 
				
			||||
        <module>sub-services</module> | 
				
			||||
        <module>common</module> | 
				
			||||
        <module>external-library</module> | 
				
			||||
    </modules> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <revision>0.0.1-SNAPSHOT</revision> | 
				
			||||
 | 
				
			||||
        <!-- 最低版本java 17 --> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
 | 
				
			||||
        <mywust.version>0.0.2-SNAPSHOT</mywust.version> | 
				
			||||
        <lombok.version>1.18.26</lombok.version> | 
				
			||||
        <hutool.version>5.8.20</hutool.version> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
    <dependencies> | 
				
			||||
        <!-- 解决javax和jakarta包名不兼容的屁事 --> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>jakarta.annotation</groupId> | 
				
			||||
            <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
            <version>2.1.1</version> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>javax.annotation</groupId> | 
				
			||||
            <artifactId>javax.annotation-api</artifactId> | 
				
			||||
            <version>1.3.2</version> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>org.projectlombok</groupId> | 
				
			||||
            <artifactId>lombok</artifactId> | 
				
			||||
            <version>${lombok.version}</version> | 
				
			||||
            <!-- 不要把lombok打包进jar去,只在编译时用就行 --> | 
				
			||||
            <scope>provided</scope> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>org.junit.jupiter</groupId> | 
				
			||||
            <artifactId>junit-jupiter</artifactId> | 
				
			||||
            <version>RELEASE</version> | 
				
			||||
            <scope>test</scope> | 
				
			||||
        </dependency> | 
				
			||||
    </dependencies> | 
				
			||||
 | 
				
			||||
    <dependencyManagement> | 
				
			||||
        <dependencies> | 
				
			||||
            <dependency> | 
				
			||||
                <groupId>cn.hutool</groupId> | 
				
			||||
                <artifactId>hutool-bom</artifactId> | 
				
			||||
                <version>${hutool.version}</version> | 
				
			||||
                <type>pom</type> | 
				
			||||
                <scope>import</scope> | 
				
			||||
            </dependency> | 
				
			||||
        </dependencies> | 
				
			||||
    </dependencyManagement> | 
				
			||||
 | 
				
			||||
    <repositories> | 
				
			||||
        <repository> | 
				
			||||
            <id>central</id> | 
				
			||||
            <url>https://repo1.maven.org/maven2</url> | 
				
			||||
        </repository> | 
				
			||||
 | 
				
			||||
        <!-- GitHub packages上的maven仓库源 --> | 
				
			||||
        <repository> | 
				
			||||
            <id>github</id> | 
				
			||||
            <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
            <snapshots> | 
				
			||||
                <enabled>true</enabled> | 
				
			||||
            </snapshots> | 
				
			||||
        </repository> | 
				
			||||
    </repositories> | 
				
			||||
 | 
				
			||||
    <build> | 
				
			||||
        <plugins> | 
				
			||||
            <plugin> | 
				
			||||
                <groupId>org.codehaus.mojo</groupId> | 
				
			||||
                <artifactId>flatten-maven-plugin</artifactId> | 
				
			||||
                <version>1.3.0</version> | 
				
			||||
                <configuration> | 
				
			||||
                </configuration> | 
				
			||||
                <executions> | 
				
			||||
                    <execution> | 
				
			||||
                        <id>flatten</id> | 
				
			||||
                        <phase>process-resources</phase> | 
				
			||||
                        <goals> | 
				
			||||
                            <goal>flatten</goal> | 
				
			||||
                        </goals> | 
				
			||||
                    </execution> | 
				
			||||
                    <execution> | 
				
			||||
                        <id>flatten.clean</id> | 
				
			||||
                        <phase>clean</phase> | 
				
			||||
                        <goals> | 
				
			||||
                            <goal>clean</goal> | 
				
			||||
                        </goals> | 
				
			||||
                    </execution> | 
				
			||||
                </executions> | 
				
			||||
            </plugin> | 
				
			||||
        </plugins> | 
				
			||||
    </build> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,60 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>sub-services</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <packaging>pom</packaging> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-core</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
      <artifactId>common</artifactId> | 
				
			||||
      <version>0.0.1-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,59 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>graduate</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-core</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
      <artifactId>common</artifactId> | 
				
			||||
      <version>0.0.1-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>sub-services</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>graduate</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
package cn.wustlinghang; | 
				
			||||
 | 
				
			||||
public class Main { | 
				
			||||
    public static void main(String[] args) { | 
				
			||||
        System.out.println("Hello world!"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,59 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>library</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-core</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
      <artifactId>common</artifactId> | 
				
			||||
      <version>0.0.1-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>sub-services</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>library</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
package cn.wustlinghang; | 
				
			||||
 | 
				
			||||
public class Main { | 
				
			||||
    public static void main(String[] args) { | 
				
			||||
        System.out.println("Hello world!"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,59 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>physics</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-core</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
      <artifactId>common</artifactId> | 
				
			||||
      <version>0.0.1-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>sub-services</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>physics</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			||||
package cn.wustlinghang; | 
				
			||||
 | 
				
			||||
public class Main { | 
				
			||||
    public static void main(String[] args) { | 
				
			||||
        System.out.println("Hello world!"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,45 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>wusthelper-backend</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>sub-services</artifactId> | 
				
			||||
    <packaging>pom</packaging> | 
				
			||||
    <modules> | 
				
			||||
        <module>undergrad</module> | 
				
			||||
        <module>graduate</module> | 
				
			||||
        <module>library</module> | 
				
			||||
        <module>physics</module> | 
				
			||||
    </modules> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
    <dependencies> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>cn.wustlinghang</groupId> | 
				
			||||
            <artifactId>mywust-core</artifactId> | 
				
			||||
            <version>0.0.2-SNAPSHOT</version> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>cn.wustlinghang</groupId> | 
				
			||||
            <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
            <version>${mywust.version}</version> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
            <artifactId>common</artifactId> | 
				
			||||
            <version>${revision}</version> | 
				
			||||
        </dependency> | 
				
			||||
    </dependencies> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,101 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | 
				
			||||
  <modelVersion>4.0.0</modelVersion> | 
				
			||||
  <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
  <artifactId>undergrad</artifactId> | 
				
			||||
  <version>0.0.1-SNAPSHOT</version> | 
				
			||||
  <dependencies> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>io.quarkus</groupId> | 
				
			||||
      <artifactId>quarkus-resteasy-reactive</artifactId> | 
				
			||||
      <version>3.1.3.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>io.quarkus</groupId> | 
				
			||||
      <artifactId>quarkus-resteasy-reactive-jackson</artifactId> | 
				
			||||
      <version>3.1.3.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>io.quarkus</groupId> | 
				
			||||
      <artifactId>quarkus-resteasy-deployment</artifactId> | 
				
			||||
      <version>3.1.3.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>io.quarkus</groupId> | 
				
			||||
      <artifactId>quarkus-core-deployment</artifactId> | 
				
			||||
      <version>3.1.3.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>io.quarkus</groupId> | 
				
			||||
      <artifactId>quarkus-hibernate-validator</artifactId> | 
				
			||||
      <version>3.1.3.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.hibernate.validator</groupId> | 
				
			||||
      <artifactId>hibernate-validator</artifactId> | 
				
			||||
      <version>8.0.1.Final</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.hutool</groupId> | 
				
			||||
      <artifactId>hutool-core</artifactId> | 
				
			||||
      <version>5.8.20</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-core</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang</groupId> | 
				
			||||
      <artifactId>mywust-network-okhttp</artifactId> | 
				
			||||
      <version>0.0.2-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
      <artifactId>common</artifactId> | 
				
			||||
      <version>0.0.1-SNAPSHOT</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>jakarta.annotation</groupId> | 
				
			||||
      <artifactId>jakarta.annotation-api</artifactId> | 
				
			||||
      <version>2.1.1</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>javax.annotation</groupId> | 
				
			||||
      <artifactId>javax.annotation-api</artifactId> | 
				
			||||
      <version>1.3.2</version> | 
				
			||||
      <scope>compile</scope> | 
				
			||||
    </dependency> | 
				
			||||
    <dependency> | 
				
			||||
      <groupId>org.projectlombok</groupId> | 
				
			||||
      <artifactId>lombok</artifactId> | 
				
			||||
      <version>1.18.26</version> | 
				
			||||
      <scope>provided</scope> | 
				
			||||
    </dependency> | 
				
			||||
  </dependencies> | 
				
			||||
  <repositories> | 
				
			||||
    <repository> | 
				
			||||
      <id>central</id> | 
				
			||||
      <url>https://repo1.maven.org/maven2</url> | 
				
			||||
    </repository> | 
				
			||||
    <repository> | 
				
			||||
      <snapshots> | 
				
			||||
        <enabled>true</enabled> | 
				
			||||
      </snapshots> | 
				
			||||
      <id>github</id> | 
				
			||||
      <url>https://maven.pkg.github.com/LingHangStudio/mywust</url> | 
				
			||||
    </repository> | 
				
			||||
  </repositories> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,38 @@ | 
				
			||||
target/ | 
				
			||||
!.mvn/wrapper/maven-wrapper.jar | 
				
			||||
!**/src/main/**/target/ | 
				
			||||
!**/src/test/**/target/ | 
				
			||||
 | 
				
			||||
### IntelliJ IDEA ### | 
				
			||||
.idea/modules.xml | 
				
			||||
.idea/jarRepositories.xml | 
				
			||||
.idea/compiler.xml | 
				
			||||
.idea/libraries/ | 
				
			||||
*.iws | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
 | 
				
			||||
### Eclipse ### | 
				
			||||
.apt_generated | 
				
			||||
.classpath | 
				
			||||
.factorypath | 
				
			||||
.project | 
				
			||||
.settings | 
				
			||||
.springBeans | 
				
			||||
.sts4-cache | 
				
			||||
 | 
				
			||||
### NetBeans ### | 
				
			||||
/nbproject/private/ | 
				
			||||
/nbbuild/ | 
				
			||||
/dist/ | 
				
			||||
/nbdist/ | 
				
			||||
/.nb-gradle/ | 
				
			||||
build/ | 
				
			||||
!**/src/main/**/build/ | 
				
			||||
!**/src/test/**/build/ | 
				
			||||
 | 
				
			||||
### VS Code ### | 
				
			||||
.vscode/ | 
				
			||||
 | 
				
			||||
### Mac OS ### | 
				
			||||
.DS_Store | 
				
			||||
@ -0,0 +1,160 @@ | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | 
				
			||||
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			||||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			||||
    <modelVersion>4.0.0</modelVersion> | 
				
			||||
    <parent> | 
				
			||||
        <groupId>cn.wustlinghang.wusthelper</groupId> | 
				
			||||
        <artifactId>sub-services</artifactId> | 
				
			||||
        <version>${revision}</version> | 
				
			||||
    </parent> | 
				
			||||
 | 
				
			||||
    <artifactId>undergrad</artifactId> | 
				
			||||
 | 
				
			||||
    <properties> | 
				
			||||
        <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> | 
				
			||||
        <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> | 
				
			||||
        <quarkus.platform.version>3.1.3.Final</quarkus.platform.version> | 
				
			||||
        <compiler-plugin.version>3.8.1</compiler-plugin.version> | 
				
			||||
        <surefire-plugin.version>3.0.0-M7</surefire-plugin.version> | 
				
			||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
				
			||||
 | 
				
			||||
        <maven.compiler.source>17</maven.compiler.source> | 
				
			||||
        <maven.compiler.target>17</maven.compiler.target> | 
				
			||||
        <maven.compiler.parameters>true</maven.compiler.parameters> | 
				
			||||
 | 
				
			||||
        <hibernate-validator.version>8.0.1.Final</hibernate-validator.version> | 
				
			||||
    </properties> | 
				
			||||
 | 
				
			||||
    <dependencyManagement> | 
				
			||||
        <dependencies> | 
				
			||||
            <dependency> | 
				
			||||
                <groupId>io.quarkus</groupId> | 
				
			||||
                <artifactId>quarkus-bom</artifactId> | 
				
			||||
                <version>${quarkus.platform.version}</version> | 
				
			||||
                <type>pom</type> | 
				
			||||
                <scope>import</scope> | 
				
			||||
            </dependency> | 
				
			||||
        </dependencies> | 
				
			||||
    </dependencyManagement> | 
				
			||||
 | 
				
			||||
    <dependencies> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-resteasy-reactive</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-resteasy-reactive-jackson</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-resteasy-deployment</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-core-deployment</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <!-- 参数校验 --> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-hibernate-validator</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>org.hibernate.validator</groupId> | 
				
			||||
            <artifactId>hibernate-validator</artifactId> | 
				
			||||
            <version>${hibernate-validator.version}</version> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.quarkus</groupId> | 
				
			||||
            <artifactId>quarkus-junit5</artifactId> | 
				
			||||
            <scope>test</scope> | 
				
			||||
        </dependency> | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>io.rest-assured</groupId> | 
				
			||||
            <artifactId>rest-assured</artifactId> | 
				
			||||
            <scope>test</scope> | 
				
			||||
        </dependency> | 
				
			||||
 | 
				
			||||
        <dependency> | 
				
			||||
            <groupId>cn.hutool</groupId> | 
				
			||||
            <artifactId>hutool-core</artifactId> | 
				
			||||
        </dependency> | 
				
			||||
    </dependencies> | 
				
			||||
 | 
				
			||||
    <build> | 
				
			||||
        <plugins> | 
				
			||||
            <plugin> | 
				
			||||
                <artifactId>maven-compiler-plugin</artifactId> | 
				
			||||
                <version>${compiler-plugin.version}</version> | 
				
			||||
            </plugin> | 
				
			||||
            <plugin> | 
				
			||||
                <artifactId>maven-surefire-plugin</artifactId> | 
				
			||||
                <version>${surefire-plugin.version}</version> | 
				
			||||
                <configuration> | 
				
			||||
                    <systemPropertyVariables> | 
				
			||||
                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> | 
				
			||||
                        <maven.home>${maven.home}</maven.home> | 
				
			||||
                        <file.encoding>UTF-8</file.encoding> | 
				
			||||
                    </systemPropertyVariables> | 
				
			||||
                </configuration> | 
				
			||||
            </plugin> | 
				
			||||
            <plugin> | 
				
			||||
                <groupId>${quarkus.platform.group-id}</groupId> | 
				
			||||
                <artifactId>quarkus-maven-plugin</artifactId> | 
				
			||||
                <version>${quarkus.platform.version}</version> | 
				
			||||
                <configuration> | 
				
			||||
                    <systemProperties> | 
				
			||||
                        <file.encoding>UTF-8</file.encoding> | 
				
			||||
                    </systemProperties> | 
				
			||||
                </configuration> | 
				
			||||
                <executions> | 
				
			||||
                    <execution> | 
				
			||||
                        <goals> | 
				
			||||
                            <goal>build</goal> | 
				
			||||
                        </goals> | 
				
			||||
                    </execution> | 
				
			||||
                </executions> | 
				
			||||
            </plugin> | 
				
			||||
        </plugins> | 
				
			||||
    </build> | 
				
			||||
 | 
				
			||||
    <profiles> | 
				
			||||
        <profile> | 
				
			||||
            <id>native</id> | 
				
			||||
            <activation> | 
				
			||||
                <property> | 
				
			||||
                    <name>native</name> | 
				
			||||
                </property> | 
				
			||||
            </activation> | 
				
			||||
            <properties> | 
				
			||||
                <quarkus.package.type>native</quarkus.package.type> | 
				
			||||
            </properties> | 
				
			||||
            <build> | 
				
			||||
                <plugins> | 
				
			||||
                    <plugin> | 
				
			||||
                        <artifactId>maven-failsafe-plugin</artifactId> | 
				
			||||
                        <version>${surefire-plugin.version}</version> | 
				
			||||
                        <executions> | 
				
			||||
                            <execution> | 
				
			||||
                                <goals> | 
				
			||||
                                    <goal>integration-test</goal> | 
				
			||||
                                    <goal>verify</goal> | 
				
			||||
                                </goals> | 
				
			||||
                                <configuration> | 
				
			||||
                                    <systemPropertyVariables> | 
				
			||||
                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> | 
				
			||||
                                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> | 
				
			||||
                                        <maven.home>${maven.home}</maven.home> | 
				
			||||
                                    </systemPropertyVariables> | 
				
			||||
                                </configuration> | 
				
			||||
                            </execution> | 
				
			||||
                        </executions> | 
				
			||||
                    </plugin> | 
				
			||||
                </plugins> | 
				
			||||
            </build> | 
				
			||||
        </profile> | 
				
			||||
    </profiles> | 
				
			||||
</project> | 
				
			||||
@ -0,0 +1,54 @@ | 
				
			||||
#### | 
				
			||||
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode | 
				
			||||
# | 
				
			||||
# Before building the container image run: | 
				
			||||
# | 
				
			||||
# ./mvnw package | 
				
			||||
# | 
				
			||||
# Then, build the image with: | 
				
			||||
# | 
				
			||||
# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/getting-started-jvm . | 
				
			||||
# | 
				
			||||
# Then run the container using: | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 quarkus/getting-started-jvm | 
				
			||||
# | 
				
			||||
# If you want to include the debug port into your docker image | 
				
			||||
# you will have to expose the debug port (default 5005) like this :  EXPOSE 8080 5050 | 
				
			||||
# | 
				
			||||
# Then run the container using : | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/getting-started-jvm | 
				
			||||
# | 
				
			||||
### | 
				
			||||
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3  | 
				
			||||
 | 
				
			||||
ARG JAVA_PACKAGE=java-11-openjdk-headless | 
				
			||||
ARG RUN_JAVA_VERSION=1.3.8 | 
				
			||||
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' | 
				
			||||
# Install java and the run-java script | 
				
			||||
# Also set up permissions for user `1001` | 
				
			||||
RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ | 
				
			||||
    && microdnf update \ | 
				
			||||
    && microdnf clean all \ | 
				
			||||
    && mkdir /deployments \ | 
				
			||||
    && chown 1001 /deployments \ | 
				
			||||
    && chmod "g+rwX" /deployments \ | 
				
			||||
    && chown 1001:root /deployments \ | 
				
			||||
    && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ | 
				
			||||
    && chown 1001 /deployments/run-java.sh \ | 
				
			||||
    && chmod 540 /deployments/run-java.sh \ | 
				
			||||
    && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security | 
				
			||||
 | 
				
			||||
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. | 
				
			||||
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" | 
				
			||||
# We make four distinct layers so if there are application changes the library layers can be re-used | 
				
			||||
COPY --chown=1001 target/quarkus-app/lib/ /deployments/lib/ | 
				
			||||
COPY --chown=1001 target/quarkus-app/*.jar /deployments/ | 
				
			||||
COPY --chown=1001 target/quarkus-app/app/ /deployments/app/ | 
				
			||||
COPY --chown=1001 target/quarkus-app/quarkus/ /deployments/quarkus/ | 
				
			||||
 | 
				
			||||
EXPOSE 8080 | 
				
			||||
USER 1001 | 
				
			||||
 | 
				
			||||
ENTRYPOINT [ "/deployments/run-java.sh" ] | 
				
			||||
@ -0,0 +1,51 @@ | 
				
			||||
#### | 
				
			||||
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode | 
				
			||||
# | 
				
			||||
# Before building the container image run: | 
				
			||||
# | 
				
			||||
# ./mvnw package -Dquarkus.package.type=legacy-jar | 
				
			||||
# | 
				
			||||
# Then, build the image with: | 
				
			||||
# | 
				
			||||
# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/getting-started-legacy-jar . | 
				
			||||
# | 
				
			||||
# Then run the container using: | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 quarkus/getting-started-legacy-jar | 
				
			||||
# | 
				
			||||
# If you want to include the debug port into your docker image | 
				
			||||
# you will have to expose the debug port (default 5005) like this :  EXPOSE 8080 5050 | 
				
			||||
# | 
				
			||||
# Then run the container using : | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/getting-started-legacy-jar | 
				
			||||
# | 
				
			||||
### | 
				
			||||
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3  | 
				
			||||
 | 
				
			||||
ARG JAVA_PACKAGE=java-11-openjdk-headless | 
				
			||||
ARG RUN_JAVA_VERSION=1.3.8 | 
				
			||||
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' | 
				
			||||
# Install java and the run-java script | 
				
			||||
# Also set up permissions for user `1001` | 
				
			||||
RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ | 
				
			||||
    && microdnf update \ | 
				
			||||
    && microdnf clean all \ | 
				
			||||
    && mkdir /deployments \ | 
				
			||||
    && chown 1001 /deployments \ | 
				
			||||
    && chmod "g+rwX" /deployments \ | 
				
			||||
    && chown 1001:root /deployments \ | 
				
			||||
    && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ | 
				
			||||
    && chown 1001 /deployments/run-java.sh \ | 
				
			||||
    && chmod 540 /deployments/run-java.sh \ | 
				
			||||
    && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security | 
				
			||||
 | 
				
			||||
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. | 
				
			||||
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" | 
				
			||||
COPY target/lib/* /deployments/lib/ | 
				
			||||
COPY target/*-runner.jar /deployments/app.jar | 
				
			||||
 | 
				
			||||
EXPOSE 8080 | 
				
			||||
USER 1001 | 
				
			||||
 | 
				
			||||
ENTRYPOINT [ "/deployments/run-java.sh" ] | 
				
			||||
@ -0,0 +1,27 @@ | 
				
			||||
#### | 
				
			||||
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode | 
				
			||||
# | 
				
			||||
# Before building the container image run: | 
				
			||||
# | 
				
			||||
# ./mvnw package -Pnative | 
				
			||||
# | 
				
			||||
# Then, build the image with: | 
				
			||||
# | 
				
			||||
# docker build -f src/main/docker/Dockerfile.native -t quarkus/getting-started . | 
				
			||||
# | 
				
			||||
# Then run the container using: | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 quarkus/getting-started | 
				
			||||
# | 
				
			||||
### | 
				
			||||
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3 | 
				
			||||
WORKDIR /work/ | 
				
			||||
RUN chown 1001 /work \ | 
				
			||||
    && chmod "g+rwX" /work \ | 
				
			||||
    && chown 1001:root /work | 
				
			||||
COPY --chown=1001:root target/*-runner /work/application | 
				
			||||
 | 
				
			||||
EXPOSE 8080 | 
				
			||||
USER 1001 | 
				
			||||
 | 
				
			||||
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			||||
#### | 
				
			||||
# This Dockerfile is used in order to build a distroless container that runs the Quarkus application in native (no JVM) mode | 
				
			||||
# | 
				
			||||
# Before building the container image run: | 
				
			||||
# | 
				
			||||
# ./mvnw package -Pnative | 
				
			||||
# | 
				
			||||
# Then, build the image with: | 
				
			||||
# | 
				
			||||
# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/getting-started . | 
				
			||||
# | 
				
			||||
# Then run the container using: | 
				
			||||
# | 
				
			||||
# docker run -i --rm -p 8080:8080 quarkus/getting-started | 
				
			||||
# | 
				
			||||
### | 
				
			||||
FROM quay.io/quarkus/quarkus-micro-image:1.0 | 
				
			||||
COPY target/*-runner /application | 
				
			||||
 | 
				
			||||
EXPOSE 8080 | 
				
			||||
USER 1001 | 
				
			||||
 | 
				
			||||
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] | 
				
			||||
@ -0,0 +1,32 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.wusthelper.internal.undergrad.services.LoginService; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Path("/cookie") | 
				
			||||
public class CookieApi { | 
				
			||||
    private final LoginService loginService; | 
				
			||||
 | 
				
			||||
    public CookieApi(LoginService loginService) { | 
				
			||||
        this.loginService = loginService; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public String login(@QueryParam("username") @NotNull String username, | 
				
			||||
                        @QueryParam("password") @NotNull String password) throws IOException, ApiException { | 
				
			||||
        return loginService.login(username, password, false); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/verify") | 
				
			||||
    public Boolean verify(@QueryParam("cookie") @NotNull String cookie) throws IOException { | 
				
			||||
        return loginService.verify(cookie); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,52 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.UndergradCourseTableParser; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.UndergradCourseTableApiService; | 
				
			||||
import cn.wustlinghang.mywust.data.global.Course; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.POST; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
import java.util.List; | 
				
			||||
 | 
				
			||||
@Path("/course_table") | 
				
			||||
@ApplicationScoped | 
				
			||||
public class CourseTableApi { | 
				
			||||
    private final UndergradCourseTableApiService studentInfoApiService; | 
				
			||||
    private final UndergradCourseTableParser studentInfoPageParser; | 
				
			||||
 | 
				
			||||
    public CourseTableApi(UndergradCourseTableApiService studentInfoApiService, | 
				
			||||
                          UndergradCourseTableParser studentInfoPageParser) { | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public List<Course> get(@QueryParam("cookie") @NotNull String cookie, @QueryParam("term") String term) | 
				
			||||
            throws IOException, ApiException, ParseException { | 
				
			||||
        String html = studentInfoApiService.getPage(term, cookie); | 
				
			||||
        return this.parse(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/agent") | 
				
			||||
    public String agent(@QueryParam("cookie") @NotNull String cookie, @QueryParam("term") String term) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        return studentInfoApiService.getPage(term, cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @POST | 
				
			||||
    @Path("/parse") | 
				
			||||
    public List<Course> parse(String html) throws ParseException { | 
				
			||||
        return studentInfoPageParser.parse(html); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,51 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.UndergradStudentInfoPageParser; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.UndergradStudentInfoApiService; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.POST; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Path("/credit_status") | 
				
			||||
@ApplicationScoped | 
				
			||||
public class CreditStatusApi { | 
				
			||||
    private final UndergradStudentInfoApiService studentInfoApiService; | 
				
			||||
    private final UndergradStudentInfoPageParser studentInfoPageParser; | 
				
			||||
 | 
				
			||||
    public CreditStatusApi(UndergradStudentInfoApiService studentInfoApiService, | 
				
			||||
                           UndergradStudentInfoPageParser studentInfoPageParser) { | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public RpcResponse<StudentInfo> get(String cookie) throws IOException, ApiException, ParseException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return this.parse(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/agent") | 
				
			||||
    public RpcResponse<String> agent(@QueryParam("cookie") @NotNull String cookie) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return RpcResponse.success(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @POST | 
				
			||||
    @Path("/parse") | 
				
			||||
    public RpcResponse<StudentInfo> parse(String html) throws ParseException { | 
				
			||||
        StudentInfo result = studentInfoPageParser.parse(html); | 
				
			||||
        return RpcResponse.success(result); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,51 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.UndergradStudentInfoPageParser; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.UndergradStudentInfoApiService; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.POST; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Path("/score") | 
				
			||||
@ApplicationScoped | 
				
			||||
public class ScoreApi { | 
				
			||||
    private final UndergradStudentInfoApiService studentInfoApiService; | 
				
			||||
    private final UndergradStudentInfoPageParser studentInfoPageParser; | 
				
			||||
 | 
				
			||||
    public ScoreApi(UndergradStudentInfoApiService studentInfoApiService, | 
				
			||||
                    UndergradStudentInfoPageParser studentInfoPageParser) { | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public RpcResponse<StudentInfo> get(String cookie) throws IOException, ApiException, ParseException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return this.parse(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/agent") | 
				
			||||
    public RpcResponse<String> agent(@QueryParam("cookie") @NotNull String cookie) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return RpcResponse.success(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @POST | 
				
			||||
    @Path("/parse") | 
				
			||||
    public RpcResponse<StudentInfo> parse(String html) throws ParseException { | 
				
			||||
        StudentInfo result = studentInfoPageParser.parse(html); | 
				
			||||
        return RpcResponse.success(result); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,47 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.UndergradStudentInfoPageParser; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.UndergradStudentInfoApiService; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.POST; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Path("/student_info") | 
				
			||||
@ApplicationScoped | 
				
			||||
public class StudentInfoApi { | 
				
			||||
    private final UndergradStudentInfoApiService studentInfoApiService; | 
				
			||||
    private final UndergradStudentInfoPageParser studentInfoPageParser; | 
				
			||||
 | 
				
			||||
    public StudentInfoApi(UndergradStudentInfoApiService studentInfoApiService, | 
				
			||||
                          UndergradStudentInfoPageParser studentInfoPageParser) { | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public StudentInfo get(@QueryParam("cookie") @NotNull String cookie) throws IOException, ApiException, ParseException { | 
				
			||||
        return this.parse(this.agent(cookie)); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/agent") | 
				
			||||
    public String agent(@QueryParam("cookie") @NotNull String cookie) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        return studentInfoApiService.getPage(cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @POST | 
				
			||||
    @Path("/parse") | 
				
			||||
    public StudentInfo parse(String html) throws ParseException { | 
				
			||||
        return studentInfoPageParser.parse(html); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,51 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.UndergradStudentInfoPageParser; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.UndergradStudentInfoApiService; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.validation.constraints.NotNull; | 
				
			||||
import jakarta.ws.rs.GET; | 
				
			||||
import jakarta.ws.rs.POST; | 
				
			||||
import jakarta.ws.rs.Path; | 
				
			||||
import jakarta.ws.rs.QueryParam; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Path("/training_plan") | 
				
			||||
@ApplicationScoped | 
				
			||||
public class TrainingPlanApi { | 
				
			||||
    private final UndergradStudentInfoApiService studentInfoApiService; | 
				
			||||
    private final UndergradStudentInfoPageParser studentInfoPageParser; | 
				
			||||
 | 
				
			||||
    public TrainingPlanApi(UndergradStudentInfoApiService studentInfoApiService, | 
				
			||||
                           UndergradStudentInfoPageParser studentInfoPageParser) { | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/") | 
				
			||||
    public RpcResponse<StudentInfo> get(String cookie) throws IOException, ApiException, ParseException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return this.parse(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @GET | 
				
			||||
    @Path("/agent") | 
				
			||||
    public RpcResponse<String> agent(@QueryParam("cookie") @NotNull String cookie) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        String html =  studentInfoApiService.getPage(cookie); | 
				
			||||
        return RpcResponse.success(html); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @POST | 
				
			||||
    @Path("/parse") | 
				
			||||
    public RpcResponse<StudentInfo> parse(String html) throws ParseException { | 
				
			||||
        StudentInfo result = studentInfoPageParser.parse(html); | 
				
			||||
        return RpcResponse.success(result); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
import jakarta.ws.rs.ext.ExceptionMapper; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
 | 
				
			||||
@Provider | 
				
			||||
public class ApiExceptionHandler extends ExceptionHandlerBase implements ExceptionMapper<ApiException> { | 
				
			||||
    @Override | 
				
			||||
    public Response toResponse(ApiException e) { | 
				
			||||
        return super.toResponse(e.getCodeValue(), e.toString(), "ApiExceptionHandler"); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,21 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
import jakarta.ws.rs.ext.ExceptionMapper; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
				
			||||
@Slf4j | 
				
			||||
@Provider | 
				
			||||
public class DefaultExceptionHandler extends ExceptionHandlerBase implements ExceptionMapper<Exception> { | 
				
			||||
    @Override | 
				
			||||
    public Response toResponse(Exception e) { | 
				
			||||
        log.error("未知异常:", e); | 
				
			||||
        return super.toResponse( | 
				
			||||
                ResponseCode.SERVER_INTERNAL_ERROR, | 
				
			||||
                e.toString(), | 
				
			||||
                "DefaultExceptionHandler" | 
				
			||||
        ); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,33 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import com.fasterxml.jackson.core.JsonProcessingException; | 
				
			||||
import com.fasterxml.jackson.databind.ObjectMapper; | 
				
			||||
import jakarta.ws.rs.core.MediaType; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
 | 
				
			||||
public abstract class ExceptionHandlerBase { | 
				
			||||
    public static final String EXCEPTION_HEADER_KEY = "X-exception-handler"; | 
				
			||||
 | 
				
			||||
    private static final ObjectMapper objectMapper = new ObjectMapper(); | 
				
			||||
 | 
				
			||||
    public Response toResponse(ResponseCode code, String msg, String handlerName) { | 
				
			||||
        return toResponse(code.getCode(), msg, handlerName); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public Response toResponse(int code, String msg, String handlerName) { | 
				
			||||
        Object response; | 
				
			||||
        try { | 
				
			||||
            response = objectMapper.writeValueAsString(RpcResponse.error(code, msg)); | 
				
			||||
        } catch (JsonProcessingException e) { | 
				
			||||
            response = RpcResponse.error(ResponseCode.SERVER_INTERNAL_ERROR); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR) | 
				
			||||
                .entity(response) | 
				
			||||
                .header(EXCEPTION_HEADER_KEY, handlerName) | 
				
			||||
                .type(MediaType.APPLICATION_JSON) | 
				
			||||
                .build(); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
import jakarta.ws.rs.ext.ExceptionMapper; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Slf4j | 
				
			||||
@Provider | 
				
			||||
public class IOExceptionHandler extends ExceptionHandlerBase implements ExceptionMapper<IOException> { | 
				
			||||
    @Override | 
				
			||||
    public Response toResponse(IOException e) { | 
				
			||||
        log.error("IO异常:", e); | 
				
			||||
        return super.toResponse( | 
				
			||||
                ResponseCode.SERVER_INTERNAL_ERROR, | 
				
			||||
                e.toString(), | 
				
			||||
                "IOExceptionHandler" | 
				
			||||
        ); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,22 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
import jakarta.ws.rs.ext.ExceptionMapper; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
				
			||||
@Slf4j | 
				
			||||
@Provider | 
				
			||||
public class ParseExceptionHandler extends ExceptionHandlerBase implements ExceptionMapper<ParseException> { | 
				
			||||
    @Override | 
				
			||||
    public Response toResponse(ParseException e) { | 
				
			||||
        log.error("解析异常:", e); | 
				
			||||
        return super.toResponse( | 
				
			||||
                ResponseCode.SERVER_INTERNAL_ERROR, | 
				
			||||
                e.toString(), | 
				
			||||
                "ParseExceptionHandler" | 
				
			||||
        ); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.ResponseCode; | 
				
			||||
import jakarta.validation.ConstraintViolationException; | 
				
			||||
import jakarta.validation.ValidationException; | 
				
			||||
import jakarta.ws.rs.core.Response; | 
				
			||||
import jakarta.ws.rs.ext.ExceptionMapper; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
				
			||||
@Slf4j | 
				
			||||
@Provider | 
				
			||||
public class ValidationExceptionHandler extends ExceptionHandlerBase | 
				
			||||
        implements ExceptionMapper<ValidationException> { | 
				
			||||
    @Override | 
				
			||||
    public Response toResponse(ValidationException e) { | 
				
			||||
        return super.toResponse( | 
				
			||||
                ResponseCode.PARAM_WRONG, | 
				
			||||
                "参数错误:" + e.toString(), | 
				
			||||
                "ValidationExceptionHandler" | 
				
			||||
        ); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,36 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.api.json.interceptor; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.wusthelper.internal.undergrad.api.json.handler.ExceptionHandlerBase; | 
				
			||||
import cn.wustlinghang.wusthelper.rpc.response.RpcResponse; | 
				
			||||
import com.fasterxml.jackson.databind.ObjectMapper; | 
				
			||||
import jakarta.ws.rs.WebApplicationException; | 
				
			||||
import jakarta.ws.rs.core.HttpHeaders; | 
				
			||||
import jakarta.ws.rs.core.MediaType; | 
				
			||||
import jakarta.ws.rs.ext.Provider; | 
				
			||||
import jakarta.ws.rs.ext.WriterInterceptor; | 
				
			||||
import jakarta.ws.rs.ext.WriterInterceptorContext; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@Provider | 
				
			||||
public class ResponseWrapperInterceptor implements WriterInterceptor { | 
				
			||||
    private final ObjectMapper objectMapper; | 
				
			||||
 | 
				
			||||
    public ResponseWrapperInterceptor(ObjectMapper objectMapper) { | 
				
			||||
        this.objectMapper = objectMapper; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Override | 
				
			||||
    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException { | 
				
			||||
        boolean hasException = context.getHeaders().get(ExceptionHandlerBase.EXCEPTION_HEADER_KEY) != null; | 
				
			||||
        if (!hasException) { | 
				
			||||
            Object data = context.getEntity(); | 
				
			||||
            RpcResponse<Object> wrappedResponse = RpcResponse.success(data); | 
				
			||||
            String json = objectMapper.writeValueAsString(wrappedResponse); | 
				
			||||
            context.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); | 
				
			||||
            context.setEntity(json); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        context.proceed(); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,12 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.bean; | 
				
			||||
 | 
				
			||||
import com.fasterxml.jackson.databind.ObjectMapper; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
import jakarta.inject.Singleton; | 
				
			||||
 | 
				
			||||
public class JacksonBean { | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public ObjectMapper objectMapper() { | 
				
			||||
        return new ObjectMapper(); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,36 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.bean; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.*; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
 | 
				
			||||
public class MywustParserBeans { | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradCourseTableParser undergradCourseTableParser() { | 
				
			||||
        return new UndergradCourseTableParser(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradScoreParser undergradScoreParser() { | 
				
			||||
        return new UndergradScoreParser(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradStudentInfoPageParser undergradStudentInfoPageParser() { | 
				
			||||
        return new UndergradStudentInfoPageParser(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradTrainingPlanPageParser undergradTrainingPlanPageParser() { | 
				
			||||
        return new UndergradTrainingPlanPageParser(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradCreditStatusParser undergradCreditStatusParser() { | 
				
			||||
        return new UndergradCreditStatusParser(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @ApplicationScoped | 
				
			||||
    public UndergradExamDelayParser undergradExamDelayParser() { | 
				
			||||
        return new UndergradExamDelayParser(); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,63 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.bean; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.auth.UndergraduateLogin; | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.*; | 
				
			||||
import cn.wustlinghang.mywust.network.RequestClientOption; | 
				
			||||
import cn.wustlinghang.mywust.network.Requester; | 
				
			||||
import cn.wustlinghang.mywust.network.okhttp.SimpleOkhttpRequester; | 
				
			||||
import jakarta.inject.Singleton; | 
				
			||||
 | 
				
			||||
public class MywustRequestAgentBeans { | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public RequestClientOption requestClientOption() { | 
				
			||||
        RequestClientOption.Proxy proxy = RequestClientOption.Proxy.builder() | 
				
			||||
                .address("127.0.0.1") | 
				
			||||
                .port(8080) | 
				
			||||
                .build(); | 
				
			||||
        RequestClientOption option = new RequestClientOption(); | 
				
			||||
//        option.setProxy(proxy);
 | 
				
			||||
 | 
				
			||||
        return option; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public Requester requester(RequestClientOption option) { | 
				
			||||
        return new SimpleOkhttpRequester(option, true); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergraduateLogin undergraduateLogin(Requester requester) { | 
				
			||||
        return new UndergraduateLogin(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradCourseTableApiService undergradCourseTableApiService(Requester requester) { | 
				
			||||
        return new UndergradCourseTableApiService(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradScoreApiService undergradScoreApiService(Requester requester) { | 
				
			||||
        return new UndergradScoreApiService(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradStudentInfoApiService undergradStudentInfoApiService(Requester requester) { | 
				
			||||
        return new UndergradStudentInfoApiService(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradTrainingPlanApiService undergradTrainingPlanApiService(Requester requester) { | 
				
			||||
        return new UndergradTrainingPlanApiService(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradCreditStatusApiService undergradCreditStatusApiService(Requester requester) { | 
				
			||||
        return new UndergradCreditStatusApiService(requester); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Singleton | 
				
			||||
    public UndergradExamDelayApiService undergradExamDelayApiService(Requester requester) { | 
				
			||||
        return new UndergradExamDelayApiService(requester); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,4 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.exception; | 
				
			||||
 | 
				
			||||
public class InternalException extends Exception { | 
				
			||||
} | 
				
			||||
@ -0,0 +1,32 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.services; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.auth.UndergraduateLogin; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import cn.wustlinghang.mywust.network.RequestClientOption; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@ApplicationScoped | 
				
			||||
public class LoginService { | 
				
			||||
    private final RequestClientOption option; | 
				
			||||
    private final UndergraduateLogin undergraduateLogin; | 
				
			||||
 | 
				
			||||
    public LoginService(RequestClientOption option, | 
				
			||||
                        UndergraduateLogin undergraduateLogin) { | 
				
			||||
        this.option = option; | 
				
			||||
        this.undergraduateLogin = undergraduateLogin; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String login(String username, String password, boolean legacy) throws IOException, ApiException { | 
				
			||||
        if (legacy) { | 
				
			||||
            return undergraduateLogin.getLoginCookieLegacy(username, password, option); | 
				
			||||
        } else { | 
				
			||||
            return undergraduateLogin.getLoginCookie(username, password, option); | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public boolean verify(String cookie) throws IOException { | 
				
			||||
        return !undergraduateLogin.checkCookiesFail(cookie); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,60 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.services; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.parser.undergraduate.*; | 
				
			||||
import cn.wustlinghang.mywust.data.global.Course; | 
				
			||||
import cn.wustlinghang.mywust.data.global.Score; | 
				
			||||
import cn.wustlinghang.mywust.data.global.StudentInfo; | 
				
			||||
import cn.wustlinghang.mywust.data.undergrad.ExamDelayApplication; | 
				
			||||
import cn.wustlinghang.mywust.exception.ParseException; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
 | 
				
			||||
import java.util.List; | 
				
			||||
 | 
				
			||||
@ApplicationScoped | 
				
			||||
public class ParseService { | 
				
			||||
    private final UndergradCourseTableParser courseTableParser; | 
				
			||||
    private final UndergradScoreParser scoreParser; | 
				
			||||
    private final UndergradStudentInfoPageParser studentInfoPageParser; | 
				
			||||
    private final UndergradTrainingPlanPageParser trainingPlanPageParser; | 
				
			||||
    private final UndergradCreditStatusParser creditStatusParser; | 
				
			||||
    private final UndergradExamDelayParser examDelayParser; | 
				
			||||
 | 
				
			||||
    public ParseService(UndergradCourseTableParser courseTableParser, | 
				
			||||
                        UndergradScoreParser scoreParser, | 
				
			||||
                        UndergradStudentInfoPageParser studentInfoPageParser, | 
				
			||||
                        UndergradTrainingPlanPageParser trainingPlanPageParser, | 
				
			||||
                        UndergradCreditStatusParser creditStatusParser, | 
				
			||||
                        UndergradExamDelayParser examDelayParser) { | 
				
			||||
 | 
				
			||||
        this.courseTableParser = courseTableParser; | 
				
			||||
        this.scoreParser = scoreParser; | 
				
			||||
        this.studentInfoPageParser = studentInfoPageParser; | 
				
			||||
        this.trainingPlanPageParser = trainingPlanPageParser; | 
				
			||||
        this.creditStatusParser = creditStatusParser; | 
				
			||||
        this.examDelayParser = examDelayParser; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public List<Course> parseCourseTable(String data) throws ParseException { | 
				
			||||
        return courseTableParser.parse(data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public List<Score> parseScore(String data) throws ParseException { | 
				
			||||
        return scoreParser.parse(data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public StudentInfo parseStudentInfo(String data) throws ParseException { | 
				
			||||
        return studentInfoPageParser.parse(data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String parseTrainingPlan(String data) throws ParseException { | 
				
			||||
        return trainingPlanPageParser.parse(data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String parseCreditStatus(String data) throws ParseException { | 
				
			||||
        return creditStatusParser.parse(data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public List<ExamDelayApplication> parseExamDelayApplications(String data) throws ParseException { | 
				
			||||
        return examDelayParser.parse(data); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,62 @@ | 
				
			||||
package cn.wustlinghang.wusthelper.internal.undergrad.services; | 
				
			||||
 | 
				
			||||
import cn.wustlinghang.mywust.core.request.service.undergraduate.*; | 
				
			||||
import cn.wustlinghang.mywust.exception.ApiException; | 
				
			||||
import jakarta.enterprise.context.ApplicationScoped; | 
				
			||||
 | 
				
			||||
import java.io.IOException; | 
				
			||||
 | 
				
			||||
@ApplicationScoped | 
				
			||||
public class RequestAgentService { | 
				
			||||
    private final UndergradCourseTableApiService courseTableApiService; | 
				
			||||
    private final UndergradScoreApiService scoreApiService; | 
				
			||||
    private final UndergradStudentInfoApiService studentInfoApiService; | 
				
			||||
    private final UndergradTrainingPlanApiService trainingPlanApiService; | 
				
			||||
    private final UndergradCreditStatusApiService creditStatusApiService; | 
				
			||||
    private final UndergradExamDelayApiService examDelayApiService; | 
				
			||||
 | 
				
			||||
    public RequestAgentService(UndergradCourseTableApiService courseTableApiService, | 
				
			||||
                               UndergradScoreApiService scoreApiService, | 
				
			||||
                               UndergradStudentInfoApiService studentInfoApiService, | 
				
			||||
                               UndergradTrainingPlanApiService trainingPlanApiService, | 
				
			||||
                               UndergradCreditStatusApiService creditStatusApiService, | 
				
			||||
                               UndergradExamDelayApiService examDelayApiService) { | 
				
			||||
 | 
				
			||||
        this.courseTableApiService = courseTableApiService; | 
				
			||||
        this.scoreApiService = scoreApiService; | 
				
			||||
        this.studentInfoApiService = studentInfoApiService; | 
				
			||||
        this.trainingPlanApiService = trainingPlanApiService; | 
				
			||||
        this.creditStatusApiService = creditStatusApiService; | 
				
			||||
        this.examDelayApiService = examDelayApiService; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getStudentInfoPage(String cookie) throws IOException, ApiException { | 
				
			||||
        return studentInfoApiService.getPage(cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getCourseTable(String cookie, String term) throws IOException, ApiException { | 
				
			||||
        return courseTableApiService.getPage(term, cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getScore(String cookie) throws IOException, ApiException { | 
				
			||||
        return scoreApiService.getPage(cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getTrainingPlan(String cookie) throws IOException, ApiException { | 
				
			||||
        return trainingPlanApiService.getPage(cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getCreditStatus(String cookie) throws IOException, ApiException { | 
				
			||||
        return creditStatusApiService.getPage(cookie, null, false); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public UndergradExamDelayApiService.ExamActivity[] getExamActivities(String cookie, String term) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        return examDelayApiService.getActivities(term, cookie); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public String getExamDelayApplications(String cookie, String term, String activityId) | 
				
			||||
            throws IOException, ApiException { | 
				
			||||
        return examDelayApiService.getPage(term, activityId, cookie); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,152 @@ | 
				
			||||
<!DOCTYPE html> | 
				
			||||
<html lang="en"> | 
				
			||||
<head> | 
				
			||||
    <meta charset="UTF-8"> | 
				
			||||
    <title>getting-started - 1.0.0-SNAPSHOT</title> | 
				
			||||
    <style> | 
				
			||||
        h1, h2, h3, h4, h5, h6 { | 
				
			||||
            margin-bottom: 0.5rem; | 
				
			||||
            font-weight: 400; | 
				
			||||
            line-height: 1.5; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h1 { | 
				
			||||
            font-size: 2.5rem; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h2 { | 
				
			||||
            font-size: 2rem | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h3 { | 
				
			||||
            font-size: 1.75rem | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h4 { | 
				
			||||
            font-size: 1.5rem | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h5 { | 
				
			||||
            font-size: 1.25rem | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        h6 { | 
				
			||||
            font-size: 1rem | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .lead { | 
				
			||||
            font-weight: 300; | 
				
			||||
            font-size: 2rem; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .banner { | 
				
			||||
            font-size: 2.7rem; | 
				
			||||
            margin: 0; | 
				
			||||
            padding: 2rem 1rem; | 
				
			||||
            background-color: #00A1E2; | 
				
			||||
            color: white; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        body { | 
				
			||||
            margin: 0; | 
				
			||||
            font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        code { | 
				
			||||
            font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; | 
				
			||||
            font-size: 87.5%; | 
				
			||||
            color: #e83e8c; | 
				
			||||
            word-break: break-word; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .left-column { | 
				
			||||
            padding: .75rem; | 
				
			||||
            max-width: 75%; | 
				
			||||
            min-width: 55%; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .right-column { | 
				
			||||
            padding: .75rem; | 
				
			||||
            max-width: 25%; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .container { | 
				
			||||
            display: flex; | 
				
			||||
            width: 100%; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        li { | 
				
			||||
            margin: 0.75rem; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .right-section { | 
				
			||||
            margin-left: 1rem; | 
				
			||||
            padding-left: 0.5rem; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .right-section h3 { | 
				
			||||
            padding-top: 0; | 
				
			||||
            font-weight: 200; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        .right-section ul { | 
				
			||||
            border-left: 0.3rem solid #00A1E2; | 
				
			||||
            list-style-type: none; | 
				
			||||
            padding-left: 0; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
    </style> | 
				
			||||
</head> | 
				
			||||
<body> | 
				
			||||
 | 
				
			||||
<div class="banner lead"> | 
				
			||||
    Your new Cloud-Native application is ready! | 
				
			||||
</div> | 
				
			||||
 | 
				
			||||
<div class="container"> | 
				
			||||
    <div class="left-column"> | 
				
			||||
        <p class="lead"> Congratulations, you have created a new Quarkus application.</p> | 
				
			||||
 | 
				
			||||
        <h2>Why do you see this?</h2> | 
				
			||||
 | 
				
			||||
        <p>This page is served by Quarkus. The source is in | 
				
			||||
            <code>src/main/resources/META-INF/resources/index.html</code>.</p> | 
				
			||||
 | 
				
			||||
        <h2>What can I do from here?</h2> | 
				
			||||
 | 
				
			||||
        <p>If not already done, run the application in <em>dev mode</em> using: <code>mvn quarkus:dev</code>. | 
				
			||||
        </p> | 
				
			||||
        <ul> | 
				
			||||
          <li>Add REST resources, Servlets, functions and other services in <code>src/main/java</code>.</li> | 
				
			||||
          <li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li> | 
				
			||||
          <li>Configure your application in <code>src/main/resources/application.properties</code>. | 
				
			||||
          </li> | 
				
			||||
        </ul> | 
				
			||||
 | 
				
			||||
        <h2>How do I get rid of this page?</h2> | 
				
			||||
        <p>Just delete the <code>src/main/resources/META-INF/resources/index.html</code> file.</p> | 
				
			||||
    </div> | 
				
			||||
    <div class="right-column"> | 
				
			||||
        <div class="right-section"> | 
				
			||||
            <h3>Application</h3> | 
				
			||||
            <ul> | 
				
			||||
                <li>GroupId: org.acme</li> | 
				
			||||
                <li>ArtifactId: getting-started</li> | 
				
			||||
                <li>Version: 1.0.0-SNAPSHOT</li> | 
				
			||||
                <li>Quarkus Version: 0.11.0</li> | 
				
			||||
            </ul> | 
				
			||||
        </div> | 
				
			||||
        <div class="right-section"> | 
				
			||||
            <h3>Next steps</h3> | 
				
			||||
            <ul> | 
				
			||||
                <li><a href="https://quarkus.io/guides/maven-tooling.html">Setup your IDE</a></li> | 
				
			||||
                <li><a href="https://quarkus.io/guides/getting-started-guide.html">Getting started</a></li> | 
				
			||||
                <li><a href="https://quarkus.io">Quarkus Web Site</a></li> | 
				
			||||
            </ul> | 
				
			||||
        </div> | 
				
			||||
    </div> | 
				
			||||
</div> | 
				
			||||
 | 
				
			||||
 | 
				
			||||
</body> | 
				
			||||
</html> | 
				
			||||
@ -0,0 +1,5 @@ | 
				
			||||
# Quarkus Configuration file | 
				
			||||
# key = value | 
				
			||||
quarkus.http.port=22800 | 
				
			||||
#quarkus.log.level=DEBUG | 
				
			||||
quarkus.log.file.encoding=UTF-8 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue