# 校园教室管理系统最新 **Repository Path**: jiaton/CM ## Basic Information - **Project Name**: 校园教室管理系统最新 - **Description**: CM:classroom management - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2018-12-04 - **Last Updated**: 2023-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 页面总览 | 页面名称 | 页面路径 | 数据接口 | 负责人| |:--------------|:--------------------| ---------------------:|-------:| |第一屏主页|/index.html里的详细内容 | | 肖琪| |个人资料(可以在首页右上角点击进入)|/personal_area.html |/personal_data.action | 陈凤竹| |教室预约页面 | /classrooms.html |/classrooms.action| 陈凤竹| |我的预约——待审核页面 | /member/list.html |/history_my_waiting.action| 肖琪| |我的预约——已通过页面 | /member/pass.html |/history_my_passed.action| 肖琪| |普通管理员——待审核页面 | /admin/general_waiting.html |/history_general_waiting.action| 汝泽| |普通管理员——已通过页面 | /admin/general_passed.html |/history_general_passed.action| 汝泽| |高级管理员——待审核页面 | /admin/advanced_waiting.html |/history_advanced_waiting.action| 汝泽| |高级管理员——已通过页面 | /admin/advanced_passed.html |/history_advanced_passed.action| 汝泽| |高级管理员——用户管理 | /admin/user_management.html |/users_*.action(*的内容为list/add/del)| 陈淇| |高级管理员——教室管理 | /admin/classroom_management.html |/classrooms_*.action(*的内容为list/add/del)| 陈淇| |高级管理员——数据统计 | /admin/statistic.html || 暂时不用做| ## 接口定义 **大家仿照 “我的预约——待审核页面” 的格式 把自己页面的数据格式定义一下** * 个人资料--/personal_data.action /*获取个人资料*/ * 请求方式:GET ```javascript { "userId": '用户id' } { 'userName': '用户名', 'stuNum': '学号', 'sex': '性别', 'major': '专业', 'phone': '电话号码', 'imgUrl': '用户头像(可为空)' } /*修改密码*/ * 请求方式: GET ```javascript { "userId": '用户id', 'password': '原密码', 'newPassword': '新密码', } { data: '提示信息(成功或失败)' } * 教室预约页面--/classrooms.action * 请求方式:POST ```javascript { date: '预约日期', time: '预约时间段', value: '教室容量', state: '教室状态' } { data: [ //返回可用的教室列表 { classroomId: '教室编号', date: '预约日期', time: '预约时间段', value: '教室容量', state: '教室状态(可用)' }, { classroomId: '教室编号', date: '预约日期', time: '预约时间段', value: '教室容量', state: '教室状态(可用)' } ] } * 请求方式: POST ```javascript { "classroomId": '教室编号', "userId": '用户id', 'reason': '预约理由' } { data: '返回信息(如服务器错误或提交成功请等待管理员审核)' } * 我的预约——待审核页面 /history_my_waiting.action * 请求方式:POST ```json { "user_id":用户id } 根据用户id查询处于待审核状态的记录 { "tabledata" : [{ "apply_id":11111, "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"待审核" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"待审核" }] } ``` * 我的预约——已通过页面 /history_my_passed.action * 请求方式:POST ```js { "user_id":"用户id" } 根据用户id查询已通过审核的记录的记录 { tabledata: [{ "apply_id":11111, "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "pass_time":"2018-12-05 10:10:11" }, { "apply_id":11111, "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "pass_time":"2018-12-08 10:10:11" }] } ``` * 普通管理员——已通过页面 url:/history_general_passed.action * 请求方式:post ```javascript 传入json:{} 后台操作:页面加载,查询所有通过的教室申请 请求json:[{ "classroom_id": "7-4-211", "classroom_address": "7教4楼211教室", "user_id": "16000000", "classroomused_time": "2018-11-01 8:00-12:00", "user_reason": "召开班会" }, { "classroom_id": "12-1-106", "classroom_address": "12教1楼106教室", "user_id": "14050003", "classroomused_time": "2018-11-05 18:00-21:00", "user_reason": "组织活动" }.....] 查询json:{"classroomused_time":"","classroom_Id":"","user_Id":""} 后台操作:根据传入参数查询符合条件的历史教室使用信息 请求json:[{ "classroom_id": "7-4-211", "classroom_address": "7教4楼211教室", "user_id": "16000000", "classroomused_time": "2018-11-01 8:00-12:00", "user_reason": "召开班会" }, { "classroom_id": "12-1-106", "classroom_address": "12教1楼106教室", "user_id": "14050003", "classroomused_time": "2018-11-05 18:00-21:00", "user_reason": "组织活动" }] ``` * 普通管理员--待审核页面 /history_advanced_waiting.action * 请求方式:未知 ```javascript 传入json:{} 后台操作:加载页面,显示所有普通管理员待审核信息 请求json:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] 传入json:{type: 0, passapplyId:" {"0":11111,"1":11111} "} key 为序号 value 为apply_id 后台操作:根据apply_id将指定的申请处理状态修改为!未通过!,查询未处理的教室预约返回。 请求json:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] 传入json:{type: 1, passapplyId: "{"0":11111,"1":11111}"} key为序号value为apply_id 后台操作:根据apply_id将指定的申请处理状态修改为,已通过,查询未处理的教室预约返回. Url:general_waiting.action 请求数据:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] ``` * 高级管理员——待审核页面 /history_advanced_waiting.action * 请求方式:未知 ```javascript 传入json:null 后台操作:加载页面,显示所有高级管理员待审核信息 请求json:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] 传入json:{type: 0, passapplyId:"{"0":11111,"1":11111}"} key为序号 value为apply_id 后台操作:根据apply_id将指定的申请处理状态修改为!未通过!查询未处理的教室预约返回. 请求json:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] 传入json:{type: 1, passapplyId: "{"0":11111,"1":11111}"} key为序号 value为apply_id 后台操作:根据apply_id将指定的申请处理状态修改为 !已通过!查询未处理的教室预约返回。 请求json:[{ "apply_id":11111, "user_id": "17008411", "apply_classroom_id": "6-2-108", "apply_date": "2018-12-03 10:10:11", "user_date": "2018-12-29", "purpose":"模拟考试", "apply_status":"未处理" }, { "apply_id":11111, "user_id": "13016722", "apply_classroom_id": "11-1-306", "apply_date": "2018-12-5 13:56:11", "user_date": "2018-12-15", "purpose":"组织自习", "apply_status":"未处理" }] ``` * 高级管理员——已通过页面 /history_advanced_passed.action * 请求方式:post ```javascript 传入json:{} 后台操作:加载页面,显示所有高级管理员已通过信息 请求json:[{ "classroom_id": "7-4-211", "classroom_address": "7教4楼211教室", "user_id": "16000000", "classroomused_time": "2018-11-01 8:00-12:00", "user_reason": "召开班会" }, { "classroom_id": "12-1-106", "classroom_address": "12教1楼106教室", "user_id": "14050003", "classroomused_time": "2018-11-05 18:00-21:00", "user_reason": "组织活动" }]; 传入数据:{"classroomused_time":"","classroom_Id":"","user_Id":""} 后台操作:根据传入参数查询符合条件的历史教室使用信息 请求数据:var tabledata =[{ "classroom_id": "7-4-211", "classroom_address": "7教4楼211教室", "user_id": "16000000", "classroomused_time": "2018-11-01 8:00-12:00", "user_reason": "召开班会" }, { "classroom_id": "12-1-106", "classroom_address": "12教1楼106教室", "user_id": "14050003", "classroomused_time": "2018-11-05 18:00-21:00", "user_reason": "组织活动" }] ``` * 高级管理员——用户管理 * 请求方式:POST ``` js data:{ "id": 1, "usernumber": 1601, "Realname": "chenqi", "role": "nihao" }, { "id": 2, "usernumber": 1602, "Realname": "zhangliyuan", "role": "niyehao" } data: { "usernumber": usernumber, "Realname": realname, "email": email, "role": userrole_value, "password": password } data: { "usernumber": number } } ``` * 高级管理员——教室管理 * * 请求方式:POST data:{ "classroom_id": "7-4-211", "classroom_address": "7教4楼211教室", "classroom_capacity":"120", "classroom_usedtime": "2018-11-01 8:00-12:00", "used_times": "16" }, { "classroom_id": "7-4-212", "classroom_address": "7教4楼212教室", "classroom_capacity":"120", "classroomused_time": "2018-11-01 8:00-20:00", "used_times": "46" } data: { "classroom_id": "7-4-212", "classroom_address": "7教4楼212教室", "classroom_capacity":"120", "classroomused_time": "2018-11-01 8:00-20:00", "used_times": "46" } data: { "classroom_id": id, }, } * 高级管理员——数据统计 * ## 使用说明 * 有两个前端可选 默认WebContent 若要切换可在idea中设置web resource directory ## 左侧菜单 (这里是以前写的 以上面新加的内容为准) * 个人资料(默认首页):显示用户id 用户名 * 页面名称:index.html * 预约页面: 默认显示可预约教室 和每个教室的可预约时间 * action:/get_classrooms.do * 页面名称:classrooms.html * 查询方法:按空闲时间查询 按教室号查询 action:/search_classrooms.do ,采用post请求 ```javascript { "condition":"time"|"id", "detail":如条件为时间段则为1(上午)| 2(下午)| 3(晚上) 如条件为id则为教室id } ``` * 提交预约请求: action: /reserve.do 采用post请求 ```javascript { "id":教室id, "time":借用时间段 1(上午)| 2(下午) | 3(晚上) } ``` * 我的预约(可展开,展开后有待审核和已通过两个子页面): action: /myhistory.do 采用post请求 * 待审核:myhistory_waiting.html * 已通过: myhistory_passed.html ```javascript { "id":用户id, "condition":"waiting"(待审核) | "passed"(已通过) } ``` * 普通管理界面(可展开): action: general_manage.do * 待审核:general_waiting.html * 已通过: general_passed.html * 高级管理界面(可展开): action: advanced_manage.do * 待审核:advanced_waiting.html * 已通过: advanced_passed.html * 用户管理 * 教室管理 * 数据统计 ## 数据库设计 * 调用存储过程用call,调用函数用select * 返回单一值时是函数,无返回值或返回多个值时是存储过程 * 连接数据库记得try catch finally * 因为编码类型使用的是最多三字节的utf8编码而不是utf8mb4,将不支持emoji和某些罕见字符 * 没有对借的天进行限制(比如只能查询和借七天以内的) * 没有主动对权限进行限制,普通用户也可能调用所有函数 * 密码没有最小长度及其他复杂度限制 ### 用户表 * 属性 属性含义|真实字段名|真实类型|限制|备注 ---|---|---|---|--- 学号|id|char(8)||主键 姓名|name|varchar(8)|最多8个中英文字符 密码|password|varchar(32)|无|此为加盐MD5后的结果,实际密码最多16位 盐|salt|char(4)|最多4个字符|默认'6666' 级别|level|enum('1', '2', '3')|只能是123| 头像|avatar|blob|最大64kb|没有时为null 性别|sex|enum('男', '女', '其他')|只能是男女其他| 专业|major|varchar(16)|最多16个中英文字符|没填时为null 电话|phone|char(11)|最多11个数字|未限制只能为数字 创建时间|createtime|timestamp|最多到2038年|自动生成 * 函数/存储过程 函数作用|返回值|真实函数名称|函数参数|备注 ---|---|---|---|--- 注册|无|register|见[CM.sql](./CM.sql#L54)|