版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录绪论1.1研究背景学生社团是高等学校不可或缺的学生组织。它在锻炼学生能力、提高学生文化修养、激起学生思想上的碰撞、扩大学生们的知识面上有着十分显著的效果。国内许多的大学都拥有着属于自己的成熟的社团管理系统。这不仅能让学校相关部门能迅速收集到学生社团的相关信息,并且能够做到学生与学校管理部门之间的信息的交流通畅无阻。而H学院的学生社团管理工作仍以传统的手工管理为主,存在诸多不便。如社团成员报名表仅以纸质介质保存,不利于数据的分析与利用。虽然学校有大量的学生社团数据,但是该数据只能通过人力进行统计与分析。社团管理人员与学校相关部门之间信息流通困难。社团工作人员工作繁重,辐射范围有限,办事流程由纸质提交过于复杂。学生难以获取到所参与社团的动态和信息。为了解决上述问题,本文设计与开发了专门针对于H学院的社团管理系统。本文所设计的系统能够解决学生与学校相关管理部门的信息交流问题。还能帮助学校解决收集社团相关信息困难的问题。这样不仅提高了社团管理的效率,而且还能给学生与社团管理部门提供了网上交流渠道,让学生能够更加方便的获取到相关信息。1.2国内外研究现状在国外,发达国家因为早年互联网技术发展很快。所以他们对于系统的研究也更早。并且对与管理系统的研究比较深入,技术也相对于成熟。他们能够将系统建设的更为全面。无论时社会上的商用系统,还是校园内的各种各样的管理系统。他们的系统相较于国内的系统都更加成熟,功能也更加完善[1]。并且他们对于学生社团系统的设计思想与实现方法也有着相当深刻且成熟的理解。我国社团信息化,数字化程度远远滞后于社团管理工作的发展需求[2]。在国内,只有部分大学拥有与之相应社团管理系统[3]。有的是单一社团自主研发的该社团为了方便管理自己的系统。例如四川轻化工大学的电子与信息技术协会,但该校是以单个的协会做一个单独的系统,不方便统一管理。并且不是每一个协会都能够有能力做到能有自己的单独的网站系统。还有的学校拥有一套完整的社团管理系统,该系统能够管理全校所有的社团。但该系统并不了解H学院的实际情况因此无法针对H学院所拥有的问题来设计功能。1.3研究目的及意义由于H学院尚无专门的、符合该校需求的学生社团管理系统,导致了学校内的社团管理效率较低,各社团组织活动的积极性不高。为了解决上述问题,本文根据本校的特点制作一个能够统一管理的,从手工到信息化,自动化,高效的符合H学院实际需求的社团管理系统。1.4本章小结本节主要从本文的研究背景,国内外研究现状以及研究目的及意义等三个方面阐释了为什么要研究并且开发H学院社团管理系统。2系统开发相应技术2系统开发相应技术本章节主要介绍H学院社团管理系统在设计与实现的过程中所使用到的相关技术。本文使用JAVA为基础语言,后台框架搭建使用的是主流的开源框架springboot,以SpringMVC为基础架构,MyBatis-plus为持久层框架,前端使用的是layui网页模板加jQuery框架的模式,以jQuery中的ajax进行前后台交互完成前后台的数据传递,图形制作使用的则是百度的Echarts开源可视化图库。2.1springboot开发框架实现社团管理系统本文基于在校与实习时所学知识,在开发社团管理系统时采用以web应用的方式进行开发。开发语言使用java,使用的jar包为jdk1.8,开发框架选择国内最为主流的springboot开源框架。以Windows10(家庭版)系统搭建web工程,使用idea作为开发软件,mysql数据库为数据库软件。MVC中M代表Model即模型在本文中则是被封装好的JavaBean、V代表View即代表视图[4]。在本文中则是用户能够看见的页面。C代表Controller即本文中的控制类。MVC模式能够将传输数据、用户页面、业务逻辑分开。这种模式能够在需要优化后台逻辑代码时,可以不用在对用户交互进行修改。反之亦然,在改进视图页面时也不需要修改后台逻辑。例如在笔者系统中所使用的Echarts可视化图库统计社团人时,将业务模型和用户界面实现代码分离,一旦业务模型中数据改变,用户界面中的Echarts图像因与业务模型中的数据保持一至。而在springboot中三层架构分为:数据访问层(mapper,持久层),业务逻辑层(service,业务层),表示层(controller,表示层)。数据访问层:在本文中能够通过sql语句对mysql关系型数据库进行操作。例如在用户表中,插入用户数据,删除用户数据,修改表中某个用户的用户信息,根据某些条件查找用户数据。业务逻辑层:对从业务逻辑层传输过来的数据进行业务逻辑加工,并将其包装,包装后在传输给表示层。表示层:由用户界面进行调用,来获取用户界面数据。图2.1三层架构关系图MyBatis是一款持久层框架,它本身很小很简单,并且易于安装。使用方法也极其简单,只需要创建相应的xml文件,在xml文件中就能够直接写sql语句对数据库进行增删改查等操作。并且能够在写sql语句的时候添加一些简单的逻辑,例如if语句进行判断,foreach语句进行循环。它本身还封装了许多的方法供我们调用例如selectById,我们值需要将需要查询的id值传入该方法就能查询。而plus则在MyBatis上又封装了许多功能,plus能够在service中对sql语句进行拼接,plus还自带分页方法。2.2本章小结本章我们主要介绍了H学院社团管理系统设计与实现所选用的部分技术的相关分析。主要讲述了MVC模式,与springboot三层架构与mybatis-plus技术相关知识。 3需求分析3需求分析需求分析是系统设计与实现的重要环节。笔者根据H学院的社团管理实际情况以及发展现状出发,依据系统软件开发的需求进行原理分析,逐步分析了该高校对社团管理平台的各种功能需求。对开发平台所需的技术可行性以及操作可行性进行了分析。3.1可行性分析3.1.1技术可行性根据作为学生社团管理者的工作经历,学生社团的主要功能应当包括应用模块功能以及管理模块功能。当前使用的springboot后台框架、jQuery前端框架、layui前端模板等技术能够满足并实现上诉工作内容的要求。从技术的角度,设计并且开发H学院社团管理系统是可行的。3.1.2操作可行性本文所选用的是B/S(浏览器/服务器)结构的web应用。用户使用该系统时,需要打开浏览器,并在网址栏输入相对应的系统地址,即可跳转到系统页面进行用户登录等操作。只要用户拥有一定的计算机知识,便能够使用。而该系统所面向的是高校学子,用户接受的教育中已经包含了计算机的基本使用方法,因此用户应该能够操作该系统。3.2用户需求分析3.2.1普通用户需求分析首先,学生以及指导老师属于普通用户。普通用户想要进入系统则需要能够登录,其次有的用户是第一次使用系统并未拥有自己的账号。进入系统后,有的用户想要能够填写与修改自身的信息。用户需要能够查看社团的信息来选择自己想要加入的社团,或者查询感兴趣的社团。用户加入社团后,有查看自身已经加入的社团或者退出已经加入社团的需求。用户想参加活动时,需要能够了解社团的活动信息。如果用户想要申请举办一次活动并且需要场地,则需要查看场地信息,并且在申请活动时获取到想要举办活动的时间内的空闲场地列表。根据上诉内容可以得出普通用户所需要的的功能有:1.登录与注册功能,2.个人信息修改功能,3.查看与查询社团列表功能,4.查看我的社团功能,5.退出我的社团功能,6查看活动列表功能,7.查看场地以及申请活动的功能。普通用户用例分析图如3.1所示。图3.1普通用户用例分析图3.2.2管理员用户需求分析管理员用户除了与普通用户相同的需求以外,还应该管理相关的信息。首先要对用户进行管理,需要能够能编辑用户的信息。如果有用户忘记了自己的密码还需要重置用户密码,对场地申请,活动申请,加入社团申请等的申请进行审核,能够管理指导教师的信息等功能。管理员用例分析图如图3.2所示。图3.2管理员用例分析图3.3系统非功能需求一.性能需求:该系统是面向H学院的全体师生的系统。因此用户量较大,系统需要定期的维护,获取后台数据并进行备份。防止由特殊情况如服务器宕机等导致的数据的大量丢失。并根据后台获取到的相关数据,分析用户需求对系统功能进行修改,给用户提供更加良好的用户体验。二.安全措施需求:当进入系统时,应该先让用户进行登。对未登录的用户进行后台拦截,防止数据外泄,对于用户账号也应该以学生或者教师的信息为基础由创建。非本校学生或教师,不能拥有系统账号,而且应该将学号与账号对应。实现一人一号,用户忘记账号时可以通过联系系统管理员进行账号的密码重置从而找回账号。3.4本章小结本章主要内容是为了实现H学院社团管理系统,从技术可行性,用户操作可行性进行了可行性分析。从普通用户,管理员用户两个方面进行了功能需求分析,从性能需求与安全措施需求进行了系统非功能需求分析。 4系统设计4系统设计4.1系统设计原则本文在设计系统时,遵循系统设计的设计思想,开发出具有完备性,系统性,可靠性,易操作性等特性的系统。遵循统一设计原则,高可靠性原则,安全性原则,成熟型原则,可扩展性原则来保证该系统的设计与实现能够顺利完成。H学院社团管理系统的实现采用了现在最为流行了B/S结构模式来进行开发。开发结果为web应用,这种应用具有良好的跨平台性,支持大量用户的同时访问与使用,易于维护等优势。并且本系统是根据旅院的实际情况进行专门开发的系统,能更加符合旅院学子们以及社联对功能的需求。4.2系统架构设计基于项目需求与项目开发的实际经验,本系统决定以web软件为开发目标,在IDEA开发工具中选择spring+三层架构。三层架构是指将整个系统的各个功能模块划分为三层,以退出社团功能为例。表示层(controller):由用户进行调用后,将service(业务逻辑层)逻辑处理以后的数据传回的数据返回给用户,供用户使用。@RequestMapping("/logoutClub")publicModellogoutClub(ClubStudentDOclubStudentDO){returnstudentServiceImpl.logoutClub(clubStudentDO);}服务层(service):得到持久层的数据后,进行功能性的逻辑加工,将加工后的数据交给表示层。@OverridepublicModellogoutClub(ClubStudentDOclubStudentDO){Modelmodel=newModel();model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());try{ClubStudentDOclubStudentDO1=newClubStudentDO();StringclubId=clubStudentDO.getClubId();QueryWrapperqueryWrapper=newQueryWrapper();queryWrapper.eq("club_id",clubId);List<ClubStudentDO>list=clubStudentMapper.selectList(queryWrapper);for(inti=0;i<list.size();i++){clubStudentDO1=list.get(i);if(clubStudentDO1.getStudentId().equals(clubStudentDO.getStudentId())){clubStudentMapper.deleteById(clubStudentDO1.getId());}}model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());}catch(Exceptione){e.printStackTrace();}returnmodel;}持久层mapper:通过mybatis—plus对数据库进行增删改查等操作,并将结果返回给service服务层,让其进行逻辑处理后返回给表示层。各层结构图如图4.1所示。图4.1系统结构图4.3系统功能设计本文依据H学院的社团相关的管理部门以及高校学生所面临的问题以及学校自身的特点。通过在学校担任社长的经历以及调研分析,基本确定H学院学生社团管理系统的基本功能。根据需求分析可以将系统分为应用模块和管理模块。应用模块功能介绍:公告统计模块:此模块所有用户皆可使用,当用户进入系统时能够查看社团的一些统计信息及当日的举办的活动。统计信息包括,学院挂靠情况,学生社团人数统计,社团活动举办数量。登录模块:系统登陆是每个系统的必备功能,只有能够登录进入系统的系统用户才能使用系统中的一些功能,这样能有效防止系统数据外泄。修改个人信息模块:用户能够根据自身需要修改自身的账号的个人信息。社团信息查看模块:系统用户能够查看自己感兴趣的社团的信息,并且能够根据社团名称与指导老师之类的关键词进行检索自己想要加入的社团。申请创建社团模块:普通用户查找社团后如果发现没有自己心仪的社团,想要自己来创建自己想要的社团时,可以通过填写社团申请表来申请新建社团。加入社团模块:普通用户在社团列表中找到了自己喜欢的社团后,能够申请加入社团。我的社团模块:用户进入系统后,能够查看自己已经加入的社团的社团信息。退出社团模块:用户发现自己已经加入的社团如果不符合自己期望,能够通过此模块来推出社团。场地信息模块:用户在申请活动时,如果需要场地,可以通过该模块查看学校内能够举办社团活动场地的信息。活动信息模块:用户想要参加活动时,能够通过此模块查看已经申请通过的活动的地点时间等信息。活动申请模块:用户想要申请活动时可以通过此模块填写活动申请表,管理员通过后添加到活动列表。申请时如需场地申请,可填写活动时间查看该时间段内的空闲场地。然后和活动申请一起提交。管理模块功能介绍:登录模块:在登录页面输入账号与密码后进行验证。验证成功后进一步验证是否为系统管理员,如果是,将开放管理模块。社团管理模块:管理员用户能够在此模块完成增加社团,修改社团信息,查询社团,删除社团等操作。用户管理模块:此模块能对系统用户进行管理,通过此模块收集用户信息,与对用户列表进行增删改查等操作。学生管理模块:此模块能对学生进行管理,通过此模块收集学生信息,用户注册时可以基于学生列表进行注册。场地管理模块:管理学校能够开放的给社团活动使用的场地。活动管理模块:对申请通过的社团活动进行管理。教师管理模块:对指导教师进行管理,用户注册时可以基于教师列表进行注册。列表导出模块:将需要的数据导出为excel格式的表格。重置密码:考虑到也许有用户忘记自己账号密码,可以通过这项功能重置用户密码,找回账号。功能模块图如图4.2所示。 图4.2功能模块图4.4系统数据库设计本文将需求分析所得到的需求总结,归纳后最终抽象为我们所需的数据库。并且依照一致性、完整性、安全性可伸缩性与可扩展性、规范化等原则进行数据库设计。建立起安全可靠,并且稳定的数据库。本文使用的时MySQL,MySQL是一种小型的关系型数据库,能够满足本文所设计的系统的需求。本文先通过需求分析,分析所需实体,实体属性,实体联系,本文实体类型应该包括用户实体、学生实体、教师实体、社团实体、活动实体、场所实体。各个实体类之间的联系应该为:1.一个学生只能与一个用户账号进行绑定。2一个教师只能与一个学生进行绑定。3.一个学生可以加入多个社团。而一个社团可以拥有多名学生成员。4.一名教师可以指导多个社团。5.一个社团可以申请多个活动。6.一个活动只能绑定一个活动场所。通过这些联系我们可以得到E-R图如下图4.3所示图4.3E-R图根据所得到的E-R关系图,来设计满足该系统所需的表的结构,表的结构设计如下。H学院社团管理系统Users(用户表)表,该表用于储存用户信息等数据,表结构设计如下表4.1所示:
表4.1用户表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255用户名SEXVarchar1√男或女AccountVarcher16√账号QQVarcher32QQEmailVarcher32EmailPhoneVarcher11联系电话levelVarcher32√用户等级H学院社团管理系统Student(学生表)表,该表用于储存学生相关信息等数据,表设计如下表4.2所示:表4.2学生表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255√真实姓名SEXVarchar255√男或女CollegeVarcher255√所属学院ClassVarcher255所属班级EmailVarcher32EmailPhoneVarcher11联系电话User_idVarcher32√链接user表,外键H学院社团管理系统club(社团表)表,该表用于储存社团相关信息等数据,表设计如下表4.3所示:表4.3社团表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255√社团名称MasterVarchar255√协会会长Level_clubvarchar255√社团星级Club_collegeVarcher255√所属学院TeacherVarcher255√指导教师FundsVarcher32剩余经费PhoneVarcher11联系电话introduceVarcher255社团介绍StatusVarcher255√运营状态H学院社团管理系统place(场所表)表,该表格用于储存场所信息数据,表设计如下表4.4所示:表4.4场所表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255√场所名称TypeVarchar255场所类型AddressVarcher255场所地点PeopleVarcher255人容量因为一个学生有可能加入多个社团,而一个社团又会有多个学生,所以学生表与社团表之间是属于多对多的关系。因此H学院社团管理系统需要创建一张club_student(学生与社团链接表)表来储存两张表的链接关系数据,设计如下表4.5所示:
表4.5学生与社团链接表名类型长度不是null主键备注idvarchar32√√IdClub_idVarchar255√场所名称Student_idVarchar255√场所类型H学院社团管理系统Activite(活动表)表,该表用于活动相关信息数据。表设计如下表4.6所示:表4.6活动表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255√活动名称Place_idVarchar255外键StatTimedatatime255√开始时间EndTimedatatime255√结束时间FundsVarchar255所需经费introduceVarchar255活动介绍Club_idvarchar255√社团id,外键H学院社团管理系统Teacher(教师信息表)表,该表用于教师相关信息数据。表设计如下表4.7所示:
表4.7教师表名类型长度不是null主键备注idvarchar32√√IdNameVarchar255√名称PhoneVarchar255√电话QqVarchar255√qqWork_idVarchar255教师工号introduceVarchar255教师介绍DutyVarchar255教师职称EmailVarchar255电子邮件StatusVarchar1在职状态申请表(Application),该表用于存放系统中各种申请的信息。表设计如下表4.8所示:表4.8申请表名类型长度不是null主键备注idvarchar32√√IdTypeVarchar255√审核类型statusVarchar255√审核状态auditor_idVarchar255审核人IDapplicant_idVarchar255申请人IDapplication_idVarchar255申请表IDreasonVarchar255拒绝原因4.5本章小结本章主要内容是阐述了H学院社团管理系统的设计原则。系统架构搭建情况。系统流程设计。数据库设计原则。介绍了一部分的数据库中比较重要的的表的设计。 5系统实现5系统实现H学院社团管理系统是基于spring技术为后台,layui为前台,Ajax为交互,MySQL为数据库所设计出来的一款专对于H学院学生社团管理的管理系统。由于系统所涉及到的功能较多,因此以具体流程介绍三层架构的实现,后举例介绍具体功能,主要以页面与代码为展示方式。5.1三层架构的实现以用户的登录功能来介绍三层架构的具体实现。用户进入系统时会由后台进行检测用户是否登录,如果未登录,会由spring拦截器进行拦截,防止非本系统用户进入系统查看数据。并且返回登录页面的链接。图5.1登录页面图登录认证代码如下publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{booleanflag=true;UserDOsessionData=(UserDO)request.getSession().getAttribute("user");if(CommonUtil.isEmpty(sessionData)){flag=false;}
if(!flag){Modelmodel=newModel();model.setCode(ResultCodeEnum.RESULTCODE_LOGIN_FAILURE.getCode());response.setCharacterEncoding("UTF-8");response.setHeader("Content-type","application/json;charset=UTF-8");response.setContentType("text/html");response.getWriter().write(JSONObject.toJSONString(model));response.getWriter().write("<button><ahref='http://localhost:8701/info.html'>点击登录</a></button>");}returnflag;}该代码逻辑为检测session中是否含有用户的登录信息,如果有则返回flase,反之则返回ture,并且在前台打印出相关提示与登录链接。publicvoidaddInterceptors(InterceptorRegistryregistry){registry.addInterceptor(getLoginAuthIntercept())//添加拦截器.addPathPatterns("/**")//拦截所有请求.excludePathPatterns("/user/info",
"/user/register","/roster/rosterCadreExport","/cadre/export",
"/info.html",
"/word/**",
"/file/**",
"/**/*.ico",
"/**/*.js",
"/css/**",
"/fonts/**",
"/img/**",
"/js/**",
"/**/*.jpg",
"/*.css",
"/layui/**",
"/**/*.css"
);//对应的不拦截的请求}通过调用登录认证方法,来确认是否添加拦截器。如果preHandle(登录认证方法)返回的是flase则不添加拦截器,能够调用系统内的接口查看数据。如果返回的是true则拦截后台除登录以外的所有接口。用户登录流程:用户进入系统登录页面后,根据登录页面显示的表单填写账号与密码。然后由系统进行口令是否这正确,正确则登陆成功。然后又系统判断用户身份等级,然后根据用户等级展示功能模块,失败则重新输入账号和密码登录流程图如图5.2所示。图5.2用户登录流程图当用户点击登录页面链接进入登录页面,输入账号与密码点击登录按钮后,由Ajax进行前后台交互,调用UseController(表示层)中的info接口。Info代码:@ResponseBody@RequestMapping("/info")publicModelinfo(Stringid,Stringpassword){returnuserServiceI(id,password);//调用userService中的info方法}然后由controller调用service(逻辑处理层)中的方法。
publicModelinfo(Stringid,Stringpassword){Modelmodel=newModel();model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());
try{if(CommonUtil.isEmpty(id)){model.setMsg("请输入账号");returnmodel;}
if(CommonUtil.isEmpty(password)){model.setMsg("请输入密码");returnmodel;}UserDOuserDO=userMapper.selectById(id);if(CommonUtil.isEmpty(userDO)){model.setCode(ResultCodeEnum.USER_NOT_FIND.getCode());returnmodel;}
Stringpsw=userDO.getPassword();if(password.equals(psw)){UserDOuser=newUserDO();user.setId(id);user.setPassword(password);user.setName(userDO.getName());request.getSession().setAttribute("user",user);model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());}else{model.setCode(ResultCodeEnum.PASSWORD_ERROR.getCode());returnmodel;}
}catch(Exceptione){e.printStackTrace();}
returnmodel;}该方法就是根据表示层传回来的账号与密码进行逻辑判断,先根据传回来的账号使用mapper(持久层)中方法查询到该账号的全部信息。如果查询到的账号信息为空,则返回为表现层.“该账号为空”。如果不为空,则获取查询到的信息中的密码信息。判断其与表现层中传回的密码信息是否一致。如不一致则将返回给表现层:“密码错误”,如正确则返回“操作成功”,并将用户数据存入session中。而后由其他方法调用用户数据,来判断用户是否为管理员从而判断是否要展示管理模块。普通用户页面:普通用户能够查看首页,查看社团列表,查看我的社团列表,查看活动列表,查看场所列表,查看我的申请等模块。 图5.3普通用户页面图管理员页面:管理员用有普通用户所有的模块,还有学生管理,用户管理,教师管理,审核未处理申请等功能模块。 图5.4管理员用户页面图5.2普通用户相关功能1.所有用户能够看到学校所有社团信息,并且能够根据指导教师,或者社团名称来查找自己想要查找的社团。核心代码:publicModellist(Stringname,Stringteacher,IntegerpageNum,IntegerpageSize){Modelmodel=newModel();model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());try{PageHelper.startPage(pageNum,pageSize);List<ClubDO>list=clubMapper.listClub(name,teacher);PageInfopageInfo=newPageInfo(list);model.setData(pageInfo);model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());}catch(Exceptione){e.printStackTrace();}returnmodel;}2.所有用户能够看到学校所有社团信息,并且能够根据活动时间,或者活动名称来查找自己想要查找的社团活动。主要功能代码如下:@Override
public
Model
classroom(String
starTime,String
endTime,
String
name)
{
Model
model
=
new
Model();
model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());
try
{
model.setData(placeMapper.selectPlace(starTime,endTime,name));
model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());
}
catch
(Exception
e)
{
e.printStackTrace();
}
return
model;
}3.用户能查看我的社团相关信息,主要代码如下:@Override
public
Model
myClub(String
studentId,String
name
,String
teacher,
Integer
pageNum,
Integer
pageSize)
{
Model
model
=
new
Model();
model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());
try
{
if
(CommonUtil.isEmpty(studentId))
{
model.setCode(0);
model.setMsg("请传入学生id");
return
model;
}
PageHelper.startPage(pageNum,
pageSize);
PageInfo
pageInfo
=
new
PageInfo(clubStudentMapper.myclub(studentId,name,teacher));
model.setData(pageInfo);
model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());
}
catch
(Exception
e)
{
e.printStackTrace();
}
return
model;
} 图5.5社团列表页面图5.3社团管理功能实现社团管理功能包括对社团的新增,用户信息的修改,用户的删除。社团管理流程图如图5.5所示图5.6社团管理流程图1.管理员用户能够直接在社团列表填写社团信息新增社团并直接发布。主要代码如下:clubDO.setId(CommonUtil.getUuid());clubMapper.insert(clubDO);ApplicationDOapplicationDO=newApplicationDO();applicationDO.setType("0");applicationDO.setApplicationId(clubDO.getId());UserDOuser=(UserDO)request.getSession().getAttribute("user");if(user.getLevel().equals("9")){applicationDO.setStatus("0");}
else{applicationDO.setStatus("2");}
applicationDO.setApplicantId(user.getId());
applicationDO.setId(CommonUtil.getUuid());
applicationMapper.insert(applicationDO);
model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());2.管理员能够在前台多选批量删除社团,并且删除学生与社团关系表中的相关数据。主要代码如下:Stringisnull="";if(CommonUtil.isEmpty(ids)){model.setCode(ResultCodeEnum.USER_NOT_FIND.getCode());returnmodel;}for(Stringid:ids.split(",")){if(CommonUtil.isEmpty(clubMapper.selectById(id))){isnull=id+",";}
QueryWrapperqueryWrapper=newQueryWrapper();queryWrapper.eq("club_id",id);QueryWrapperqueryWrapper1=newQueryWrapper();ClubStudentDOstudentDO=clubStudentMapper.selectOne(queryWrapper);if(!CommonUtil.isEmpty(studentDO)){queryWrapper1.eq("application_id",studentDO.getId());
applicationMapper.delete(queryWrapper1);}QueryWrapperqueryWrapper2=newQueryWrapper();queryWrapper2.eq("application_id",id);clubStudentMapper.delete(queryWrapper);clubMapper.deleteById(id);applicationMapper.delete(queryWrapper2);}if(!CommonUtil.isEmpty(isnull)){model.setMsg(isnull+"等id不存在,删除失败");model.setCode(206);
}else{model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());
}3.管理员能够在修改已发布社团信息。主要代码如下:publicModelupdata(ClubDOclubDO){Modelmodel=newModel();model.setCode(ResultCodeEnum.RESULTCODE_FAILURE.getCode());try{if(CommonUtil.isEmpty(clubDO.getId())){model.setCode(ResultCodeEnum.RESULTCODE_PARAMETER_ERROR.getCode());returnmodel;}clubMapper.updateById(clubDO);model.setCode(ResultCodeEnum.RESULTCODE_SUCCESS.getCode());}catch(Exceptione){e.printStackTrace();}returnmodel;}
图5.7社团管理页面图5.4本章小结本章主要以登录流程为例,介绍了三层架构的运作方式,与功能实现的具体方法,设计思想,页面设计与部分功能的核心代码。 6系统测试6系统测试6.1系统测试的目的 1.测试系统是否符合需求分析,能否满足用户需求。2.测试是否由存在因逻辑错误而导致的漏洞。3.找出开发与设计时,可能出现的缺陷与错误。4.保证系统在投入使用时能稳定运行,排除功能性与非功能性问题。5.为用户提供一个更加良好的使用体验。6.2测试用例设计本章节主要根据本文所实现的某些功能进行有关的用例设计包括登录功能,申请加入社团功能,学生注册功能,社团加入申请功能,社团信息管理功能。测试环境如下:表6.1测试环境表处理器CPUi5-7300HQ@2.50GHz2.50GHz及以上配置内存(RAM)16GB储存空间1TB操作系统Windows10登录测试用例:本次测试是针对用户登录功能进行测试,测试用户是否能够正常使用登录功能。测试内容有:正确正确输入用户账号与密码、未输入账号、未输入密码、输入错误的账号、输入正确的账号与错误的密码。测试用例表如表6.2所示。
表6.2登录测试用例测试编号测试步骤预期结果测试结果是否与预期一致1正确输入用户账号与密码跳转至系统页面,登录成功跳转至系统页面,登录成功是2未输入账号弹出信息:请输入账号弹出信息:请输入账号是3未输入密码弹出信息:请输入密码弹出信息:请输入密码是4输入错误的账号弹出信息:帐号不存在弹出信息:帐号不存在是5输入正确的账号与错误的密码弹出信息:密码不正确弹出信息:密码不正确是申请加入社团测试用例:本次测试是针对用户申请加入社团功能进行测试,测试用户是否能够正常使用申请加入社团功能。测试内容有:申请加入未加入的社团、申请加入已加入的社团。测试用例表如表6.3所示。表6.3申请加入社团测试用例测试编号测试步骤预期结果测试结果是否与预期一致1申请加入未加入的社团成功添加至管理员未审核列表弹出信息:操作成功,成功添加至管理员未审核列表是2申请加入已加入的社团弹出信息:您已在社团中,请勿重复添加弹出信息:您已在社团中,请勿重复添加是学生注册测试用例:本次测试是针对用户登录功能进行测试,测试学生是否能够正常使用注册功能。测试内容有:正确填写信息、未输入账号(学号)、未输入密码、输入错误的账号(学号)、输入已注册的账号。测试用例表如表6.4所示。
表6.4学生注册测试用例测试编号测试步骤预期结果测试结果是否与预期一致1正确填写信息注册成功,跳转至登录页面注册成功,跳转至登录页面是2未输入账号(学号)弹出信息:请输入账号弹出信息:请输入账号是3未输入密码弹出信息:请输入密码弹出信息:请输入密码是4输入错误的账号(学号)弹出信息:帐号(学号)不存在弹出信息:帐号(学号)不存在是5输入已注册的账号弹出信息:该账号已注册弹出信息:该账号已注册是社团列表管理测试:本次测试是针对管理员用户社团管理功能进行测试,测试管理员是否能够正常使用社团管理功能。测试内容有:新增社团、修改社团信息、删除社团、非管理员用户使用。测试用例表如表6.5所示。表6.5社团列表管理测试测试编号测试步骤预期结果测试结果是否与预期一致1填写社团信息,新增社团操作成功,成功发布社团信息新增成功,成功发布社团信息是2修改社团信息操作成功,成功修改社团信息操作成功,成功修改社团信息是3删除社团操作成功,成功删除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考语文拼音题测试题及答案
- 2026年中信线上测试题及答案
- 2026年英语金斗测试题及答案
- 2026年穷人思维测试题库及答案
- 2026年孕妇忧郁症测试题及答案
- 2026年公共基础测试题及答案
- 2026及未来5年中国乳牛市场数据分析研究报告
- 2025年湖南省鸿峪建设工程有限公司招聘7人笔试历年参考题库附带答案详解
- 2025年海南电网有限责任公司社会招聘19人笔试历年参考题库附带答案详解
- 2025年河南中国平煤神马集团审计分部公开招聘20人笔试历年参考题库附带答案详解
- GB/T 470-2026锌锭
- 第一单元第3课文人意趣课件桂美版初中美术八年级下册
- 2025年【副高】卫生管理卫生高级医学高级职称考试题库及答案
- 2026铁路监理工程师网络继续教育考试题及答案
- 2026湖北江汉明珠控股集团有限公司社会招聘20人笔试备考试题及答案详解
- 2026交银金融科技有限公司人才招聘备考题库及1套参考答案详解
- 2025年北京市初二学业水平地理生物会考真题试卷+答案
- 广东灭蟑螂工作方案
- GB/T 47528-2026生物技术细胞治疗产品和基因治疗产品生产过程中存在的辅助材料
- 培育战斗精神 砥砺血性胆气 -2024教育实践活动
- 麦草打包加工合同范本
评论
0/150
提交评论