• Java毕设项目——大学运动场地管理系统(java+SSM+Maven+Mysql+Jsp)


    文末获取源码 

    开发语言:Java

    框架:SSM

    技术:Jsp

    JDK版本:JDK1.8

    服务器:tomcat7

    数据库:mysql 5.7/8.0

    数据库工具:Navicat11

    开发软件:eclipse/myeclipse/idea

    Maven包:Maven3.3.9

    浏览器:谷歌浏览器

    一、前言介绍 

    在国外很多发达国家,软件产业早已得到全面普及,但我国经济已不断发展,不断引进国外信息化建设,使国内软件行业得以不断发展,在摸索中进步,最终也得到一些成果,我国的软件业迎来了高速的发展,使更多的软件系统得以开发出来,从此逐渐地改变人们的生活工作方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的大学运动场地管理系统开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的大学运动场地管理系统,来实现行大学运动场地管理的信息化。因此本课题以大学运动场地为例,目的是开发一个实用的大学运动场地管理系统。

    大学运动场地管理系统的开发运用jsp技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了大学运动场地管理的信息化,使用户体验到更优秀的大学运动场地管理系统,管理员管理操作将更加方便,实现目标。

    二、系统功能分析 

     考虑到实际生活中大学运动场地管理系统方面的需要以及对该平台认真的分析,将系统权限按管理员和用户这两类涉及用户划分。

    (a) 管理员;管理员使用本系统涉到的功能主要有主页、个人中心、用户管理、场地信息管理、场地预约管理、器材信息管理、器材借用管理、系统简介管理、器材分类管理、系统管理等功能。管理员用例图如图

     (b) 用户;进入系统可以实现首页、场地信息、器材信息、系统简介、新闻通知、个人中心、后台管理等功能。用户用例图如图

     

    系统整功能如下图 

    三、系统展示

    大学运动场地管理系统,在平台首页可以查看首页、场地信息、器材信息、系统简介、新闻通知、个人中心、后台管理等内容,并进行详细操作;如图

    用户注册

    在用户注册页面通过填写账号、密码、再次输入密码、姓名、手机、住址等信息进行注册操作,如图 

    场地信息

    在场地信息页面可以查看场地名称、场地类型、场地位置、图片、场地状态、开放时间、点击次数、场地详情等内容,并进行预约,评论和收藏等操作,如图 

    器材信息

    在器材信息页面可以查看器材名称、器材类型、规格、图片、器材数量、用途、点击次数、注意事项等内容,并进行借用,评论和收藏等操作,如图

    系统简介

    在系统简介页面可以查看标题、简介、图片、日期、内容等内容,如图 

    个人中心

    在个人中心页面通过填写账号、密码、姓名、性别、手机、住址、上传图片等内容进行更新信息,还可以根据需要对我的收藏进行相对应操作,如图 

    管理员功能模块

    管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图 

    管理员登录系统后,可以对主页、个人中心、用户管理、场地信息管理、场地预约管理、器材信息管理、器材借用管理、系统简介管理、器材分类管理、系统管理等功能进行相应的操作管理,如图 

    用户管理

    在用户管理页面可以对账号、姓名、性别、手机、住址、头像等内容进行查看,修改和删除等操作,如图

    场地信息管理

    在场地信息管理页面可以对场地名称、场地类型、场地位置、场地状态、开放时间、场地图片等信息进行查看,修改,查看评论和删除操作,如图 

    场地预约管理

    在场地预约管理页面可以对场地名称、场地类型、场地位置、预约时间、备注、账号、姓名、是否审核、审核回复等内容进行审核,查看或删除操作,如图 

    器材信息管理

    在器材信息管理页面可以对器材名称、器材类型、规格、器材数量、用途、器材图片等内容进行查看,修改,查看评论和删除操作,如图 

    器材借用管理

    在器材借用管理页面可以对器材名称、器材类型、规格、器材数量、借用时间、备注、账号、姓名、是否审核、审核回复等内容进行审核,查看或删除操作,如图 

    系统简介管理

    在系统简介管理页面可以对标题、简介、日期、封面等内容进行查看,修改和删除操作,如图 

    器材分类管理

    在器材分类管理页面可以对类型信息进行修改和删除操作,如图 

    系统管理

    在新闻通知管理页面可以对标题、简介、图片等内容进行查看,修改和删除等操作,还可以对轮播图管理进行详细的操作管理;如图 

    用户后台功能模块

    用户登录进入大学运动场地管理系统后台可以对主页、个人中心、场地预约管理、器材借用管理等功能进行相应操作,如图 个人中心

    在个人中心页面通过填写账号、姓名、性别、手机、住址、头像等内容并提交进行个人信息修改操作,如图 

    四、部分核心代码

    用户注册

    1. /**
    2. * 注册
    3. */
    4. @IgnoreAuth
    5. @RequestMapping("/register")
    6. public R register(@RequestBody YonghuEntity yonghu){
    7. //ValidatorUtils.validateEntity(yonghu);
    8. YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));
    9. if(user!=null) {
    10. return R.error("注册用户已存在");
    11. }
    12. Long uId = new Date().getTime();
    13. yonghu.setId(uId);
    14. yonghuService.insert(yonghu);
    15. return R.ok();
    16. }

     上传文件

    1. /**
    2. * 上传文件
    3. */
    4. @RequestMapping("/upload")
    5. public R upload(@RequestParam("file") MultipartFile file, String type,HttpServletRequest request) throws Exception {
    6. if (file.isEmpty()) {
    7. throw new EIException("上传文件不能为空");
    8. }
    9. String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
    10. String fileName = new Date().getTime()+"."+fileExt;
    11. File dest = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
    12. file.transferTo(dest);
    13. /**
    14. * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
    15. * 请将以下的"D:\\ssmpiv99\\src\\main\\webapp\\upload"替换成你本地项目的upload路径,
    16. * 并且项目路径不能存在中文、空格等特殊字符
    17. */
    18. //FileUtils.copyFile(dest, new File("D:\\ssmpiv99\\src\\main\\webapp\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
    19. if(StringUtils.isNotBlank(type) && type.equals("1")) {
    20. ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
    21. if(configEntity==null) {
    22. configEntity = new ConfigEntity();
    23. configEntity.setName("faceFile");
    24. configEntity.setValue(fileName);
    25. } else {
    26. configEntity.setValue(fileName);
    27. }
    28. configService.insertOrUpdate(configEntity);
    29. }
    30. return R.ok().put("file", fileName);
    31. }

     场地预约

    1. /**
    2. * 场地预约
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-03-08 09:03:12
    7. */
    8. @RestController
    9. @RequestMapping("/changdiyuyue")
    10. public class ChangdiyuyueController {
    11. @Autowired
    12. private ChangdiyuyueService changdiyuyueService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,ChangdiyuyueEntity changdiyuyue,
    18. HttpServletRequest request){
    19. String tableName = request.getSession().getAttribute("tableName").toString();
    20. if(tableName.equals("yonghu")) {
    21. changdiyuyue.setZhanghao((String)request.getSession().getAttribute("username"));
    22. }
    23. EntityWrapper<ChangdiyuyueEntity> ew = new EntityWrapper<ChangdiyuyueEntity>();
    24. PageUtils page = changdiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, changdiyuyue), params), params));
    25. request.setAttribute("data", page);
    26. return R.ok().put("data", page);
    27. }
    28. /**
    29. * 前端列表
    30. */
    31. @IgnoreAuth
    32. @RequestMapping("/list")
    33. public R list(@RequestParam Map<String, Object> params,ChangdiyuyueEntity changdiyuyue,
    34. HttpServletRequest request){
    35. EntityWrapper<ChangdiyuyueEntity> ew = new EntityWrapper<ChangdiyuyueEntity>();
    36. PageUtils page = changdiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, changdiyuyue), params), params));
    37. request.setAttribute("data", page);
    38. return R.ok().put("data", page);
    39. }
    40. /**
    41. * 列表
    42. */
    43. @RequestMapping("/lists")
    44. public R list( ChangdiyuyueEntity changdiyuyue){
    45. EntityWrapper<ChangdiyuyueEntity> ew = new EntityWrapper<ChangdiyuyueEntity>();
    46. ew.allEq(MPUtil.allEQMapPre( changdiyuyue, "changdiyuyue"));
    47. return R.ok().put("data", changdiyuyueService.selectListView(ew));
    48. }
    49. /**
    50. * 查询
    51. */
    52. @RequestMapping("/query")
    53. public R query(ChangdiyuyueEntity changdiyuyue){
    54. EntityWrapper< ChangdiyuyueEntity> ew = new EntityWrapper< ChangdiyuyueEntity>();
    55. ew.allEq(MPUtil.allEQMapPre( changdiyuyue, "changdiyuyue"));
    56. ChangdiyuyueView changdiyuyueView = changdiyuyueService.selectView(ew);
    57. return R.ok("查询场地预约成功").put("data", changdiyuyueView);
    58. }
    59. /**
    60. * 后端详情
    61. */
    62. @RequestMapping("/info/{id}")
    63. public R info(@PathVariable("id") Long id){
    64. ChangdiyuyueEntity changdiyuyue = changdiyuyueService.selectById(id);
    65. return R.ok().put("data", changdiyuyue);
    66. }
    67. /**
    68. * 前端详情
    69. */
    70. @IgnoreAuth
    71. @RequestMapping("/detail/{id}")
    72. public R detail(@PathVariable("id") Long id){
    73. ChangdiyuyueEntity changdiyuyue = changdiyuyueService.selectById(id);
    74. return R.ok().put("data", changdiyuyue);
    75. }
    76. /**
    77. * 后端保存
    78. */
    79. @RequestMapping("/save")
    80. public R save(@RequestBody ChangdiyuyueEntity changdiyuyue, HttpServletRequest request){
    81. changdiyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    82. //ValidatorUtils.validateEntity(changdiyuyue);
    83. changdiyuyueService.insert(changdiyuyue);
    84. return R.ok();
    85. }
    86. /**
    87. * 前端保存
    88. */
    89. @RequestMapping("/add")
    90. public R add(@RequestBody ChangdiyuyueEntity changdiyuyue, HttpServletRequest request){
    91. changdiyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    92. //ValidatorUtils.validateEntity(changdiyuyue);
    93. changdiyuyueService.insert(changdiyuyue);
    94. return R.ok();
    95. }
    96. /**
    97. * 修改
    98. */
    99. @RequestMapping("/update")
    100. public R update(@RequestBody ChangdiyuyueEntity changdiyuyue, HttpServletRequest request){
    101. //ValidatorUtils.validateEntity(changdiyuyue);
    102. changdiyuyueService.updateById(changdiyuyue);//全部更新
    103. return R.ok();
    104. }
    105. /**
    106. * 删除
    107. */
    108. @RequestMapping("/delete")
    109. public R delete(@RequestBody Long[] ids){
    110. changdiyuyueService.deleteBatchIds(Arrays.asList(ids));
    111. return R.ok();
    112. }
    113. /**
    114. * 提醒接口
    115. */
    116. @RequestMapping("/remind/{columnName}/{type}")
    117. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    118. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    119. map.put("column", columnName);
    120. map.put("type", type);
    121. if(type.equals("2")) {
    122. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    123. Calendar c = Calendar.getInstance();
    124. Date remindStartDate = null;
    125. Date remindEndDate = null;
    126. if(map.get("remindstart")!=null) {
    127. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    128. c.setTime(new Date());
    129. c.add(Calendar.DAY_OF_MONTH,remindStart);
    130. remindStartDate = c.getTime();
    131. map.put("remindstart", sdf.format(remindStartDate));
    132. }
    133. if(map.get("remindend")!=null) {
    134. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    135. c.setTime(new Date());
    136. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    137. remindEndDate = c.getTime();
    138. map.put("remindend", sdf.format(remindEndDate));
    139. }
    140. }
    141. Wrapper<ChangdiyuyueEntity> wrapper = new EntityWrapper<ChangdiyuyueEntity>();
    142. if(map.get("remindstart")!=null) {
    143. wrapper.ge(columnName, map.get("remindstart"));
    144. }
    145. if(map.get("remindend")!=null) {
    146. wrapper.le(columnName, map.get("remindend"));
    147. }
    148. String tableName = request.getSession().getAttribute("tableName").toString();
    149. if(tableName.equals("yonghu")) {
    150. wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
    151. }
    152. int count = changdiyuyueService.selectCount(wrapper);
    153. return R.ok().put("count", count);
    154. }
    155. }

      

     

  • 相关阅读:
    XXE漏洞详解:从基础到防御
    香港服务器租用流程步骤有哪些?
    一种基于宏和serde_json实现的rust web中统一返回类
    LINUX之压缩与解压
    Linux基础操作
    【图解大数据技术】Spark
    centos 7 安装tomcat开启apr并应用于springboot
    flv.js源码知识点(中)
    conda虚拟环境配置
    Java Arrays工具类
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/126774006