基于SpringBoot的爱心家园服装捐赠系统

2023-11-18

目录

1、项目介绍

2、项目技术

3、运行环境

4、项目介绍

5、项目代码

5、运行截图

6、源码获取


1、项目介绍

角色:管理员、用户

管理员:管理员登录系统后,可以对首页、个人中心、用户管理、捐赠记录管理、论坛管理、留言管理、心愿管理等功能进行相应的操作管理

用户:用户进入系统可以查看首页、个人中心、旧物捐赠管理、活动报名管理等内容,进行详细的操作、系统首页的主要功能展示了首页、捐赠衣服、论坛交流、爱心许愿、个人主页等信息

2、项目技术

后端: SpringBoot+Mybaits

前端: Vue +ElementUl +Layui +HTML+CSS+JS

3、运行环境

开发语言: Java

项目架构: B/S架构

开发工具: IDEA,Eclipse,Myeclipse都可以。推荐IDEA

JDK版本: 1.8

数据库: MySQL5.7或8.0版本以上

项目管理: Maven

4、项目介绍

在很多发达国家中,爱心捐赠系统的进展明显要快于我国很多,在管理方面也建设了很多不同的管理平台,这些管理平台能够为管理员管理提供数据信息。这些爱心捐赠系统原则上的设计能够结合网络软硬件构建出信息系统。​

相比较于国外而言,我国网上用户资助和求助信息化发展是较为缓慢的,最初只是将网上用户资助和求助信息作为一个概念进行研究。随着信息技术的不断发展,目前我国在网上用户资助和求助管理方面已经有了进步。

以爱心捐赠系统的应用为基础,可以将软件开发机构分为几个层次:

第一个层次中的国外软件开发机构能够提供较为成熟的爱心捐赠系统,这些爱心捐赠系统的主要目标为市场上的高端用户,软件能够满足高端用户对其平台的要求。

第二个层次是我国的一些软件机构在研究爱心捐赠系统的时候往往引入了国外软件的设计模式,之后结合国内市场的具体需要进行设计软件。设计出的软件一般能够符合大多数用户的认可。

第三个层次为定制的爱心捐赠系统。一般是结合于用户的实际需求,定制有特殊功能的爱心捐赠系统,从而满足用户的不同要求。

5、项目代码

package com.lc.controller;

import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.lc.entity.Donation;
import com.lc.entity.User;
import com.lc.service.DonationService;
import com.lc.utils.UserContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.*;
import java.util.stream.Collectors;

/**
 * 捐赠信息控制层
 */
@RestController
@RequestMapping("/donation")
public class DonationController {

    @Autowired
    DonationService donationService;


    /**
     * 捐赠信息数据表格接口
     */
    @RequestMapping(value="/getTableData", produces="application/json; charset=utf-8")
    public String getTableData(@RequestBody Donation donation) {
        Map<String, Object> map = donationService.selectPage(donation);
        return JSON.toJSONString(map);
    }

    /**
     * 后台捐赠信息保存
     */
    @RequestMapping("/saveDonation")
    public String saveDonation(@RequestBody Donation donation) {
        return donationService.save(donation);
    }

    /**
     * 前台捐赠信息保存
     */
    @RequestMapping("/insertDonationList")
    public String insertDonationList(@RequestBody List<Donation> list) {
        return donationService.insertDonationList(list);
    }

    /**
     * 捐赠信息删除(物理删除)
     */
    @RequestMapping("/deleteDonation")
    public String deleteDonation(String id) {
        return donationService.deletePhysical(id);
    }

    /**
     * 我的捐赠记录数据获取
     */
    @RequestMapping("/selfDonation")
    public List<Map<String, Object>> selfDonation(){
        User currentUser = UserContext.getCurrentUser();
        List<Map<String, Object>> listMap = donationService.countSelfDonation(currentUser.getId());
        return listMap;
    }

    /**
     * 后台修改捐赠记录状态
     */
    @RequestMapping("/updateVerify")
    public String updateVerify(String id, Integer verify){
        return donationService.updateVerifyById(id, verify);
    }


    /**
     * 前台页面第一个饼状图数据接口
     */
    @RequestMapping("/echartsDataOne")
    public List<Map<String, String>> echartsDataOne(){
        List<Donation> allList = donationService.selectAllList();
        Map<String, List<Donation>> allMap = allList.stream().peek(o -> {
            if(o.getKind() == 0){
                o.setKindName("上衣");
            }else if(o.getKind() == 1){
                o.setKindName("裤子");
            }else if(o.getKind() == 2){
                o.setKindName("袜子");
            }else if(o.getKind() == 3){
                o.setKindName("手套");
            }else if(o.getKind() == 4){
                o.setKindName("帽子");
            }else if(o.getKind() == 5){
                o.setKindName("其他");
            }
        }).collect(Collectors.groupingBy(Donation::getKindName));
        List<Map<String, String>> listMap = new ArrayList<>();
        for(Map.Entry<String, List<Donation>> map : allMap.entrySet()){
            Double sum = map.getValue().stream().mapToDouble(Donation::getNumber).sum();
            Map<String, String> itemMap = new HashMap<String, String>();
            itemMap.put("value", String.valueOf(sum));
            itemMap.put("name", map.getKey());
            listMap.add(itemMap);
        }
        return listMap;
    }

    /**
     * 前台页面第二个柱状图数据接口
     */
    @RequestMapping("/echartsDataTwo")
    public Map<String, List<String>> echartsDataTwo(){
        Map<String, List<String>> resultMap = new HashMap<>();
        //获取最近七天的时间段(往前找3天+往后找三天+今天一天)
        List<String> dateList = new ArrayList<>();
        String today= DateUtil.today();
        Date date = DateUtil.parse(today);
        for(int i=0; i<7; i++){
            String d = DateUtil.format(DateUtil.offset(date, DateField.DAY_OF_MONTH, -6 + i), "yyyy-MM-dd");
            dateList.add(d);
        }
        //根据日期获取数据
        List<String> dataList = new ArrayList<>();
        List<Donation> allList = donationService.selectAllList();
        for(String currentDate : dateList){
            List<Donation> list = allList.stream().filter(o -> currentDate.equals(o.getCreateDate().split(" ")[0])).collect(Collectors.toList());
            if(list.isEmpty()){
                dataList.add(String.valueOf(0));
            }else{
                dataList.add(String.valueOf(list.stream().mapToDouble(Donation::getNumber).sum()));
            }
        }
        resultMap.put("dateList", dateList);
        resultMap.put("dataList", dataList);
        return resultMap;
    }

    /**
     * 前台页面第三个折现图数据接口
     */
    @RequestMapping("/echartsDataThree")
    public Map<String, List<String>> echartsDataThree(){
        Map<String, List<String>> resultMap = new HashMap<>();
        //获取最近七天的时间段(往前找6天+今天一天)
        List<String> dateList = new ArrayList<>();
        String today= DateUtil.today();
        Date date = DateUtil.parse(today);
        for(int i=0; i<7; i++){
            String d = DateUtil.format(DateUtil.offset(date, DateField.DAY_OF_MONTH, -6 + i), "yyyy-MM-dd");
            dateList.add(d);
        }
        //根据日期获取数据
        List<Donation> allList = donationService.selectAllList();
        List<String> agreeList = new ArrayList<>();
        List<String> refuseList = new ArrayList<>();
        List<String> waitList = new ArrayList<>();
        for(String currentDate : dateList){
            List<Donation> list = allList.stream().filter(o -> currentDate.equals(o.getCreateDate().split(" ")[0])).collect(Collectors.toList());
            agreeList.add(String.valueOf(list.stream().filter(o -> o.getVerify() == 1).count()));
            refuseList.add(String.valueOf(list.stream().filter(o -> o.getVerify() == 2).count()));
            waitList.add(String.valueOf(list.stream().filter(o -> o.getVerify() == 0).count()));
        }
        resultMap.put("dateList", dateList);
        resultMap.put("agreeList", agreeList);
        resultMap.put("refuseList", refuseList);
        resultMap.put("waitList", waitList);
        return resultMap;

    }




}

5、运行截图

管理员:

用户: 

 

6、源码获取

https://download.csdn.net/download/qinluyu111/87860867icon-default.png?t=N4P3https://download.csdn.net/download/qinluyu111/87860867

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于SpringBoot的爱心家园服装捐赠系统 的相关文章

随机推荐

  • openGL之API学习(六十三)GL_RASTERIZER_DISCARD

    glEnable GL RASTERIZER DISCARD 使用GL RASTERIZER DISCARD标志作为参数调用glEnable 函数 告诉渲染管线在transform feedback可选阶段之后和到达光栅器前抛弃所有的图元
  • 与计算机信息技术有关的课题,信息技术课题研究报告.doc

    PAGE PAGE 1 信息技术环境下教学模式和教学方法的创新研究 课题研究报告 摘要 本课题由中央电教馆与有关专家在充分论证的基础上 于2006年12月被批准为中央电化教育馆全国教育技术 十一五 专项课题 在中央电教馆组织下 课题研究得到
  • 机器学习在交通标志检测与精细分类中的应用

    导读 数据对于地图来说十分重要 没有数据 就没有地图服务 用户在使用地图服务时 不太会想到数据就像冰山一样 用户可见只是最直接 最显性的产品功能部分 而支撑显性部分所需要的根基 往往更庞大 地图数据最先是从专业采集来的 采集工具就是车 自行
  • python学习笔记2

    if语法 if True print 条件成 执 的代码1 print 条件成 执 的代码2 下 的代码没有缩进到if语句块 所以和if条件 关 print 我是 论条件是否成 都要执 的代码 if else if 条件 条件成 执 的代码
  • linux查看用户登录时间以及命令历史

    1 查看当前登录用户信息 who命令 who缺省输出包括用户名 终端类型 登陆日期以及远程主机 who var log wtmp 可以查看自从wtmp文件创建以来的每一次登陆情况 1 b 查看系统最近一次启动时间 2 H 打印每列的标题 u
  • 转载-STM32片上FLASH内存映射、页面大小、寄存器映射

    原文地址 http blog chinaunix net uid 20617446 id 3847242 html 本文以STM32F103RBT6为例介绍了片上Flash Embedded Flash 若干问题 包括Flash大小 内存映
  • LAMP框架的架构与环境配置

    1 LAMP架构的相关知识 1 1 LAMP架构的概述 LAMP架构是目前成熟的企业网站应用模式之一 指的是协同工作的一整套系统和相关软件 能够提供动态Web站点服务及其应用开发环境 LAMP是一个缩写词 具体包括Linux操作系统 Apa
  • 神经网络训练中batch的作用(从更高角度理解)

    1 什么是batch batch 翻译成汉语为批 一批一批的批 在神经网络模型训练时 比如有1000个样本 把这些样本分为10批 就是10个batch 每个批 batch 的大小为100 就是batch size 100 每次模型训练 更新
  • CPU流水线与指令乱序执行

    青蛙见了蜈蚣 好奇地问 蜈蚣大哥 我很好奇 你那么多条腿 走路的时候先迈哪一条啊 蜈蚣听后说 青蛙老弟 我一直就这么走路 从没想过先迈哪一条腿 等我想一想再回答你 蜈蚣站立了几分钟 它一边思考一边向前 蹒跚了几步 终于趴下去了 它对青蛙说
  • Http通用短信接口开发经验及具体开发实现

    支持所有开发语言的调用 苹果IOS操作系统和WindowsPhone手机操作系统可参考执行 一 Webservice接口 1 webservice返回集合对照表 返回值 返回值说明 问题描述 2 帐号 密码不正确 1 序列号未注册2 密码加
  • 房价预测--利用Python进行数据分析

    原文链接 https www kaggle com pmarcelino comprehensive data exploration with python notebook 在这篇文章中 我对原文的结论翻译并加入自己的一些理解 如有不当
  • OCR算法综述与编程实现

    OCR算法综述与编程实现 OCR Optical Character Recognition 光学字符识别 是一种将图像中的文字转换为可编辑文本的技术 它在许多领域中发挥着重要作用 如文档扫描 自动化数据输入和图像搜索等 本文将对几种常见的
  • vue初识之自定义指令

    目录 一 简介 二 组成 三 分类 1 全局自定义指令 2 私有自定义指令 四 总结 一 简介 Vue中的自定义指令是一种扩展Vue功能的方式 可以用来封装常用的DOM操作或者添加一些特殊的行为 自定义指令可以在Vue实例中全局注册或者局部
  • Python 基础(一):入门必备知识

    目录 1 标识符 2 关键字 3 引号 4 编码 5 输入输出 6 缩进 7 多行 8 注释 9 数据类型 10 运算符 10 1 常用运算符 10 2 运算符优先级 基础 进阶 爬虫 自动化 数据分析 编写小游戏 趣味 Python 文档
  • Elasticsearch入门简单版

    文章目录 Elasticsearch 入门与深入 一 Elasticsearch介绍 1 主要功能 2 版本与升级 新特性 5 x 新特性 6 x 新特性 7 x 二 ELK 家族成员介绍 Logstash Kibana Elastic B
  • 电驴无限制 服务器,全球最大电驴服务器eDonkeyServer No2消失

    位于瑞典的电驴服务器eDonkeyServer No2是在比利时的Razorback 2 0服务器和德国DonkeyServer系列服务器之后全球最大的电驴服务器 然而目前已经不能访问 上个月底 10月底 包括eDonkeyServer N
  • SonarQube扫描代码规则设置

    Java自带的内嵌规则有400多条 太全了 导致扫描检测到的bug太多 可以根据公司项目需求自定义规则 创建质量配置 切换到质量配置右上角点击创建 取名并指定你要检测的开发语言 上级选择没有 可以在搜索配置分类选一下 可以快速定位 将我们新
  • Python 六大数据类型

    一 数字型 一 整型 1 整型 int 在数字中 正整数 0 负整数都称为整型 2 二进制整型 也可用二进制表示整型 print自动转换为十进制 二 浮点型 1 浮点型 float 含有小数点的数据都是浮点型 三 布尔型 布尔型 bool
  • SQL中去掉字符串中最后一个字符(小技巧)

    长度减一就可以了 select left 字段名 len 字段名 1 from 表名
  • 基于SpringBoot的爱心家园服装捐赠系统

    目录 1 项目介绍 2 项目技术 3 运行环境 4 项目介绍 5 项目代码 5 运行截图 6 源码获取 1 项目介绍 角色 管理员 用户 管理员 管理员登录系统后 可以对首页 个人中心 用户管理 捐赠记录管理 论坛管理 留言管理 心愿管理等