栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(十一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(十一)

目录

一、writeup分页、搜索

二、靶场完成度

三、解散班级


前言:本篇博客主要记录前期代码的细节补充与改进完善。

一、writeup分页、搜索

在之前的博客中,介绍了writeup的分页和搜索是通过mybatis的函数实现的,即:

    @GetMapping("/page")
    public Result findpage(@RequestParam(defaultValue = "1") Integer pageNum,
                           @RequestParam(defaultValue = "5")  Integer pageSize,
                           @RequestParam(defaultValue = "")  String search){
        Page forumPage=forumMapper.selectPage(new Page<>(pageNum,pageSize), Wrappers.lambdaQuery().like(Forum::getForumid,search));
        return Result.success(forumPage);
    }

但是这存在两个问题:一是不能按照时间倒序排序;二是无法加入某些查询条件,不利于后续审核之类的功能的实现。

因此,我自己手动写了分页代码,不再使用mybatis的selectPage函数。

前端的代码不变,主要是对后端springboot中的controller、mapper进行修改。改动如下:

    @GetMapping("/page")
    public Result findpage(@RequestParam(defaultValue = "1") Integer pageNum,
                           @RequestParam(defaultValue = "5")  Integer pageSize,
                           @RequestParam(defaultValue = "")  String search){
        Integer beginPage=(pageNum-1)*pageSize;
        List forumPage=forumMapper.getpage(beginPage,pageSize,search,1);
        Integer totalpage=forumMapper.gettotalpage(search,1);

        com.sducsrp.csrp.entity.Page page=new Page(forumPage,totalpage);
        return Result.success(page);
    }
    @Select("select * from  forum where state=#{state} and content like "%${search}%" ORDER BY time DESC limit #{beginPage},#{pageSize}")
    List getpage(Integer beginPage, Integer pageSize, String search, int state);

    @Select("select count(*) from  forum where state=#{state} and content like "%${search}%" ORDER BY time DESC")
    Integer gettotalpage(String search, int state);

 writeup外观如下图所示:

可以看到,writeup是根据发布时间递减顺序排列的。

二、靶场完成度

在课程管理界面中,除了学生的基本信息,还要显示每名学生的靶场完成度。

因此,要在学生提交正确的flag后,使其完成题目数加一。所以在user表里新加入一个属性finished,表示该用户完成的题目数。

具体操作为:

StuProblemController.java中:
    @GetMapping("/recordinfo")
    public Result save(@RequestParam() Integer userid, @RequestParam() String problemid){

        stuProblemMapper.insertinfo(userid,problemid);
        userMapper.updateFinished(userid);
        return Result.success("success");
    }
UserMapper.java中:
    @Update("update user set finished = finished+1 where userid = #{userid}")
    int updateFinished(Integer userid);

 效果如图所示:

外观改进:

              
                
              

 

 

三、解散班级

教师可以通过解散班级按钮,删除某个班级的信息。

具体实现如下:

    loadcourse(){
      request.get("/course/getcourselist",{
        params:{
          teacherid:this.teacher.userid
        }
      }).then(res =>{
        console.log(res)
        this.courselist=res.data
        this.currentcourse=res.data[0].courseid
        this.currentcoursename=res.data[0].coursename
        this.getstuinfo(this.currentcourse)
      })

    },

    Dissolve(){
      request.get("/course/delete",{
        params:{
          courseid:this.currentcourse
        }
      }).then(res =>{
        console.log(res);
        if (res.code === '200'){
          alert(this.currentcoursename+"已解散");
          this.loadcourse()
        }else{
          alert(this.currentcoursename+"解散失败");
        }
      })
    },
    @GetMapping("/delete")
    public Result register(@RequestParam() String  courseid) {
        int a=courseMapper.deleteByid(courseid);
        int b=stuCourseMapper.deleteByid(courseid);
        if(a==1&&b==1)
            return Result.success();
        else
            return Result.error();
    }
    @Delete("delete from stucourse where courseid = #{courseid}")
    int deleteByid(String courseid);

    @Delete("delete from course where courseid = #{courseid}")
    int deleteByid(String  courseid);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/933644.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号