【顶级】从0到1带你完成Springboot+mybatisplus+mysql的校园疫情可视化管理系统
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
该项目基于springboot框架实现了疫情背景下的校园管理,主要涵盖了中国疫情确诊分布地图(对接腾讯API接口)、中国实时疫情新闻播报、以及对疫情数据的饼图、折线图和柱状图展示。系统角色可以进行增删改查,为角色分配菜单权限,大致分为学生、教师、院系级系统管理员,集成了shiro框架实现了不同的角色可以赋予不同的菜单栏权限,可以完成菜单栏的动态增删改查,实现了动态的权限设置。
? 在校园疫情数据管理中,基于mybatiplus框架实现了疫情数据的带有条件查询及分页的增删改查,并实现了拖拽式上传excel数据和导出疫情数据。其中相关功能主要包含疫情数据管理,疫情新闻管理,疫情风险地区查询,近30日疫情新增趋势等等,疫情图表展示管理,学生健康打卡管理,院系管理、班级管理、核酸检测管理,疫苗接种管理,学生请假管理等等。系统管理中主要包含了用户管理、角色管理和菜单管理。
? 在数据库设计中,主要设计了用户与角色之间的多对多实体关系,角色与菜单之间的多对多关系设计。其中,学生请假功能设计了详细的审批流,学生提交审批流后,教师审批后方为院系审批,为串行审批流程,设计了审批节点的状态与审批流的审批逻辑。
? 在缓存设计中,主要将访问量较高的中国疫情地图和新闻播报首页进行了redis数据缓存,为了保证redis缓存与mysql数据的一致性,每当定时任务触发去解析腾讯API接口数据时候,每更新一次数据库数据,就要删除一次redis缓存,这样就可以保证客户端每次查询数据查不到就可以进行访问数据库更新最新的缓存数据。
? 在接口设计中,采用了RestFul风格的架构,使请求路径变得更加简洁,传递、获取参数值更加方便,通过请求路径中直接传递参数值,不会暴露传递给方法的参数变量名,接口也变得更加安全。
【【【微信】】路人王:从0到1】
上课地址:https://www.bilibili.com/video/【【微信】】?share_source=copy_web 源码下载:源码下载:https://download.csdn.net/download/wyn_365/87097570 已完成展示
1.官网:https://echarts.apache.org/zh/ 下载JS文件引入项目 2.查看图例 3.快速使用
地图社区图例:http://www.isqqw.com/
springboot
contRoller: /query
service:
dao:
entity:
7.1 分页配置MybatisPlusConfig
7.2 layui返回的数据格式 DataView
1.前端发送请求 /
2.后端查询数据库,封装数据Excel实体
3.返回数据建立输出,写出浏览器文件
**主页网址:**https://news.qq.com/【【微信】】/page/feiyan.htm#/global
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6br5VFGz-【【QQ微信】】12)(C:\Users\15067\AppData\Local\Temp\1654132815620.png)]
**腾讯数据接口:**https://view.inews.qq.com/【【微信】】?name=disease_h5
**网易数据接口:**https://c.m.163.com/ug/api/wuhan/app/data/list-total
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JZNONU26-【【QQ微信】】14)(C:\Users\15067\AppData\Local\Temp\1654302358239.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5【【微信】】【【QQ微信】】20)(C:\Users\15067\AppData\Local\Temp\1654302429447.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJ3yQKhh-【【QQ微信】】22)(C:\Users\15067\AppData\Local\Temp\1654303017808.png)]
前台:User: username password 【javabean】
后台:SQL:【【微信】】 * from user where username = ? and password = ?
USER: ID USERNAME PASSWORD IMG ROLE BANJI
session 浏览器第一次访问程序服务端,会产生一个session,会帮你生成一个唯一的ID 【缓存、数据库】
浏览器:cookies, sessionid ------- sesssion
缺点:
1.服务端压力【存储】
session保存在服务端,一个用户保存,百万级别的用户,都不保存在服务端。 session sessionid,浏览器保存id
2.局限性,浏览器禁用cookie
问题:user信息
token: 没有状态,username password 字符串
登录:认证,,授权
认证:登录,学生―》学校 大门口进门
**授权:**学生=男生 【男生宿舍 男生厕所】
role【学生 老师 管理员】
学生:查看
老师:修改
管理员:删除
1.先要判断验证码对不对?
2.username password SQL
3.SHIRO 权限【角色】
吃饭时候:跑外面 砍一棵大树 一双筷子
使用。
登陆之前:除了登录页面和静态资源之外全部拦截掉
Subject**:**主体,应用代码直接交互的对象是 Subject,也就是说 Shiro 的对外 API 核心就是 Subject , 代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;
SecurityManager**:**安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互,如果学习过SpringMVC,你可以把它看成DispatcherServlet前端控制器;
Realm**:**域,Shiro从从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。
1.menu 菜单
id | pid | type | title | premission | icon | href | open | ordernum | available |
---|---|---|---|---|---|---|---|---|---|
1 | menu | 疫管理 | menu:【【微信】】 | /menu | 1 | 1 | 1 | ||
2 | 1 | menu | 饼图 | menu:【【微信】】 | /pie | 2 | 1 |
2.role 角色
id | name | remark |
---|---|---|
1 | 超级管理员 | 拥有所有权限 |
2 | 老师 | 查看新增修改 |
3 | 学生 | 查看 |
3.role_menu 关联关系表
rid | mid |
---|---|
1 | 1 |
1 | 2 |
4.user 用户表【老师,学生,管理员】
id | username | password | … | role_id | 【【微信】】d | 【【微信】】_id | teacher_id |
---|---|---|---|---|---|---|---|
1 | admin | 123456 | 1 | 1 | 1 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYreSzPx-【【QQ微信】】26)(C:\Users\15067\AppData\Local\Temp\1654489985017.png)]
5.【【微信】】 班级表
id | name | 【【微信】】_id |
---|---|---|
1 | 软件工程1班 | 1 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-woDqyper-【【QQ微信】】27)(C:\Users\15067\AppData\Local\Temp\1654490055131.png)]
6.【【微信】】学院表
id | name |
---|---|
1 | 计算机系 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcP5hK4v-【【QQ微信】】56)(C:\Users\15067\AppData\Local\Temp\1654494627502.png)]
TreeNode
TreeBuilder
父级菜单ID为:0【必填】
删除逻辑的时候:
1.子类ID,不能删除
2.没有子类ID,直接删掉
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5zW7CMV-【【QQ微信】】59)(C:\Users\15067\AppData\Local\Temp\1654516334725.png)]
真正的删除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-【【微信】】【【QQ微信】】60)(C:\Users\15067\AppData\Local\Temp\1654521334106.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Hu3oVPi-【【QQ微信】】62)(C:\Users\15067\AppData\Local\Temp\1654561883304.png)]
1.修改样式 引入 js css
2.配置yml放行js包
3.原项目修改index.html 为 china.html 删除 commonmenu.html 引入 静态资源包里面的 index.html
4.去掉其它页面 的 引入,添加
去掉
5.修改 【【微信】】 的请求/路径,添加一个/toChina
6.修改数据库 /toChina
7.编写Controller
1.引入role的静态页面
页面进行菜单的增加
2…
3…
4…
1.分配权限 menu【菜单的操作资源】id
2.分配角色 role【用户 管理员 学生 教师】id
3.关联表role_menu:【全都可以为空,不能有主键,都是外键属性】
rid mid
1 1
1 2
【【微信】】 mid from role_menu where rid = ?
List 所具有的菜单栏权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y6SmF4nA-【【QQ微信】】63)(C:\Users\15067\AppData\Local\Temp\1654588068035.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-【【微信】】【【QQ微信】】65)(C:\Users\15067\AppData\Local\Temp\1654592413047.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdsYmy5N-【【QQ微信】】66)(C:\Users\15067\AppData\Local\Temp\1654592505578.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zjAy90zy-【【QQ微信】】69)(C:\Users\15067\AppData\Local\Temp\1654602632710.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1X3YI2DT-【【QQ微信】】70)(C:\Users\15067\AppData\Local\Temp\1654602643229.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2uuKQyTQ-【【QQ微信】】72)(C:\Users\15067\AppData\Local\Temp\1654602658000.png)]
1.引入以页面
2.编写代码
查询所有带有分页 带有查询条件
第一种办法:如何连表查询????????
自定义方法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8OVKZ3o-【【QQ微信】】74)(C:\Users\15067\AppData\Local\Temp\1654658187253.png)]
sql:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3mBpmB0-【【QQ微信】】76)(C:\Users\15067\AppData\Local\Temp\1654658432315.png)]
// 2.第二种办法
1.ipage【User所有数据】―> banjiID ----->【【微信】】 表 名字给ipage对象进行赋值
2.添加属性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OO3Jte47-【【QQ微信】】79)(C:\Users\15067\AppData\Local\Temp\1654660307518.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BafuoUAp-【【QQ微信】】81)(C:\Users\15067\AppData\Local\Temp\1654665124918.png)]
填充数据【下拉列表】
熙增编辑和删除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ru7dPd9X-【【QQ微信】】83)(C:\Users\15067\AppData\Local\Temp\1654669217432.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ibuaAoAm-【【QQ微信】】84)(C:\Users\15067\AppData\Local\Temp\1654669197299.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k5bWuzmb-【【QQ微信】】87)(C:\Users\15067\AppData\Local\Temp\1654680325599.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FU【【微信】】【【QQ微信】】90)(C:\Users\15067\AppData\Local\Temp\1654680700125.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sihWT4gD-【【QQ微信】】92)(C:\Users\15067\AppData\Local\Temp\1654680810232.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CI3qBSkO-【【QQ微信】】94)(C:\Users\15067\AppData\Local\Temp\1654682183307.png)]
1.删除之前的用户与角色关系
2.保存用户与角色的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n12IcJFS-【【QQ微信】】97)(C:\Users\15067\AppData\Local\Temp\1654683042820.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXz3C9AZ-【【QQ微信】】99)(C:\Users\15067\AppData\Local\Temp\1654689887283.png)]
用户 : 角色 : 菜单
id ---- List
role ― List
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xd【【微信】】【【QQ微信】】5)(C:\Users\15067\AppData\Local\Temp\1654690134405.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-owaLSutJ-【【QQ微信】】6)(C:\Users\15067\AppData\Local\Temp\1654690116614.png)]
加载左侧主页菜单栏的时候进行条件查询【OK】
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H1WaOr6R-【【QQ微信】】7)(C:\Users\15067\AppData\Local\Temp\1654691392426.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ceeVsGiU-【【QQ微信】】8)(C:\Users\15067\Ap
小心中招etc诈骗又出新套路 警方提醒etc诈骗又出新招可别上钩
小心中招etc诈骗又出新骗局,etc诈骗如何破案,etc诈骗案,大量etc车主遭诈骗这个专门针对车主的*升级了!
骗子所冒充的对象
不再是之前的“高速ETC”
而是改为“交管12123”
使得骗术更加具有“权威性”
令受害人的“服从性”更强
看起来是“交管12123”
发来的善意提醒
实际却隐藏着陷阱
*手法
受害人手机收到虚假短信提示自己的ETC异常,里面附带了一个“网站链接”,点击进入之后,填写个人信息,包括银行卡信息,最终导致被骗……
看到这里,你是不是觉得
这么简单的骗术怎么能骗到人呢?
不急,让我们从受害人角度出发
再来看一遍
“钓鱼”短信的关键内容有三个:
1.ETC异常;
2.务必立即操作;
3.否则永久禁用。
一般人在看到“永久禁用”这几个字眼后会产生焦虑情绪,特别是新骗局中还加入了“截止日期”,从而加剧了紧迫性。
如果你点击短信中的“钓鱼链接”,将会进入如下页面:
虽然这个页面乍一看挺“官方”,但假的毕竟是假的,经不起细推敲。
“钓鱼”网站页面虽标明“进度查询”“设备激活”“网点查询”等功能,还提供申请办卡、办卡进度、查询余额、查询账单等,但你注意了!这些都是图片、图片、图片!页面只有中间“ETC认证”可以点!
【请注意!!!】
骗子为什么不做得更逼真点,把戏做全套呢?
其实,他们就是想通过故意露出破绽来过滤掉一部分细心的“客户”,这样他们就能找到那些更容易上当的人,从而提高*成功的概率。
当你点击进入下一页面时,便开始收集你的个人信息了……
【重点来了!!!】
这里要求填写银行卡密码。银行卡密码(取款密码)是账户安全的最后防线之一,在没有确认是自己的转账操作、对方账户、转账金额这三个关键要素之前,不可以在任何途径泄露。
当你提交信息时,页面会提示你“正在认证”,下方还有个进度条。
假如刚刚填写的是真实的个人资料,那么当你在等待验证时,骗子已经在登录受害人的网上银行,做转账操作的准备了。
随后,页面会跳转成如下:
此时,骗子刚刚通过银行网站向受害人发送了转账操作所需要的验证码。
【请注意!!!】
看仔细了,你收到的验证码并不是所谓的“ETC认证”,而是你的银行发来的转账验证码,而此时,“钓鱼”网站页面正好就是输入验证码,骗子就是这样进行*的。
就这样,你账户里的第一笔钱被转走了。
这就完了?
当然不是,你接下来会看到的页面是:
验证码错误(超时),请重新输入新的验证码!
这是骗子开启了另一笔、又一笔、还一笔新的转账……
真正的交管12123短信服务信息
真实的短信号码为
“12123+2位省份数字代码+2位地市顺序码”
▲公安部交通安全综合服务管理平台官网
警方提示
短信链接可能含有木马病毒,会自动获取手机最高权限,从而盗刷微信、支付宝等第三方软件中绑定的银行卡内资金,请勿轻信。
若短信中含有链接,请认准官方信息,千万不要随意点击。也不要拨打短信中的陌生电话,以防受骗。
来源:江门反诈服务号