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

SpringBoot+Vue项目实践课程教学管理平台

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

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

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

一、前言介绍 

论文主要是对实践课程教学管理平台进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对实践课程教学管理平台进行了一些具体测试。

本文以java为开发技术,实现了一个实践课程教学管理平台。实践课程教学管理平台的主要使用者分为管理员、学生和教师;管理员功能分为:首页、站点管理(公告栏、轮播图)用户管理(管理员、学生用户、教师用户)内容管理(教学考试)更多管理(实践选择、实践课题、报告信息、报告成绩)等功能。通过这些功能模块的设计,基本上实现了整个实践课程教学管理平台管理的过程。具体在系统设计上,采用了B/S的结构,同时,也使用java技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的实践课程教学管理平台。

二、系统功能 

实践课程教学管理平台在对需求做解析后,整个系统主要分为管理员和教师、学生,每个模块下的分支功能不一样。

(1)前台页面:首页、教学考试、公告消息、实践课题、登录注册、我的(我的账户、我的收藏、个人中心、退出)。 

(2)学生:实践选择、报告信息、报告成绩。 

(3)教师:教学考试、实践选择、实践课题、报告信息、报告成绩。

(4)管理员:首页、站点管理(公告栏、轮播图)用户管理(管理员、学生用户、教师用户)内容管理(教学考试)更多管理(实践选择、实践课题、报告信息、报告成绩)等模块。

三、系统前台模块

3.1教学考试页面

3.2公告消息页面

3.3实践课题页面 

3.4实践课题详情页面

四、管理员功能模块

4.1站点管理模块 

4.2用户管理模块 

4.3内容管理模块 

4.4更多管理模块 

五、教师功能模块

5.1教学考试管理模块

考试添加

5.2实践课题管理模块

5.3报告信息管理模块

五、学生功能模块

5.1报告成绩模块

六、部分核心代码 

6.1登录关键代码 

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> 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<String, String> 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<String, String> 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, "账号或密码不正确");

        }

}

6.2用户管理关键代码

public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

    }

6.3更多管理关键代码

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

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

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

相关文章:

  • 深圳福田车公庙网站建设/广州市口碑seo推广
  • 咨询网站 模板/百度seo站长工具
  • 精准营销数据/绍兴seo推广
  • wordpress htaccess下载/seo搜索引擎优化兴盛优选
  • 公司网站建设意见征集/宁波seo哪家好
  • wordpress保存不了/奇零seo赚钱培训
  • 基于标志点特征高精提取与匹配方法,进行双目、结构光、RGBD相机、单目相机多视拼接
  • Cartesian product
  • 如何实现高性能点赞
  • Beego框架项目搭建步骤
  • 机器学习100天(十八):018 逻辑回归Python实战
  • 【数据驱动测试】从方法探研到最佳实践
  • 华为机试_HJ27 查找兄弟单词【中等】
  • 智牛股_第7章_OAuth2+Spring Security OAuth2+GateWay+Druid+Spring Data JPA
  • Transformers18~ Diffusion
  • 华为OD机试真题 C++ 实现【最多等和不相交连续子序列】【2022.11 Q4 新题】
  • 【记录】Tiff图像的前处理,median blur filter 及 linear stretch
  • 一个select死锁问题