Compare commits
4 Commits
dc66080c22
...
964332cf44
| Author | SHA1 | Date |
|---|---|---|
|
|
964332cf44 | |
|
|
b5b5e92b73 | |
|
|
f59b43c99e | |
|
|
68a126cb8b |
|
|
@ -64,14 +64,16 @@
|
|||
<script src="/static/js/logout.js"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
let courseData = {};
|
||||
// 获取课程名称或状态
|
||||
$.get("/api/get-course-name", function (response) {
|
||||
|
||||
if (response.msg === "ok") {
|
||||
// 如果后端返回课程名
|
||||
$("#course-info").text("课程:" + response.data.course_name +" 在上课时间内,请及时签到");
|
||||
$("#course-info").text("课程:" + response.data.course_name + "。在上课时间内,请及时签到!");
|
||||
// 启用签到按钮
|
||||
$("#sign-in-btn").prop('disabled', false);
|
||||
courseData = response.data;
|
||||
} else {
|
||||
// 根据不同的消息更新状态
|
||||
$("#course-info").text(response.msg); // 显示没有课程的消息
|
||||
|
|
@ -84,16 +86,16 @@
|
|||
$("#sign-in-btn").click(function () {
|
||||
if (!$(this).prop('disabled')) {
|
||||
// 发送签到请求到后端
|
||||
$.post("/api/student-sign-in", function (response) {
|
||||
$.post("/api/student-sign-in",courseData,function (response) {
|
||||
// 处理签到后的响应
|
||||
if (response.success) {
|
||||
if (response.msg === 'ok') {
|
||||
layer.msg('签到成功!');
|
||||
} else {
|
||||
layer.msg("签到失败!");
|
||||
layer.msg(response.data);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
alert("当前不可签到"); // Or handle disabled button click as needed
|
||||
layer.msg("当前不可签到"); // Or handle disabled button click as needed
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
24
app/views.py
24
app/views.py
|
|
@ -1,6 +1,4 @@
|
|||
import datetime
|
||||
import os
|
||||
|
||||
import openpyxl as openpyxl
|
||||
from flask import Flask, redirect, url_for, render_template, session, jsonify, request, send_file
|
||||
from utils.time_utils import check_now_time
|
||||
|
|
@ -14,6 +12,7 @@ from models.User import User
|
|||
import logging
|
||||
from config import LOGGING_CONFIG
|
||||
from config import FILE_PATH
|
||||
from datetime import datetime
|
||||
|
||||
app = Flask(__name__, static_folder='static')
|
||||
app.secret_key = SECRET_KEY # 从配置文件设置
|
||||
|
|
@ -294,7 +293,7 @@ def receive_excel():
|
|||
|
||||
@app.route('/api/get-course-name', methods=['GET'])
|
||||
def get_course_name():
|
||||
data = {'course_name': "信息技术"}
|
||||
data = {'course_name': "信息技术", "course_id": 1}
|
||||
return jsonify({
|
||||
'msg': 'ok',
|
||||
'data': data
|
||||
|
|
@ -324,9 +323,8 @@ def get_course_name():
|
|||
# 如果是工作日,获取课程信息
|
||||
print(f"day of week: {day_of_week}")
|
||||
db_manager = DatabaseManager()
|
||||
data = db_manager.get_course_name(number, day_of_week)
|
||||
data = db_manager.get_course_name(number, day_of_week, period_id)
|
||||
print(data)
|
||||
|
||||
# 返回课程信息
|
||||
return jsonify({
|
||||
'msg': 'ok',
|
||||
|
|
@ -337,8 +335,20 @@ def get_course_name():
|
|||
@app.route('/api/student-sign-in', methods=['POST'])
|
||||
def student_sign_in():
|
||||
number = session.get("number")
|
||||
print(number)
|
||||
return "aaa"
|
||||
course_name = request.form.get('course_name')
|
||||
course_id = request.form.get('course_id')
|
||||
now = datetime.now()
|
||||
date = now.strftime("%Y年%m月%d日%H:%M")
|
||||
status = "出勤"
|
||||
print(f"number: {number},course_name: {course_name},course_id: {course_id}")
|
||||
db_manager = DatabaseManager()
|
||||
result = db_manager.update_sign_in_info(number, course_id, course_name, date, status)
|
||||
|
||||
if result == 1:
|
||||
return jsonify({"msg": "ok", "data": "签到成功!"})
|
||||
else:
|
||||
return jsonify({"msg": "fail", "data": "签到失败!"})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
|
|
|
|||
|
|
@ -125,21 +125,26 @@ WHERE
|
|||
data = (student.student_name, student.student_number, student.user_id, student.major_id, student.class_name)
|
||||
return self.execute(sql, data)
|
||||
|
||||
def get_course_name(self, student_number, day_of_week):
|
||||
def get_course_name(self, student_number, day_of_week, period_id):
|
||||
# 从student表获取class_name
|
||||
sql_student = "SELECT class_name FROM student WHERE student_number = %s;"
|
||||
class_name = self.fetch(sql_student, (student_number,))[0]['class_name']
|
||||
|
||||
# 使用class_name和day_of_week从schedule表获取course_id
|
||||
sql_schedule = "SELECT course_id, FROM schedule WHERE day_of_week = %s AND class_name = %s;"
|
||||
course_id_list = self.fetch(sql_schedule, (day_of_week, class_name))
|
||||
sql_schedule = "SELECT course_id, FROM schedule WHERE day_of_week = %s AND class_name = %s AND period_id = %s;"
|
||||
course_id = self.fetch(sql_schedule, (day_of_week, class_name, period_id))
|
||||
|
||||
# 对于每一个course_id,从course表中查询course_name
|
||||
course_names = []
|
||||
for course_id in course_id_list:
|
||||
sql_course = "SELECT course_name FROM course WHERE course_id = %s;"
|
||||
course_name = self.fetch(sql_course, (course_id['course_id'],))
|
||||
if course_name:
|
||||
course_names.extend([cn['course_name'] for cn in course_name])
|
||||
sql_course = "SELECT course_name FROM course WHERE course_id = %s;"
|
||||
course_name = self.fetch(sql_course, (course_id['course_id'],))
|
||||
data = {"course_name": course_name, "course_id": course_id}
|
||||
return data
|
||||
|
||||
return course_names
|
||||
def update_sign_in_info(self, student_number, course_id, course_name, date, status):
|
||||
sql = """
|
||||
INSERT INTO attendance_record (student_number, course_id, course_name, date, status)
|
||||
VALUES (%s, %s, %s, %s, %s)
|
||||
"""
|
||||
val = (student_number, course_id, course_name, date, status)
|
||||
result = self.execute(sql, val)
|
||||
return result
|
||||
|
|
|
|||
12
mysql.sql
12
mysql.sql
|
|
@ -80,15 +80,14 @@ VALUES ('大学计算机基础', 'CF001', '必修', 3, '介绍计算机基础知
|
|||
('计算机网络', 'CN002', '必修', 4, '学习计算机网络的基础理论和协议');
|
||||
|
||||
|
||||
CREATE TABLE attendance_records
|
||||
CREATE TABLE attendance_record
|
||||
(
|
||||
record_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
student_number VARCHAR(20) NOT NULL,
|
||||
course_id INT NOT NULL,
|
||||
student_id INT NOT NULL,
|
||||
date DATE NOT NULL,
|
||||
status ENUM('present', 'absent', 'late', 'excused'),
|
||||
FOREIGN KEY (course_id) REFERENCES course (course_id),
|
||||
FOREIGN KEY (student_id) REFERENCES student (student_id)
|
||||
course_name VARCHAR(255) NOT NULL,
|
||||
date VARCHAR(255) NOT NULL,
|
||||
status VARCHAR(20)
|
||||
);
|
||||
|
||||
|
||||
|
|
@ -246,3 +245,4 @@ VALUES ('一、二节', '08:00:00', '09:30:00'),
|
|||
('三、四节', '10:00:00', '11:30:00'),
|
||||
('五、六节', '14:30:00', '16:00:00'),
|
||||
('七、八节', '16:30:00', '18:00:00');
|
||||
|
||||
|
|
|
|||
Reference in New Issue