基于javaweb+mysql的springboot儿童爱心管理系统(java+springboot+vue+elementui+layui+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot儿童爱心管理系统(java+springboot+vue+elementui+layui+mysql)
项目介绍
基于SpringBoot Vue的儿童爱心网站
角色:管理员、用户
管理员:管理员登录系统后,可以对首页、个人中心、用户管理、宣传新闻管理、志愿活动管理、爱心捐赠管理、旧物捐赠管理、活动报名管理、系统管理等功能进行相应的操作管理
用户:用户进入系统可以查看首页、个人中心、旧物捐赠管理、活动报名管理等内容,进行详细的操作、系统首页的主要功能展示了首页、宣传新闻、志愿活动、爱心捐赠、个人中心、后台管理等信息
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+ElementUI+Layui+HTML+CSS+JS
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
文档介绍(可行性研究、技术可行性分析、经济可行性分析、运行可行性分析、系统现状分析、功能需求、系统设计规则及相关技术准备、总体设计、设计的原则及目标、系统的主要的功能结构、系统设计、数据表E-R图、数据库的主要表结构、系统的详细设计与实现、系统的功能模块、管理员功能模块、用户功能模块、系统测试与维护、测试内容、管理员登录测试、信息测试):
爱心捐赠展示页面:
爱心捐赠的首页展示页面:
志愿活动展示页面:
爱心捐赠后台管理详情列表:
后台登录管理页面:
后台管理-活动报名管理-活动报名:
e.printStackTrace();
return ResultObj.SIGNUP_ERROR;
/*
* 添加用户
*/
@RequestMapping("addUser")
public ResultObj addUser(UserVo userVo) {
try {
this.userService.addUser(userVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
public ResultObj updateUser(UserVo userVo) {
try {
this.userService.updateUser(userVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
/*
* 删除用户
*/
@RequestMapping("deleteUser")
this.roleService.deleteRole(roleVo.getRoleid());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
/*
* 批量删除角色
*/
@RequestMapping("deleteBatchRole")
public ResultObj deleteBatchRole(RoleVo roleVo) {
try {
Stringheadimg= userVo.getHeadimg();
if (headimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {
StringfilePath= AppFileUtils.updateFileName(headimg, SysConstast.FILE_UPLOAD_TEMP);
userVo.setHeadimg(filePath);
// 把原来的删除
Useruser=this.userService.queryUserInfo(userVo.getUserid());
AppFileUtils.removeFileByPath(user.getHeadimg());
this.userService.updateUserInfo(userVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
return"system/main/login";
};
/**
* 得到登录验证码
* @throws IOException
*/
@RequestMapping("getCode")
publicvoidgetCode(HttpServletResponse response, HttpSession session)throws IOException {
// 定义图形验证码的长和宽
LineCaptchalineCaptcha= CaptchaUtil.createLineCaptcha(116, 36, 4, 50);
Console.log(lineCaptcha.getCode());
session.setAttribute("code", lineCaptcha.getCode());
/*
* 批量删除角色
*/
@RequestMapping("deleteBatchRole")
public ResultObj deleteBatchRole(RoleVo roleVo) {
try {
this.roleService.deleteBatchRole(roleVo.getIds());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
* 修改个人信息
*/
@RequestMapping("updateUserInfo")
public ResultObj updateUserInfo(UserVo userVo) {
try {
Stringheadimg= userVo.getHeadimg();
if (headimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {
StringfilePath= AppFileUtils.updateFileName(headimg, SysConstast.FILE_UPLOAD_TEMP);
userVo.setHeadimg(filePath);
// 把原来的删除
Useruser=this.userService.queryUserInfo(userVo.getUserid());
@RequestMapping("deleteUser")
public ResultObj deleteUser(UserVo userVo) {
System.out.println(userVo);
System.out.println(userVo.getUserid());
try {
this.userService.deleteUser(userVo.getUserid());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
/*
this.userService.updateUserInfo(userVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
/*
* 查询个人信息
*/
@RequestMapping("queryUserInfo")
public User queryUserInfo() {
Useruser= (User) WebUtils.getHttpSession().getAttribute("user");
} catch (Exception e) {
return ResultObj.UPDATE_ERROR;
登录管理控制层:
/*
* 用户登录控制器
*/@Controller@RequestMapping("login")publicclassLoginController {
@Autowired
private UserService userService;
@Autowired
private LogInfoService logInfoService;
/*
* 添加用户
*/
@RequestMapping("addUser")
public ResultObj addUser(UserVo userVo) {
try {
this.userService.addUser(userVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
public ResultObj updateRole(RoleVo roleVo) {
try {
this.roleService.updateRole(roleVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
/*
* 删除角色
*/
@RequestMapping("deleteRole")
return ResultObj.ADD_ERROR;
/*
* 修改角色
*/
@RequestMapping("updateRole")
public ResultObj updateRole(RoleVo roleVo) {
try {
this.roleService.updateRole(roleVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
public ResultObj signup(UserVo userVo) {
try {
Stringcode= WebUtils.getHttpSession().getAttribute("code").toString();
if (userVo.getCode().toLowerCase().equals(code)) {
this.userService.signUpUser(userVo);
return ResultObj.SIGNUP_SUCCESS;
} else {
return ResultObj.USER_SIGNUP_CODE_ERROR_MSG;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.SIGNUP_ERROR;
/*
* 添加用户
/*
* 保存用户和角色的关系
*/
@RequestMapping("saveUserRole")
public ResultObj saveUserRole(UserVo userVo) {
try {
this.userService.saveUserRole(userVo);
return ResultObj.DISPATCH_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DISPATCH_ERROR;
// 生成密文
Stringpwd= DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());
userVo.setPwd(pwd);
if (userVo.getPwd().equals(user.getPwd())) {
return ResultObj.PWD_SUCCESS;
} else {
return ResultObj.PWD_ERROR;
/*
* 更改密码之查询密码
*/
@RequestMapping("updatePwd")
return"system/main/login";
/*
* 登录方法
*/
@RequestMapping("login")
public String login(UserVo userVo, Model model) {
// 最外层的if是判断session是否为空 为空就跳转到登录界面
// uservo不可能为空的,只是里面的属性可能为空 所以要判断session是否为空 就要判断里面的属性 而不是判断userVo本身 (坑!)
if (null != userVo.getLoginname()) {
// String code = WebUtils.getHttpSession().getAttribute("code").toString();// if (userVo.getCode().toLowerCase().equals(code)) {
Useruser=this.userService.login(userVo);
if (null != user) {
// 放入session
returnthis.userService.queryAllUser(userVo);
/*
* 注册用户--查询用户名是否存在
*/
@RequestMapping("queryLoginName")
public ResultObj queryLoginName(UserVo userVo) {
Integercount=this.userService.queryLoginName(userVo.getLoginname());
if (count != 0) {
return ResultObj.USER_EXIST;
returnnull;
/*