开源一个基于SpringBoot的高校社团管理系统【源码开源】【建议收藏】


前言

该系统完全免费、开源。

系统完美运行,无任何的bug,技术较多,可以当做面试的项目或者作为毕设的项目。

系统获取源码的方式见文章底部。

为防止刷着刷着找不到,大家点赞、收藏文章。

系统完美运行。具体的介绍如下所示。


一、技术介绍

核心技术:SpringBoot+MyBatis-Plus;

前端:vue+layui+elementui;

开发工具:idea;

数据库:mysql5.7;

安全框架:Shiro;

日志框架:logback;

数据库连接池:druid;

富文本编辑器:Tinymce;

二、功能介绍

  • 本项目分前台用户界面功能和后台管理功能;

1. 前台用户界面功能:

  • 首页
  • 社团申请信息
  • 校园社团
  • 社团活动
  • 活动参与
  • 会员申请
  • 校园资讯
  • 个人中心
  • 后台管理
  • 在线资讯功能

2. 后台管理功能:

  • 管理员:首页、个人中心、学生管理、社团申请信息管理、校园社团管理、社团活动管理、会员管理、活动参与管理、会员申请管理、系统管理
  • 会员:首页、个人中心、社团申请信息管理、校园社团管理、社团活动管理、活动参与管理
  • 学生:首页、个人中心、校园社团管理、社团活动管理、会员申请管理

三、前台页面展示

1. 首页功能模块

  • 学生在大学生社团活动平台页面可以查看首页、社团申请信息、校园社团、社团活动、活动参与、会员申请、校园资讯、个人中心、后台管理、在线资讯等功能。
    在这里插入图片描述

2. 社团信息

  • 学生进入校园社团页面可以查看社团名称、社团图片、成立时间、社团类别、社团人数等信息,并可以进行加入社团操作
    在这里插入图片描述
    在这里插入图片描述

3. 社团活动

  • 学生进入社团活动页面可以查看活动名称、活动类型、照片、举办日期、举办社团、活动地点、活动时长等信息进行报名参加操作
    在这里插入图片描述

四、后台页面展示

1. 管理员功能模块

  • 管理员在大学生社团活动平台页面可以查看首页、个人中心、学生管理、社团申请信息管理、社团管理、社团活动管理、会员管理、活动参与管理、会员申请管理、系统管理等。
    在这里插入图片描述

2. 学生管理

  • 管理员对学生管理进行查看学号、姓名、性别、年龄、电话、邮箱、身份证、照片等信息并可以进行详情、删除、修改操作。
    在这里插入图片描述

3. 社团申请信息管理

  • 管理员对社团申请信息管理进行查看社团名称、社团图片、社团类别、申请时间、学号、姓名、审核回复、审核状态、审核等信息并可以进行详情、删除操作。
    在这里插入图片描述

4. 社团管理

  • 管理员对校园社团管理进行查看社团名称、社团图片、成立时间、社团类别、社团人数等信息进行详情、删除、修改操作。
    在这里插入图片描述

5. 社团活动管理

  • 管理员对社团活动管理进行查看活动名称、活动类型、照片、举办日期、举办社团、活动地点、活动时长等信息并可以进行详情、删除、修改操作。
    在这里插入图片描述

五、系统的核心代码

/**
 * 社团活动
 * 后端接口
 * @author wx: Coding_Stone
 * @email 
 * @date 2023-04-13 21:06:36
 */
@RestController
@RequestMapping("/shetuanhuodong")
public class ShetuanhuodongController {
    
    
    @Autowired
    private ShetuanhuodongService shetuanhuodongService;
    
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShetuanhuodongEntity shetuanhuodong,
		HttpServletRequest request){
    
    
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("shezhang")) {
    
    
			shetuanhuodong.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShetuanhuodongEntity> ew = new EntityWrapper<ShetuanhuodongEntity>();
		PageUtils page = shetuanhuodongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanhuodong), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ShetuanhuodongEntity shetuanhuodong, HttpServletRequest request){
    
    
        EntityWrapper<ShetuanhuodongEntity> ew = new EntityWrapper<ShetuanhuodongEntity>();
		PageUtils page = shetuanhuodongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanhuodong), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ShetuanhuodongEntity shetuanhuodong){
    
    
       	EntityWrapper<ShetuanhuodongEntity> ew = new EntityWrapper<ShetuanhuodongEntity>();
      	ew.allEq(MPUtil.allEQMapPre( shetuanhuodong, "shetuanhuodong")); 
        return R.ok().put("data", shetuanhuodongService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShetuanhuodongEntity shetuanhuodong){
    
    
        EntityWrapper< ShetuanhuodongEntity> ew = new EntityWrapper< ShetuanhuodongEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shetuanhuodong, "shetuanhuodong")); 
		ShetuanhuodongView shetuanhuodongView =  shetuanhuodongService.selectView(ew);
		return R.ok("查询社团活动成功").put("data", shetuanhuodongView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
    
    
        ShetuanhuodongEntity shetuanhuodong = shetuanhuodongService.selectById(id);
        return R.ok().put("data", shetuanhuodong);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
    
    
        ShetuanhuodongEntity shetuanhuodong = shetuanhuodongService.selectById(id);
        return R.ok().put("data", shetuanhuodong);
    }
    
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ShetuanhuodongEntity shetuanhuodong, HttpServletRequest request){
    
    
    	shetuanhuodong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanhuodong);
        shetuanhuodongService.insert(shetuanhuodong);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ShetuanhuodongEntity shetuanhuodong, HttpServletRequest request){
    
    
    	shetuanhuodong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanhuodong);
        shetuanhuodongService.insert(shetuanhuodong);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ShetuanhuodongEntity shetuanhuodong, HttpServletRequest request){
    
    
        //ValidatorUtils.validateEntity(shetuanhuodong);
        shetuanhuodongService.updateById(shetuanhuodong);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
    
    
        shetuanhuodongService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}
/**
 * 社团申请
 * 后端接口
 * @author wx: Coding_Stone
 * @email 
 * @date 2023-04-13 21:06:36
 */
@RestController
@RequestMapping("/shetuanshenqing")
public class ShetuanshenqingController {
    
    
    @Autowired
    private ShetuanshenqingService shetuanshenqingService;
    
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShetuanshenqingEntity shetuanshenqing,
		HttpServletRequest request){
    
    
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("shezhang")) {
    
    
			shetuanshenqing.setZhanghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("xuesheng")) {
    
    
			shetuanshenqing.setXuehao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShetuanshenqingEntity> ew = new EntityWrapper<ShetuanshenqingEntity>();
		PageUtils page = shetuanshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanshenqing), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ShetuanshenqingEntity shetuanshenqing, HttpServletRequest request){
    
    
        EntityWrapper<ShetuanshenqingEntity> ew = new EntityWrapper<ShetuanshenqingEntity>();
		PageUtils page = shetuanshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanshenqing), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ShetuanshenqingEntity shetuanshenqing){
    
    
       	EntityWrapper<ShetuanshenqingEntity> ew = new EntityWrapper<ShetuanshenqingEntity>();
      	ew.allEq(MPUtil.allEQMapPre( shetuanshenqing, "shetuanshenqing")); 
        return R.ok().put("data", shetuanshenqingService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShetuanshenqingEntity shetuanshenqing){
    
    
        EntityWrapper< ShetuanshenqingEntity> ew = new EntityWrapper< ShetuanshenqingEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shetuanshenqing, "shetuanshenqing")); 
		ShetuanshenqingView shetuanshenqingView =  shetuanshenqingService.selectView(ew);
		return R.ok("查询社团申请成功").put("data", shetuanshenqingView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
    
    
        ShetuanshenqingEntity shetuanshenqing = shetuanshenqingService.selectById(id);
        return R.ok().put("data", shetuanshenqing);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
    
    
        ShetuanshenqingEntity shetuanshenqing = shetuanshenqingService.selectById(id);
        return R.ok().put("data", shetuanshenqing);
    }
    
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ShetuanshenqingEntity shetuanshenqing, HttpServletRequest request){
    
    
    	shetuanshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanshenqing);
        shetuanshenqingService.insert(shetuanshenqing);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ShetuanshenqingEntity shetuanshenqing, HttpServletRequest request){
    
    
    	shetuanshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanshenqing);
        shetuanshenqingService.insert(shetuanshenqing);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ShetuanshenqingEntity shetuanshenqing, HttpServletRequest request){
    
    
        //ValidatorUtils.validateEntity(shetuanshenqing);
        shetuanshenqingService.updateById(shetuanshenqing);//全部更新
        return R.ok();
    }
    
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
    
    
        shetuanshenqingService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}
/**
 * 系统用户
 * @author wx: Coding_Stone
 * @email 
 * @date 2023-04-13 21:06:36
 */
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements UserService {
    
    

	@Override
	public PageUtils queryPage(Map<String, Object> params) {
    
    
		Page<UserEntity> page = this.selectPage(
                new Query<UserEntity>(params).getPage(),
                new EntityWrapper<UserEntity>()
        );
        return new PageUtils(page);
	}

	@Override
	public List<UserEntity> selectListView(Wrapper<UserEntity> wrapper) {
    
    
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public PageUtils queryPage(Map<String, Object> params,
			Wrapper<UserEntity> wrapper) {
    
    
		 Page<UserEntity> page =new Query<UserEntity>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
	}
}

源码获取

如果你喜欢这个项目的话,麻烦给个一键三连,谢谢大家,gitee链接附上

后端:https://gitee.com/morningstone/student-groups-backend
前端:https://gitee.com/morningstone/student-groups-frontend-admin

猜你喜欢

转载自blog.csdn.net/u011646838/article/details/130172067