Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
poppoppuppylove | a455c7db4a | 1 month ago |
poppoppuppylove | cc432df3b4 | 1 month ago |
poppoppuppylove | c979a0e004 | 2 months ago |
poppoppuppylove | 56a7697230 | 2 months ago |
poppoppuppylove | 7e66d5c39a | 2 months ago |
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -1,14 +1,6 @@
|
|||||||
<component name="InspectionProjectProfileManager">
|
<component name="InspectionProjectProfileManager">
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<option name="myName" value="Project Default" />
|
||||||
<inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
|
<inspection_tool class="AliControlFlowStatementWithoutBraces" enabled="true" level="WEAK WARNING" enabled_by_default="true" editorAttributes="INFO_ATTRIBUTES" />
|
||||||
<inspection_tool class="AliArrayNamingShouldHaveBracket" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliControlFlowStatementWithoutBraces" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliDeprecation" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliEqualsAvoidNull" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliLongLiteralsEndingWithLowercaseL" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliMissingOverrideAnnotation" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="AliWrapperTypeEquality" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="MapOrSetKeyShouldOverrideHashCodeEquals" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
@ -1,124 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,19 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
wrapperVersion=3.3.2
|
|
||||||
distributionType=only-script
|
|
||||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
|
|
@ -0,0 +1,99 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoImportSettings">
|
||||||
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="3b22332f-54e5-44db-aa06-c42dcb64501b" name="更改" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/AttendanceApplication.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/config/SecurityConfig.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/controller/RollCallController.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/controller/StudentController.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/controller/TeacherController.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/entity/PointsRequest.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/entity/RollCallResponse.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/entity/RollCallSettings.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/entity/Student.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/entity/Teacher.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/mapper/StudentMapper.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/mapper/TeacherMapper.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/RollCallService.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/StudentService.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/TeacherService.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/impl/RollCallServiceImpl.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/impl/StudentServiceImpl.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/service/impl/TeacherServiceImpl.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/com/example/attendance/util/JWTUtil.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/test/java/com/example/attendance/AttendanceApplicationTests.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/test/java/com/example/attendance/PasswordEncryptor.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/test/java/com/example/attendance/RollCallServiceImplTest.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/test/java/com/example/attendance/StudentServiceImplTest.java" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/test/java/com/example/attendance/TeacherServiceImplTest.java" beforeDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectColorInfo">{
|
||||||
|
"associatedIndex": 3
|
||||||
|
}</component>
|
||||||
|
<component name="ProjectId" id="2n7TontcBHYq0FZUtB4aOJMP8nL" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="openDirectoriesWithSingleClick" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">{
|
||||||
|
"keyToString": {
|
||||||
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
|
"WebServerToolWindowFactoryState": "false",
|
||||||
|
"git-widget-placeholder": "main",
|
||||||
|
"last_opened_file_path": "C:/Users/onelastkiss/Desktop/项目/bigbigmarket",
|
||||||
|
"node.js.detected.package.eslint": "true",
|
||||||
|
"node.js.detected.package.tslint": "true",
|
||||||
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
|
"vue.rearranger.settings.migration": "true"
|
||||||
|
}
|
||||||
|
}</component>
|
||||||
|
<component name="RunManager">
|
||||||
|
<configuration default="true" type="JetRunConfigurationType">
|
||||||
|
<module name="BACKEND_ATTENDANCE" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Make" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
|
||||||
|
<module name="BACKEND_ATTENDANCE" />
|
||||||
|
<option name="filePath" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Make" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="默认任务">
|
||||||
|
<changelist id="3b22332f-54e5-44db-aa06-c42dcb64501b" name="更改" comment="" />
|
||||||
|
<created>1728323291653</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1728323291653</updated>
|
||||||
|
<workItem from="1728323292792" duration="28000" />
|
||||||
|
<workItem from="1728372981142" duration="128000" />
|
||||||
|
<workItem from="1728379806368" duration="345000" />
|
||||||
|
<workItem from="1728386733302" duration="673000" />
|
||||||
|
<workItem from="1728402818365" duration="864000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.example.attendance.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class RollCallSettings {
|
||||||
|
private String rollCallMode; // 点名("点名")或提问("提问")
|
||||||
|
private String triggerRandomEvent; // 触发("触发")或不触发("不触发")随机事件
|
||||||
|
private String wheelOfFortune; // 开启("是")或关闭("否")命运轮盘
|
||||||
|
}
|
||||||
|
|
Before Width: | Height: | Size: 24 MiB After Width: | Height: | Size: 27 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 134 KiB |
@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="icon" href="/点名.png">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>点点小助手</title>
|
||||||
|
<script type="module" crossorigin src="/assets/index-Cb5FnDWH.js"></script>
|
||||||
|
<link rel="stylesheet" crossorigin href="/assets/index-B1hDzaLh.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 649 KiB |
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,30 @@
|
|||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
coverage
|
||||||
|
*.local
|
||||||
|
|
||||||
|
/cypress/videos/
|
||||||
|
/cypress/screenshots/
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
|
*.tsbuildinfo
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["Vue.volar"]
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="icon" href="/点名.svg">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Vite App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./src/*"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exclude": ["node_modules", "dist"]
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "name-nacing-system",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "vite build",
|
||||||
|
"preview": "vite preview"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"axios": "^1.7.7",
|
||||||
|
"element-plus": "^2.8.4",
|
||||||
|
"element-ui": "^2.15.14",
|
||||||
|
"vue": "^3.4.29",
|
||||||
|
"vue-router": "^4.3.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
|
"vite": "^5.3.1"
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,26 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<router-view/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/* 让页面铺满整个屏幕,不出现滚动条 */
|
||||||
|
html,
|
||||||
|
body,
|
||||||
|
#app {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Layout",
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
@ -0,0 +1,121 @@
|
|||||||
|
.login-register-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100vh;
|
||||||
|
background-image: linear-gradient(to right, rgb(219, 219, 245), #f4dfe3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-box {
|
||||||
|
background: rgba(211, 197, 252, 1);
|
||||||
|
padding: 100px 110px;
|
||||||
|
padding-top: 15px;
|
||||||
|
border-radius: 40px;
|
||||||
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
|
||||||
|
width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
font-size: 45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-switch {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-switch span {
|
||||||
|
margin-right: 25px;
|
||||||
|
font-size: 22px;
|
||||||
|
padding: 3px 7px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-switch span.active {
|
||||||
|
border-bottom: 4px solid #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-group {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 0px;
|
||||||
|
border-radius: 20px;
|
||||||
|
box-shadow: 0px 0px 10px 0px #D5E8FF;
|
||||||
|
background-color: rgba(243, 243, 243, 0.5);
|
||||||
|
border: 1px solid #FFFFFF;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
.input-group input:focus {
|
||||||
|
outline: none;
|
||||||
|
/* box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.5); */
|
||||||
|
}
|
||||||
|
.input-icon {
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
margin-left: 15px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.placeholder {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
flex: 1;
|
||||||
|
height: 100%;
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
padding: 0 10px;
|
||||||
|
color: #615EF8;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forgot-password {
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forgot-password a {
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn {
|
||||||
|
width: 100%;
|
||||||
|
padding: 12px 0;
|
||||||
|
margin-top: 15px;
|
||||||
|
background-color: #8755F2;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s;
|
||||||
|
box-shadow: 0px 0px 10px 0px #D5E8FF;
|
||||||
|
border: 1px solid #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn:hover {
|
||||||
|
background-color: #6231F5;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 隐藏默认的密码切换图标 */
|
||||||
|
input[type="password"]::-ms-reveal,
|
||||||
|
input[type="password"]::-ms-clear,
|
||||||
|
input[type="password"]::-webkit-contacts-auto-fill-button,
|
||||||
|
input[type="password"]::-webkit-credentials-auto-fill-button {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 对于Chrome浏览器 */
|
||||||
|
input[type="password"]::-webkit-inner-spin-button,
|
||||||
|
input[type="password"]::-webkit-outer-spin-button,
|
||||||
|
input[type="password"]::-webkit-search-cancel-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
After Width: | Height: | Size: 27 MiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 134 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 3.3 KiB |
@ -0,0 +1,21 @@
|
|||||||
|
// 引入createApp用于创建应用
|
||||||
|
import { createApp } from 'vue'
|
||||||
|
// 引入App.vue文件
|
||||||
|
import App from './App.vue'
|
||||||
|
|
||||||
|
import router from './router'
|
||||||
|
|
||||||
|
import ElementPlus from 'element-plus'
|
||||||
|
import 'element-plus/dist/index.css'
|
||||||
|
|
||||||
|
|
||||||
|
// new Vue({
|
||||||
|
// el: '#app',
|
||||||
|
// render: h => h(App)
|
||||||
|
// });
|
||||||
|
|
||||||
|
const app = createApp(App)
|
||||||
|
|
||||||
|
app.use(router)
|
||||||
|
app.use(ElementPlus)
|
||||||
|
app.mount('#app')
|
@ -0,0 +1,38 @@
|
|||||||
|
import { createRouter, createWebHistory} from 'vue-router'
|
||||||
|
|
||||||
|
// 引入路由组件
|
||||||
|
import login from '@/views/login2.vue'
|
||||||
|
import home from '@/views/home.vue'
|
||||||
|
import importFile from '@/views/importFile.vue'
|
||||||
|
import ruleSetting from '@/views/ruleSetting.vue'
|
||||||
|
|
||||||
|
// 创建路由器
|
||||||
|
const router = createRouter({
|
||||||
|
// 路由器的工作模式
|
||||||
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
|
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
path: '/',
|
||||||
|
// name: 'home',
|
||||||
|
component: login
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'/home',
|
||||||
|
component: home,
|
||||||
|
children:[
|
||||||
|
{
|
||||||
|
path:'importFile',
|
||||||
|
component: importFile
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'ruleSetting',
|
||||||
|
component: ruleSetting
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
export default router
|
@ -0,0 +1,18 @@
|
|||||||
|
// 存储、获取、删除token的文件
|
||||||
|
// 定义 setToken 函数,用于将 token 存储到 localStorage
|
||||||
|
export function setToken(token) {
|
||||||
|
localStorage.setItem('authToken', token);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定义 getToken 函数,用于从 localStorage 获取 token
|
||||||
|
export function getToken() {
|
||||||
|
return localStorage.getItem('authToken');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定义 removeToken 函数,用于从 localStorage 删除 token
|
||||||
|
export function removeToken() {
|
||||||
|
localStorage.removeItem('authToken');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
<template>
|
||||||
|
<div class="home">
|
||||||
|
<div class="content">
|
||||||
|
<!-- 展示区 -->
|
||||||
|
<div class="leftIcon">
|
||||||
|
<RouterView></RouterView>
|
||||||
|
</div>
|
||||||
|
<!-- 导航栏 -->
|
||||||
|
<div class="select">
|
||||||
|
<div @click="gotoImpt" class="selectItem">
|
||||||
|
导入文件
|
||||||
|
</div>
|
||||||
|
<div class="selectItem">
|
||||||
|
开始点名
|
||||||
|
</div>
|
||||||
|
<div @click="gotoRule" class="selectItem">
|
||||||
|
规则设置
|
||||||
|
</div>
|
||||||
|
<div class="selectItem">
|
||||||
|
查看排行
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { RouterLink, RouterView } from 'vue-router';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
gotoImpt(){
|
||||||
|
this.$router.push('/home/importFile')
|
||||||
|
},
|
||||||
|
gotoRule() {
|
||||||
|
this.$router.push('/home/ruleSetting')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.home {
|
||||||
|
background-image: url('../assets/image/bgcImg.png'); /* 图片路径 */
|
||||||
|
width:100%;
|
||||||
|
height:100%;
|
||||||
|
position:fixed;
|
||||||
|
background-size:100% 100%;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
height:100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 120px;
|
||||||
|
}
|
||||||
|
.leftIcon {
|
||||||
|
width: 700px;
|
||||||
|
height: 800px;
|
||||||
|
/* background-color: red; */
|
||||||
|
}
|
||||||
|
.selectItem {
|
||||||
|
padding: 25px 130px;
|
||||||
|
border-radius: 50px;
|
||||||
|
background-color: #A182FF;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 35px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 65px;
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.selectItem:hover {
|
||||||
|
background-color: #6231F5;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,16 @@
|
|||||||
|
import { fileURLToPath, URL } from 'node:url'
|
||||||
|
|
||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [
|
||||||
|
vue(),
|
||||||
|
],
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
@ -1,15 +0,0 @@
|
|||||||
package com.example.attendance.entity;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Data
|
|
||||||
public class RollCallSettings {
|
|
||||||
private boolean isRollCall; // 点名(true)或提问(false)
|
|
||||||
private boolean triggerRandomEvent; // 是否触发随机事件
|
|
||||||
private boolean wheelOfFortune; // 是否开启命运轮盘
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package com.example.attendance;
|
|
@ -1,13 +0,0 @@
|
|||||||
package com.example.attendance;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
@SpringBootTest
|
|
||||||
class AttendanceApplicationTests {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void contextLoads() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,117 +0,0 @@
|
|||||||
package com.example.attendance;
|
|
||||||
|
|
||||||
import com.example.attendance.entity.RollCallResponse;
|
|
||||||
import com.example.attendance.entity.RollCallSettings;
|
|
||||||
import com.example.attendance.entity.Student;
|
|
||||||
import com.example.attendance.service.impl.RollCallServiceImpl;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.mockito.InjectMocks;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
class RollCallServiceImplTest {
|
|
||||||
|
|
||||||
@InjectMocks
|
|
||||||
private RollCallServiceImpl rollCallService;
|
|
||||||
|
|
||||||
private List<Student> students;
|
|
||||||
private RollCallSettings settings;
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
void setUp() {
|
|
||||||
MockitoAnnotations.openMocks(this);
|
|
||||||
|
|
||||||
// 模拟学生列表
|
|
||||||
students = Arrays.asList(
|
|
||||||
createStudent("1", "Alice", 50),
|
|
||||||
createStudent("2", "Bob", 90),
|
|
||||||
createStudent("3", "Charlie", 30)
|
|
||||||
);
|
|
||||||
|
|
||||||
// 初始化点名设置
|
|
||||||
settings = new RollCallSettings();
|
|
||||||
settings.setRollCall(true);
|
|
||||||
settings.setTriggerRandomEvent(false);
|
|
||||||
settings.setWheelOfFortune(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 测试正常点名模式
|
|
||||||
@Test
|
|
||||||
void testStartRollCall_NormalMode() {
|
|
||||||
RollCallResponse response = rollCallService.startRollCall(students, settings);
|
|
||||||
|
|
||||||
// 控制台输出
|
|
||||||
System.out.println("Test: Normal Mode");
|
|
||||||
System.out.println("Student ID: " + response.getStudentId());
|
|
||||||
System.out.println("Message: " + response.getMessage());
|
|
||||||
|
|
||||||
assertNotNull(response);
|
|
||||||
assertNotNull(response.getStudentId());
|
|
||||||
assertTrue(response.getMessage().contains("没有触发随机事件"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 测试提问模式
|
|
||||||
@Test
|
|
||||||
void testStartRollCall_QuestionMode() {
|
|
||||||
settings.setRollCall(false); // 设置为提问模式
|
|
||||||
RollCallResponse response = rollCallService.startRollCall(students, settings);
|
|
||||||
|
|
||||||
// 控制台输出
|
|
||||||
System.out.println("Test: Question Mode");
|
|
||||||
System.out.println("Student ID: " + response.getStudentId());
|
|
||||||
System.out.println("Message: " + response.getMessage());
|
|
||||||
|
|
||||||
assertNotNull(response);
|
|
||||||
assertNotNull(response.getStudentId());
|
|
||||||
assertTrue(response.getMessage().contains("没有触发随机事件"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 测试命运轮盘模式
|
|
||||||
@Test
|
|
||||||
void testStartRollCall_WheelOfFortune() {
|
|
||||||
settings.setWheelOfFortune(true); // 开启命运轮盘
|
|
||||||
|
|
||||||
RollCallResponse response = rollCallService.startRollCall(students, settings);
|
|
||||||
|
|
||||||
// 控制台输出
|
|
||||||
System.out.println("Test: Wheel of Fortune Mode");
|
|
||||||
System.out.println("Student ID: " + response.getStudentId());
|
|
||||||
System.out.println("Message: " + response.getMessage());
|
|
||||||
|
|
||||||
assertNotNull(response);
|
|
||||||
assertNotNull(response.getStudentId());
|
|
||||||
assertTrue(response.getMessage().contains("命运轮盘"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 测试触发随机事件
|
|
||||||
@Test
|
|
||||||
void testStartRollCall_TriggerRandomEvent() {
|
|
||||||
settings.setTriggerRandomEvent(true); // 触发随机事件
|
|
||||||
|
|
||||||
RollCallResponse response = rollCallService.startRollCall(students, settings);
|
|
||||||
|
|
||||||
// 控制台输出
|
|
||||||
System.out.println("Test: Random Event Triggered");
|
|
||||||
System.out.println("Student ID: " + response.getStudentId());
|
|
||||||
System.out.println("Message: " + response.getMessage());
|
|
||||||
|
|
||||||
assertNotNull(response);
|
|
||||||
assertNotNull(response.getStudentId());
|
|
||||||
assertTrue(response.getMessage().contains("触发了随机事件"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 辅助方法,创建学生
|
|
||||||
private Student createStudent(String id, String name, int points) {
|
|
||||||
Student student = new Student();
|
|
||||||
student.setStudentNumber(id);
|
|
||||||
student.setName(name);
|
|
||||||
student.setPoints(BigDecimal.valueOf(points));
|
|
||||||
return student;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
spring.application.name=attendance
|
|
||||||
spring.datasource.url=jdbc:mysql://localhost:3306/roll_call_system
|
|
||||||
spring.datasource.username=root
|
|
||||||
spring.datasource.password=123456789jk
|
|
||||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
artifactId=attendance
|
|
||||||
groupId=com.example
|
|
||||||
version=0.0.1-SNAPSHOT
|
|
@ -1,13 +0,0 @@
|
|||||||
com\example\attendance\entity\RandomEvent.class
|
|
||||||
com\example\attendance\mapper\StudentMapper.class
|
|
||||||
com\example\attendance\AttendanceApplication.class
|
|
||||||
com\example\attendance\entity\RollCallRecord.class
|
|
||||||
com\example\attendance\service\StudentService.class
|
|
||||||
com\example\attendance\entity\Student.class
|
|
||||||
com\example\attendance\dto\RollCallResultDTO.class
|
|
||||||
com\example\attendance\controller\RollCallController.class
|
|
||||||
com\example\attendance\mapper\RollCallRecordMapper.class
|
|
||||||
com\example\attendance\dto\StudentDTO.class
|
|
||||||
com\example\attendance\service\RollCallService.class
|
|
||||||
com\example\attendance\controller\StudentController.class
|
|
||||||
com\example\attendance\mapper\RandomEventMapper.class
|
|
@ -1,24 +0,0 @@
|
|||||||
D:\attendance\src\main\java\com\example\attendance\controller\RollCallController.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\service\StudentService.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\util\JWTUtil.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\entity\RandomEvent.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\service\TeacherService.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\controller\TeacherController.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\dto\StudentExcelDTO.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\service\impl\TeacherServiceImpl.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\dto\RollCallRequestDTO.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\entity\Student.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\service\impl\StudentServiceImpl.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\service\RollCallService.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\config\SecurityConfig.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\dto\StudentDTO.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\entity\Teacher.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\listener\StudentExcelListener.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\entity\RollCallRecord.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\mapper\TeacherMapper.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\mapper\RollCallRecordMapper.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\mapper\StudentMapper.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\controller\StudentController.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\dto\RollCallResultDTO.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\AttendanceApplication.java
|
|
||||||
D:\attendance\src\main\java\com\example\attendance\mapper\RandomEventMapper.java
|
|
@ -1,2 +0,0 @@
|
|||||||
com\example\attendance\AttendanceApplicationTests.class
|
|
||||||
com\example\attendance\StudentServiceTest.class
|
|
@ -1,3 +0,0 @@
|
|||||||
D:\attendance\src\test\java\com\example\attendance\StudentServiceTest.java
|
|
||||||
D:\attendance\src\test\java\com\example\attendance\AttendanceApplicationTests.java
|
|
||||||
D:\attendance\src\test\java\com\example\attendance\RollCallServiceTest.java
|
|
@ -1,5 +0,0 @@
|
|||||||
# Created at 2024-09-16T22:12:25.978
|
|
||||||
Boot Manifest-JAR contains absolute paths in classpath 'D:\attendance\target\test-classes'
|
|
||||||
Hint: <argLine>-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
|
|
||||||
'other' has different root
|
|
||||||
|
|