当前位置:   article > 正文

基于Spring Boot的校园疫情防控系统的设计与实现_疾病防控系统的设计与实现

疾病防控系统的设计与实现

系统描述

如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园疫情防控信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个校园疫情防控系统,可以解决许多问题。

校园疫情防控系统可以实现健康状态管理,学院管理,聊天室管理,教师管理,公告信息管理,健康表管理,学生请假管理等功能。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。

校园疫情防控系统可以提高校园疫情防控信息管理问题的解决效率,优化校园疫情防控信息处理流程,保证校园疫情防控信息数据的安全,它是一个非常可靠,非常安全的应用程序。

技术描述

文章末尾获取源码

开发语言:Java

技术框架:SpringBoot

前端语言:Vue\HTML

持久层框架:Mybatis

服务器:Tomcat7\8\9\10

数据库:MySQL5.7以上

项目管理工具:Maven

项目开发工具:IDEA\Eclipse

系统展示

管理员功能实现

教师管理

图5.1 即为编码实现的教师管理界面,教师信息包括教师姓名,学院,邮箱等信息,管理员对有错误数据的教师信息使用修改功能可以及时更正,需要删除的教师信息也能使用删除功能及时删除。

学生管理

图5.2 即为编码实现的学生管理界面,管理员对学生数据可以添加,也能通过文件的形式导入学生数据。学生信息出现错误,管理员也能使用修改功能及时更正。

 

公告信息管理

图5.3 即为编码实现的公告信息管理界面,公告的内容需要管理员添加,在公告信息管理界面,管理员也能修改公告内容。

 

教师功能实现

健康表查看

图5.4 即为编码实现的健康表查看界面,健康表信息包括健康状态,体温,学生姓名等信息,教师根据健康状态或学生姓名对学生的健康信息进行查询。

 

学生请假管理

图5.5 即为编码实现的学生请假管理界面,学生申请请假,教师就需要在学生请假管理界面审核。学生请假信息有请假原因,请假时间,请假状态等信息。

 

聊天室管理

图5.6 即为编码实现的聊天室管理界面,教师可以新增聊天,可以查看聊天室的回复信息,在查看聊天室的回复信息之后,教师也能发布聊天回复信息。

 

学生功能实现

健康表管理

图5.7 即为编码实现的健康表管理界面,学生自己在健康表管理界面登记健康信息,包括学生的体温,详情等信息都需要登记,已经登记的有错误数据的健康信息可以进行修改。

 

学生请假管理

图5.8 即为编码实现的学生请假管理界面,学生需要请假时,需要在学生请假管理界面添加请假的具体内容,包括请假原因和天数信息,最后等待教师处理学生请假信息。

 

聊天室管理

图5.9 即为编码实现的聊天室管理界面,学生通过聊天室可以发布聊天信息,可以删除自己发布的聊天信息,也能查看聊天的回复信息。

 

代码实现:

跨域实现

  1. package com.interceptor;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import com.alibaba.fastjson.JSONObject;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Component;
  12. import org.springframework.web.method.HandlerMethod;
  13. import org.springframework.web.servlet.HandlerInterceptor;
  14. import com.annotation.IgnoreAuth;
  15. import com.entity.EIException;
  16. import com.entity.TokenEntity;
  17. import com.service.TokenService;
  18. import com.utils.R;
  19. /**
  20. * 权限(Token)验证
  21. */
  22. @Component
  23. public class AuthorizationInterceptor implements HandlerInterceptor {
  24. public static final String LOGIN_TOKEN_KEY = "Token";
  25. @Autowired
  26. private TokenService tokenService;
  27. @Override
  28. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  29. //支持跨域请求
  30. response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
  31. response.setHeader("Access-Control-Max-Age", "3600");
  32. response.setHeader("Access-Control-Allow-Credentials", "true");
  33. response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
  34. response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
  35. IgnoreAuth annotation;
  36. if (handler instanceof HandlerMethod) {
  37. annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
  38. } else {
  39. return true;
  40. }
  41. //从header中获取token
  42. String token = request.getHeader(LOGIN_TOKEN_KEY);
  43. /**
  44. * 不需要验证权限的方法直接放过
  45. */
  46. if(annotation!=null) {
  47. return true;
  48. }
  49. TokenEntity tokenEntity = null;
  50. if(StringUtils.isNotBlank(token)) {
  51. tokenEntity = tokenService.getTokenEntity(token);
  52. }
  53. if(tokenEntity != null) {
  54. request.getSession().setAttribute("userId", tokenEntity.getUserid());
  55. request.getSession().setAttribute("role", tokenEntity.getRole());
  56. request.getSession().setAttribute("tableName", tokenEntity.getTablename());
  57. request.getSession().setAttribute("username", tokenEntity.getUsername());
  58. return true;
  59. }
  60. PrintWriter writer = null;
  61. response.setCharacterEncoding("UTF-8");
  62. response.setContentType("application/json; charset=utf-8");
  63. try {
  64. writer = response.getWriter();
  65. writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
  66. } finally {
  67. if(writer != null){
  68. writer.close();
  69. }
  70. }
  71. // throw new EIException("请先登录", 401);
  72. return false;
  73. }
  74. }

登录实现

  1. package com.controller;
  2. import java.util.Arrays;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.PathVariable;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import org.springframework.web.bind.annotation.RequestBody;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import org.springframework.web.bind.annotation.ResponseBody;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import com.annotation.IgnoreAuth;
  18. import com.baomidou.mybatisplus.mapper.EntityWrapper;
  19. import com.entity.TokenEntity;
  20. import com.entity.UserEntity;
  21. import com.service.TokenService;
  22. import com.service.UserService;
  23. import com.utils.CommonUtil;
  24. import com.utils.MD5Util;
  25. import com.utils.MPUtil;
  26. import com.utils.PageUtils;
  27. import com.utils.R;
  28. import com.utils.ValidatorUtils;
  29. /**
  30. * 登录相关
  31. */
  32. @RequestMapping("users")
  33. @RestController
  34. public class UserController{
  35. @Autowired
  36. private UserService userService;
  37. @Autowired
  38. private TokenService tokenService;
  39. /**
  40. * 登录
  41. */
  42. @IgnoreAuth
  43. @PostMapping(value = "/login")
  44. public R login(String username, String password, String captcha, HttpServletRequest request) {
  45. UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
  46. if(user==null || !user.getPassword().equals(password)) {
  47. return R.error("账号或密码不正确");
  48. }
  49. String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
  50. return R.ok().put("token", token);
  51. }
  52. /**
  53. * 注册
  54. */
  55. @IgnoreAuth
  56. @PostMapping(value = "/register")
  57. public R register(@RequestBody UserEntity user){
  58. // ValidatorUtils.validateEntity(user);
  59. if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
  60. return R.error("用户已存在");
  61. }
  62. userService.insert(user);
  63. return R.ok();
  64. }
  65. /**
  66. * 退出
  67. */
  68. @GetMapping(value = "logout")
  69. public R logout(HttpServletRequest request) {
  70. request.getSession().invalidate();
  71. return R.ok("退出成功");
  72. }
  73. /**
  74. * 密码重置
  75. */
  76. @IgnoreAuth
  77. @RequestMapping(value = "/resetPass")
  78. public R resetPass(String username, HttpServletRequest request){
  79. UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
  80. if(user==null) {
  81. return R.error("账号不存在");
  82. }
  83. user.setPassword("123456");
  84. userService.update(user,null);
  85. return R.ok("密码已重置为:123456");
  86. }
  87. /**
  88. * 列表
  89. */
  90. @RequestMapping("/page")
  91. public R page(@RequestParam Map<String, Object> params,UserEntity user){
  92. EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
  93. PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
  94. return R.ok().put("data", page);
  95. }
  96. /**
  97. * 列表
  98. */
  99. @RequestMapping("/list")
  100. public R list( UserEntity user){
  101. EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
  102. ew.allEq(MPUtil.allEQMapPre( user, "user"));
  103. return R.ok().put("data", userService.selectListView(ew));
  104. }
  105. /**
  106. * 信息
  107. */
  108. @RequestMapping("/info/{id}")
  109. public R info(@PathVariable("id") String id){
  110. UserEntity user = userService.selectById(id);
  111. return R.ok().put("data", user);
  112. }
  113. /**
  114. * 获取用户的session用户信息
  115. */
  116. @RequestMapping("/session")
  117. public R getCurrUser(HttpServletRequest request){
  118. Long id = (Long)request.getSession().getAttribute("userId");
  119. UserEntity user = userService.selectById(id);
  120. return R.ok().put("data", user);
  121. }
  122. /**
  123. * 保存
  124. */
  125. @PostMapping("/save")
  126. public R save(@RequestBody UserEntity user){
  127. // ValidatorUtils.validateEntity(user);
  128. if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
  129. return R.error("用户已存在");
  130. }
  131. userService.insert(user);
  132. return R.ok();
  133. }
  134. /**
  135. * 修改
  136. */
  137. @RequestMapping("/update")
  138. public R update(@RequestBody UserEntity user){
  139. // ValidatorUtils.validateEntity(user);
  140. UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
  141. if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
  142. return R.error("用户名已存在。");
  143. }
  144. userService.updateById(user);//全部更新
  145. return R.ok();
  146. }
  147. /**
  148. * 删除
  149. */
  150. @RequestMapping("/delete")
  151. public R delete(@RequestBody Long[] ids){
  152. userService.deleteBatchIds(Arrays.asList(ids));
  153. return R.ok();
  154. }
  155. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/555174
推荐阅读
相关标签
  

闽ICP备14008679号