SpringBoot+Vue项目在线学生请假管理系统

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍 

二、系统架构设计

三、系统实现功能模块 

3.1系统登录界面

3.2学生用户管理模块

3.3学生请假记录管理

3.4行程上报记录管理模块

3.5考勤打卡管理模块 

四、部分核心代码

4.1行程上报记录发布的关键代码 

4.2考勤打卡关键代码

4.3学生请假记录管理关键代码

4.4学生管理关键代码

4.5登录系统主要代码


一、前言介绍 

本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

本文以java为开发技术,实现了一个在线学生请假管理系统。在线学生请假管理系统的主要使用者分为管理员、注册用户、招聘企业;管理员功能分为:首页、用户管理、行程上报记录、考勤打卡、学生请假记录、学生销假记录、请假类型管理,通过这些功能模块的设计,基本上实现了整个在线学生请假管理系统的过程。

具体在系统设计上,采用了B/S的结构,同时,也使用java技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的在线学生请假管理系统。

二、系统架构设计

在线学生请假管理系统的系统项目的概述设计分析,主要内容自习室管理系统 信息的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。

在线学生请假管理系统的设计基于现有的手机,可以实现管理员:首页、用户管理、行程上报记录、考勤打卡、学生请假记录、学生销假记录、请假类型管理等详细的了解及统计分析。根据系统功能需求建立的模块关系图如下图

SpringBoot+Vue项目在线学生请假管理系统_第1张图片

这些功能可以充分满足在线学生请假管理系统的需求。此系统功能较为全面如下图系统功能结构如图

系统功能结构图

SpringBoot+Vue项目在线学生请假管理系统_第2张图片

三、系统实现功能模块 

3.1系统登录界面

SpringBoot+Vue项目在线学生请假管理系统_第3张图片

3.2学生用户管理模块

SpringBoot+Vue项目在线学生请假管理系统_第4张图片

3.3学生请假记录管理

SpringBoot+Vue项目在线学生请假管理系统_第5张图片

3.4行程上报记录管理模块

SpringBoot+Vue项目在线学生请假管理系统_第6张图片

3.5考勤打卡管理模块 

SpringBoot+Vue项目在线学生请假管理系统_第7张图片

四、部分核心代码

4.1行程上报记录发布的关键代码 

@RequestMapping("/get_obj")

    public Map obj(HttpServletRequest request) {

        Query select = service.select(service.readQuery(request), service.readConfig(request));

        List resultList = select.getResultList();

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

 public Query select(Map query,Map config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return runEntitySql(sql.toString());

    }

4.2考勤打卡关键代码

@RequestMapping(value = {"/count_group", "/count"})

    public Map count(HttpServletRequest request) {

        Query count = service.count(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.3学生请假记录管理关键代码

@RequestMapping(value = {"/sum_group", "/sum"})

    public Map sum(HttpServletRequest request) {

        Query count = service.sum(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.4学生管理关键代码

@RequestMapping(value = {"/sum_group", "/sum"})

    public Map sum(HttpServletRequest request) {

        Query count = service.sum(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.5登录系统主要代码

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map login(@RequestBody Map data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

你可能感兴趣的:(毕业设计,课程设计,vue.js,spring,boot,前端,在线学生请假管理系统)