diff --git a/app/views.py b/app/views.py index 16d83b6..45267ba 100644 --- a/app/views.py +++ b/app/views.py @@ -1,7 +1,9 @@ -from flask import Flask, request, redirect, url_for, render_template, session, jsonify +from flask import Flask, redirect, url_for, render_template, session, jsonify from db.connection import MySQLPool from config import SECRET_KEY from db.database_manager import DatabaseManager +from models.Student import Student +from models.Teacher import Teacher from models.User import User app = Flask(__name__, static_folder='static') @@ -24,17 +26,29 @@ def index(): def register(): if request.method == 'POST': data = request.get_json() - # print(data) + print(data) user = User( - nickname=data.get('nickname'), - phone_number=data.get('cellphone'), # 确保JSON中的键和这里匹配 - password=data.get('password'), - identity=data.get('identity'), - status=True # 或者根据你的逻辑设置 + name=data.get('name'), + number=data.get('number'), + password=data.get('password'), # 确保密码安全处理 + status=True ) + identity = check_identity(user.number) db_manager = DatabaseManager() - if not db_manager.user_exists(user.phone_number): + if not db_manager.user_exists(user.number): db_manager.insert_user(user) + user_id = db_manager.query_user_id(user.number) + if identity == "teacher": + teacher = Teacher(name=user.name, teacher_number=user.number, user_id=user_id) + db_manager.insert_teacher(teacher) + else: # assumed student + class_name = user.number[1:5] + "级" + user.number[5:7] + "班" + major_id = user.number[7:10] + student = Student(student_name=user.name, student_number=user.number, user_id=user_id, + major_id=major_id, + class_name=class_name) + print(student) + db_manager.insert_student(student) return jsonify({"success": True, "message": "注册成功"}) else: return jsonify({"success": False, "message": "用户已存在"}) @@ -42,23 +56,36 @@ def register(): return render_template('register.html') +def check_identity(number): + identity = None + if number[0] == 'G': + identity = "teacher" + return identity + else: + identity = "student" + return identity + + @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'GET': return render_template('login.html') else: - phone_number = request.form['username'] + print(request.form) + number = request.form['number'] password = request.form['password'] + print(number, password) db_manager = DatabaseManager() - result = db_manager.valid_login(phone_number, password) # 获取验证结果 + result = db_manager.valid_login(number, password) # 获取验证结果 # 确保用户已验证且活跃(未被禁用) if result['valid'] and result['status'] == 1: # 登录成功 - session['username'] = phone_number - session['role'] = result['identity'] # 设置用户角色 - session['nickname'] = result['nickname'] + session['username'] = number + session['role'] = check_identity(number) + print(session['role']) + session['name'] = result['name'] return jsonify(success=True, message="登录成功") elif not result['status']: # 用户被禁用的情况 @@ -154,6 +181,14 @@ def get_course_type(): return jsonify(course_info) +@app.route('/api/get-announcement-info', methods=['GET']) +def get_announcement_info(): + db_manager = DatabaseManager() + announcement_info = db_manager.get_announcement_info() + + return jsonify(course_info) + + @app.route('/attendance', methods=['GET', 'POST']) def course_checkin(): return render_template('attendance.html')