文章目录
前言
该系统完全免费、开源。
系统完美运行,无任何的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