# 高校健康上报系统设计与实现
## 0. 大作业讲解视频在根目录下
## 1. 项目介绍
在全国人民共同抗击新冠肺炎疫情的严峻形势下,为使高校师生健康信息及时汇报,便于了解健康状况,做好高校师生内部疫情防控和管理工作,特别设计开发高校健康上报系统。
## 2. 需求分析
### 2.1 前端界面功能模块
1. 界面美观、简洁、主题统一;
2. 调研国内相关系统界面的输入信息,设计前端各信息录入项目;
3. 有防止用户重复提交的功能;
4. 有加速渲染前端界面的设计。
### 2.2 后端管理端功能
1. 使用`Vue + ElementUI`实现管理后台各个功能界面;
2. 界面简洁,主题统一;
3. 管理员账号管理模块;
4. 使用Spring Security安全框架实现认证、访问控制;
5. 账号管理模块,可以锁定账号;
6. 有解决系统高并发问题的设计;
7. 提供大数据报表并导出Excel表格,相关人员通过报表可以一目了然查看相关信息;
8. 所有列表可以进行综合查询,特别是时间字段,并可以排序;
9. 所有列表可以导出excel文件或者pdf文件;
10. 接入莞工中央认证
11. 后台登录使用自定义图形验证码
## 3. 数据库设计
### 3.1 中央认证表
> 注:该表保存通过中央认证登录的用户信息【用于填写健康上报表单前的登录认证】
![](https://www.writebug.com/myres/static/uploads/2021/10/26/64d3fe62b646435545d058c3b3c59af7.writebug)
### 3.2 管理员表
![](https://www.writebug.com/myres/static/uploads/2021/10/26/8fcd831859561221fe79aea66a0a48c3.writebug)
### 3.3 健康上报表
![](https://www.writebug.com/myres/static/uploads/2021/10/26/116c1ca380a5b2bd9ef47979f7f87fcf.writebug)
## 4. 前端设计
使用技术栈:Vue + ElementUI + axios + VueX + Echart
### 4.1 健康上报表单设计
![](https://www.writebug.com/myres/static/uploads/2021/10/26/69e532b67dab3e61a03d3658755e0505.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/26/90e60acdf408b6702b4b0f0d4de2d8a3.writebug)
### 4.2 中台管理系统设计
![](https://www.writebug.com/myres/static/uploads/2021/10/26/ee8297563692cd40e46286a00050774f.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/26/fbd4ce36ed2c2c6e7b06254d1e7d27fd.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/26/68c0793bbd8a40046dded107ca432c25.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/26/1b07a7b8be3cc4949ac9de66c2fbadf4.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/26/732ffc21a6ff8cfef721397a45fba313.writebug)
## 5. 后端设计
### 5.1 技术方案
(1)开发框架:Spring Boot、Mybatis-plus
(2)项目构建工具:Maven
(3)权限控制:Spring Security。用于对登录的用户认证授权,进行访问控制。
(4)数据缓存/NoSQL:Redis。用于缓存常用数据,如省份数据等;以及做一些NoSQL查询;使用Redis防止消息重复消费
(5)消息队列:RabbitMQ。用于异步导出查询数据,将数据导出与主业务进行**解耦**。可将数据导出模块单独部署,当数据量很大时,可以防止导出模块与主业务模块抢夺服务器资源。同时使用了**延时队列**来删除过期的导出文件。
(6)数据导出:利用MyBatis的动态SQL功能,首先传入参数生成完整SQL,再把SQL发送到队列中,等待消费者进行消费。
### 5.2 多模块项目结构
![](https://www.writebug.com/myres/static/uploads/2021/10/26/8253d11e93c223b5bf20fbaa99af35dc.writebug)
### 5.3 权限模块设计
![](https://www.writebug.com/myres/static/uploads/2021/10/26/65ef95a306e8fc1cdcca1fd0feacd1fa.writebug)
#### 5.3.1 中央认证安全配置
```java
package com.health.central_authentication.config;
import com.health.central_authentication.filter.DGUTCheckTokenFilter;
import com.health.central_authentication.handler.DGUTAccessDeniedHandler;
import com.health.central_authentication.handler.DGUTAuthenticationEntryPoint;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import javax.annotation.Resource;
/**
* 莞工中央认证安全配置
* @author: zipeng Li
* 2021/6/14 19:53
*/
@Configuration
@Order(99)
public class DGUTSecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private DGUTAccessDeniedHandler dgutAccessDeniedHandler;
@Resource
private DGUTAuthenticationEntryPoint dgutAuthenticationEntryPoint;
@Resource
private DGUTCheckTokenFilter dgutCheckTokenFilter;
/**
* 配置权限资源
* @param http
* @throws Exception
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 只拦截检查'/api/user/**'的请求
.antMatcher("/api/user/**").authorizeRequests().anyRequest().hasAuthority("USER")
.and().csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.exceptionHandling()
.authenticationEntryPoint(dgutAuthenticationEntryPoint)
.accessDeniedHandler(dgutAccessDeniedHandler);
http.addFilterBefore(dgutCheckTokenFilter, UsernamePasswordAuthenticationFilter.class);
}
}
```
#### 5.3.2 后台登录安全配置
```java
package com.health.admin.config;
import com.health.admin.filter.CheckTokenFilter;
import com.health.admin.handler.*;
import com.health.security.impl.AdminDetailsService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import javax.annotation.Resource;
/**
* 后台管理系统安全配置
* @author: zipeng Li
* 2021/6/13 12:58
*/
@Configuration
@Order(100)
public class AdminSecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private AdminDetailsService adminDetailsService;
@Resource
private LoginSuccessHandler loginSuccessHandler;
@Resource
private LoginFailureHandler loginFailureHandler;
@Resource
private AdminAuthenticationEntryPoint adminAuthenticationEntryPoint;
@Resource
private AdminAccessDeniedHandler adminAccessDeniedHandler;
@Resource
private AdminLogoutSuccessHandler adminLogoutSuccessHandler;
@Resource
private CheckTokenFilter checkTokenFilter;
@Value("${system.admin.login-url}")
private String loginUrl;
@Value("${system.admin.logout-url}")
private String logoutUrl;
@Bean
public PasswordEncoder passwordEncoder() {
// 明文+随机盐值》加密存储
return new BCryptPasswordEncoder();
}
/**
* 配置权限资源
* @param http
* @throws Exception
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
前端界面功能模块 界面美观、简洁、主题统一; 调研国内相关系统界面的输入信息,设计前端各信息录入项目; 有防止用户重复提交的功能; 有加速渲染前端界面的设计。 2.2 后端管理端功能 使用Vue + ElementUI实现管理后台各个功能界面; 界面简洁,主题统一; 管理员账号管理模块; 使用Spring Security安全框架实现认证、访问控制; 账号管理模块,可以锁定账号; 有解决系统高并发问题的设计; 提供大数据报表并导出Excel表格,相关人员通过报表可以一目了然查看相关信息; 所有列表可以进行综合查询,特别是时间字段,并可以排序; 所有列表可以导出excel文件或者pdf文件; 接入莞工中央认证 后台登录使用自定义图形验证码
资源推荐
资源详情
资源评论
收起资源包目录
基于Java(Vue+ElementUI+Echart)+MySQL实现(Web)高校健康上报系统【100011209】 (130个子文件)
mvnw.cmd 6KB
mvnw.cmd 6KB
mvnw.cmd 6KB
.gitignore 395B
test.http 444B
maven-wrapper.jar 50KB
maven-wrapper.jar 50KB
maven-wrapper.jar 50KB
AdminController.java 11KB
MybatisSQLUtil.java 5KB
MybatisSQLUtil.java 5KB
CentralAuthenticationController.java 5KB
MavenWrapperDownloader.java 5KB
MavenWrapperDownloader.java 5KB
MavenWrapperDownloader.java 5KB
CheckTokenFilter.java 4KB
JwtUtils.java 4KB
AdminSecurityConfig.java 4KB
DGUTCheckTokenFilter.java 3KB
DataStatsTaskReceiver.java 3KB
DBPoolConnection.java 3KB
LoginFailureHandler.java 3KB
QiNiuUtil.java 2KB
reportController.java 2KB
DataToExcel.java 2KB
RabbitConfig.java 2KB
DGUTSecurityConfig.java 2KB
ReportForm.java 2KB
LoginSuccessHandler.java 2KB
ResultUtils.java 2KB
ImageCodeConfig.java 2KB
DBUtil.java 2KB
AdminLogoutSuccessHandler.java 2KB
Admin.java 2KB
AdminDetailsService.java 1KB
CentralAuthenticationToken.java 1KB
DelayedRabbitMQConfig.java 1KB
DelayTaskReceiver.java 1KB
MyBatisPlusConfig.java 1KB
DGUTAccessDeniedHandler.java 1KB
AdminAccessDeniedHandler.java 1KB
AdminAuthenticationEntryPoint.java 1KB
DGUTAuthenticationEntryPoint.java 1KB
Student.java 1KB
ReportFormMapper.java 1014B
StudentController.java 962B
MyBatisPlusMetaObjectHandler.java 946B
ReportFormServiceImpl.java 841B
AdminServiceImpl.java 731B
DelayDeleteQueueConstants.java 697B
DataStatsTaskQueueConstants.java 687B
DataStatsTaskReceiverTest.java 651B
TestHandler.java 610B
DruidConfig.java 596B
ResultPageVo.java 595B
ReportFormService.java 556B
testFilter.java 510B
HealthSystemApplication.java 485B
UsernameNotFoundException.java 461B
CodeStatus.java 452B
ResultVo.java 446B
SystemProcessApplication.java 438B
DataStatsTask.java 399B
ComDetectorDao.java 368B
StudentServiceImpl.java 365B
AdminService.java 341B
AdminMapper.java 340B
ImageCodeException.java 327B
LockAdmin.java 323B
TestAdminController.java 287B
TokenException.java 284B
ParmVo.java 261B
StudentMapper.java 254B
SystemProcessApplicationTests.java 233B
StatsController.java 231B
SystemModelApplicationTests.java 229B
StudentService.java 203B
RegionStatsParam.java 164B
TemperStatsParam.java 142B
TestCentralAuthenticationController.java 132B
http-client.private.env.json 238B
LICENSE 1KB
README.md 36KB
大作业讲解.mp4 45.47MB
mvnw 10KB
mvnw 10KB
mvnw 10KB
1625407108900.png 239KB
1624886094638.png 52KB
1624866695543.png 49KB
1624886179060.png 41KB
1624886216229.png 37KB
1624886236702.png 33KB
1624886201225.png 32KB
1624886146285.png 31KB
1625021243398.png 30KB
1624887173362.png 28KB
1624866665829.png 27KB
1624866609218.png 24KB
1624887343071.png 22KB
共 130 条
- 1
- 2
资源评论
- HsuYYY2023-11-14资源是宝藏资源,实用也是真的实用,感谢大佬分享~
神仙别闹
- 粉丝: 2674
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功