博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、小程序、安卓app、大数据等设计与开发。

感兴趣的可以收藏+关注,所有项目均配有开发文档,一系列安装配置教程,可以定制功能包安装运行!!

🍅文末获取联系🍅

系统介绍

随着大学社团的快速发展和多样化需求的增加,传统的手工管理方式已经无法满足日益复杂的社团运营需求。因此,建立一套高效、智能的大学社团管理系统迫在眉睫。本文提出的大学社团管理系统是采用基于Java语言、MySQL数据库和Spring Boot框架为基础进行设计开发的。Spring Boot是一种新兴的Java开发框架,它提供了快速搭建应用程序的能力,并且具有很好的灵活性和可扩展性。该系统采用Spring Boot框架进行开发,能够快速地构建出高效、稳定、安全、易维护的应用程序。

系统主要技术 

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven: apache-maven 3.8.1-bin

系统功能 

按照大学社团管理系统的角色,主要包括学生用户模块、社长用户模块、社员用户模块和管理员这四大功能模块,各模块功能内容如下:

  1. 学生用户功能
  1. 注册登录:访客可以通过注册成为系统用户,注册后可以用账号密码登录系统。
  2. 首页:用户可以查看首页展示的轮播图、社团推荐信息等内容。
  3. 网站公告:用户可以查看社团信息列表中某一社团详情并进行点赞、收藏、发表评论和申请入团提交操作。
  4. 社团资讯:用户可以查看社团新闻列表中某一新闻详情并进行点赞、收藏和发表评论操作。
  5. 互动交流:学生用户可以在系统中与社团成员进行互动和交流,包括发表动态、评论、点赞等功能,增进社团内部的联系和交流。
  6. 社团信息:学生用户可以查看社团的基本信息,包括名称、简介、活动内容、成员数量等,帮助他们选择合适的社团加入。
  1. 活动信息:用户可以查看社团活动列表中某一活动详情并进行点赞、收藏、发表评论和提交参加申请操作。
  1. 我的:用户可以修改个人信息和登录密码,可以查看和管理个人中心中的申请建团、申请入团和收藏信息。
  1. 社长用户功能
  1. 注册登录:访客可以通过注册成为系统用户,注册后可以用账号密码登录系统。
  2. 首页:用户可以查看首页展示的轮播图、社团推荐信息等内容。
  3. 社团类型管理:团长用户可以创建新的社团类型,例如学术类、文娱类等,为社团分类提供便利;团长用户可以编辑社团类型的相关信息,例如类型名称、描述等,团长用户可以删除不再使用的社团类型。社团申请管理:用户可以查看社团新闻列表中某一新闻详情并进行点赞、收藏和发表评论操作。
  4. 社团信息管理:用户可以查看社团信息列表中某一信息详情并进行点赞、收藏和发表评论操作。
  5. 活动信息管理:创建活动:团长用户可以创建社团的活动,填写活动标题、内容、时间地点等信息,编辑活动信息,团长用户可以编辑活动的相关信息,例如时间地点的修改、活动内容的更新等。删除活动,团长用户可以删除已经结束或取消的活动。
  6. 活动反馈管理:查看报名情况:团长用户可以查看活动的报名情况,包括已报名人数和报名人员名单;发布活动反馈:团长用户可以在活动结束后发布活动反馈,包括活动的总结、感谢参与等内容。
  7. 我的:用户可以修改个人信息和登录密码,可以查看管理个人中心中的社团用户、申请入团、申请退团等信息。
  1. 管理员功能:
  1. 后台首页:管理员可以查看后台首页展示的相关信息。
  2. 系统用户:管理员可以查看和管理系统用户信息。
  3. 社团类型管理:管理员可以创建新的社团类型,如学术类、文娱类等,为社团分类提供便利;编辑社团类型信息:管理员可以编辑社团类型的相关信息,如类型名称、描述等;删除社团类型:管理员可以删除不再使用的社团类型。
  4. 社团申请管理:管理员可以查看和管理申请建团信息。
  5. 社团信息管理:管理员可以对社团信息进行增删改查操作。
  6. 活动信息管理:管理员可以创建社团的活动,填写活动标题、内容、时间地点等信息,编辑活动信息:管理员可以编辑活动的相关信息,如时间地点的修改、活动内容的更新等;删除活动:管理员可以删除已经结束或取消的活动。
  7. 活动反馈管理:查看活动反馈:管理员可以查看活动的反馈信息,包括活动总结、参与人员反馈等,发布活动反馈:管理员可以发布活动反馈,包括活动总结、感谢参与等内容。
  8. 留言管理:查看留言:管理员可以查看社团成员或其他用户留下的留言内容,删除留言:管理员可以删除不当或违规的留言内容。社团公告管理:管理员可以对社团活动信息进行增删改查操作。
  9. 系统管理:管理员可以对轮播图信息进行查询、添加、重置和删除操作。

资源管理:照片视频管理:管理员可以管理系统中的照片和视频资源,包括上传、编辑、删除等操作;文件管理:管理员可以管理系统中的文件资源,如文档、表格等,包括查看、下载、删除等操作。 

系统展示

用户注册界面

用户点击首页右上角“登录”按钮进入登录页面。点击下方的“没有存在账户?创建一个账户吧”进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等信息后点击“注册”按钮,系统会对输入的信息进行验证,验证通过后即可完成注册,其主界面展示如下图4-1所示。

用户登录界面

用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,系统会对输入的信息进行验证,验证通过后即可完成登录,其界面展示如下图4-2所示。

 

前台首页界面

用户可以查看首页展示的轮播图、社团信息推荐等信息,其界面如下图4-3所示。

社团信息界面

用户可以查看社团信息列表中某一社团详情并进行点赞、收藏、发表评论和申请入团提交操作,其界面如下图4-4所示。

 

团长功能模块

用户可以查看和管理个人中心中的社员用户、申请入团、申请退团、社团新闻、收藏等信息,例如可以查看申请入团、申请退团列表中某一信息详情并进行审核和回复;对社员用户、社团新闻、社团公告、社团资金进行查询、重置、添加和删除操作等,其界面如下图4-6所示:

管理员功能模块

管理员可以查看社团建团列表中的某一建团详情并进行审核和回复,可以对社团建团信息进行查询、重置、添加和删除操作,其界面如下图4-7所示。

部分核心代码

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UsersController {
	
	@Autowired
	private UsersService usersService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		R r = R.ok();
		r.put("token", token);
		r.put("role",user.getRole());
		r.put("userId",user.getId());
		return r;
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        usersService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
 
	/**
	 * 修改密码
	 */
	@GetMapping(value = "/updatePassword")
	public R updatePassword(String  oldPassword, String  newPassword, HttpServletRequest request) {
		UsersEntity users = usersService.selectById((Integer)request.getSession().getAttribute("userId"));
		if(newPassword == null){
			return R.error("新密码不能为空") ;
		}
		if(!oldPassword.equals(users.getPassword())){
			return R.error("原密码输入错误");
		}
		if(newPassword.equals(users.getPassword())){
			return R.error("新密码不能和原密码一致") ;
		}
		users.setPassword(newPassword);
		usersService.updateById(users);
		return R.ok();
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        usersService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UsersEntity user){
        EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
    	PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UsersEntity user){
       	EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", usersService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UsersEntity user = usersService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Integer id = (Integer)request.getSession().getAttribute("userId");
        UsersEntity user = usersService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        usersService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UsersEntity user){
//        ValidatorUtils.validateEntity(user);
        usersService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
		List<UsersEntity> user = usersService.selectList(null);
		if(user.size() > 1){
			usersService.deleteBatchIds(Arrays.asList(ids));
		}else{
			return R.error("管理员最少保留一个");
		}
        return R.ok();
    }
}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐