基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)

项目介绍

学生会管理系统.主要功能包括:

后台首页:最新活动展示、最新公告、学生会部门职能介绍; 财务管理:资金报销登记、赞助商管理; 物资管理:物资借还管理、全部物资;添加、编辑、删除; 日常事务管理:工作计划管理、活动管理、文件管理; 申请请假:添加、修改、删除、查看;

我的待办;

环境需要

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. 后端:SpringBoot

  2. 前端:Thymeleaf+html+layui+jQuery+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml及activiti.cfg.xml配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8085 登录
    public String toSignOut() {
        //销毁session
        try{
            ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = requestAttributes.getRequest();
            HttpSession session = request.getSession();
            if (session != null) {
                User loginUser = (User) session.getAttribute("sysUserInfo");
                ServletContext application = session.getServletContext();
                @SuppressWarnings("unchecked")
                Map<String, Object> loginMap = (Map<String, Object>) application.getAttribute("loginMap");
                loginMap.remove(loginUser.getId());
                application.setAttribute("loginMap", loginMap);
				session.removeAttribute("user");
                session.invalidate();//清除session信息
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return "system/index/login";
    }

    /**
     * 跳转到首页
     *
     * @return
     */
    @RequestMapping("index")
    public String index() {

        return "system/index/index";
    }

    /**
     * 跳转到登陆台
     *
     * @return
     */
    @RequestMapping("toDeskManager")
    public String toDeskManager() {
        return "system/index/deskManager";
    }

    /**
     * 跳转到部门管理
     *
     * @param
     * @return
     */
    @RequestMapping("loadAllsponsors")
    public Dataobj loadAllsponsors(SponsorVo sponsorVo){

        IPage<sponsors> page = new Page<>(sponsorVo.getPage(),sponsorVo.getLimit());
        QueryWrapper<sponsors> q = new QueryWrapper<>();
        q.like(StringUtils.isNotBlank(sponsorVo.getSponsor()),"sponsor",sponsorVo.getSponsor());
        q.like(StringUtils.isNotBlank(sponsorVo.getContent()),"content",sponsorVo.getContent());
        q.orderByAsc("id");
        sponsorService.page(page,q);
        List list =sponsorService.list(q);
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(page.getRecords(), page.getTotal());
        }
    }

    /**添加赞助商*/
    @RequestMapping("addsponsors")
    public Resultreturn addsponsors(SponsorVo sponsorVo){
        try {
            sponsorService.save(sponsorVo);
            return Resultreturn.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.ADD_ERROR;
        }
    }
    /** 修改赞助商*/
    @RequestMapping("updatesponsors")
    public Resultreturn updatesponsors(SponsorVo sponsorVo){
        try {
            sponsorService.updateById(sponsorVo);
            return Resultreturn.UPDATE_SUCCESS;

        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.UPDATE_ERROR;
        }
    }

    //删除赞助商
    @RequestMapping("deletesponsors")
                    roleService.deleteRolePermissionByRid(rid);
                    roleService.saveRolePermission(rid, ids);

                }

            }
            return resultreturn.DISPATCH_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DISPATCH_ERROR;
        }

    }

}

/**

 */
@Controller
@RequestMapping("sys")
public class XitongController {

    /**
     * 跳转到登陆页面
     *
     * @return
     */
    @RequestMapping("toLogin")
    public String toLogin() {
        return "system/index/login";
    /**
     * 跳转到登陆台
     *
     * @return
     */
    @RequestMapping("toDeskManager")
    public String toDeskManager() {
        return "system/index/deskManager";
    }

    /**
     * 跳转到部门管理
     *
     * @return
     */
    @RequestMapping("toDeptManager")
    public String toDeptManager() {
        return "system/dept/deptManager";
    }

    /**
     * 跳转到权限管理
     *
     * @return
     */
    @RequestMapping("toPermissionManager")
    public String toPermissionManager() {
        return "system/permission/permissionManager";
    }

    /**
     * 跳转到角色管理
     *
     * @return
     */
    @RequestMapping("toRoleManager")
    public String toRoleManager() {
        return "system/role/roleManager";
    }

    /**
     * 跳转到用户管理
     *
     * @return
     */
    @RequestMapping("toUserManager")
    public String toUserManager() {
        return "system/user/userManager";

    //删除文件
    @RequestMapping("deletefiles")
    public Resultreturn deletefiles(Integer fileid){
        try {

            filesService.removeById(fileid);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

}

        QueryWrapper<leaver> query=new QueryWrapper<>();
        query.eq("leaver",userName.getName()).eq("status",2);
       leaver leave1=leaverService.getOne(query);
        List<task> list1 = null;
        if (userName.getRemark().equals("干事")&&leave.isEmpty()) {
            list1 = findPersonalTask(userName.getName());
        }else {
            list1 = findPersonalTaskList(userName.getName());
        }
            long num = list1.size();
            if (list1.size() == 0) {
                return new Dataobj(null, num);
            } else {

                return new Dataobj(list1, num);
            }
    }

        @RequestMapping("completeTask")
        public Resultreturn completeTask (task task, HttpSession session){//task当前任务实体类,HttpSession存储用户数据
            try {
                    records records = new records();//实例化审核记录实体类
                     com.ywj.system.model.leaver useleaver=new leaver();//实例化请假实体类
                     Map<String, Object> variables = new HashMap<String, Object>();//实例化map集合
                    User user = (User) session.getAttribute("user");//通过session获取当前用户信息
                if(user.getRemark().equals("干事")) {//判断当前用户身份
                    QueryWrapper<leaver> queryWrapper = new QueryWrapper<>();
                    //查询请假人和请假状态为审核中的请假单
                    queryWrapper.eq("leaver", task.getLeaver()).eq("status", 2);
                    List<leaver> leaver= leaverService.list(queryWrapper);

                    QueryWrapper<leaver> qu = new QueryWrapper<>();
                    //查询请假人和请假状态为被驳回的请假单
                    qu.eq("leaver", task.getLeaver()).eq("status", 3);
                    List<leaver> lea= leaverService.list(qu);
                 if(lea.isEmpty()){//如果为空表示当前任务为初次办理
                            //循环遍历查询出来的请假状态为审核中的请假单
                        for (com.ywj.system.model.leaver item:leaver) {

                int len = 0;
                byte[] buf = new byte[1024];
                while ((len=bufferedInputStream.read(buf))!=-1){
                    if (flag) {
                        name=new String(buf,0,len);
                        flag=false;
                    }else {

//                        message += "\n" + " " + name + ": " + simpleDateFormat.format(new Date()) + "port:" + socket.getRemoteSocketAddress() + "\n" + " " + new String(buf, 0, len);
                        message = "\n" + " " + name + ": " + simpleDateFormat.format(new Date()) + "<br>" + " " + new String(buf, 0, len);

                    }
                    new zhuanfa().start();
                }

            }

        }catch (IOException e){
            e.printStackTrace();
        }

    }
    class zhuanfa extends Thread{
        @Override
        public void run() {
            OutputStream os= null;
            for (int i = 0; i <sockets.size(); i++) {
                try {
                    os= sockets.get(i).getOutputStream();
                    BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(os);
                    bufferedOutputStream.write(message.getBytes());
                    bufferedOutputStream.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) throws IOException {

    }
}

    @Autowired
    UserService userService;

    @Autowired
    private IbumenService deptService;

    @Autowired
    private IjiaoseService roleService;

    @Autowired
    private LoginService loginService;

    Map<String,Client> map=new HashMap<>();

    @RequestMapping("/login")
    public resultreturn login(userv userv, String code) throws IOException{

        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = requestAttributes.getRequest();
        HttpSession session = request.getSession();
        //获得存储在session中的验证码
        String sessionCode = (String) session.getAttribute("code");
        if (code!=null&&sessionCode.equals(code)){

            AuthenticationToken token = new UsernamePasswordToken(userv.getLoginname(), userv.getPassword());
            Subject subject = SecurityUtils.getSubject();
            try {
                //对用户进行认证登陆
                subject.login(token);
                //通过subject获取以认证活动的user
                UserRenZheng userRenZheng = (UserRenZheng) subject.getPrincipal();

                //单一登录操作设置
                ServletContext application = session.getServletContext();

                Map<Integer, Object> loginMap = (Map<Integer, Object>)application.getAttribute("loginMap");
                if (loginMap == null) {
                    loginMap = new HashMap<Integer, Object>();
                }
                boolean flag=false;
                boolean flag1=false;
                for (Integer key : loginMap.keySet()) {
                    if (userRenZheng.getUser().getId().intValue() == key.intValue()) {

    //删除物资
    @RequestMapping("deleteGoods1")
    public Resultreturn deleteGoods1(Integer id){
        try {

            AllgoodsService.removeById(id);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

    /**
     * 批量删除
     * @param goodsVo1 选中的
     * @return
     */
    @RequestMapping("batchDeleteGoods1")
    public Resultreturn batchDeletefiles(GoodsVo1 goodsVo1){
        try {
            Collection<Serializable> idList = new ArrayList<Serializable>();
            for (Integer id : goodsVo1.getIds()) {
                idList.add(id);
            }
            AllgoodsService.removeByIds(idList);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

}

        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.DELETE_ERROR;
        }
    }

    //部署流程并开启流程
    public void deploymentProcess(String name) throws Exception{
        //请假流程部署
        Deployment deployment =this.processEngine.getRepositoryService()
                .createDeployment()//创建流程
                .name("学生会请假流程.....")//流程名称
                .addClasspathResource("diagrams/LeaveProgress.bpmn")//流程图文件
                .addClasspathResource("diagrams/LeaveProgress.png")//流程图
                .deploy();

        //获取RuntimeService对象
        RuntimeService runtimeService = this.processEngine.getRuntimeService();
        //根据流程key值,获取流程
        String processKey ="leave";

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("logintype","生活文体部").eq("remark","部长");
        User user=userService.getOne(queryWrapper);//查询生活文体部部长

        QueryWrapper<User> q=new QueryWrapper<>();
        q.eq("logintype","行政秘书部").eq("remark","部长");
        User user1=userService.getOne(q);//查询行政秘书部部长

        QueryWrapper<User> q1=new QueryWrapper<>();
        q1.eq("logintype","实践部").eq("remark","部长");
        User user2=userService.getOne(q1);

        QueryWrapper<User> q2=new QueryWrapper<>();
        q2.eq("logintype","组织部").eq("remark","部长");
        User user3=userService.getOne(q2);

        QueryWrapper<User> q3=new QueryWrapper<>();
        q3.eq("logintype","策划部").eq("remark","部长");
        User user4=userService.getOne(q3);

        QueryWrapper<User> q4=new QueryWrapper<>();
        q4.eq("logintype","宣传部").eq("remark","部长");
        User user5=userService.getOne(q4);

                    //添加审核记录
                    recordsService.save(records);
                    //执行完成任务
                    this.processEngine.getTaskService().complete(task.getId().toString(), variables);

                } else if(user.getRemark().equals("部长")) {

                    if(task.getLeaver().equals(user.getName())){//如果成立表示部长请假
                        QueryWrapper<leaver> queryWrapper = new QueryWrapper<>();
                        //查询请假状态为初始化的请假单
                        queryWrapper.eq("leaver", task.getLeaver()).eq("status", 2);
                        List<leaver> leaver= leaverService.list(queryWrapper);
                        QueryWrapper<leaver> qu = new QueryWrapper<>();
                        //查询请假状态为被驳回的请假单
                        qu.eq("leaver", task.getLeaver()).eq("status", 3);
                        List<leaver> lea= leaverService.list(qu);
                        if(lea.isEmpty()){//如果为空表示初次办理任务
                                //循环遍历请假状态为初始化的请假单
                                for (com.ywj.system.model.leaver item:leaver) {
                                    //将信息加入map,以便传入流程中
                                    variables.put("请假人", item.getLeaver());
                                    variables.put("请假id", item.getId());
                                    variables.put("请假类型", item.getStyle());
                                    variables.put("请假原因", item.getLeavereson());
                                    variables.put("备注", item.getRemark());
                                    variables.put("请假时间", new Date());
                                    records.setLeaverid(item.getId());
                                }
                            }else {//循环遍历请假状态为被驳回的请假单
                                for (com.ywj.system.model.leaver leaver1:lea) {
                                    //将信息加入map,以便传入流程中
                                    variables.put("请假人", leaver1.getLeaver());
                                    variables.put("请假id", leaver1.getId());
                                    variables.put("请假类型", leaver1.getStyle());
                                    variables.put("请假原因", leaver1.getLeavereson());
                                    variables.put("备注", leaver1.getRemark());
                                    records.setLeaverid(leaver1.getId());
                                }
                            }
                        //设置流程变量,确保流程正常运行
                             variables.put("部长批注", task.getPi());
                            variables.put("请假时间", new Date());
                QueryWrapper<leaver> queryWrapper=new QueryWrapper<>();
                queryWrapper.eq("leaver",user.getName()).eq("status",2);
                QueryWrapper<leaver> q=new QueryWrapper<>();
                q.eq("leaver",user.getName()).eq("status",0);
                leaver leaver=leaverService.getOne(queryWrapper);
                leaver leaver1=leaverService.getOne(q);
                if(leaver!=null||leaver1!=null){
                    return resultreturn.jia_ERROR;
                }else if(leaver1==null&&leaver==null){
                    leaveV.setLeaver(user.getName());
                    leaveV.setStatus(0);
                    leaverService.save(leaveV);
                }
                return resultreturn.ADD_SUCCESS;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.ADD_ERROR;
        }
    }

    /**
     * 修改请假单
     * @param leaveV
     * @return
     */
    @RequestMapping("updateLeave")
    public resultreturn updateLeave(LeaveV leaveV){
        try {
            leaverService.updateById(leaveV);
            return resultreturn.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.UPDATE_ERROR;
        }
    }

    /**

            AllgoodsService.save(goodsVo1);
            return Resultreturn.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.ADD_ERROR;
        }
    }

    /**
     * 修改物资
     * @param goodsVo
     * @return
     */
    @RequestMapping("updateGoods1")
    public Resultreturn updateGoods1(GoodsVo1 goodsVo){
        try {
            AllgoodsService.updateById(goodsVo);
            return Resultreturn.UPDATE_SUCCESS;

        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.UPDATE_ERROR;
        }
    }

    //删除物资
    @RequestMapping("deleteGoods1")
    public Resultreturn deleteGoods1(Integer id){
        try {

            AllgoodsService.removeById(id);
            return Resultreturn.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return Resultreturn.DELETE_ERROR;
        }
    }

    /**
     * 批量删除
     * @param goodsVo1 选中的
     * @return
     */
    @RequestMapping("batchDeleteGoods1")
    public Resultreturn batchDeletefiles(GoodsVo1 goodsVo1){
        try {
        }
    }

    /**
     * 添加角色
     * @param jiaosev
     * @return
     */
    @RequestMapping("addRole")
    public resultreturn addRole(jiaosev jiaosev){
        try {
            roleService.save(jiaosev);
            return resultreturn.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.ADD_ERROR;
        }
    }

    /**
     * 修改角色
     * @param jiaosev
     * @return
     */
    @RequestMapping("updateRole")
    public resultreturn updateRole(jiaosev jiaosev){
        try {
            roleService.updateById(jiaosev);
            return resultreturn.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return resultreturn.UPDATE_ERROR;
        }
    }

    /**
     * 删除角色
     * @param id
     * @return
     */
    @RequestMapping("deleteRole")
    public resultreturn deleteRole(Integer id){
        try {

@RestController
@RequestMapping("permission")
public class QuanxianController {
    
    @Autowired
    private IquanxianService permissionService;

    /**
     * 查询所有权限数据
     * @param quanxianv
     * @return
     */
    @RequestMapping("loadAllPermission")
    public Dataobj loadAllPermission(quanxianv quanxianv){
        IPage<permisson> page = new Page<>(quanxianv.getPage(), quanxianv.getLimit());
        //进行模糊查询
        QueryWrapper<permisson> q = new QueryWrapper<>();
        //只能查询权限
        q.eq("type", Changliang.TYPE_PERMISSION);
        q.like(StringUtils.isNotBlank(quanxianv.getTitle()),"title", quanxianv.getTitle());
        q.like(StringUtils.isNotBlank(quanxianv.getPercode()),"percode", quanxianv.getPercode());
        q.eq(quanxianv.getId()!=null,"pid", quanxianv.getId());
        q.orderByAsc("id");
        //进行查询
        permissionService.page(page,q);
        //返回DataGridView
        List list =permissionService.list(q);
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(page.getRecords(), page.getTotal());
        }
                login.setLogintime(new Date());
                loginService.save(login);
//                   User user = userRenZheng.getUser();
//                   Client client= new  Client();
//                   client.connectton(user);
//                   Thread thread=new Thread(client);
//                   thread.start();
//                  map.put(user.getName(),client);

                    //将user存储到session中
                    session.setAttribute("user", userRenZheng.getUser());
                    return resultreturn.LOGIN_SUCCESS;
                }

            } catch (UnknownAccountException e) {

                return resultreturn.LOGIN_ERROR_PASS;

            }catch (IncorrectCredentialsException e){

                return resultreturn.LOGIN_ERROR_PASS;
            }
        }else {
            return resultreturn.LOGIN_ERROR_CODE;
        }
    }

    //查询当前用户信息
    @RequestMapping("getNowUser")
    public User getNowUser(HttpSession session) {
        //1.获取当前session中的user
        User user1 = (User) session.getAttribute("user");
        return user1;
    }
//
//    @RequestMapping("readMessage")
//    public  String  readMessage(HttpSession session){
//        User user= (User) session.getAttribute("user");
//        Client client = null;
    @RequestMapping("index")
    public String index() {

        return "system/index/index";
    }

    /**
     * 跳转到登陆台
     *
     * @return
     */
    @RequestMapping("toDeskManager")
    public String toDeskManager() {
        return "system/index/deskManager";
    }

    /**
     * 跳转到部门管理
     *
     * @return
     */
    @RequestMapping("toDeptManager")
    public String toDeptManager() {
        return "system/dept/deptManager";
    }

    /**
     * 跳转到权限管理
     *
     * @return
     */
    @RequestMapping("toPermissionManager")
    public String toPermissionManager() {
        return "system/permission/permissionManager";
    }

    @Autowired
    private PlansService plansService;

    /**
     * 查询计划
     * @param
     * @return
     */
    @RequestMapping("loadAllplans")
    public Dataobj loadAllGoods1(PlansVo plansVo){

        IPage<plans> page = new Page<>(plansVo.getPage(),plansVo.getLimit());
        QueryWrapper<plans> q = new QueryWrapper<>();
        q.like(StringUtils.isNotBlank(plansVo.getPlanname()),"planname",plansVo.getPlanname());
        q.like(StringUtils.isNotBlank(plansVo.getSumitdepart()),"sumitdepart",plansVo.getSumitdepart());
        q.like(StringUtils.isNotBlank(plansVo.getSumitor()),"sumitor",plansVo.getSumitor());
        q.orderByAsc("pid");
        plansService.page(page,q);
        List list =plansService.list(q);
        long num=list.size();
        if(list.isEmpty()){
            return new Dataobj(null,num);
        }else {
            //返回DataGridView
            return new Dataobj(page.getRecords(), page.getTotal());
        }
    }

    /**
     * 新建计划
     * @param
     * @return
     */
    @RequestMapping("addplans")
    public Resultreturn addGoods1(PlansVo plansVo){
        try {

            plansService.save(plansVo);
            return Resultreturn.ADD_SUCCESS;
        } catch (Exception e) {

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值