Java毕设项目——大学生社团管理系统(java+SSM+Maven+Mysql+Jsp)
在网络迅速发展的时代,众多的软件被开发出来,给社团带来了很大的选择余地,而且学生越来越追求更个性的需求。在这种时代背景下,社团只能以学生为导向,按学生所需要大学生社团管理系统,以社团管理的持续创新作为学校最重要的社团信息管理网站。系统采用了B/S结构,将所有业务模块采用以浏览器交互的模式,选择MySQL作为系统的数据库,开发工具选择IDEA来进行系统的设计。
文末获取源码
开发语言:Java
框架:SSM
技术:Jsp
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
一、前言介绍
在网络迅速发展的时代,众多的软件被开发出来,给社团带来了很大的选择余地,而且学生越来越追求更个性的需求。在这种时代背景下,社团只能以学生为导向,按学生所需要大学生社团管理系统,以社团管理的持续创新作为学校最重要的社团信息管理网站。
系统采用了B/S结构,将所有业务模块采用以浏览器交互的模式,选择MySQL作为系统的数据库,开发工具选择IDEA来进行系统的设计。基本实现了社团管理应有的主要功能模块,本系统有前台与后台两大功能模块,(1)管理员:个人中心、学校管理、学院管理、年级管理、班级管理、社长管理、学生管理、社团类型管理、社团信息管理、社团成员管理、退团记录管理、社团活动管理、活动报名管理、退出活动管理、社团事务管理、系统管理。(2)社长;个人中心、社团信息管理、社团成员管理、退团记录管理、社团活动管理、活动报名管理、退出活动管理、社团事务管理等操作。
对系统进行测试后,改善了程序逻辑和代码。同时确保系统中所有的程序都能正常运行,所有的功能都能操作,并且该系统有很好的操作体验,实现了对于大学生社团和社团负责人、用户双赢。
二、项目设计目标与原则
1、关于社团管理的基本要求
(1)功能要求:管理员可以对所有的社团信息进行查看管理,可以对社团负责人、用户进行管理,可以及时的查看社团信息的情况,还可以对社团成员、社团经费、活动报名、留言板等等进行查看和管理等功能模块。
(2)性能:因为社团管理管理中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。
(3)安全与保密要求:用户都必须通过管理员审核才能进入系统。
(4)环境要求:支持Windows系列、Vista系统等多种操作系统使用。
2、开发目标
社团管理的主要开发目标如下:
(1)用户可以实时查看最新的社团信息,以及相关资讯;
(2)用户可以对比各大社团的信息,选择自己较为满意的社团;
(3)用户可以通过留言互相交流加入社团心得;
(4)管理员可以在后台方便管理前台网页的各种信息;
3、设计原则
本社团管理采用JSP技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
(1)系统响应效率:由于是社团管理,因此就需要系统的响应效率是非常高的,并且可以支持很多人同时进行系统的使用。
(2)界面简洁清晰:系统界面要简单有序,所有的功能一目了然。
(3)储存性高:因为是社团管理,所以就会在数据库要求上比较严格,信息录入的比较多,而且丰富复杂, 这就需要一个强大的数据库来存放更多的数据和保证数据的时时性。
(4)易学性:系统的设计一定要简单,使得人们使用起来非常好的顺手。
(5)稳定性需求:该系统在使用过程中必须保持稳定,不要出现卡顿、模糊等情况。
(6)稳定性:由于是社团管理,因此系统运行必须要十分的稳定。
三、系统展示
首页
社团信息社团活动
管理员功能模块 社团信息管理
社团成员管理
社长功能模块
社团事务管理
四、部分核心代码
学生注册
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody XueshengEntity xuesheng){
//ValidatorUtils.validateEntity(xuesheng);
XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", xuesheng.getXuehao()));
if(user!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
xuesheng.setId(uId);
xueshengService.insert(xuesheng);
return R.ok();
}
/**
下载文件
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public void download(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) {
try {
File file = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
if (file.exists()) {
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName+"\"");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setContentType("application/octet-stream; charset=UTF-8");
IOUtils.write(FileUtils.readFileToByteArray(file), response.getOutputStream());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
社团活动
/**
* 社团活动
* 后端接口
* @author
* @email
* @date 2022-02-19 18:34:56
*/
@RestController
@RequestMapping("/shetuanhuodong")
public class ShetuanhuodongController {
@Autowired
private ShetuanhuodongService shetuanhuodongService;
@Autowired
private StoreupService storeupService;
/**
* 后端列表
*/
@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.setShezhangzhanghao((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));
request.setAttribute("data", page);
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));
request.setAttribute("data", page);
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();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<ShetuanhuodongEntity> wrapper = new EntityWrapper<ShetuanhuodongEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("shezhang")) {
wrapper.eq("shezhangzhanghao", (String)request.getSession().getAttribute("username"));
}
int count = shetuanhuodongService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
更多推荐
所有评论(0)