基于springboot的大学生志愿者活动管理系统java+vue-论文、毕设源码、开题报告

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

4功能结构

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该大学生志愿者管理系统的功能结构图如下所示:

4-1 系统总体结构图

4.1 数据库设计

 4.1.1 数据库E/R图

ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在系统中对一些主要的几个关键实体如下图:

4.2 数据库表结构设计

从E-R系统的系统库的设计中可以看出,该系统包含了用户信息等方面。

在此基础上,结合工程实际需求,结合E-R模式的实际情况,对数据库的具体结构进行了详细的描述。具体的表设计如下所示:

4-1留言板

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

4-2活动类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

huodongleixing

varchar

200

活动类型

4-3组织风采

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zuzhibianhao

varchar

200

组织编号

zuzhimingcheng

varchar

200

组织名称

tupian

longtext

4294967295

图片

shipin

longtext

4294967295

视频

xiangqing

longtext

4294967295

详情

4-4活动报名

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

huodongzhuti

varchar

200

活动主题

huodongleixing

varchar

200

活动类型

huodongdidian

varchar

200

活动地点

zuzhibianhao

varchar

200

组织编号

zuzhimingcheng

varchar

200

组织名称

zhiyuanzhezhanghao

varchar

200

志愿者账号

zhiyuanzhexingming

varchar

200

志愿者姓名

baomingliyou

longtext

4294967295

报名理由

baomingshijian

date

报名时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

4-5组织报名

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zuzhibianhao

varchar

200

组织编号

zuzhimingcheng

varchar

200

组织名称

zhiyuanzhezhanghao

varchar

200

志愿者账号

zhiyuanzhexingming

varchar

200

志愿者姓名

shenqingliyou

longtext

4294967295

申请理由

baomingshijian

date

报名时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

4-6配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

4-7志愿组织

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zuzhibianhao

varchar

200

组织编号

mima

varchar

200

密码

zuzhimingcheng

varchar

200

组织名称

tupian

longtext

4294967295

组织logo

chenglishijian

date

成立时间

fuzeren

varchar

200

负责人

lianxidianhua

varchar

200

联系电话

zuzhijianjie

varchar

200

组织简介

clicktime

datetime

最近点击时间

4-8关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

4-9志愿者

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhiyuanzhezhanghao

varchar

200

志愿者账号

mima

varchar

200

密码

zhiyuanzhexingming

varchar

200

志愿者姓名

zhaopian

longtext

4294967295

照片

xingbie

varchar

200

性别

nianling

int

年龄

shoujihaoma

varchar

200

手机号码

4-10志愿活动

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

huodongzhuti

varchar

200

活动主题

huodongleixing

varchar

200

活动类型

huodongtupian

longtext

4294967295

活动图片

huodongdidian

varchar

200

活动地点

kaishishijian

datetime

开始时间

jieshushijian

datetime

结束时间

huodongxiangqing

longtext

4294967295

活动详情

zuzhibianhao

varchar

200

组织编号

zuzhimingcheng

varchar

200

组织名称

fabushijian

date

发布时间

4-11用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

4-12token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

4-13收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

4-14公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

4.3 基于MySQL数据库的存储设计

在MySQL数据库管理平台上进行了系统的开发。在进行了系统架构的基础上,结合MySQL应用的特性,开发了相应的数据库,并对其进行了存贮和总体的体系架构。数据技术要求数据删除,修改,添加,查询等功能,并对数据进行维护与管理。并针对特定组织优化程序级应用服务。习惯统一管理和维护删除、修改、添加、查询功能。

MySQL数据库主要包括两个部分:指令行和操作接口。该方法利用SQL语句和数据库操作指令来建立数据库,并设计并存储数据库表。但是,命令行的运行模式对操作员的技术要求很高,而且在整个系统中也很难被发现。

4.4 注册登录、重新功能设计

这对系统的登陆安全起到了很大的作用。以前是该体系的主要功能,大学生志愿者管理系统对其进行了介绍,因其有关的存储特点,要求进行了机密的管理。大学生志愿者管理系统有关的人员的权利划分是:将各种权限的操作划分成各种类型,并在此基础上进行了相应的注册管理。文章利用网络进行了系统注册,并对其进行了注册。

接下来根据有关的软件开发原理,对代码进行了具体的设计,并在此基础上进行了系统注册。进入主要的体系。主要系统的结构设计较为规范,对使用者来说,主要的导航链路会依据使用者的授权来设定连结能否跳跃,而主控程式则使用架构式设定程式。

1)注册

用户在注册页面中需要填写注册信息,如果用户名存在了或者两次密码输入一致的话则不能够成功注册。

图4.1 注册流程图

2)登录

用户想要使用系统的功能之前首先需要登录,在登录页面中输入用户名和密码之后点击登录按钮,如果通过了验证则能够进入到主页当中。

图4.2 登录流程图

(3)查询

管理员登录系统之后可以在后台管理中搜索系统的信息,如果输入的系统信息在数据库记录中找不到则不能显示查询信息。

图4.3 查询流程图

5 大学生志愿者管理系统的实现

5.1 前台功能模块

游客打开系统的网址后,首先看到的就是首页界面在这里,游客能够看到大学生志愿者管理系统导航条显示首页、志愿组织、组织风采、志愿活动、公告信息、留言板、后台管理、个人中心。系统首页界面如图5-1所示

图5-1 系统首页界面

在系统首页点击中间注册/登录按钮,然后页面跳转到注册登录界面,后来输入信息完成后,单击注册或者登录操作,如图5-2所示

图5-2 志愿者注册志愿者登录界面

志愿者点击志愿组织,志愿组织页面的搜索栏输入组织名称,进行查询然后还可以查看组织编号、组织名称、组织LOGO、成立时间、负责人、联系电话、组织简介,最后如果有需要可以点击报名或者收藏等操作;图5-3所示:

图5-3志愿组织页面

志愿者点击组织风采,组织风采页面搜索栏输入组织名称,进行查询,然后可以查看组织编号、组织名称、图片、视频,最后可以点击收藏操作;图5-4所示:

图5-4组织风采页面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值