3.14 管理-班级-学生换班

学生换班是把学生从一个班划分到另一个班级的操作,分为是否保留在原来班级,如果保留,那么该学生同时处于两个班,例如21软件1班以及21java方向1班。
管理页面进入班级管理,然后点击学生换班。
首先是选择班级,首先发起一个Get请求/getValidClasses,无需额外的参数,返回的json如下:
{
    "code""200",
    "info": null,
    "data": [
        {
            "valid""1",
            "teacherId""abc",
            "major""普通",
            "studentNumber": 237,
            "grade""0",
            "name""普通",
            "id""27",
            "oriented""无",
            "courseId""1",
            "createDate""2020-03-07 22:45:04"
        },
        {
            "valid""1",
            "teacherId""abc",
            "major""1",
            "studentNumber": 3,
            "grade""0",
            "name""教师",
            "id""28",
            "oriented""1",
            "courseId""1",
            "createDate""2020-02-27 11:11:52"
        },
        //剩余的班级数据省略...
]
如果一切正常,那么下拉框就会出现可用班级,选择班级后,会发起一个post请求/getClassStudent,请求参数为classId,后台需要根据这个班级id,把所有学生都找出来(查询user_class表),json如下:
{
    "code""200",
    "info": null,
    "data": [
        {
            "latestLogin""2025-06-12 14:37:34",
            "nickname""java",
            "loginTimes": 6730,
            "username""abc",
            "createDate""2020-09-16 16:44:32"
        },
        {
            "latestLogin""2025-06-05 08:58:21",
            "nickname""刘军军",
            "loginTimes": 42,
            "username""liujunjun",
            "createDate""2019-03-02 11:12:32"
        },
        //剩余的数据省略...
]
其中nickname、username、createDate都来自user表
latestLogin表示最近的一次登录时间,来自user_login表
loginTimes表示所有登录次数,通过查询user_login表得到

user_login表是记录用户登录的一个表,该表格的必填字段有:
id:主键
ip:登录者ip地址
login_datetime:登录时间

最后选择要转移的学生,点击底部的“移动”按钮,就会发起一个post请求/moveToClass,它包含四个参数:
1.studentIds。要转移的学生id,由于可以多选,这里是以逗号分隔的多个学生账号,例如23008,2223210242
2.toClassId。要转移的目的地班级id
3.currentClassId。当前班级id
4.stay。是否保留在本班,如果保留的话(下方有选择框可以勾选),那么此值为true

转移成功后返回的json:
{"code":"200","info":"成功","data":null}