当前位置: 首页 > news >正文

Java项目:ssm高校党员管理系统

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

高校党员信息管理系统,分为普通用户和管理员两种角色。

普通用户登录后主要功能有:

我的中心:首页、个人资料、修改密码;
党费信息:党费信息查询、党费缴纳;
通知查询:查看通知;
党员成绩信息:党课信息查询
个人操作日志:个人操作日志;

管理员登录后主要功能有:

系统用户管理:首页、管理员账号管理、添加管理kmuu账号、修改密码;
普通用户管理:用户信息查询、用户信息添加;
党员信息管理:正式党员查询、预备党员查询、发展对象查询、入党积极分子查询、入党申请人查询;
党组织管理:党组织查询、党组织添加;
党员党课成绩:党课信息查询、党课添加;
党费信息管理:党费信息管理
党员成绩管理:党员成绩查询、党员成绩添加;
通知信息管理:通知信息查询、通知信息添加;
党员活动管理:活动信息查询、活动信息添加;
操作日志管理:操作日志查询;

数据备份:数据备份;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+Bootstrap+JQuery+AmazeUI

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
5. 运行项目,输入localhost:8081 登录

运行截图

相关代码 

(Active)表控制层

package com.bs.controller;

import com.bs.pojo.*;
import com.bs.service.ActiveService;
import com.bs.service.OptionService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;

/**
 * (Active)表控制层
 *
 * @author makejava
 * @since 2020-03-31 20:40:23
 */
@Controller
@RequestMapping("active")
public class ActiveController {
    /**
     * 服务对象
     */
    @Autowired
    private ActiveService activeService;
    private static Option option = new Option();
    private static ResultBean resultBean = new ResultBean();
    @Autowired
    private OptionService optionService;

    /**
     * 管理员操作方法
     *
     * @param rootUser
     */
    public void adminOption(Admin rootUser) {
        option.setOptionUser(rootUser.getAdminAccount());
        option.setRoleName(rootUser.getAdminRole());
        option.setOptionTime(new Date());
        option.setAdminId(rootUser.getAdminId());
    }

    /**
     * 超级管理员 查看所有课程信息
     *
     * @param page
     * @param pageSize
     * @param model
     * @return
     */
    @RequestMapping("activeList")
    public String activeList(@RequestParam(value = "page", defaultValue = "1") int page,
                             @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                             Model model, HttpSession session, Active active) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //查询所有
        PageInfo<Active> activePageInfo = activeService.queryAll(page, pageSize, active);
        System.out.println("====所有信息===" + activePageInfo.getList());
        if (rootUser != null) {
            //添加操作日志
            option.setOptionName("查看所有通知信息.");
            //调用管理员操作方法
            adminOption(rootUser);
            optionService.insert(option);
        }
        model.addAttribute("activePageInfo", activePageInfo);
        return "admin/active-list";
    }

    /**
     * 前往添加界面
     *
     * @return
     */
    @RequestMapping("goAdd")
    public String goAdd(HttpSession session, Model model) {
        session.removeAttribute("insertmessage");
        session.removeAttribute("editmassage");
        return "admin/add-active";
    }

    /**
     * 管理员添加
     *
     * @param active
     * @param model
     * @return
     */
    @RequestMapping(value = "addActive", method = RequestMethod.POST)
    public String addActive(Active active, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //添加操作
        if (active != null) {
            System.out.println("=====存入的信息====" + active);
            active = activeService.insert(active);
            if (rootUser != null) {
                //添加操作日志
                option.setOptionName("添加的活动为:" + active.getActiveTitle());
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("insertmessage", "success");
            return "redirect:/active/activeList";
        } else {
            session.setAttribute("insertmessage", "isEmpty");
            return "redirect:/active/activeList";
        }
    }

    /**
     * 管理员 前往修改界面
     *
     * @return
     */
    @RequestMapping("goEdit")
    public String goEditGrade(Integer activeId, Model model, HttpSession session) {
        session.removeAttribute("editmassage");
        session.removeAttribute("insertmessage");
        //当前信息
        Active active = activeService.queryById(activeId);
        System.out.println("当前信息===" + active);
        model.addAttribute("activeInfo", active);
        return "admin/edit-active";
    }

    /**
     * 管理员 查看-修改信息
     *
     * @param active
     * @param model
     * @param session
     * @return
     */
    @RequestMapping(value = "editActive", method = RequestMethod.POST)
    public String editActive(Active active, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //修改操作
        if (active != null) {
            System.out.println("=======存入的信息为:"+active);
            active = activeService.update(active);
            if (rootUser != null) {
                //添加操作日志操作
                option.setOptionName("修改标题为 " +active.getActiveTitle()+"的信息");
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("editmassage", "success");
            model.addAttribute("activeInfo", active);
            return "redirect:/active/activeList";
        } else {
            session.setAttribute("editmassage", "isEmpty");
            return "redirect:/active/activeList";
        }
    }

    /**
     * 管理员删除
     *
     * @param activeId
     * @param session
     * @return
     */
    @RequestMapping(value = "remove", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean remove(@RequestParam Integer activeId, HttpSession session) {
        session.removeAttribute("editmassage");
        session.removeAttribute("insertmessage");
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //删除普通管理员操作
        if (activeId != null) {
            Active queryById = activeService.queryById(activeId);
            boolean delete = activeService.deleteById(activeId);
            if (delete) {
                //添加操作日志操作
                option.setOptionName("移除标题为" + queryById.getActiveTitle() + "的信息");
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

}

(Admin)表控制层

package com.bs.controller;

import com.bs.pojo.Admin;
import com.bs.pojo.Option;
import com.bs.pojo.ResultBean;
import com.bs.service.AdminService;
import com.bs.service.OptionService;
import com.github.pagehelper.PageInfo;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;

/**
 * (Admin)表控制层
 *
 * @author makejava
 * @since 2020-04-01 07:55:11
 */
@Controller
@RequestMapping("admin")
public class AdminController {

    private static Option option = new Option();

    private static ResultBean resultBean = new ResultBean();
    /**
     * 服务对象
     */
    @Autowired
    private AdminService adminService;
    @Autowired
    private OptionService optionService;

    /**
     * 验证码验证
     *
     * @param session
     * @param message
     * @return 指定页面
     */
    @RequestMapping("/loginView")
    public String loginView(HttpSession session, String message) {
        session.setAttribute("loginMsg", "登陆失败,验证码错误");
        System.out.println("验证码错误");
        return "redirect:/view/404";
    }

    /**
     * 登录
     *
     * @param admin
     * @return
     */
    @RequestMapping("checkLogin")
    public String checkLogin(Admin admin, Model model, HttpSession session) {
        System.out.println("====================开始登陆=======" + admin);
//        String password = new Md5Hash(admin.getAdminPassword(),admin.getAdminAccount(),1024).toString();
//        System.out.println("========"+password);
        try {
            //1.认证 创建令牌
            UsernamePasswordToken token = new UsernamePasswordToken(admin.getAdminAccount(), admin.getAdminPassword());
            //2.获取主体对象
            Subject subject = SecurityUtils.getSubject();
            //3.登陆方法
            subject.login(token);
            if (subject.isAuthenticated()) {
                System.out.println("认证成功");
                Admin byAccount = adminService.queryByAccount(admin.getAdminAccount());
                if (byAccount.getFlag().equals(1)) {
                    //数据传递是不带密码
                    byAccount.setAdminPassword("");
                    //添加操作日志
                    option.setOptionName(byAccount.getAdminAccount() + ":登录.");
                    //调用管理员操作方法
                    adminOption(byAccount);
                    optionService.insert(option);
                    session.setAttribute("user", byAccount);
                    session.setAttribute("loginMsg", "登录成功");
                    return "redirect:/admin/index";
                }
            }
        } catch (AuthenticationException e) {
            e.printStackTrace();
            System.out.println("认证失败");
        }
        session.setAttribute("loginMsg", "账号或密码错误");
        return "redirect:/view/404";
    }

    /**
     * 超级管理员 查看所有管理员信息
     *
     * @param page
     * @param pageSize
     * @param model
     * @return
     */
    @RequestMapping("adminList")
    public String adminList(@RequestParam(value = "page", defaultValue = "1") int page,
                            @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                            Model model, HttpSession session, Admin admin) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //查询所有管理员
        PageInfo<Admin> adminPageInfo = adminService.queryAll(page, pageSize, admin);
        System.out.println("====所有管理员===" + adminPageInfo.getList());
        if (rootUser != null) {
            //添加操作日志
            option.setOptionName("查看所有管理员.");
            //调用管理员操作方法
            adminOption(rootUser);
            optionService.insert(option);
        }
        model.addAttribute("adminPageInfo", adminPageInfo);
        return "admin/admin-list";
    }

    /**
     * 前往添加管理员界面
     *
     * @return
     */
    @RequestMapping("goAddAdmin")
    public String goAddAdmin(HttpSession session) {
        session.removeAttribute("insertmessage");
        return "admin/add-admin";
    }

    /**
     * 超级管理员添加其他管理员
     *
     * @param admin
     * @param model
     * @return
     */
    @RequestMapping("addAdmin")
    public String addAdmin(Admin admin, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //添加管理员操作
        if (admin != null) {
            Admin byAccount = adminService.queryByAccount(admin.getAdminAccount());
            if (byAccount == null) {
                admin.setAddTime(new Date());
                admin = adminService.insert(admin);
                if (rootUser != null) {
                    //添加操作日志
                    option.setOptionName("添加管理员,账号为:" + admin.getAdminAccount());
                    //调用管理员操作方法
                    adminOption(rootUser);
                    optionService.insert(option);
                }
                session.setAttribute("insertmessage", "success");
                return "redirect:/admin/adminList";
            } else {
                session.setAttribute("insertmessage", "errorRepete");
            }
        } else {
            session.setAttribute("insertmessage", "errorNull");
        }
        return "redirect:/admin/goAddAdmin";
    }

    /**
     * 前往修改管理员密码界面
     *
     * @return
     */
    @RequestMapping("goEditPassword")
    public String goEditPassword(Model model, HttpSession session) {
        session.removeAttribute("editmassage");
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        model.addAttribute("adminInfo", rootUser);
        return "admin/password";
    }

    /**
     * 修改密码
     *
     * @param admin
     * @param model
     * @param session
     * @return
     */
    @RequestMapping("editPassword")
    public String editPassword(Admin admin, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //修改密码操作
        if (admin != null) {
            admin.setAdminId(rootUser.getAdminId());
            System.out.println("=====修改的信息=====" + admin);
            admin.setAddTime(new Date());
            admin = adminService.update(admin);
            if (rootUser != null) {
                //添加操作日志操作
                option.setOptionName("修改密码.");
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("editmassage", "success");
            model.addAttribute("adminInfo", admin);
        }
        return "redirect:/";
    }

    /**
     * 超级管理员修改普通管理员权限
     *
     * @param adminId
     * @param flag
     * @param session
     * @return
     */
    @RequestMapping(value = "editFlag", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean editFlag(@RequestParam Integer adminId, @RequestParam Integer flag, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //授权操作
        if (adminId != null && flag != null) {
            Admin admin = new Admin();
            admin.setAdminId(adminId);
            admin.setFlag(flag);
            admin.setAddTime(new Date());
            System.out.println("=====修改的信息=====" + admin);
            admin = adminService.update(admin);
            if (rootUser != null && flag == 1) {
                //添加操作日志操作
                option.setOptionName("给管理员授权");
                //调用管理员操作方法
                adminOption(rootUser);
            } else {
                //添加操作日志操作
                option.setOptionName("冻结管理员");
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

    /**
     * 超级管理员删除普通管理员
     *
     * @param adminId
     * @param session
     * @return
     */
    @RequestMapping(value = "removeAdmin", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean removeAdmin(@RequestParam Integer adminId, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //删除普通管理员操作
        if (adminId != null) {
            Admin admin = adminService.queryById(adminId);
            boolean delete = adminService.deleteById(adminId);
            if (delete) {
                //添加操作日志操作
                option.setOptionName("移除管理员" + admin.getAdminAccount());
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @RequestMapping("selectOne")
    @ResponseBody
    public Admin selectOne(Integer id) {
        return adminService.queryById(id);
    }


    /**
     * 查询多条数据
     *
     * @param page     页码
     * @param pageSize 页大小
     * @param admin    实体
     * @return PageInfo<Admin> 分页数据集合
     */
    @RequestMapping("searchAll")
    @ResponseBody
    public PageInfo<Admin> searchAll(@RequestParam(value = "page", defaultValue = "1") int page,
                                     @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                                     Admin admin) {
        return adminService.queryAll(page, pageSize, admin);
    }

    /**
     * 管理员操作方法
     *
     * @param rootUser
     */
    public void adminOption(Admin rootUser) {
        option.setOptionUser(rootUser.getAdminAccount());
        option.setRoleName(rootUser.getAdminRole());
        option.setOptionTime(new Date());
        option.setAdminId(rootUser.getAdminId());
    }
}

如果也想学习本系统,下面领取。关注并回复:026ssm 

相关文章:

  • RabbitMQ--延迟队列--使用/原理
  • Linux基础 - Web服务基础
  • 高新技术企业认定八大条件、八大领域、四项指标
  • 异常练习题(Java)
  • 那些惊艳一时的 CSS 属性
  • ipv6地址概述——深入讲解ipv6地址
  • 这才是Git的正确学习方式
  • Linux 命令(204)—— ss 命令
  • 第十四届蓝桥杯模拟赛 第二期题解
  • [激光原理与应用-29]:典型激光器 -1- 固体激光器
  • Redis常见问题
  • 【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文)
  • 【数据结构】堆和优先级队列
  • 关于如何找环形链表的入环点
  • 下班路上捡了一部手机,我用8年开发知识主动找到了失主
  • @angular/forms 源码解析之双向绑定
  • 0x05 Python数据分析,Anaconda八斩刀
  • 4. 路由到控制器 - Laravel从零开始教程
  • CSS相对定位
  • Elasticsearch 参考指南(升级前重新索引)
  • express如何解决request entity too large问题
  • HashMap剖析之内部结构
  • js算法-归并排序(merge_sort)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • REST架构的思考
  • SpringCloud集成分布式事务LCN (一)
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Travix是如何部署应用程序到Kubernetes上的
  • Wamp集成环境 添加PHP的新版本
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 看域名解析域名安全对SEO的影响
  • 理清楚Vue的结构
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 自定义函数
  • 《天龙八部3D》Unity技术方案揭秘
  • 整理一些计算机基础知识!
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (八)Flask之app.route装饰器函数的参数
  • (论文阅读40-45)图像描述1
  • (三)模仿学习-Action数据的模仿
  • (十八)SpringBoot之发送QQ邮件
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (四)鸿鹄云架构一服务注册中心
  • (转) 深度模型优化性能 调参
  • (转)Unity3DUnity3D在android下调试
  • ./和../以及/和~之间的区别
  • .apk文件,IIS不支持下载解决
  • .NET : 在VS2008中计算代码度量值
  • .NET Micro Framework初体验
  • .net mvc 获取url中controller和action
  • .NET单元测试
  • .NET与 java通用的3DES加密解密方法
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国