灾区物资救助系统|基于Springboot开发实现灾区物资救助系统

简介: 灾区物资救助系统|基于Springboot开发实现灾区物资救助系统

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:Springboot+JSP

二,项目简介

本基目主要基于Java开发技术实现一个灾区物资救助管理系统,用户注册后登录系统后可以在线申请救助,由管理员进行审批,也可以对别人的求助进行帮助,同时可以查看相关的灾区新闻信息,管理个人信息等。平台管理员登录系统后可以审核相关的求助信息,救助信息等,同时管理相关资讯信息,账号信息,轮播图信息,查看相关的图形报表统计数据等。具体的功能如下面展示。

三,系统展示

用户登录

轮播图及新闻展示

个人中心管理

我要求助

我来帮助

我的相关申请

求助审核

账号管理

新闻资讯

轮播图管理

数据统计

四,核心代码展示

package com.liuyang.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.SecureUtil;
import com.liuyang.common.Result;
import com.liuyang.entity.Account;
import com.liuyang.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 作者:me
 * @since 2022-02-22
 */
@RestController
@RequestMapping("/system/account")
public class AccountController {
    @Autowired
    private AccountService accountService;
    /**
     * 编辑个人中心
     * @param account
     * @return
     */
    @PostMapping("/editAccount")
    public Result editAccount(Account account) {
        account.setAccountPassword(SecureUtil.md5(account.getAccountPassword()));
        accountService.saveOrUpdate(account);
        return Result.succ("更新成功...");
    }
}
package com.liuyang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpSession;
@Controller
public class IndexController {
    // 首页
    @GetMapping("/index")
    public String index() {
        return "index";
    }
    // 注册页
    @GetMapping("/register")
    public String register() {
        return "register";
    }
    // 后台主页
    @GetMapping("/system/index")
    public String systemIndex() {
        return "system/index";
    }
    // 后台菜单
    @GetMapping("/system/menu")
    public String systemMenu() {
        return "system/menu";
    }
    // 我的首页
    @GetMapping("/system/welcome")
    public String systemWelcome() {
        return "system/welcome";
    }
    // 我要求助
    @GetMapping("/system/sendHelp")
    public String systemSendHelp() {
        return "system/send-help";
    }
    // 我来帮助
    @GetMapping("/system/receiveHelp")
    public String systemReceiveHelp() {
        return "system/receive-help";
    }
    // 个人中心
    @GetMapping("/system/userInfo")
    public String systemUserInfo() {
        return "system/user-info";
    }
    // 我的申请 - 求助申请
    @GetMapping("/system/userApply")
    public String systemUserApply() {
        return "system/user-apply";
    }
    // 我的申请 - 帮助申请
    @GetMapping("/system/userHelp")
    public String systemUserHelp() {
        return "system/user-help";
    }
    // 注销
    @GetMapping("/logout")
    public String logout(HttpSession session) {
        session.invalidate();
        return "index";
    }
    // 物资详情
    @GetMapping("/system/ReceiveDetailHelp")
    public String systemReceiveDetailHelp() {
        return "system/receive-detail-help";
    }
    // 求助审核
    @GetMapping("/system/checkApply")
    public String systemCheckApply() {
        return "system/check-apply";
    }
    // 账号管理
    @GetMapping("/system/accountManage")
    public String systemAccountManage() {
        return "system/account-manage";
    }
    // 新闻资讯
    @GetMapping("/system/newsManage")
    public String systemNewsManage() {
        return "system/news-manage";
    }
    // 数据统计
    @GetMapping("/system/statisticsManage")
    public String systemStatisticsManage() {
        return "system/statistics-manage";
    }
    // 轮播图
    @GetMapping("/system/carouselManage")
    public String systemCarouselManage() {
        return "system/carousel-manage";
    }
    // 日志
    @GetMapping("/system/logsManage")
    public String systemLogsManage() {
        return "system/logs-manage";
    }
}
package com.liuyang.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.liuyang.common.Result;
import com.liuyang.common.TableResult;
import com.liuyang.entity.Disasterimg;
import com.liuyang.entity.Materials;
import com.liuyang.entity.Materialsimg;
import com.liuyang.service.DisasterimgService;
import com.liuyang.service.MaterialsService;
import com.liuyang.service.MaterialsimgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 作者:me
 * @since 2022-02-23
 */
@RestController
@RequestMapping("/system/materials")
public class MaterialsController {
    @Autowired
    private MaterialsService materialsService;
    @Autowired
    private MaterialsimgService materialsimgService;
    @Autowired
    private DisasterimgService disasterimgService;
    /**
     * 我要求助, 添加需要申请的物资信息
     * @param map
     * @return
     */
    @PostMapping("/addMaterials")
    public Result addMaterials(@RequestBody Map map) {
        if(map.size() == 0) {
            return Result.fail("申请失败");
        }
        Snowflake snowflake = new Snowflake(2,3);
        Materials materials = new Materials();
        String id = snowflake.nextIdStr();
        String applicationTime = DateUtil.format(new Date(), "yyyy-MM-dd");
        materials.setId(id);
        materials.setApplicationTime(applicationTime);
        materials.setStatus("3"); // 处于待帮助状态
        BeanUtil.fillBeanWithMap(map, materials, false);
        materialsService.saveOrUpdate(materials); // 添加物资
        String imgIds = map.get("imgIds").toString();
        List<String> imgIdsList = StrUtil.split(imgIds, ',');
        for(String imgId : imgIdsList) {
//            Materialsimg materialsimg = new Materialsimg();
//            materialsimg.setId(imgId);
//            materialsimg.setMaterialsId(id);
//            materialsimgService.saveOrUpdate(materialsimg);
            Disasterimg disasterimg = new Disasterimg();
            disasterimg.setId(imgId);
            disasterimg.setMaterialsId(id);
            disasterimgService.saveOrUpdate(disasterimg);
        }
        return Result.succ("申请成功");
    }
    /**
     * 我来帮助, 状态3, 3表示处于待接收帮助
     * @return
     */
    @GetMapping("/queryMaterials")
    public TableResult queryMaterials(String applicantId) {
        List<Materials> materialsList = materialsService.list(new QueryWrapper<Materials>().eq("status", "3").ne("applicantId", applicantId));
        TableResult tableResult = new TableResult(0, "ok",materialsList.size(),materialsList);
        return tableResult;
    }
    /**
     * 我的申请 - 求助申请
     * @param applicantId
     * @return
     */
    @GetMapping("/queryMaterialsByApplicantId")
    public TableResult queryMaterialsByApplicantId(String applicantId) {
        List<Materials> list = materialsService.list(new QueryWrapper<Materials>().eq("applicantId", applicantId));
        TableResult tableResult = new TableResult(0,"ok",list.size(),list);
        return tableResult;
    }
    /**
     * 我的申请 - 帮助申请
     * @param helperId
     * @return
     */
    @GetMapping("/queryMaterialsByHelperId")
    public TableResult queryMaterialsByHelperId(String helperId) {
        List<Materials> list = materialsService.list(new QueryWrapper<Materials>().eq("helperId", helperId));
        TableResult tableResult = new TableResult(0,"ok",list.size(),list);
        return tableResult;
    }
    /**
     * 物资详情
     * @param id
     * @return
     */
    @GetMapping("/queryMaterialsById")
    public Result queryMaterialsById(String id) {
        Materials materials = materialsService.queryMaterialsById(id);
        return Result.succ(materials);
    }
    /**
     * 我来帮助, 接受需要帮助物资, 状态置为 0, 表示从状态3变为0, 当前状态处于待审核状态
     * @param id
     * @return
     */
    @PostMapping("/editReceiveMaterialsById")
    public Result editReceiveMaterialsById(String id, String helperId, String helpType, String imgIds) {
        Materials materials = new Materials();
        materials.setId(id);
        materials.setStatus("0");
        materials.setHelperId(helperId);
        materials.setHelpType(helpType);
        List<String> imgIdsList = StrUtil.split(imgIds, ',');
        for(String imgId : imgIdsList) {
            Materialsimg materialsimg = new Materialsimg();
            materialsimg.setId(imgId);
            materialsimg.setMaterialsId(id);
            materialsimgService.saveOrUpdate(materialsimg);
        }
        materialsService.saveOrUpdate(materials);
        return Result.succ("申请帮助成功...");
    }
    /**
     * 求助审核, 对物资状态0, 进行查询
     * @return
     */
    @GetMapping("/queryMaterialsCheckApply")
    public TableResult queryMaterialsCheckApply() {
        List<Materials> list = materialsService.list(new QueryWrapper<Materials>().eq("status", "0"));
        TableResult tableResult = new TableResult(0, "ok",list.size(),list);
        return tableResult;
    }
    @PostMapping("/editMaterialsCheckApply")
    public Result editMaterialsCheckApply(String id, String status, String checkIdea) {
        Materials materials = new Materials();
        materials.setId(id);
        materials.setStatus(status);
        materials.setCheckIdea(checkIdea);
        materialsService.saveOrUpdate(materials);
        return Result.succ("1".equals(status)? "审核通过": "审核不通过");
    }
}

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统


相关文章
|
10天前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
39 1
|
18天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
28天前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
61 4
|
28天前
|
前端开发 Java Apache
SpringBoot实现电子文件签字+合同系统!
【10月更文挑战第15天】 在现代企业运营中,合同管理和电子文件签字成为了日常活动中不可或缺的一部分。随着技术的发展,电子合同系统因其高效性、安全性和环保性,逐渐取代了传统的纸质合同。本文将详细介绍如何使用SpringBoot框架实现一个电子文件签字和合同管理系统。
51 1
|
14天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
29 0
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
144 1
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
152 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
230 1
|
18天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
95 62
|
16天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
34 2