基于springboot+vue+mysql公益旧物捐赠系统(源码+参考文档+定制)

发布时间:2024-11-19 17:12

参与公益活动,如捐款或捐赠旧衣物,传递爱心 #生活乐趣# #日常生活乐趣# #健身运动乐趣# #公益志愿者乐趣#

博主介绍:
    ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。

技术范围:
    我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等方面的设计与开发。如果你有任何技术难题,我都乐意与你分享解决方案。

 主要内容:
     我的服务内容包括:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文撰写与辅导、论文降重、长期答辩答疑辅导。此外,我还提供腾讯会议一对一的专业讲解和模拟答辩演练,帮助你全面掌握答辩技巧与代码逻辑。

获取源码请在文末联系我
如果你对我的内容感兴趣,记得先收藏!对于毕设选题、项目开发或论文撰写等相关问题,随时欢迎留言咨询,我会尽力帮助更多同学顺利完成学业。

最主要的是免费咨询相关问题!!

一、详细操作演示视频
       在文章的尾声,您会发现一张电子名片,欢迎通过名片上的联系方式与我取得联系,以获取更多关于项目演示的详尽视频内容。视频将帮助您全面理解项目的关键点和操作流程。期待与您的进一步交流!
        承诺所有开发的项目,全程售后陪伴!!!文章下方有历年的好评(部分)!!

文档学习资料(阿龙可以赠送所有的录制好的讲解视频):

系统功能描述:
 

用户模块

注册登录: 用户能够通过微信小程序注册和登录系统。

首页:查看最新公益新闻、了解不同公益项目所需物资的详细信息,包括物资的分类、名称、数量以及捐助进度、查看参与公益项目的捐赠排行榜、参与评论区活动。

捐赠页面:搜索并查看所有公益项目、通过项目名称、关键词或编号进行项目搜索。

个人中心: 用户管理个人信息、查看捐赠记录等。

求助中心: 提交求助申请,包括填写个人信息、需求物资及附加证明材料。在收到帮助物品后,上传物品使用记录、支付物品的管理费用。

公益捐赠公告: 查看关于公益捐赠的最新公告和信息。

旧物捐赠: 用户捐赠旧物的具体流程和要求。

管理员模块

登录: 管理员通过特定的界面登录。

数据可视化: 展示系统运行的各项数据,捐赠统计、用户活动等。

用户管理: 管理用户账号,包括启用、禁用、添加、删除、修改、查询。

员工管理: 对系统内员工的账号进行管理,包括启用、禁用、修改、删除、查询。注册新员工账号,默认密码为123456。重置员工账户密码为默认密码。

捐赠管理: 对捐赠和求助的物品进行审核,管理求助和捐赠物品。

评论公告管理: 管理用户评论和发布公告。

物品分类管理: 对捐赠物品的分类进行管理。

新闻内容管理: 发布和管理公益新闻内容。

系统管理: 维护系统正常运行,进行必要的技术支持。

权限管理: 配置不同角色的系统访问权限。

荣誉管理: 管理用户和员工的荣誉称号和奖励。

员工模块

登录: 员工能够通过特定的界面登录系统,员工只能登录,不能自己注册账号。

首页: 查看系统公告、任务分配等。

个人中心: 员工管理个人信息、查看工作记录、修改密码等。

评论区管理: 管理用户的评论,维护评论区的秩序。

系统实现界面:

核心代码:

package com.controller;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.text.ParseException;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Calendar;

import java.util.Map;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Date;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;

import org.apache.commons.lang3.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.transaction.annotation.Transactional;

import org.springframework.format.annotation.DateTimeFormat;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.mapper.EntityWrapper;

import com.baomidou.mybatisplus.mapper.Wrapper;

import com.annotation.IgnoreAuth;

import com.entity.YonghuEntity;

import com.entity.view.YonghuView;

import com.service.YonghuService;

import com.service.TokenService;

import com.utils.PageUtils;

import com.utils.R;

import com.utils.MPUtil;

import com.utils.MapUtils;

import com.utils.CommonUtil;

import java.io.IOException;

@RestController

@RequestMapping("/yonghu")

public class YonghuController {

@Autowired

private YonghuService yonghuService;

@Autowired

private TokenService tokenService;

@IgnoreAuth

@RequestMapping(value = "/login")

public R login(String username, String password, String captcha, HttpServletRequest request) {

YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));

if(u==null || !u.getMima().equals(password)) {

return R.error("账号或密码不正确");

}

String token = tokenService.generateToken(u.getId(), username,"yonghu", "用户" );

return R.ok().put("token", token);

}

@IgnoreAuth

@RequestMapping("/register")

public R register(@RequestBody YonghuEntity yonghu){

YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()));

if(u!=null) {

return R.error("注册用户已存在");

}

Long uId = new Date().getTime();

yonghu.setId(uId);

yonghuService.insert(yonghu);

return R.ok();

}

@RequestMapping("/logout")

public R logout(HttpServletRequest request) {

request.getSession().invalidate();

return R.ok("退出成功");

}

@RequestMapping("/session")

public R getCurrUser(HttpServletRequest request){

Long id = (Long)request.getSession().getAttribute("userId");

YonghuEntity u = yonghuService.selectById(id);

return R.ok().put("data", u);

}

@IgnoreAuth

@RequestMapping(value = "/resetPass")

public R resetPass(String username, HttpServletRequest request){

YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));

if(u==null) {

return R.error("账号不存在");

}

u.setMima("123456");

yonghuService.updateById(u);

return R.ok("密码已重置为:123456");

}

@RequestMapping("/page")

public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu,

HttpServletRequest request){

EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();

PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));

return R.ok().put("data", page);

}

@IgnoreAuth

@RequestMapping("/list")

public R list(@RequestParam Map<String, Object> params,YonghuEntity yonghu,

HttpServletRequest request){

EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();

PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));

return R.ok().put("data", page);

}

@RequestMapping("/lists")

public R list( YonghuEntity yonghu){

EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();

ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu"));

return R.ok().put("data", yonghuService.selectListView(ew));

}

@RequestMapping("/query")

public R query(YonghuEntity yonghu){

EntityWrapper< YonghuEntity> ew = new EntityWrapper< YonghuEntity>();

ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu"));

YonghuView yonghuView = yonghuService.selectView(ew);

return R.ok("查询用户成功").put("data", yonghuView);

}

@RequestMapping("/info/{id}")

public R info(@PathVariable("id") Long id){

YonghuEntity yonghu = yonghuService.selectById(id);

return R.ok().put("data", yonghu);

}

@IgnoreAuth

@RequestMapping("/detail/{id}")

public R detail(@PathVariable("id") Long id){

YonghuEntity yonghu = yonghuService.selectById(id);

return R.ok().put("data", yonghu);

}

@RequestMapping("/save")

public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){

if(yonghuService.selectCount(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()))>0) {

return R.error("用户账号已存在");

}

yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());

YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()));

if(u!=null) {

return R.error("用户已存在");

}

yonghu.setId(new Date().getTime());

yonghuService.insert(yonghu);

return R.ok();

}

@RequestMapping("/add")

public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){

if(yonghuService.selectCount(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()))>0) {

return R.error("用户账号已存在");

}

yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());

YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()));

if(u!=null) {

return R.error("用户已存在");

}

yonghu.setId(new Date().getTime());

yonghuService.insert(yonghu);

return R.ok();

}

@RequestMapping("/update")

@Transactional

public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){

if(yonghuService.selectCount(new EntityWrapper<YonghuEntity>().ne("id", yonghu.getId()).eq("yonghuzhanghao", yonghu.getYonghuzhanghao()))>0) {

return R.error("用户账号已存在");

}

yonghuService.updateById(yonghu);

return R.ok();

}

@RequestMapping("/delete")

public R delete(@RequestBody Long[] ids){

yonghuService.deleteBatchIds(Arrays.asList(ids));

return R.ok();

}

}

数据库核心代码:

CREATE DATABASE `springbootbgsyo2os` ;

USE `springbootbgsyo2os`;

DROP TABLE IF EXISTS `aboutus`;

;

;

CREATE TABLE `aboutus` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`title` varchar(200) NOT NULL COMMENT '标题',

`subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',

`content` longtext NOT NULL COMMENT '内容',

`picture1` longtext COMMENT '图片1',

`picture2` longtext COMMENT '图片2',

`picture3` longtext COMMENT '图片3',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';

;

LOCK TABLES `aboutus` WRITE;

;

INSERT INTO `aboutus` VALUES (1,'2024-05-08 02:34:28','关于我们','ABOUT US','当你设想门外是寒冷可怕的世界时,你还应该开门出去看看,是否真的如此。如果你有信心,你对前途就不犹豫了。如果你有勇气,你就不怕前途是否有困难或危险了每个人心中都应有两盏灯,一盏是希望的灯,一盏是勇气的灯。有了这两盏灯,我们就不怕海上的黑暗和风涛的险恶了。人的一生很像是在雾中行走。远远望去,只是迷蒙一片,辨不出方向和吉凶。可是,当你鼓起勇气,放下恐惧和怀疑,一步一步向前走去的时候,你就会发现,每走一步,你都能把下一步路看得清楚一点。“往前走,别站在远远的地方观望!”你就可以找到你的方向。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');

;

UNLOCK TABLES;

DROP TABLE IF EXISTS `config`;

;

;

CREATE TABLE `config` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

`name` varchar(100) NOT NULL COMMENT '配置参数名称',

`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',

`url` varchar(500) DEFAULT NULL COMMENT 'url',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';

;

LOCK TABLES `config` WRITE;

;

INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);

;

UNLOCK TABLES;

DROP TABLE IF EXISTS `discussjiuwuhuishou`;

;

;

CREATE TABLE `discussjiuwuhuishou` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`refid` bigint(20) NOT NULL COMMENT '关联表id',

`userid` bigint(20) NOT NULL COMMENT '用户id',

`avatarurl` longtext COMMENT '头像',

`nickname` varchar(200) DEFAULT NULL COMMENT '用户名',

`content` longtext NOT NULL COMMENT '评论内容',

`reply` longtext COMMENT '回复内容',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='旧物回收评论表';

;

LOCK TABLES `discussjiuwuhuishou` WRITE;

;

;

UNLOCK TABLES;

DROP TABLE IF EXISTS `discussqiuzhuxinxi`;

;

;

CREATE TABLE `discussqiuzhuxinxi` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`refid` bigint(20) NOT NULL COMMENT '关联表id',

`userid` bigint(20) NOT NULL COMMENT '用户id',

`avatarurl` longtext COMMENT '头像',

`nickname` varchar(200) DEFAULT NULL COMMENT '用户名',

`content` longtext NOT NULL COMMENT '评论内容',

`reply` longtext COMMENT '回复内容',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='求助信息评论表';

;

LOCK TABLES `discussqiuzhuxinxi` WRITE;

;

;

UNLOCK TABLES;

DROP TABLE IF EXISTS `huishoujilu`;

;

;

CREATE TABLE `huishoujilu` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`juanzengbianhao` varchar(200) NOT NULL COMMENT '捐赠编号',

`wupinmingcheng` varchar(200) NOT NULL COMMENT '物品名称',

`wupinleibie` varchar(200) NOT NULL COMMENT '物品类别',

`wupintupian` longtext NOT NULL COMMENT '物品图片',

`shuliang` int(11) NOT NULL COMMENT '数量',

`yonghuzhanghao` varchar(200) NOT NULL COMMENT '用户账号',

`yonghuxingming` varchar(200) NOT NULL COMMENT '用户姓名',

`lianxidianhua` varchar(200) NOT NULL COMMENT '联系电话',

`huishoushijian` datetime NOT NULL COMMENT '回收时间',

`gonghao` varchar(200) NOT NULL COMMENT '回收人员',

`xiangqing` varchar(200) NOT NULL COMMENT '备注',

`crossuserid` bigint(20) DEFAULT NULL COMMENT '跨表用户id',

`crossrefid` bigint(20) DEFAULT NULL COMMENT '跨表主键id',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='回收记录';

;

LOCK TABLES `huishoujilu` WRITE;

;

INSERT INTO `huishoujilu` VALUES (71,'2024-05-08 02:34:28','捐赠编号1','物品名称1','物品类别1','upload/huishoujilu_wupintupian1.jpg,upload/huishoujilu_wupintupian2.jpg,upload/huishoujilu_wupintupian3.jpg',1,'用户账号1','用户姓名1','联系电话1','2024-05-08 10:34:28','回收人员1','备注1',1,1),(72,'2024-05-08 02:34:28','捐赠编号2','物品名称2','物品类别2','upload/huishoujilu_wupintupian2.jpg,upload/huishoujilu_wupintupian3.jpg,upload/huishoujilu_wupintupian4.jpg',2,'用户账号2','用户姓名2','联系电话2','2024-05-08 10:34:28','回收人员2','备注2',2,2),(73,'2024-05-08 02:34:28','捐赠编号3','物品名称3','物品类别3','upload/huishoujilu_wupintupian3.jpg,upload/huishoujilu_wupintupian4.jpg,upload/huishoujilu_wupintupian5.jpg',3,'用户账号3','用户姓名3','联系电话3','2024-05-08 10:34:28','回收人员3','备注3',3,3),(74,'2024-05-08 02:34:28','捐赠编号4','物品名称4','物品类别4','upload/huishoujilu_wupintupian4.jpg,upload/huishoujilu_wupintupian5.jpg,upload/huishoujilu_wupintupian6.jpg',4,'用户账号4','用户姓名4','联系电话4','2024-05-08 10:34:28','回收人员4','备注4',4,4),(75,'2024-05-08 02:34:28','捐赠编号5','物品名称5','物品类别5','upload/huishoujilu_wupintupian5.jpg,upload/huishoujilu_wupintupian6.jpg,upload/huishoujilu_wupintupian7.jpg',5,'用户账号5','用户姓名5','联系电话5','2024-05-08 10:34:28','回收人员5','备注5',5,5),(76,'2024-05-08 02:34:28','捐赠编号6','物品名称6','物品类别6','upload/huishoujilu_wupintupian6.jpg,upload/huishoujilu_wupintupian7.jpg,upload/huishoujilu_wupintupian8.jpg',6,'用户账号6','用户姓名6','联系电话6','2024-05-08 10:34:28','回收人员6','备注6',6,6),(77,'2024-05-08 02:34:28','捐赠编号7','物品名称7','物品类别7','upload/huishoujilu_wupintupian7.jpg,upload/huishoujilu_wupintupian8.jpg,upload/huishoujilu_wupintupian9.jpg',7,'用户账号7','用户姓名7','联系电话7','2024-05-08 10:34:28','回收人员7','备注7',7,7),(78,'2024-05-08 02:34:28','捐赠编号8','物品名称8','物品类别8','upload/huishoujilu_wupintupian8.jpg,upload/huishoujilu_wupintupian9.jpg,upload/huishoujilu_wupintupian10.jpg',8,'用户账号8','用户姓名8','联系电话8','2024-05-08 10:34:28','回收人员8','备注8',8,8);

;

UNLOCK TABLES;

为什么选择我:

我是程序员阿龙,专注于软件开发,拥有丰富的编程能力和实战经验。在过去的几年里,我辅导了上千名学生,帮助他们顺利完成毕业项目,同时我的技术分享也吸引了超过50W+的粉丝。我是CSDN特邀作者、博客专家、新星计划导师,并在Java领域内获得了多项荣誉,如博客之星。我的作品也被掘金、华为云、阿里云、InfoQ等多个平台推荐,成为各大平台的优质作者。

已经为上百名同学获得优秀毕业生!!

源码获取:
大家点赞、收藏、关注、评论啦 、查看获取联系方式

 精彩专栏推荐订阅:在下方专栏

网址:基于springboot+vue+mysql公益旧物捐赠系统(源码+参考文档+定制) https://www.yuejiaxmz.com/news/view/138797

相关内容

django校园旧物公益捐赠回收系统(源码+mysql+论文)
基于springboot大学校园旧物捐赠网站的设计与实现
java计算机毕业设计公益捐赠管理系统(附源码+springboot+开题+论文+部署)
【2024】基于springboot的大学校园旧物捐赠系统课题背景、目的、意义
基于SpringBoot+Vue的校园二手书交易系统(源码+文档+包运行)
基于SpringBoot+Vue+uniapp的家庭财务管理系统(源码+lw+部署文档+讲解等)
【毕业设计】基于SpringBoot + Vue的高校线上心理咨询室系统
基于微信小程序的家用电器维修系统小程序服务系统(源码+lw+部署文档+讲解等)
基于Spring Boot的大学校园旧物捐赠网站
基于安卓Android的旧物二手交易平台的设计与实现(源码+lw+部署文档+讲解等)

随便看看