当前位置:   article > 正文

SpringBoot+Vue项目大学校园防疫与服务系统的设计与实现_基于vue框架的校园疫情管理系统的设计与实现

基于vue框架的校园疫情管理系统的设计与实现

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍 

二、功能需求分析

2.1学生模块

2.2教师模块

2.3管理员模块

三、前台学生功能

3.1学生首页模块

3.2社区互动模块

3.3新闻资讯模块

3.4疫苗信息模块 

3.5学生接种预约模块 

四、学生后台功能模块

4.1出行报备管理模块 

4.2学生接种预约管理模块

4.3请假管理模块 

五、教师后台功能模块

5.1请假管理审核页面 

六、管理员功能模块

6.1轮播图管理模块 

6.2教师管理模块 

6.3新闻资讯管理模块

七、部分核心代码

7.1疫苗信息的关键代码 

7.2接种预约关键代码

7.3出行报备关键代码

7.4学生注册的关键代码 

7.5学生登录的关键代码


一、前言介绍 

系统采用了Java技术,将所有业务模块采用以浏览器交互的模式,选择MySQL作为系统的数据库,开发工具选择IDEA来进行系统的设计。基本实现了大学校园防疫与服务系统 应有的主要功能模块,本系统有管理员、教师、学生。管理员:后台首页、轮播图、公告栏、用户管理、社区互动、新闻资讯、出行报备、疫苗信息、学生接种预约、教师接种预约、请假管理、销假申请。教师;后台首页、社区互动、出行报备、教师接种预约、请假管理、销假申请。学生;后台首页、社区互动、出行报备、教师接种预约、请假管理、销假申请管理等。

对系统进行测试后,改善了程序逻辑和代码。同时确保系统中所有的程序都能正常运行,所有的功能都能操作,并且该系统有很好的操作体验,实现了对于大学校园防疫与服务系统 对学生管理、教师管理、政府部门双赢。

二、功能需求分析

大学校园防疫与服务系统 在对需求做解析后,整个系统主要分为三个部分:管理员、教师和学生,每个模块下的分支功能不一样。对功能做出如下说明:

2.1学生模块

账号登录认证。

管理个人资料信息,修改可修改的信息项。

出行报备,添加和查询已有出行的记录。

2.2教师模块

个人资料管理,修改删除自己的信息。

学生的添加与查询、出行报备的查询、疫苗接种预约的查询、请假管理的查询与审核请假、销假申请的查询及删除、通知公告的查询。

2.3管理员模块

系统用户的管理,管理和添加删除管理员,可以设置登录权限,或者删除所有用户账号。

教师管理,添加教师的具体信息与查询教师同时也具备删除教师。

通知公告管理,添加发布公告查询公告和删除公告的功能。

学生管理,查询学生的信息,也具备修改和删除功能。

出行报备管理,查询学生出行报备的信息,也具备修改和删除功能。

疫苗接种预约管理,查询学生疫苗接种的信息,也具备修改和删除功能。

请假管理,查询学生请假的信息,也具备修改和删除功能。

销假管理,查询学生销假的信息,也具备修改和删除功能。

系统管理,系统的备份功能。

三、前台学生功能

3.1学生首页模块

3.2社区互动模块

3.3新闻资讯模块

3.4疫苗信息模块 

3.5学生接种预约模块 

四、学生后台功能模块

4.1出行报备管理模块 

4.2学生接种预约管理模块

4.3请假管理模块 

五、教师后台功能模块

5.1请假管理审核页面 

六、管理员功能模块

6.1轮播图管理模块 

6.2教师管理模块 

6.3新闻资讯管理模块

七、部分核心代码

7.1疫苗信息的关键代码 

  1. @PostMapping("/add")
  2. @Transactional
  3. public Map<String, Object> add(HttpServletRequest request) throws IOException {
  4. service.insert(service.readBody(request.getReader()));
  5. return success(1);
  6. }
  7. @Transactional
  8. public Map<String, Object> addMap(Map<String,Object> map){
  9. service.insert(map);
  10. return success(1);
  11. }

7.2接种预约关键代码

  1. @RequestMapping("/get_list")
  2. public Map<String, Object> getList(HttpServletRequest request) {
  3. Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
  4. return success(map);
  5. }

7.3出行报备关键代码

  1. @RequestMapping("/get_obj")
  2. public Map<String, Object> obj(HttpServletRequest request) {
  3. Query select = service.select(service.readQuery(request), service.readConfig(request));
  4. List resultList = select.getResultList();
  5. if (resultList.size() > 0) {
  6. JSONObject jsonObject = new JSONObject();
  7. jsonObject.put("obj",resultList.get(0));
  8. return success(jsonObject);
  9. } else {
  10. return success(null);
  11. }
  12. }
  13. public Query select(Map<String,String> query,Map<String,String> config){
  14. StringBuffer sql = new StringBuffer("select ");
  15. sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
  16. sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
  17. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
  18. sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
  19. }
  20. if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
  21. sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
  22. }
  23. if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
  24. int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
  25. int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
  26. sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
  27. }
  28. log.info("[{}] - 查询操作,sql: {}",table,sql);
  29. return runEntitySql(sql.toString());
  30. }

7.4学生注册的关键代码 

  1. /**
  2. * 注册
  3. * @param user
  4. * @return
  5. */
  6. @PostMapping("register")
  7. public Map<String, Object> signUp(@RequestBody User user) {
  8. // 查询用户
  9. Map<String, String> query = new HashMap<>();
  10. query.put("username",user.getUsername());
  11. List list = service.select(query, new HashMap<>()).getResultList();
  12. if (list.size()>0){
  13. return error(30000, "用户已存在");
  14. }
  15. user.setUserId(null);
  16. user.setPassword(service.encryption(user.getPassword()));
  17. service.save(user);
  18. return success(1);
  19. }
  20. /**
  21. * 用户ID:[0,8388607]用户获取其他与用户相关的数据
  22. */
  23. @Id
  24. @GeneratedValue(strategy = GenerationType.IDENTITY)
  25. @Column(name = "user_id")
  26. private Integer userId;
  27. /**
  28. * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
  29. */
  30. @Basic
  31. @Column(name = "state")
  32. private Integer state;
  33. /**
  34. * 所在用户组:[0,32767]决定用户身份和权限
  35. */
  36. @Basic
  37. @Column(name = "user_group")
  38. private String userGroup;
  39. /**
  40. * 上次登录时间:
  41. */
  42. @Basic
  43. @Column(name = "login_time")
  44. private Timestamp loginTime;
  45. /**
  46. * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
  47. */
  48. @Basic
  49. @Column(name = "phone")
  50. private String phone;
  51. /**
  52. * 手机认证:[0,1](0未认证|1审核中|2已认证)
  53. */
  54. @Basic
  55. @Column(name = "phone_state")
  56. private Integer phoneState;
  57. /**
  58. * 用户名:[0,16]用户登录时所用的账户名称
  59. */
  60. @Basic
  61. @Column(name = "username")
  62. private String username;
  63. /**
  64. * 昵称:[0,16]
  65. */
  66. @Basic
  67. @Column(name = "nickname")
  68. private String nickname;
  69. /**
  70. * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
  71. */
  72. @Basic
  73. @Column(name = "password")
  74. private String password;
  75. /**
  76. * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
  77. */
  78. @Basic
  79. @Column(name = "email")
  80. private String email;
  81. /**
  82. * 邮箱认证:[0,1](0未认证|1审核中|2已认证)
  83. */
  84. @Basic
  85. @Column(name = "email_state")
  86. private Integer emailState;
  87. /**
  88. * 头像地址:[0,255]
  89. */
  90. @Basic
  91. @Column(name = "avatar")
  92. private String avatar;
  93. /**
  94. * 创建时间:
  95. */
  96. @Basic
  97. @Column(name = "create_time")
  98. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  99. private Timestamp createTime;
  100. @Basic
  101. @Transient
  102. private String code;
  103. }

7.5学生登录的关键代码

  1. /**
  2. * 登录
  3. * @param data
  4. * @param httpServletRequest
  5. * @return
  6. */
  7. @PostMapping("login")
  8. public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
  9. log.info("[执行登录接口]");
  10. String username = data.get("username");
  11. String email = data.get("email");
  12. String phone = data.get("phone");
  13. String password = data.get("password");
  14. List resultList = null;
  15. Map<String, String> map = new HashMap<>();
  16. if(username != null && "".equals(username) == false){
  17. map.put("username", username);
  18. resultList = service.select(map, new HashMap<>()).getResultList();
  19. }
  20. else if(email != null && "".equals(email) == false){
  21. map.put("email", email);
  22. resultList = service.select(map, new HashMap<>()).getResultList();
  23. }
  24. else if(phone != null && "".equals(phone) == false){
  25. map.put("phone", phone);
  26. resultList = service.select(map, new HashMap<>()).getResultList();
  27. }else{
  28. return error(30000, "账号或密码不能为空");
  29. }
  30. if (resultList == null || password == null) {
  31. return error(30000, "账号或密码不能为空");
  32. }
  33. //判断是否有这个用户
  34. if (resultList.size()<=0){
  35. return error(30000,"用户不存在");
  36. }
  37. User byUsername = (User) resultList.get(0);
  38. Map<String, String> groupMap = new HashMap<>();
  39. groupMap.put("name",byUsername.getUserGroup());
  40. List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
  41. if (groupList.size()<1){
  42. return error(30000,"用户组不存在");
  43. }
  44. UserGroup userGroup = (UserGroup) groupList.get(0);
  45. //查询用户审核状态
  46. if (!StringUtils.isEmpty(userGroup.getSourceTable())){
  47. String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
  48. String res = String.valueOf(service.runCountSql(sql).getSingleResult());
  49. if (res==null){
  50. return error(30000,"用户不存在");
  51. }
  52. if (!res.equals("已通过")){
  53. return error(30000,"该用户审核未通过");
  54. }
  55. }
  56. //查询用户状态
  57. if (byUsername.getState()!=1){
  58. return error(30000,"用户非可用状态,不能登录");
  59. }
  60. String md5password = service.encryption(password);
  61. if (byUsername.getPassword().equals(md5password)) {
  62. // 存储Token到数据库
  63. AccessToken accessToken = new AccessToken();
  64. accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
  65. accessToken.setUser_id(byUsername.getUserId());
  66. tokenService.save(accessToken);
  67. // 返回用户信息
  68. JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
  69. user.put("token", accessToken.getToken());
  70. JSONObject ret = new JSONObject();
  71. ret.put("obj",user);
  72. return success(ret);
  73. } else {
  74. return error(30000, "账号或密码不正确");
  75. }
  76. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/362476
推荐阅读
相关标签
  

闽ICP备14008679号