当前位置: 首页 > news >正文

基于springboot的地质灾害应急管理系统

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

该系统基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:灾情、灾情、洪水、地震等。

项目功能:

该信息系统应用软件一共实现了前台和幕后二大操作模板的操作,其中前台模板主要完成了使用者的申请登记、查询受灾消息一览表、查询受灾者详细信息、发布评论、个人管理等大部分操作;而幕后模板则主要完成了灾情信息管理,内容包含灾情发布、查询灾情一览表、受灾评价;分类信息管理涵盖分类增加、查询分类一览表;用户管理涵盖用户增加、查询客户一览表;授予权限的为信息管理、表格表单的信息管理;以及评论控制等主要内容。

  1. 注册登记:个人用户可以通过填写登记信息成为会员,注册后就可以完成相关的操作。
  2. 查看灾情资讯清单表:使用者在登录后,可以看到系统公布的灾害资讯清单。
  3. 灾情详细内容,包含看评论和一些重点的标注:使用人进入到该系统后,首先看到的就是首页的灾害类的新闻和资讯,此时使用者可以点开任一灾情的详细信息以此来查看灾情详细内容。
  4. 发表评论:用户注册进入信息系统后,即可对灾情信息提出自己的意见和评价。
  5. 使用人的个人信息:使用人即用户进入到本系统后,类似所有可登录网页上的个人信息一栏,点进个人信息的管理,可以修改自己的备注,昵称,查看查阅新闻记录等。
  6. 灾情管理:当管理员进入系统的后台管理后,即可查看灾情列表,可以进行发布灾情的操作,同时还可以进行灾情评级。
  7. 管理员对用户的管理:管理员进入到系统后,所有使用人信息都是有权限查看的,可以授权用户为使用者或者帮助管理的人员,也可以授权他们为管理员,能够查看所有的使用者对灾情,资讯做出的评价,也可以去修改他们的评价,删除一些不好的评论,对于需要帮助的使用者,可以做出第一时间的分辨。
  8. 管理员对资源的管理:当管理员进入到系统之后,即可查看灾情列表,即可查看使用人列表,可以对发布的灾情做出删除,释放出一部分后台的空间,可以对人机类用户做出注销的操作,帮助更多人进入系统,有效利用好系统的资源。

 

系统包含技术:

后端:springboot,mybatis
前端:layui、js、css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是用户首页

查看新闻详情

用户可以进行评论

我的个人信息查看

查看个人的评论

 登录

管理员后台首页

 管理员进行灾情发布

 管理员查看灾情列表

管理员类型添加

 管理员查看类型列表

 管理员对菜单管理

 管理员对角色管理

 管理员对评论管理

 部分代码:

/**
     *
     * @param id 角色id
     * @return
     */
    public Object getMenuByRole(Integer id){
        RoleMenuExample rme = new RoleMenuExample();
        rme.createCriteria().andRoleIdEqualTo(id);
        List<RoleMenu> roleMenus1 = roleMenuMapper.selectByExample(rme);
        List<Menu> menuParent = new ArrayList<>();
        roleMenus1.forEach(roleMenu -> {
            Menu menu = menuMapper.selectByPrimaryKey(roleMenu.getMenuId());
            if(menu.getParentId() == 0){
                menuParent.add(menu);
            }
        });

        MenuExample me = new MenuExample();
        me.createCriteria().andParentIdEqualTo(0);

        List<Map<String, Object>> listResult = new ArrayList<>();
        menuParent.forEach(menu -> {
            Map<String,Object> map = new HashMap<>();
            map.put("title",menu.getMenuName());
            map.put("menuName",menu.getMenuName());
            map.put("menuUrl",menu.getMenuUrl());
            map.put("id",menu.getId());
            MenuExample menuExample = new MenuExample();
            menuExample.createCriteria().andParentIdEqualTo(menu.getId());
            List<Menu> menuChild = menuMapper.selectByExample(menuExample);
            List<Integer> list = new ArrayList<>();
            menuChild.forEach(menuInt -> {
                list.add(menuInt.getId());
            });
            RoleMenuExample roleMenuExample = new RoleMenuExample();
            roleMenuExample.createCriteria().andRoleIdEqualTo(id).andMenuIdIn(list);
            List<RoleMenu> roleMenus = roleMenuMapper.selectByExample(roleMenuExample);
            List<Map<String,Object>> listChildMap = new ArrayList<>();
            roleMenus.forEach(childRoleMenu -> {
                Map<String,Object> childMap = new HashMap<>();
                Menu menuChildObj = menuMapper.selectByPrimaryKey(childRoleMenu.getMenuId());
                childMap.put("title",menuChildObj.getMenuName());
                childMap.put("menuName",menuChildObj.getMenuName());
                childMap.put("menuUrl",menuChildObj.getMenuUrl());
                childMap.put("id",menuChildObj.getId());
                listChildMap.add(childMap);
            });
            map.put("children",listChildMap);
            listResult.add(map);
        });
        return listResult;
    }


    /**
     * [
     *    {
     *          menuName: '',
     *          menuUrl: '',
     *          child:[
     *               {
     *                   menuName: '',
     *                   menuUrl: ''
     *               }
     *          ]
     *     }
     * ]
     * @return
     */
    @RequestMapping("/get")
    public Object get(){
        MenuExample me = new MenuExample();
        me.createCriteria().andParentIdEqualTo(0);
        List<Menu> menus = menuMapper.selectByExample(me);
        List<Object> list = new ArrayList<>();
        for (Menu menu : menus) {
            Map<String,Object> map = new HashMap<>();
            map.put("id",menu.getId());
            map.put("menuName",menu.getMenuName());
            map.put("menuUrl",menu.getMenuUrl());
            MenuExample menuExample = new MenuExample();
            menuExample.createCriteria().andParentIdEqualTo(menu.getId());
            List<Menu> menus1 = menuMapper.selectByExample(menuExample);
            map.put("child",menus1);
            list.add(map);
        }

        return LayuiResult.LayuiData(0,"请求成功",list);
    }


    @RequestMapping("/get/list")
    public Object getList(Integer page,Integer limit){
        MenuExample me = new MenuExample();
        List<Menu> menus = menuMapper.selectByExample(me);
        Pager<Menu> pager = new Pager<>();
        pager.setCurentPageIndex(page);
        pager.setCountPerpage(limit);
        pager.setBigList(menus);
        return LayuiResult.LayuiData(0,"请求成功",pager.getSmallList(),pager.getRecordCount());
    }

    @RequestMapping("/get/parent")
    public Object getParentMenu(){
        MenuExample me = new MenuExample();
        me.createCriteria().andParentIdEqualTo(0);
        List<Menu> menuList = menuMapper.selectByExample(me);
        return LayuiResult.LayuiData(0,"success",menuList);
    }


    @RequestMapping("/get/child/{id}")
    public Object getChildMenuByParentId(@PathVariable Integer id){
        MenuExample me = new MenuExample();
        me.createCriteria().andParentIdEqualTo(id);
        List<Menu> menuList = menuMapper.selectByExample(me);
        return LayuiResult.LayuiData(0,"success",menuList);
    }


    @RequestMapping("/update")
    public Object update(@RequestBody Menu menu){
        menuMapper.updateByPrimaryKeySelective(menu);
        return LayuiResult.LayuiData(0,"菜单信息修改成功",null);
    }

    @RequestMapping("/delete/{id}")
    public Object delete(@PathVariable Integer id){
        menuMapper.deleteByPrimaryKey(id);
        return LayuiResult.LayuiData(0,"菜单信息已删除",null);
    }
@RequestMapping("/add")
    public Object add(@RequestBody Role role){
        roleMapper.insertSelective(role);
        return LayuiResult.LayuiData(0,"添加新角色成功",null);
    }


    @RequestMapping("/get")
    public Object get(Integer page,Integer limit){
        RoleExample roleExample = new RoleExample();
        List<Role> roles = roleMapper.selectByExample(roleExample);
        Pager<Role> pager = new Pager<>();
        pager.setCurentPageIndex(page);
        pager.setCountPerpage(limit);
        pager.setBigList(roles);
        return LayuiResult.LayuiData(0,"请求成功",pager.getSmallList(),pager.getRecordCount());
    }
    @RequestMapping("/getAll")
    public Object getAll(){
        RoleExample roleExample = new RoleExample();
        List<Role> roles = roleMapper.selectByExample(roleExample);
        return LayuiResult.LayuiData(0,"请求成功",roles);
    }


    @RequestMapping("/update")
    public Object update(@RequestBody Role role){
        roleMapper.updateByPrimaryKeySelective(role);
        return LayuiResult.LayuiData(0,"修改成功",null);
    }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

相关文章:

  • Structures
  • 向量数据库入坑指南:聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss
  • 电子邮件营销新趋势-自动化
  • ICT产业关联效应的国际比较——基于投入产出的分析
  • 【algorithm】算法学习----堆
  • Q_ENUM Q_ENUMS Q_ENUM_NS Q_FLAG Q_FLAGS Q_FLAG_NS
  • 国外5G行业应用产业政策分析及对我国的启示
  • 【C语言】文件输入输出操作
  • 【教3妹学算法-每日一题】竞赛题:6171. 和相等的子数组
  • 遗传算法GA求解非连续函数问题
  • 【电商营销】为什么需要从获取客户转向留住客户
  • 实战讲解Redis基础数据类型List增删改查(带Java源码)
  • 分布式消息队列RocketMQ介绍
  • Django视图层模版层全面解析全网最细的教程
  • java Map集合基本概念
  • [LeetCode] Wiggle Sort
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Babel配置的不完全指南
  • extjs4学习之配置
  • Leetcode 27 Remove Element
  • Mithril.js 入门介绍
  • Mysql数据库的条件查询语句
  • nodejs调试方法
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • scrapy学习之路4(itemloder的使用)
  • spring-boot List转Page
  • 力扣(LeetCode)56
  • 面试总结JavaScript篇
  • 设计模式走一遍---观察者模式
  • 一个JAVA程序员成长之路分享
  • 在Docker Swarm上部署Apache Storm:第1部分
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Forward) Music Player: From UI Proposal to Code
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (十)T检验-第一部分
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)UDP基本编程步骤
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .jks文件(JAVA KeyStore)
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 药厂业务系统 CPU爆高分析
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?