Java毕业设计-基于SSM框架的大学生社团管理系统项目实战(附源码+论文)

大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎微信小程序毕业设计

开发运行环境

  • 框架:ssm
  • JDK版本:JDK1.8
  • 服务器:tomcat7
  • 数据库:mysql 5.7
  • 数据库工具:Navicat12
  • 开发软件:eclipse/myeclipse/idea
  • Maven包:Maven3.3.9
  • 浏览器:谷歌浏览器

源码下载地址:

https://download.csdn.net/download/m0_46388260/89287523

论文目录

【如需全文请按文末获取联系】
在这里插入图片描述
在这里插入图片描述

一、项目简介

此大学生社团管理系统利用当下成熟完善的SSM+VUE框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了社长管理,社团信息管理,社团分类管理,社团加入信息管理,社团成员登记管理,活动信息管理等功能。

二、系统设计

2.1软件功能模块设计

在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是系统功能结构图。
大学生社团管理系统分为管理员,社长以及学生,
管理员管理的功能包括:学生管理,社长管理,社团信息管理,社团分类管理,社团加入信息管理,社团成员登记管理,活动信息管理等。
社长可以操作的功能有;社团信息管理,社团加入信息管理,社团成员登记管理,活动信息管理等。
学生可以操作的功能有:申请加入社团,查看活动信息。
在这里插入图片描述

2.2数据库设计

(1)学生实体属性图见图4.4。
在这里插入图片描述
(2)社长实体属性图见图4.5。
在这里插入图片描述

(3)社团分类实体属性图见图4.6。
在这里插入图片描述

三、系统项目部分截图

3.1管理员功能介绍

社团信息管理
如图5.1显示的就是社团信息管理页面,管理员负责审核社团信息,查询社团信息。
在这里插入图片描述
活动信息管理
如图5.2显示的就是活动信息管理页面,管理员也能审核活动信息,删除活动信息,查询活动信息。
在这里插入图片描述

3.2社长功能介绍

社团加入信息
如图5.3显示的就是社团加入信息页面,社长审核社团加入信息,可以登记社团成员信息。
在这里插入图片描述
社团成员登记管理
如图5.4显示的就是社团成员登记管理页面,社长对已经登记的社团成员信息进行修改,删除,查询。
在这里插入图片描述

3.3学生功能介绍

社团信息
如图5.7显示的就是社团信息页面,学生可以申请加入社团,可以评论社团。
在这里插入图片描述
活动信息
如图5.8显示的就是活动信息页面,学生查询活动信息,查看活动详细信息。
在这里插入图片描述

四、部分核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.ShetuanchengyuandengjiEntity;
import com.entity.view.ShetuanchengyuandengjiView;

import com.service.ShetuanchengyuandengjiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 社团成员登记
 * 后端接口
 * @author 
 * @email 
 * @date 2021-04-22 16:36:09
 */
@RestController
@RequestMapping("/shetuanchengyuandengji")
public class ShetuanchengyuandengjiController {
    @Autowired
    private ShetuanchengyuandengjiService shetuanchengyuandengjiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShetuanchengyuandengjiEntity shetuanchengyuandengji, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("shezhang")) {
			shetuanchengyuandengji.setShezhangzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShetuanchengyuandengjiEntity> ew = new EntityWrapper<ShetuanchengyuandengjiEntity>();
		PageUtils page = shetuanchengyuandengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanchengyuandengji), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ShetuanchengyuandengjiEntity shetuanchengyuandengji, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("shezhang")) {
			shetuanchengyuandengji.setShezhangzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShetuanchengyuandengjiEntity> ew = new EntityWrapper<ShetuanchengyuandengjiEntity>();
		PageUtils page = shetuanchengyuandengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shetuanchengyuandengji), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShetuanchengyuandengjiEntity shetuanchengyuandengji){
        EntityWrapper< ShetuanchengyuandengjiEntity> ew = new EntityWrapper< ShetuanchengyuandengjiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shetuanchengyuandengji, "shetuanchengyuandengji")); 
		ShetuanchengyuandengjiView shetuanchengyuandengjiView =  shetuanchengyuandengjiService.selectView(ew);
		return R.ok("查询社团成员登记成功").put("data", shetuanchengyuandengjiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ShetuanchengyuandengjiEntity shetuanchengyuandengji = shetuanchengyuandengjiService.selectById(id);
        return R.ok().put("data", shetuanchengyuandengji);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ShetuanchengyuandengjiEntity shetuanchengyuandengji = shetuanchengyuandengjiService.selectById(id);
        return R.ok().put("data", shetuanchengyuandengji);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ShetuanchengyuandengjiEntity shetuanchengyuandengji, HttpServletRequest request){
    	shetuanchengyuandengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanchengyuandengji);

        shetuanchengyuandengjiService.insert(shetuanchengyuandengji);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ShetuanchengyuandengjiEntity shetuanchengyuandengji, HttpServletRequest request){
    	shetuanchengyuandengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shetuanchengyuandengji);
    	shetuanchengyuandengji.setUserid((Long)request.getSession().getAttribute("userId"));

        shetuanchengyuandengjiService.insert(shetuanchengyuandengji);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ShetuanchengyuandengjiEntity shetuanchengyuandengji, HttpServletRequest request){
        //ValidatorUtils.validateEntity(shetuanchengyuandengji);
        shetuanchengyuandengjiService.updateById(shetuanchengyuandengji);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        shetuanchengyuandengjiService.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<ShetuanchengyuandengjiEntity> wrapper = new EntityWrapper<ShetuanchengyuandengjiEntity>();
		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 = shetuanchengyuandengjiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值