基于springboot,vue校园社团管理系统

开发工具: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.查询缴费记录:可以查询各个社团的缴费记录。

文档截图: 

学生(用户)截图:

社长截图:

管理员截图: 

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();
    }
}


http://www.niftyadmin.cn/n/5133559.html

相关文章

【队列的顺序表示,链式表示】

文章目录 队列的表示和实现相关术语队列的表示链队的表示链队的定义链队的初始化销毁链队列 链队列的入队出栈 队列的表示和实现 相关术语 队列&#xff08;Queue&#xff09;是仅在表尾进行插入操作&#xff0c;在表头进行删除操作的线性表。表尾即an端&#xff0c;称为队尾…

关于pcl 给new出的数据赋值报错问题

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); for (size_t i 0; i < cloud->points.size (); i) //填充数据 { cloud->points[i].x 1024 * rand () / (RAND_MAX 1.0f); cloud->points[i].y 1024…

DIANA算法c++实现

第一步对具有最大直径的簇中每个点计算平均相异度找出最大的点放入splinter group&#xff0c;其余放在放入splinter group 第二步 在old party里找出到splinter group中点的最近距离 < 到old party中点的最近距离的点&#xff0c;并将该点加入splinter group 重复第二步的…

AcWing90. 64位整数乘法

题目 求 a a a 乘 b b b 对 p p p 取模的值。 输入格式 第一行输入整数 a a a&#xff0c;第二行输入整数 b b b&#xff0c;第三行输入整数 p p p。 输出格式 输出一个整数&#xff0c;表示 a*b mod p 的值。 数据范围 1 ≤ a , b , p ≤ 1 0 18 1≤a,b,p≤10^{18…

RHCE-------Day1

存储管理 标准存储管理 1、分区 fdisk /dev/nume0n1 交互式指令 2、格式化 mkfs.xfs /dev/nume0n1p1 直接指定分区类型 mkfs -t xfs /dev/nume0n1p1 3、挂载 mount /dev/nume0n1p1 /mnt 取消挂载&#xff1a; umont …

【斗罗二】王东升级三环,戴华斌挑衅,雨浩单手接鼎订下赌约

【侵权联系删除】【文/郑尔巴金】 深度爆料&#xff0c;《绝世唐门》第20集&#xff0c;一场瞩目的战斗即将爆发。王冬&#xff0c;这位一年级的强攻系班长&#xff0c;将与戴华斌进行一场激烈的较量。王冬拥有三大武魂&#xff0c;其中最为人们所熟知的是那光明女神蝶&#x…

Linux之系统编程

1.yum 1.yum list可以出现所有可下载的程序 辅助grep进行查找 2.yum install可以下载并安装 3.yum remove可以卸载程序 不同的商业操作系统内核都是一样的&#xff0c;主要是配套社区不一样。 开源组织&#xff0c;各大公司&#xff0c;既得利益者。 同上 基础软件源可以保证…

yum 常见错误解决方案

虚拟机内&#xff0c;yum 下载时出现以下错误的解决方案 1. “Couldn’t resolve host ‘mirrors.zju.edu.cn’” Trying other mirror. 出现这个错误的原因是没有配置 DNS 服务器 cd 进入 /etc 目录&#xff0c;vim 进入 resolv.conf &#xff0c;在文件内添加配置 namese…