第十一章 学生系统

提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正。


文章目录

  • 第十一章 学生系统
  • 前言
  • 一、学生登录
  • 二、个人详情
  • 三、在线选宿舍
  • 四、缺勤查询
    • 1.缺勤查询
  • 五、报修申请
  • 六、公告查询
  • 总结

前言

这一章将介绍如何实现学生系统


一、学生登录

在数据库中写入数据

在StudentMapper.xml中添加学生登录的sql语句

在StudentMapper接口中添加login方法

在StudentService中添加login方法

改进LoginController中的login方法

改进TokenInterceptor中的preHandle方法

改进MenuController中的query方法

二、个人详情

创建前端包结构stu

info页面

<div class="layuimini-main"><div class="layui-form layuimini-form"><div class="layui-form-item"><label class="layui-form-label">年级</label><div class="layui-input-block"><input type="text" readonly id="gradeId"  class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">班级</label><div class="layui-input-block"><input type="text" readonly id="clazzId"  class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">学号</label><div class="layui-input-block"><input type="text" readonly id="stuNo"  class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">姓名</label><div class="layui-input-block"><input type="text" readonly id="name" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">身份证号</label><div class="layui-input-block"><input type="text" readonly id="idcard"  class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">性别</label><div class="layui-input-block"><input type="text" readonly id="sex"  class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">手机号码</label><div class="layui-input-block"><input type="text" readonly id="phone"  class="layui-input"></div></div></div>
</div>
<script>layui.use(['form', 'table','axios'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,$ = layui.$;axios.get('stu/info',{}).then(function (response) {$('#stuNo').val(response.data.stuNo);$('#name').val(response.data.name);$('#idcard').val(response.data.idcard);$('#gradeId').val(response.data.grade.name);$('#clazzId').val(response.data.org.name);$('#sex').val(response.data.sex==0?"女":"男");$('#phone').val(response.data.phone);})});
</script>

创建StuController

三、在线选宿舍

在tb_dormitory中添加version字段

在DormitoryStudentMapper.xml中添加根据学生id和宿舍id删除的sql语句

在DormitoryStudentMapper接口中添加对应的方法

改正代码生成器产生的小纰漏并添加version

在Dormitory中添加属性version以及对应的set/get方法

在DormitoryStudentService中添加select_dormitory_submit方法

改进DormitoryService中的detail方法

在DormitoryApplication中的DormitoryApplication方法上添加注解@Enable

在SelectionMapper.xml中添加根据班级id查询的sql语句

在SelectionMapper接口中添加对应的方法

在SelectionService中添加对应的方法

在StuController中添加select_dormitory方法和select_dormitory_submit方法

select页面

<div class="layuimini-main"><div class="layui-form layuimini-form"><ul class="dormitory"></ul></div>
</div>
<style>.dormitory{height: 800px;}.dormitory>li{width: 100%;clear: both;margin-bottom: 5px;}.dormitory>li>p{height: 40px;background-color: #f8f8f8;line-height: 40px;font-size: 15px;cursor: pointer;padding-left: 10px;border: 1px solid #dddddd;border-radius: 4px;}.dormitory>li>p>span{float: right;margin-right: 10px;}.dormitory>li>p>span>button{cursor: pointer;color: #00998b;background: transparent;border: 0px;font-size: 20px;}.bed{display: none;}.bed li{float: left;width: 130px;height: 130px;border:1px solid #f0f0f0;margin: 10px;text-align: center;color: #999999;}.bed li:hover{background-color: #f0f0f0;}.bed li i{font-size: 20px;cursor: pointer;}.bed li i:hover{color: #00998b;font-size: 20px;cursor: pointer;}
</style>
<script>layui.use(['form', 'table','axios'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,$ = layui.$;function loadDormitory(){axios.get('stu/select_dormitory',{}).then(function (response) {$('.dormitory').empty();if(response.data.length == 0){$('.dormitory').append("暂不能选择宿舍!请联系管理员");return;}response.data.forEach(item=>{let html =`<li><p key="${item.id}">${item.buildingName}-${item.no}<span>容量:${item.capacity}入住数量:${item.selected}</span></p><ul class="bed"><li></li><li></li><li></li></ul></li>`;let htmlObj = $(html);htmlObj.find('p').click(function () {$(this).siblings().toggle(200);loadBed($(this).attr("key"),$(this).siblings(),item.studentList);});htmlObj.find('p').trigger('click');htmlObj.find('.dormitory-delete').click(function (event) {event.stopPropagation();layer.confirm("确定要删除吗?",function (index) {let ids = htmlObj.find('p').attr("key");axios.get('dormitory/delete?ids='+ids).then(function (response) {layer.msg(response.msg)htmlObj.remove();layer.close(index);}).catch();})});$('.dormitory').append(htmlObj);});})}loadDormitory();function loadBed(dormitoryId,objbed,studentList){axios.post('bed/query',{"dormitoryId":dormitoryId}).then(function (response) {objbed.empty();if(response.data.length==0){objbed.append('暂无床位信息');}let bedIdArray = studentList.map(v=>v.bedId);console.log(bedIdArray);response.data.forEach(item=>{let html;if(bedIdArray.some(v=>item.id == v)){html = `<li key="${item.id}"><img src="../images/bed2.png"><p>床位:${item.bno}</p><p>已占用</p><p><input type="checkbox" checked disabled lay-skin="primary"></p></li>`;}else{html = `<li key="${item.id}"><img src="../images/bed.png"><p>床位:${item.bno}</p><p>&nbsp;</p><p><input type="checkbox" lay-filter="bedxx" bedId = "${item.id}" dormitoryId="${dormitoryId}"  lay-skin="primary"></p></li>`;}htmlObj = $(html);form.render();htmlObj.find('.bed-delete').click(function (event) {event.stopPropagation();layer.confirm("确定要删除床位吗?",function (index) {axios.get('bed/delete?ids='+htmlObj.attr("key")).then(function (response) {htmlObj.remove();layer.msg(response.msg)layer.close(index);}).catch();})});objbed.append(htmlObj);});}).catch(function (error) {layer.msg(error);});}form.on('checkbox(bedxx)', function(data){let _dormitoryId = $(data.elem).attr("dormitoryId");let _bedId = $(data.elem).attr("bedId");axios.post('stu/select_dormitory_submit',{dormitoryId:_dormitoryId,bedId:_bedId}).then(function (response) {layer.msg(response.msg)loadDormitory();}).catch(function (error) {layer.msg(error)loadDormitory();})})});
</script>

四、缺勤查询

1.缺勤查询

absence页面

<div class="layuimini-container layuimini-page-anim"><div class="layuimini-main"><table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table></div>
</div><script>layui.use(['form', 'table','miniPage','miniAdmin','form','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,form = layui.form,table.render({elem: '#currentTableId',method:'post',url: 'stu/absence',toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print'],cols: [[{type: "checkbox", width: 50},{field: 'id', width: 80, title: 'ID'},{field: 'studentId',title: '姓名',templet:'<div>{{d.student.name}}</div>'},{field: 'dormitoryId',title: '宿舍',templet:'<div>{{d.dormitory.no}}</div>'},{field: 'startTime',title: '开始时间'},{field: 'endTime',title: '结束时间'},{field: 'remark',title: '备注'}]],page: true,skin: 'line'});window.reload = function(){table.reload('currentTableId');}// 监听搜索操作form.on('submit(data-search-btn)', function (data) {var result = JSON.stringify(data.field);//执行搜索重载table.reload('currentTableId', {where: data.field}, 'data');return false;});});
</script>

在StuController中添加absence方法

五、报修申请

repair页面

<div class="layuimini-container layuimini-page-anim"><div class="layuimini-main"><div style="margin: 10px 10px 10px 10px"><form class="layui-form layui-form-pane" action=""><div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">姓名</label><div class="layui-input-inline"><input type="text" name="name" autocomplete="off" class="layui-input"></div></div><div class="layui-inline"><button type="submit" class="layui-btn layui-btn-primary"  lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button></div></div></form></div><script type="text/html" id="toolbarDemo"><div class="layui-btn-container"><button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"><i class="layui-icon layui-icon-add-circle"></i>新增</button><button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"><i class="layui-icon layui-icon-delete"></i>删除</button></div></script><table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table></div>
</div><script>layui.use(['form', 'table','miniPage','miniAdmin','form','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,axios = layui.axios,form = layui.form,miniAdmin = layui.miniAdmin,miniPage = layui.miniPage;table.render({elem: '#currentTableId',method:'post',url: 'repair/query',toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print'],cols: [[{type: "checkbox", width: 50},{field: 'id', width: 80, title: 'ID'},{field: 'studentId',title: '姓名',templet:'<div>{{d.student.name}}</div>'},{field: 'dormitoryId',title: '宿舍',templet:'<div>{{d.dormitory.no}}</div>'},{field: 'buildingId',title: '楼宇',templet:'<div>{{d.building.name}}</div>'},{field: 'description',title: '报修描述'},{field: 'createDate',title: '申请时间'},{field: 'status',title: '状态',templet: function (row) {if(row.status == 0){return '<span class="layui-badge layui-bg-orange">待解决</span>';}else{return '<span class="layui-badge layui-bg-green">已解决</span>';}}}]],page: true,skin: 'line'});window.reload = function(){table.reload('currentTableId');}// 监听搜索操作form.on('submit(data-search-btn)', function (data) {var result = JSON.stringify(data.field);//执行搜索重载table.reload('currentTableId', {where: data.field}, 'data');return false;});/*** toolbar事件监听*/table.on('toolbar(currentTableFilter)', function (obj) {if (obj.event === 'add') {  //修改操作let content = miniPage.getHrefContent('stu/absence_add.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '添加',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});$(window).on("resize", function () {layer.full(index);});}else if (obj.event === 'delete') { //删除操作let data = table.checkStatus('currentTableId').data;if(data.length==0){layer.msg("请选择要删除的数据");}else{layer.confirm('真的删除行吗', function (index) {//异步删除 map\filter\some\everylet arr = data.map(item=>item.id);axios.get('repair/delete?ids='+arr.join(",")).then(function (response) {table.reload('currentTableId');layer.msg(response.msg);}).catch(function (error) {layer.msg(error);});layer.close(index);});}}});function setFormValue(data){form.val("updateForm",{id:data.id,dormitoryId:data.dormitoryId,startTime:data.startTime,endTime:data.endTime,remark:data.remark,})}});
</script>

在StuController中添加repair_create方法

absence_add页面

<div class="layuimini-main"><div class="layui-form layuimini-form"><div class="layui-form-item layui-form-text"><label class="layui-form-label">报修描述</label><div class="layui-input-block"><textarea name="description" class="layui-textarea" placeholder="请输入报修描述"></textarea></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button></div></div></div>
</div><script>layui.use(['form', 'table','axios','ztree','laydate'], function () {let form = layui.form,layer = layui.layer,ztree = layui.ztree,laydate = layui.laydate,axios = layui.axios,$ = layui.$;// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;//监听提交form.on('submit(saveBtn)', function (data) {axios.post('stu/repair_create',data.field).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}layer.close(parentIndex);}).catch(function (error) {layer.msg(error);});return false;});});
</script>

六、公告查询

在StuController中添加notice_query方法

notice页面

<div class="layuimini-container layuimini-page-anim"><div class="layuimini-main"><table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table></div>
</div><script>layui.use(['form', 'table','miniPage','miniAdmin','form','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,form = layui.form;table.render({elem: '#currentTableId',method:'post',url: 'stu/notice_query',toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print'],cols: [[{field: 'id', width: 80, title: 'ID'},{field: 'title',title: '标题'},{field: 'content',title: '内容'},{field: 'userId',title: '发布者',templet:'<div>{{d.user.name}}</div>'},{field: 'createTime',title: '发布时间'},]],page: true,skin: 'line'});window.reload = function(){table.reload('currentTableId');}});
</script>

总结

最终章预计明天更新,将完成主页以及对本项目进行总结

【高校宿舍管理系统】第十一章 学生系统相关推荐

  1. java计算机毕业设计高校宿舍管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计高校宿舍管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计高校宿舍管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  2. 【高校宿舍管理系统】终章 完成主页以及项目总结

    终章 完成主页以及项目总结 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 终章 完成主页以及项目总结 前言 一.完成主页 1. ...

  3. 【高校宿舍管理系统】第八章 学生管理和楼宇管理以及寝室管理

    第八章 学生管理和楼宇管理以及宿舍管理 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第八章 学生管理和楼宇管理以及宿舍管理 ...

  4. 【高校宿舍管理系统】第九章 寝室编号设置和宿舍初始化以及预选设置

    第九章 寝室编号设置和宿舍初始化以及预选设置 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第九章 寝室编号设置和宿舍初始化以 ...

  5. 【高校宿舍管理系统】第一章 建立数据库以及项目框架搭建

    第一章 建立数据库以及项目框架搭建 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第一章 建立数据库以及项目框架搭建 前言 一 ...

  6. 【高校宿舍管理系统】第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码

    第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正 ...

  7. 【计算机毕业文章】基于SSM的高校宿舍管理系统的设计与实现

    摘 要 近年来, 伴随着互联网产业的快速发展和大力推广,"数字化"."信息化"为关键字的校园建设已经成为了各大院校发展的共同课题.宿舍是在大学校园里面学习和生活 ...

  8. 高校宿舍管理系统详细需求分析说明书

    (详细)高校宿舍管理系统需求分析说明书(文末-->获取原文档)   版本状态   版本 作者 参与者 起止日期 注释 审阅者 团队 版本 日期 签名 教学管理委员会 V1.1 2019.06.1 ...

  9. 【毕业设计】大学宿舍管理系统高校宿舍管理系统

    基于Springboot的大学宿舍管理系统&&高校宿舍管理系统 绪论 课题主要内容 系统建设目标 系统采用 B/S 架构,后端基于 Java 语言和 SpringBoot 框架的方式进 ...

最新文章

  1. ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建
  2. leetcode 520. 检测大写字母(Java版)
  3. 洛谷P1801 黑匣子 双堆套路的使用
  4. matlab的概述,Matlab概述
  5. 【线段树】Segment Tree
  6. 人称代词和Be动词的现在简单肯定式_1
  7. Prism发布了第一个版本+Entlib3.1在VS2008下工作的解决方案
  8. linux修改mysql配置文件_CentOS7离线安装 mysql,超细步骤,基础配置,90%小白10分钟学会...
  9. Centos7.2 / Linux的下搭建LAMP环境的搭建和配置虚拟主机
  10. 分享大学生关于创新创业的想法,包括外卖私人订制化,网购衣服3D化远程试衣,睡眠耳机开发等等创新创业想法。
  11. 命令行导入mysql数据库
  12. UDP/TCP实时传输图像
  13. 什么蓝牙耳机颜值高?盘点四款高颜值蓝牙耳机
  14. it is forbidden to set both [discovery.seed_hosts] and [discovery.zen.ping.unicast.hosts]
  15. win10打开程序不弹出窗口,只在任务栏显示
  16. 20162316刘诚昊 第七周学习报告
  17. PDAL:OSGeo4W安装配置测试PDAL
  18. Node微服务之Seneca的使用
  19. Android程序员如何高薪接私活?十年老炮告诉你,看这一篇就够了
  20. iis(虚拟服务器),iis虚拟主机控制面板(虚拟主机专用控制面板)

热门文章

  1. Java中如何判断一个字符串是否为数字
  2. Manifold learning-based methods for analyzing single-cell RNA-sequencing data
  3. Android OpenGL ES 应用(二) 纹理
  4. 《神经网络和深度学习》系列文章五:用简单的网络结构解决手写数字识别
  5. poj3264Balanced Lineup(RMQ)
  6. 在delphi中嵌入腳本語言--(譯)RemObjects Pascal Script使用說明(1)(譯)
  7. SQL中sa 用户不能连接解决方案
  8. java 蓝桥杯 乘法次数(题解)
  9. c++ 线程池_JAVA并发编程:线程池ThreadPoolExecutor源码分析
  10. android 混合现实,基于Android的增强现实客户端的设计与实现