开发工具:IDEA
服务器:Tomcat9.0, jdk1.8
项目构建:maven
数据库:mysql5.7
系统分前后台,项目采用前后端分离
前端技术:vue+elementUI
服务端技术:springboot+mybatis-plus
本系统分学生、社长、管理员三个角色,功能如下:
一、学生(用户)功能包括:
1.登录、注册、首页、修改密码、修改个人信息
2.入团申请管理:可以向感兴趣的社团提交申请。
3.浏览社团信息:可以浏览所有社团及其基本信息。
4.活动信息管理:查看活动信息和申请加入活动。
5.通知信息查询:可以查询发布的通知信息。
6.缴费信息管理:实现缴费查询和缴费缴纳功能。
二、社长功能包括:
1.登录、首页、修改密码、修改个人信息
2.入团申请处理:可以对提交社团申请的用户进行审核。
3.社团成员管理:实现对社团的成员查询和删除功能。
4.社团活动管理:可以查看和发布社团活动。
5.社团通知管理:可以查看,发布社团活动,删除本社团发布的通知
6.社团费用管理:可以查看,删除,根据社员编号发布缴费通知。
三、管理员功能包括:
1.登录、首页、修改密码、修改个人信息
2.系统用户管理:可以查看系统所有用户的基本信息,并修改和删除。
3.社团类型管理:可以对社团类型进行修改,删除,查询操作,并且可以根据需求增添社团类型。
4.社团信息管理:可以对社团进行查询,删除,创建社团,修改社团信息。
5.活动信息管理:可以查询,删除社团活动。
6.通知信息管理:可以查询,删除,发布社团活动。
7.查询缴费记录:可以查询各个社团的缴费记录。
文档截图:


学生(用户)截图:









社长截图:







管理员截图:








java
package self.cases.teams.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import self.cases.teams.entity.Users;
import self.cases.teams.handle.CacheHandle;
import self.cases.teams.service.UsersService;
import self.cases.teams.utils.DateUtils;
import self.cases.teams.utils.IDUtils;
import self.cases.teams.msg.R;
import self.cases.teams.msg.PageData;
import self.cases.teams.entity.Teams;
import self.cases.teams.service.TeamsService;
import java.util.List;
/**
* 系统请求响应控制器
* 社团信息
*/
@Controller
@RequestMapping("/teams")
public class TeamsController extends BaseController {
protected static final Logger Log = LoggerFactory.getLogger(TeamsController.class);
@Autowired
private CacheHandle cacheHandle;
@Autowired
private UsersService usersService;
@Autowired
private TeamsService teamsService;
@RequestMapping("")
public String index() {
return "pages/Teams";
}
@GetMapping("/info")
@ResponseBody
public R getInfo(String id) {
Log.info("查找指定社团信息,ID:{}", id);
Teams teams = teamsService.getOne(id);
return R.successData(teams);
}
@GetMapping("/all")
@ResponseBody
public R getAll(){
Log.info("获取全部的社团");
List<Teams> list = teamsService.getAll();
return R.successData(list);
}
@GetMapping("/man")
@ResponseBody
public R getListByManId(String manId){
Log.info("获取指定社团管理员相关的社团列表");
List<Teams> list = teamsService.getListByManId(manId);
return R.successData(list);
}
@GetMapping("/page")
@ResponseBody
public R getPageInfos(Long pageIndex, Long pageSize,
String token, Teams teams) {
Users user = usersService.getOne(cacheHandle.getUserInfoCache(token));
if(user.getType() == 1){
teams.setManager(user.getId());
}
Log.info("分页查找社团信息,当前页码:{},"
+ "每页数据量:{}, 模糊查询,附加参数:{}", pageIndex,
pageSize, teams);
PageData page = teamsService.getPageInfo(pageIndex, pageSize, teams);
return R.successData(page);
}
@PostMapping("/add")
@ResponseBody
public R addInfo(Teams teams) {
teams.setId(IDUtils.makeIDByCurrent());
teams.setCreateTime(DateUtils.getNowDate("yyyy-MM-dd"));
Log.info("添加社团信息,传入参数:{}", teams);
teamsService.add(teams);
return R.success();
}
@PostMapping("/upd")
@ResponseBody
public R updInfo(Teams teams) {
Log.info("修改社团信息,传入参数:{}", teams);
teamsService.update(teams);
return R.success();
}
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
Log.info("删除社团信息, ID:{}", id);
Teams teams = teamsService.getOne(id);
teamsService.delete(teams);
return R.success();
}
}