diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view.jsp index f355c65..80e2f5e 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view.jsp @@ -17,7 +17,7 @@ - + @@ -28,68 +28,25 @@
-
-
    -
  • 学生完成情况
  • -
  • 题目分析
  • -
-
-
-
-
    -
  • 未完成学生 1/1
  • -
  • 平均错题数 0
  • -
  • 正确率 0%
  • -
  • 平均用时 0秒
  • -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
姓名答题时间答对数答错数错题详情一键催交
杨大辉未完成------催作业
何禾2018/6/21------催作业
-
-
- +
+
-
- + + - - diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view1.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view1.jsp new file mode 100644 index 0000000..93ff614 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/paper_view1.jsp @@ -0,0 +1,281 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 中天电子-教育管理系统 + + + + + + + + + + + + +
+ +
+ +
+
    +
  • +
    +

    1.如图,检测4个足球,其中超过标准质量的克数记为正数,不足标准质量的克数记为负数.从轻重的角度看,最接近标准的是(  )

    +
    +
    +
      +
    • A.
    • +
    • B.
    • +
    • C.
    • +
    • D.
    • +
    +
    +
    +
    +
    +

    【答案】 A

    +

    【解析】由图数一数,可知总共有7位小同学,其中扎小辫的女孩有2人,男孩有5人。 + 故选A。

    + +

    【考点】 10以内数的认识

    +
    +
    +
    +
    +

    答错人数

    +
    +
    + 0/0 +
    +
    +
    +
    +

    错误率

    +
    +
    + 100% +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    错误学生:0/0
    +
    +
    + 难度 +
      +
    • +
    • +
    • +
    • +
    • +
    +
    + +
    +
    +
    +
  • +
+
+
+ +
+ + + + + + + + + + + diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/set_question.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/set_question.jsp index d137c35..a8f2efd 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teacher/set_question.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/set_question.jsp @@ -9,7 +9,7 @@ - + @@ -23,89 +23,31 @@ -
-
+
+
    -
  • 同步教材

  • -
  • 知识点

  • +
  • 同步教材

  • +
  • 知识点

-

西师大版/一年级上

+

西师大版/一年级上

    -
  • -

    人教版

    - -
    -
    -
      -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
      -
    -
    -
  • -
  • -

    人教版

    - -
    -
  • -
  • -

    人教版

    - -
    -
  • -
  • -

    人教版

    - -
    -
  • -
  • -

    人教版

    - -
    -
  • -
  • -

    人教版

    - -
    -
  • -

    人教版

    - -
    -
  • -
  • -

    人教版

    - -
    -
    -
      -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
    • 一年级1502班
    • -
      -
    -
    -
  • +
@@ -246,38 +188,57 @@ var url="http://127.0.0.1:8080"; var temp_tag; var temp_data; + var TEXTBOOK_ID=""; + var question_box=[]; + var question_num=0; + $(document).ready(function(){ - getChapter(); - getTeachingMaterial(); + //getClassName(); + + getPoint(); + }); + + function getQueryString(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); return null; + } + + var subject_id=getQueryString("subject_id"); + var class_id=getQueryString("class_id"); + + //alert(subject_id+";"+class_id); + function getPoint(){ //获取知识点 $.ajax({ url:url+"/SunvoteEducation/api/v1/point", async:false, type:"post", - data:{depth:"",subject_id:20,p_id:"",knowledge_from:101}, + data:{depth:"",subject_id:subject_id,p_id:"",knowledge_from:101}, success:function(data){ console.log(data); var point_html=""; for(var i=0;i'+(i+1)+data.data[i].NAME+''; + point_html +='
  • '+(i+1)+data.data[i].NAME+'
  • '; } $(".section").children("ul").html(point_html); + getQuestion($(".section li").eq(0)); } }) } - function getChapter(){ //获取章节 + function getChapter(TEXTBOOK_ID){ //获取章节 $(".section").children("ul").html(""); $.ajax({ url:url+"/SunvoteEducation/api/v1/chapter", async:false, type:"post", - data:{TEACHINGMATERIAL_ID:"14f2ad40-d4d6-4558-af5b-c9e3703c1ee8"}, + data:{TEXTBOOK_ID:TEXTBOOK_ID}, success:function(data){ console.log(data); for(var i=0;i'+data.data[i].NAME+''); + $(".section").children("ul").append('
  • '+data.data[i].NAME+'
  • '); if(data.data[i].CHILDREN.length>0){ $(".section").children("ul").children("li").eq(i).append("
      "); for(var j=0;j'+(i+1)+data.data[i].NAME+''; + _html +='
    • '+(i+1)+data.data[i].NAME+'
    • '; else - _html +='
    • '+(i+1)+data.data[i].NAME+'
    • '; + _html +='
    • '+(i+1)+data.data[i].NAME+'
    • '; } obj.children('ul').html(_html); } @@ -320,6 +281,7 @@ } function getQuestion(obj){ //获取题目 + var knowledge_id="",chapter_id=""; if($(".tab .active").attr("data-index")==1){ knowledge_id=obj.attr("data-id"); @@ -331,11 +293,11 @@ $.ajax({ url:url+"/SunvoteEducation/api/v1/questions", - async:false, + async:true, type:"post", - data:{chapter_id:chapter_id,teachingmaterial_id:"",knowledge_id:knowledge_id,question_from:101,user_id:"",problem_type:"",subject_id:"",count:""}, + data:{chapter_id:chapter_id,teachingmaterial_id:"",knowledge_id:knowledge_id,question_from:101,user_id:"",problem_type:"",subject_id:"",count:"5"}, success:function(data){ - console.log(data); + window.top.loading.remove(); if(data.data.length>0){ for(var i=0;i

        【答案】 '+data.data[i].ANSWER+'

        【解析】'+data.data[i].ANALYSIS+'

        '; @@ -345,9 +307,12 @@ var option_html=""; $(".question_box li .content").eq(j).append(''+(j+1)+'、'+data.data[j].CONTENT); var arry_option=data.data[j].OPTION_CONTENT; - arry_option=arry_option.replace("[",""); - arry_option=arry_option.replace("]",""); - arry_option=arry_option.split(","); + if(question_box.indexOf(data.data[j].QUESTION_ID)>=0){ + $(".check_box").eq(j).addClass("checked"); + } + //arry_option=arry_option.replace("[",""); + //arry_option=arry_option.replace("]",""); + //arry_option=arry_option.split(","); for(var x=0;x'+arry_option[x]+''; } @@ -356,28 +321,88 @@ star(j,parseInt(data.data[j].DIFFICULTY)); } + }else{ + $(".question_box ul").html(""); } + } }) } function getTeachingMaterial(){ //获取教材版本 + $.ajax({ url:url+"/SunvoteEducation/api/v1/teachingmaterial", - async:false, + async:true, type:"post", - data:{subject_id:20}, + data:{subject_id:subject_id}, success:function(data){ console.log(data); if(data.data.length>0){ var teach_html=""; + + for(var i=0;i

        '+data.data[i].NAME+'

        '; + teach_html += '
      • '+data.data[i].NAME+'

      • '; } $(".book_box ul").html(teach_html); + var li_length=$(".book_box ul li").length; + for(var k=0;k0){ + + books=textBook($(".book_box ul li").eq(k).attr("data-id")); + $(".book_box ul li").eq(k).append('
        '); + + for(var j=0;j'+books[j].name+''; + } + $(".float_box").eq(k).children("ul").find(".clearfix").before(book_html); + TEXTBOOK_ID=books[0].id; + } + + } + getChapter(TEXTBOOK_ID); + $("#book_name").text($(".name").eq(0).text()+"/"+$(".float_box").eq(0).find('li').eq(0).text()); } } }) + + } + function textBook(id){ + var textBookName=[]; + $.ajax({ + url:url+"/SunvoteEducation/api/v1/textbook", + async:false, + type:"post", + data:{teaching_material_id:id,subject_id:subject_id,grade_id:""}, + success:function(data){ + //alert(data.data); + if(data.data.length>0){ + for(var i=0;i'); @@ -392,15 +417,24 @@ $(".star").eq(index).find("ul").html(li_html); } - $(".section").on("click","li",function(event){ + $(".section").on("click",".add",function(event){ //展开菜单 event.stopPropagation(); - var that=$(this); + + var that=$(this).closest("li"); + //alert(that.attr("data-img-click")); //console.log(that.attr("data-click")); if($(".tab .active").attr("data-index")==1){ - if(that.attr("data-click")==0) + if(that.attr("data-img-click")==0){ getMenu(that.attr("data-id"),that); - that.attr("data-click",1); + //getQuestion(that); + } + that.attr("data-img-click",1); + }else{ + if(that.attr("data-img-click")==0){ + //getQuestion(that); + } + that.attr("data-img-click",1); } if(that.children('ul').length>0) @@ -411,43 +445,74 @@ that.children('img').attr("src","../static/images/add.png"); }); }); + $(".section").on("click","span",function(event){ //点击菜单获取题目 + window.top.loading.show(); + event.stopPropagation(); + + var that=$(this).closest("li"); + if($(".tab .active").attr("data-index")==1){ + getQuestion(that); + }else{ + getQuestion(that); + } + + }); $(".book_box").children("ul").on("mouseover","li",function(event){ //教材版本交互 event.stopPropagation(); - $(this).siblings().css("background","#fff"); - $(this).css("background","#e9f0ff"); + //$(this).siblings("li").css("background","#fff"); + //$(this).css("background","#e9f0ff"); //$(".float_box").css("display","none"); $(this).children(".float_box").css("display","block"); }); $(".book_box").children("ul").on("mouseleave","li",function(event){ //教材版本交互 event.stopPropagation(); - $(this).css("background","#fff"); - //$(this).children(".float_box").css("display","none"); + //$(this).css("background","#fff"); + $(this).children(".float_box").css("display","none"); }); $(".float_box").on("mouseleave",function(event){ //教材版本交互 event.stopPropagation(); $(this).css("display","none"); }); + $(document).on("click",".float_box li",function(event){ //教材版本交互 + //alert($(this).index()); + event.stopPropagation(); + var id=$(this).attr("data-id"); + $("#book_name").text($(this).closest(".li_name").children(".name").text()+"/"+$(this).text()); + $(".float_box").css("display","none"); + $(".book_box").slideToggle(); + getChapter(id); + }); $(".book").click(function(){ //教材版本下拉框交互 $(".book_box").slideToggle(); }) $(document).on("click",".check_box",function(){ //选中题目 + if($(this).hasClass("checked")){ + var id=$(this).closest("li").attr("data-id"); + var que_index=question_box.indexOf(id); $(this).removeClass("checked"); + question_box.splice(que_index,1); + question_num--; }else{ + question_box[question_num]=$(this).closest("li").attr("data-id"); + question_num++; $(this).addClass("checked"); } - $("#all_que_num").html($(".checked").length); + $("#all_que_num").html(question_num); }); $(".clear_que").click(function(){ //清空 + question_num=0; + question_box=[]; $(".checked").removeClass("checked"); - $("#all_que_num").html($(".checked").length); + $("#all_que_num").html(question_num); }); $(".tab li").click(function(){ //教材与知识点选择 $(this).siblings().removeClass("active"); $(this).addClass("active"); if($(this).index()==0){ + getTeachingMaterial(); $(".choose_book").css("display","block"); - getChapter(); + getChapter(TEXTBOOK_ID); }else{ $(".choose_book").css("display","none"); getPoint(); @@ -461,11 +526,11 @@ }); $("#submit").click(function(){ var question_arry=[]; - for(var i=0;i<$(".checked").length;i++){ + for(var i=0;i + + - + -
        - -
        -

        选择班级

        -
        -
          -
        • 一年级1501班
        • -
        • 一年级1502班
        • -
        • 一年级1503班
        • -
        • 一年级1504班
        • -
        • 一年级1505班
        • -
        + +
        +
        +
        +

        + 即时测试卷管理 +

        +
        +
        + + + + +
        +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + +
        序号试卷名称班级科目考试时长创建时间查看操作
        +
        +
        -
        -
        -
        -
        按条件筛选
        -
        -
          -
        • -
          -
          - -
          -
          -
        • -
        • -
          -
          - -
          -
          -
        • -
        • - -
        • -
        +
        + + + + + + + + + + + +
        + + +
        -
        -
        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        序号创建时间班级科目完成情况试卷名称考试时长状态查看
        12018/7/31一年级1502班小学数学0/2数一数2018/08/05 08:00已截止查看
        22018/6/21一年级1502班小学数学0/21.1 认识平面图形2018/06/24 08:00已截止查看
        -
        -
        + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp index 5a509e9..fe1579f 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp @@ -104,7 +104,7 @@

        云测验测验分析

        @@ -177,6 +177,13 @@ window.top.loading.show(); //} } + function report2(classId){ + //window.open('<%=basePath%>report/report.do?classid=' + classId); + //if($("#mainFrame").attr('src') != ('<%=basePath%>report/report.do?classid=' + classId)){ + $("#mainFrame").attr('src','<%=basePath%>teacher/test_list.do?classid=' + classId); + window.top.loading.show(); + //} + } $("#time_submit").click(function(){ var name = $("#enter_title").val(); @@ -205,7 +212,7 @@ var path = "../teacher/teach_paper.do?" ; //if($("#mainFrame").attr('src') != (path)){ $("#mainFrame").attr('src',path); - //window.top.loading.show(); + window.top.loading.show(); //} }); diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/test_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/test_list.jsp new file mode 100644 index 0000000..f8fc699 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/test_list.jsp @@ -0,0 +1,270 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 即时测 + + + + + + + + +
        +
        +
        +

        + 云测验测验分析 +

        +
        +
        + + + +
        +
        +
        +
        + + + + + + + + + + + + + + + +
        序号创建时间班级试卷名称查看
        +
        +
        +
        +
        + + + + + + + + + +
        + + + +
        + + + + + + + \ No newline at end of file diff --git a/WebRoot/static/css/paper.css b/WebRoot/static/css/paper.css index 4b6a1f7..064fabb 100644 --- a/WebRoot/static/css/paper.css +++ b/WebRoot/static/css/paper.css @@ -1,5 +1,7 @@ li{list-style:none;} -.choose_class{border-bottom:1px solid #eee;padding:2% 0 5% 0;} -.choose_class li{width:20%;margin:0 2.5%;margin-top:2%;float:left;border:1px solid #3c7ae3;text-align:center;border-radius:3px;line-height:50px;font-size:16px;} -.choose_class li.active{color:#fff;background:#3c7ae3;} -.screen{border-bottom:1px dashed #eee;padding:3% 0;} \ No newline at end of file +.classList{padding:2% 0 5% 0;} +.classList li{width:20%;margin:0 2.5%;margin-top:2%;float:left;border:1px solid #3c7ae3;text-align:center;border-radius:3px;line-height:50px;font-size:16px;} +.classList li.active{color:#fff;background:#3c7ae3;} +.screen{border-bottom:1px dashed #eee;padding:3% 0;} +.head_box_r{width:70%;text-align:right;} +.form-control{height:26px;padding:2px 12px;width:185px;display: inline-block;border-radius: 0px;} \ No newline at end of file diff --git a/WebRoot/static/css/paper_view.css b/WebRoot/static/css/paper_view.css index d1f280c..4db7b1d 100644 --- a/WebRoot/static/css/paper_view.css +++ b/WebRoot/static/css/paper_view.css @@ -20,4 +20,6 @@ .tab_report_box .round_n_orange span{color:#fff;line-height:70px;text-align:center;display:inline-block;width:100%;} .tab_report_box .round_w_red{width:100px;height:100px;background:#ffd0c6;position:relative;overflow:hidden;border-radius:50px;margin:0 auto;} .tab_report_box .round_n_red{width:70px;height:70px;background:#ff8a71;position:absolute;top:15px;left:15px;overflow:hidden;border-radius:35px;} -.tab_report_box .round_n_red span{color:#fff;line-height:70px;text-align:center;display:inline-block;width:100%;} \ No newline at end of file +.tab_report_box .round_n_red span{color:#fff;line-height:70px;text-align:center;display:inline-block;width:100%;} +.analysis .question_li{position:relative;padding-top:15px;} +.chou{width:24px;height:24px;text-align:center;line-height:24px;border-radius:12px;border:1px solid #f00;color:#f00;position:absolute;top:15px;right:0;opacity:0.5} \ No newline at end of file diff --git a/WebRoot/static/css/set_quetion.css b/WebRoot/static/css/set_quetion.css index 3872583..43ce120 100644 --- a/WebRoot/static/css/set_quetion.css +++ b/WebRoot/static/css/set_quetion.css @@ -10,23 +10,27 @@ li{list-style:none;} .left_menu .tab .active{border-bottom: 2px solid #3c7ae3;} .left_menu .tab .active p{color:#3c7ae3;} .left_menu .tab li:first-child{border-right:1px solid #ccc;} +.left_menu .choose_book{display:none;} .left_menu .choose_book .book{background:#e9f0ff;padding:0 6px;} .left_menu .choose_book .book p{float:left;line-height:34px;margin-bottom:0;} .left_menu .choose_book .book img{float:right;width:20px;height:20px;margin-top:4.5px;} .left_menu .choose_book .book_box{display:none;} .left_menu .choose_book .book_box ul{padding:0;margin:0;} -.left_menu .choose_book .book_box ul li{border-bottom:1px solid #ccc;position:relative;} +.left_menu .choose_book .book_box ul li{border-bottom:1px solid #ccc;position:relative;cursor:pointer} +.left_menu .choose_book .book_box ul li:hover{background:#e9f0ff;} + .left_menu .choose_book .book_box p{float:left;line-height:34px;margin-bottom:0;font-size:14px;} .left_menu .choose_book .book_box img{float:right;width:20px;height:20px;margin-top:4.5px;} .left_menu .choose_book .gary{width:100%;height:15px;background:#eee;} .left_menu .section{padding:20px 0;} .left_menu .section ul{padding:0;margin:0;} -.left_menu .section ul li{padding:10px 0;border-bottom:1px solid #ccc;} +.left_menu .section ul li{padding:10px 0;border-bottom:1px solid #ccc;cursor:pointer} .left_menu .section ul li img{width:20px;height:20px;margin-right:10px;} .left_menu .section ul li ul{padding-left:25px;display:none;} .left_menu .section ul li ul li{border:0;} .float_box{position:absolute;top:0;background:#e9f0ff;left:100%;width:400px;height:200px;display:none;z-index:99;} -.float_box li{width:27%;margin:0 2.5%;margin-top:10px;padding:5px 0px;text-align:center;border-radius:3px;border:1px solid #ccc;overflow:hidden;float:left;} +.float_box li{width:27%;margin:0 2.5%;margin-top:10px;padding:5px 0px;text-align:center;border-radius:3px;border:1px solid #ccc;overflow:hidden;float:left;cursor:pointer} +.left_menu .choose_book .book_box ul li .float_box li:hover{background:#fff;} .screen{width:100%;height:150px;background:#fff;box-shadow: 0 0 10px #ccc;margin-top:10px;padding:10px;} .tag dt,dd{display:inline-block;} diff --git a/WebRoot/static/images/down_ico.png b/WebRoot/static/images/down_ico.png new file mode 100644 index 0000000..6090495 --- /dev/null +++ b/WebRoot/static/images/down_ico.png diff --git a/WebRoot/static/images/up_ico.png b/WebRoot/static/images/up_ico.png new file mode 100644 index 0000000..b9e8e10 --- /dev/null +++ b/WebRoot/static/images/up_ico.png diff --git a/resources/mybatis1/api/V1Mapper.xml b/resources/mybatis1/api/V1Mapper.xml index 721c31c..854c3a8 100644 --- a/resources/mybatis1/api/V1Mapper.xml +++ b/resources/mybatis1/api/V1Mapper.xml @@ -95,6 +95,7 @@ sv_question.ANSWER, sv_question.OPTION_CONTENT, sv_question.PROBLEM_TYPE_ID, + sv_question.KNOWLEDGE_ID, sv_question.P_ID FROM sv_paperquestion @@ -161,6 +162,24 @@ + + + diff --git a/resources/mybatis1/sunvote/PaperMapper.xml b/resources/mybatis1/sunvote/PaperMapper.xml index a14a8a8..f8073a1 100644 --- a/resources/mybatis1/sunvote/PaperMapper.xml +++ b/resources/mybatis1/sunvote/PaperMapper.xml @@ -173,8 +173,54 @@ and CLASS_ID = #{pd.CLASS_ID} + + and (CREATE_DATE > #{pd.START_DATE}) + + + and (CREATE_DATE < #{pd.END_DATE}) + + order by CREATE_DATE DESC + + diff --git a/resources/mybatis1/sunvote/TeachingMaterialMapper.xml b/resources/mybatis1/sunvote/TeachingMaterialMapper.xml index 5ac21c0..577a16d 100644 --- a/resources/mybatis1/sunvote/TeachingMaterialMapper.xml +++ b/resources/mybatis1/sunvote/TeachingMaterialMapper.xml @@ -1,31 +1,30 @@ - + - SV_TEXTBOOK + SV_TEACHINGMATERIAL - ID, - NAME, - SUBJECT_ID, - GRADEID, - REMARK, - TEACHING_MATERIAL_ID + NAME, + SUBJECT_ID, + GRADE_ID, + VERSION_CODE, + VERSION_NAME, + ID - #{ID}, #{NAME}, #{SUBJECT_ID}, #{GRADE_ID}, + #{VERSION_CODE}, #{VERSION_NAME}, - #{REMARK}, - #{TEACHING_MATERIAL_ID} + #{ID} @@ -56,9 +55,9 @@ NAME = #{NAME}, SUBJECT_ID = #{SUBJECT_ID}, GRADE_ID = #{GRADE_ID}, - REMARK = #{REMARK}, - TEACHING_MATERIAL_ID = #{TEACHING_MATERIAL_ID}, - ID = #{ID} + VERSION_CODE = #{VERSION_CODE}, + VERSION_NAME = #{VERSION_NAME}, + ID = #{ID} where ID = #{ID} @@ -98,6 +97,8 @@ from + + @@ -111,5 +112,4 @@ - \ No newline at end of file diff --git a/resources/mybatis1/sunvote/TestPaperInfoMapper.xml b/resources/mybatis1/sunvote/TestPaperInfoMapper.xml index d35229c..12b2da8 100644 --- a/resources/mybatis1/sunvote/TestPaperInfoMapper.xml +++ b/resources/mybatis1/sunvote/TestPaperInfoMapper.xml @@ -24,6 +24,7 @@ NOTE, MARK_NO, RANK, + RANDOM, TESTPAPERINFO_ID @@ -44,6 +45,7 @@ #{NOTE}, #{MARK_NO}, #{RANK}, + #{RANDOM}, #{TESTPAPERINFO_ID} @@ -83,6 +85,7 @@ #{item.NOTE}, #{item.MARK_NO}, #{item.RANK}, + #{item.RANDOM}, #{item.TESTPAPERINFO_ID} ) @@ -197,7 +200,7 @@ diff --git a/resources/mybatis1/sunvote/TestPaperMapper.xml b/resources/mybatis1/sunvote/TestPaperMapper.xml index e10036c..721ea29 100644 --- a/resources/mybatis1/sunvote/TestPaperMapper.xml +++ b/resources/mybatis1/sunvote/TestPaperMapper.xml @@ -22,6 +22,7 @@ AVG_SCORE, TOTAL_SCORE, REMARK, + TEST_TYPE, TESTPAPER_ID @@ -40,6 +41,7 @@ #{AVG_SCORE}, #{TOTAL_SCORE}, #{REMARK}, + #{TEST_TYPE}, #{TESTPAPER_ID} @@ -80,6 +82,7 @@ AVG_SCORE = #{AVG_SCORE}, TOTAL_SCORE = #{TOTAL_SCORE}, REMARK = #{REMARK}, + TEST_TYPE = #{TEST_TYPE}, TESTPAPER_ID = TESTPAPER_ID where TESTPAPER_ID = #{TESTPAPER_ID} @@ -140,6 +143,12 @@ and (NAME = #{NAME}) + + and (TEST_TYPE = #{TEST_TYPE} or TEST_TYPE IS NULL) + + + and (TEST_TYPE = #{TEST_TYPE}) + and (CREATE_DATE > #{START_DATE}) diff --git a/resources/mybatis1/sunvote/TextbookMapper.xml b/resources/mybatis1/sunvote/TextbookMapper.xml index 3686226..1e46f9c 100644 --- a/resources/mybatis1/sunvote/TextbookMapper.xml +++ b/resources/mybatis1/sunvote/TextbookMapper.xml @@ -1,30 +1,31 @@ - + - SV_TEACHINGMATERIAL + SV_TEXTBOOK - NAME, - SUBJECT_ID, - GRADE_ID, - VERSION_CODE, - VERSION_NAME, - ID + ID, + NAME, + SUBJECT_ID, + GRADEID, + REMARK, + TEACHING_MATERIAL_ID + #{ID}, #{NAME}, #{SUBJECT_ID}, #{GRADE_ID}, - #{VERSION_CODE}, #{VERSION_NAME}, - #{ID} + #{REMARK}, + #{TEACHING_MATERIAL_ID} @@ -55,9 +56,9 @@ NAME = #{NAME}, SUBJECT_ID = #{SUBJECT_ID}, GRADE_ID = #{GRADE_ID}, - VERSION_CODE = #{VERSION_CODE}, - VERSION_NAME = #{VERSION_NAME}, - ID = #{ID} + REMARK = #{REMARK}, + TEACHING_MATERIAL_ID = #{TEACHING_MATERIAL_ID}, + ID = #{ID} where ID = #{ID} @@ -98,6 +99,7 @@ from + where 1 = 1 diff --git a/src/com/fh/bean/Paper.java b/src/com/fh/bean/Paper.java index 42056fa..f3b12a1 100644 --- a/src/com/fh/bean/Paper.java +++ b/src/com/fh/bean/Paper.java @@ -17,6 +17,8 @@ public class Paper { private String grade_id = ""; private String user_id = ""; + + private String class_id = "" ; private List questions = new ArrayList(); @@ -89,6 +91,16 @@ public class Paper { this.score = score; } + + + public String getClass_id() { + return class_id; + } + + public void setClass_id(String class_id) { + this.class_id = class_id; + } + public static Paper parse(String json){ Gson gson = new Gson(); return gson.fromJson(json, Paper.class); diff --git a/src/com/fh/bean/TestPaper.java b/src/com/fh/bean/TestPaper.java index bcde8fe..cc5ea6e 100644 --- a/src/com/fh/bean/TestPaper.java +++ b/src/com/fh/bean/TestPaper.java @@ -47,6 +47,8 @@ public class TestPaper { // 备注 private String remark ; + private String test_type ; + private List students = new ArrayList(); public String getTestpaperId() { @@ -155,6 +157,14 @@ public class TestPaper { this.remark = remark; } + public String getTest_type() { + return test_type; + } + + + public void setTest_type(String test_type) { + this.test_type = test_type; + } public List getStudents() { return students; diff --git a/src/com/fh/bean/TestPaperInfo.java b/src/com/fh/bean/TestPaperInfo.java index 5fd4794..8a0cdbc 100644 --- a/src/com/fh/bean/TestPaperInfo.java +++ b/src/com/fh/bean/TestPaperInfo.java @@ -44,6 +44,12 @@ public class TestPaperInfo { // 排序 private String rank ; + // 是否随机 + private String random; + + // 试卷ID + private String paperId ; + public String getTestPaperInfoId() { return testPaperInfoId; @@ -148,6 +154,24 @@ public class TestPaperInfo { public void setRank(String rank) { this.rank = rank; } + + + + public String getRandom() { + return random; + } + + public void setRandom(String random) { + this.random = random; + } + + public String getPaperId() { + return paperId; + } + + public void setPaperId(String paperId) { + this.paperId = paperId; + } public static TestPaperInfo parse(String json){ Gson gson = new Gson(); diff --git a/src/com/fh/controller/api/V1.java b/src/com/fh/controller/api/V1.java index f407f36..8bd56ed 100644 --- a/src/com/fh/controller/api/V1.java +++ b/src/com/fh/controller/api/V1.java @@ -1,11 +1,13 @@ package com.fh.controller.api; +import java.io.File; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Set; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -14,7 +16,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.shiro.crypto.hash.SimpleHash; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import com.fh.bean.Paper; import com.fh.bean.Point; @@ -24,7 +28,6 @@ import com.fh.bean.TestPaper; import com.fh.bean.TestPaperInfo; import com.fh.controller.base.BaseController; import com.fh.controller.sunvote.Myelfun; -import com.fh.entity.Page; import com.fh.service.api.V1Manager; import com.fh.service.feedback.feedback.FeedbackManager; import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager; @@ -431,7 +434,7 @@ public class V1 extends BaseController { @RequestMapping(value = "/subjectname", produces = "application/json;charset=UTF-8") @ResponseBody public Object subjectName() throws Exception { - event("subject"); + event("subjectName"); long cur = System.currentTimeMillis(); PageData pd = this.getPageData(); ResponseGson> res = new ResponseGson(); @@ -487,30 +490,18 @@ public class V1 extends BaseController { PageData pd = this.getPageData(); ResponseGson> res = new ResponseGson>(); if (pd.containsKey("PAPER_TYPE") && pd.containsKey("USER_ID")) { - Page page = new Page(); - page.getPd().put("PAPER_TYPE", pd.get("PAPER_TYPE")); - page.getPd().put("USER_ID", pd.get("USER_ID")); - page.getPd().put("SUBJECT_ID", pd.get("SUBJECT_ID")); - if (pd.containsKey("CURRENTPAGE")) { - String curpage = pd.getString("CURRENTPAGE"); - try { - page.setCurrentPage(Integer.parseInt(curpage)); - } catch (Exception ex) { - } + String CURRENTPAGE = pd.getString("CURRENTPAGE"); + String SHOWCOUNT = pd.getString("SHOWCOUNT"); + if(CURRENTPAGE != null && SHOWCOUNT != null && !"".equals(CURRENTPAGE.trim()) && !"".equals(SHOWCOUNT.trim())){ + int currentPage = Integer.parseInt(CURRENTPAGE); + int showcount = Integer.parseInt(SHOWCOUNT); + currentPage = (currentPage > 0 ? currentPage -1 : 0) * showcount; + pd.put("CURRENTPAGE", currentPage); } - if (pd.containsKey("SHOWCOUNT")) { - String showCount = pd.getString("SHOWCOUNT"); - try { - page.setShowCount(Integer.parseInt(showCount)); - } catch (Exception ex) { - } - } else { - page.setShowCount(100); - } - List pageList = paperService.listAllByType(page); + List pageList = paperService.listAllByType(pd); res.setData(pageList); } else { - res.setParmError(); + res.setDataError(); } logger.info("paper cost time : " + (System.currentTimeMillis() - cur)); return res.toJson(); @@ -527,6 +518,119 @@ public class V1 extends BaseController { event("paperInfo"); long cur = System.currentTimeMillis(); PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + if (pd.containsKey("PAPER_ID")) { + try { + try { + Paper paper = new Paper(); + PageData ppd = paperService.findById(pd); + if (ppd != null) { + paper.setTitle(ppd.getString("TITLE")); + paper.setExam_time(ppd.getString("EXAM_TIME")); + paper.setUser_id(ppd.getString("USER_ID")); + paper.setPaper_type(ppd.getString("PAPER_TYPE")); + paper.setSubject_id(ppd.getString("SUBJECT_ID")); + paper.setGrade_id(ppd.getString("GRADE_ID")); + paper.setScore(ppd.getString("SCORE")); + paper.setQuestions(new ArrayList()); + + List questList = v1Service + .getTestPaperInfo(pd); + for (PageData qpd : questList) { + Question question = new Question(); + question.setAnswer(qpd.getString("ANSWER")); + question.setQuestion_id(qpd + .getString("QUESTION_ID")); + question.setSubject_id(qpd.getString("SUBJECT_ID")); + question.setChapter_id(qpd.getString("CHAPTER_ID")); + question.setProblem_type_id(qpd + .getString("PROBLEM_TYPE_ID")); + question.setKnowledge_id(qpd + .getString("KNOWLEDGE_ID")); + question.setContent(qpd.getString("CONTENT")); + question.setOption_num(qpd.getString("OPTION_NUM")); + question.setOption_content(qpd + .getString("OPTION_CONTENT")); + question.setDifficulty(qpd.getString("DIFFICULTY")); + question.setAnalysis(qpd.getString("ANALYSIS")); + question.setQuestion_from(qpd + .getString("QUESTION_FROM")); + question.setScore(qpd.getString("SCORE")); + question.setPart_score(qpd.getString("PART_SCORE")); + question.setQuestionType(qpd + .getString("PROBLEM_TYPE_ID")); + question.setRank(qpd.getString("RANK")); + question.setNo_name(qpd.getString("NO_NAME")); + if ("-1".equals("" + qpd.getString("P_ID"))) { + PageData pidPd = new PageData(); + pidPd.put("PID", question.getQuestion_id()); + question.setQuestions(new ArrayList()); + List qs = v1Service + .getQuestionsByPID(pidPd); + for (PageData q : qs) { + Question qq = new Question(); + qq.setAnswer(q.getString("ANSWER")); + qq.setQuestion_id(q + .getString("QUESTION_ID")); + qq.setSubject_id(q.getString("SUBJECT_ID")); + qq.setChapter_id(q.getString("CHAPTER_ID")); + qq.setProblem_type_id(q + .getString("PROBLEM_TYPE_ID")); + qq.setKnowledge_id(q + .getString("KNOWLEDGE_ID")); + qq.setContent(q.getString("CONTENT")); + qq.setOption_num(q.getString("OPTION_NUM")); + qq.setOption_content(q + .getString("OPTION_CONTENT")); + qq.setDifficulty(q.getString("DIFFICULTY")); + qq.setAnalysis(q.getString("ANALYSIS")); + qq.setQuestion_from(q + .getString("QUESTION_FROM")); + qq.setScore(q.getString("SCORE")); + qq.setPart_score(q.getString("PART_SCORE")); + qq.setQuestionType(qpd + .getString("PROBLEM_TYPE_ID")); + qq.setRank(q.getString("RANK")); + qq.setNo_name(q.getString("NO_NAME")); + question.getQuestions().add(qq); + } + } + if ("-1".equals(qpd.getString("P_ID")) + || "0".equals(qpd.getString("P_ID"))) { + paper.getQuestions().add(question); + } + } + // pd.put("JSON", paper.toJson()); + res.setData(paper); + logger.info(paper.toJson()); + + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } catch (Exception ex) { + ex.printStackTrace(); + res.setError(); + } + } else { + res.setOtherError(); + } + logger.info("paperInfo cost time : " + + (System.currentTimeMillis() - cur)); + return res.toJson(); + } + +/* *//** + * 试卷详细信息 + * @return + * @throws Exception + *//* + @RequestMapping(value = "/paperinfo", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object paperInfo() throws Exception { + event("paperInfo"); + long cur = System.currentTimeMillis(); + PageData pd = this.getPageData(); ResponseGson res = new ResponseGson(); if (pd.containsKey("PAPER_ID")) { try { @@ -537,7 +641,7 @@ public class V1 extends BaseController { .getTestPaperInfo(pd); ppd.put("QUESTIONS", questList); for (PageData qpd : questList) { - + String optionContent = qpd .getString("OPTION_CONTENT"); if (optionContent != null @@ -565,7 +669,7 @@ public class V1 extends BaseController { .substring( 1, optionContent1.length() - 1) - .split(","); + .split(","); pcd.put("OPTION_CONTENT", options); } else { pcd.put("OPTION_CONTENT", @@ -588,7 +692,7 @@ public class V1 extends BaseController { qpd.put(key.toLowerCase(), qpd.get(key)); qpd.remove(key.toUpperCase()); } - + } String[] keys = new String[ppd.keySet().size()]; ppd.keySet().toArray(keys); @@ -599,7 +703,88 @@ public class V1 extends BaseController { // pd.put("JSON", paper.toJson()); res.setData(ppd); logger.info(res.toJson()); - + + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } catch (Exception ex) { + ex.printStackTrace(); + res.setError(); + } + } else { + res.setOtherError(); + } + logger.info("paperInfo cost time : " + + (System.currentTimeMillis() - cur)); + return res.toJson(); + } + +*/ /** + * 试卷详细信息 + * @return + * @throws Exception + */ + @RequestMapping(value = "/paperinfo2", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object paperInfo2() throws Exception { + event("paperInfo2"); + long cur = System.currentTimeMillis(); + PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + if (pd.containsKey("PAPER_ID")) { + try { + try { + PageData ppd = paperService.findById(pd); + if (ppd != null) { + List questList = v1Service + .getTestPaperInfo(pd); + ppd.put("QUESTIONS", questList); + for (PageData qpd : questList) { + + String optionContent = qpd + .getString("OPTION_CONTENT"); + if (optionContent != null + && optionContent.startsWith("[") + && optionContent.endsWith("]")) { + String[] options = optionContent.substring(1, + optionContent.length() - 1).split(","); + qpd.put("OPTION_CONTENT", options); + } else { + qpd.put("OPTION_CONTENT", + new String[] { optionContent }); + } + if ("-1".equals("" + qpd.getString("P_ID"))) { + PageData pidPd = new PageData(); + pidPd.put("PID", qpd.getString("QUESTION_ID")); + List qs = v1Service + .getQuestionsByPID(pidPd); + for (PageData pcd : qs) { + String optionContent1 = pcd + .getString("OPTION_CONTENT"); + if (optionContent1 != null + && optionContent1.startsWith("[") + && optionContent1.endsWith("]")) { + String[] options = optionContent1 + .substring( + 1, + optionContent1.length() - 1) + .split(","); + pcd.put("OPTION_CONTENT", options); + } else { + pcd.put("OPTION_CONTENT", + new String[] { optionContent1 }); + } + } + qpd.put("QUESTIONS", qs); + } + + + + } + res.setData(ppd); + logger.info(res.toJson()); + } } catch (Exception ex) { ex.printStackTrace(); @@ -638,15 +823,6 @@ public class V1 extends BaseController { testInfof.put("PAPER_ID", testPd.getString("PAPER_ID")); testInfof.put("TEST_ID", paperId); List list = testpaperinfoService.listTestPaperQuestionIDs(testInfof); - for(PageData pad:list){ - String optionContent = pad.getString("OPTION_CONTENT"); - if(optionContent != null && optionContent.startsWith("[") && optionContent.endsWith("]")){ - String[] options = optionContent.substring(1, optionContent.length() -1).split(","); - pad.put("OPTION_CONTENT", options); - }else{ - pad.put("OPTION_CONTENT", new String[]{optionContent}); - } - } for(PageData pqd : list){ PageData tpqd = questionService.findById(pqd); pqd.putAll(tpqd); @@ -665,6 +841,7 @@ public class V1 extends BaseController { pqd.put("TEST_ID", paperId); List listinfo = testpaperinfoService.listTestPaperQuestionIDinfo(pqd); List answerInfos = new ArrayList(); + List answerList = new ArrayList(); for(PageData pid : listinfo){ String answer = pid.getString("ANSWER"); PageData answerPd = null; @@ -675,12 +852,14 @@ public class V1 extends BaseController { answerPd.put("ANSWER", answer); answerPd.put("ISRIGHT", pid.getString("RIGHT")); answerInfos.add(answerPd); + answerList.add(answer); } }else{ answerPd = new PageData(); answerPd.put("ANSWER", answer); answerPd.put("ISRIGHT", pid.getString("RIGHT")); answerInfos.add(answerPd); + answerList.add(answer); } String strCount = answerPd.getString("COUNT"); int count = 0 ; @@ -692,9 +871,37 @@ public class V1 extends BaseController { count ++ ; answerPd.put("COUNT", count); } + String questionNumStr = pqd.getString("OPTION_NUM"); + int questionNum = Integer.parseInt(questionNumStr); + for(int i = 0 ; i < questionNum ;i++){ + if((!answerList.contains("" + (char)('A' + i))) && !(answerList.contains("" + (char)('a' + i)))){ + PageData answerPd = new PageData(); + answerPd.put("ANSWER", "" + (char)('A' + i)); + answerPd.put("ISRIGHT", pqd.get("ANSWER").equals(('A' + i)) ? "1" : "0"); + answerPd.put("COUNT", 0); + answerInfos.add(answerPd); + } + } + Collections.sort(answerInfos, new Comparator(){ + + @Override + public int compare(PageData p1, PageData p2) { + return p1.getString("ANSWER").compareToIgnoreCase(p2.getString("ANSWER")); + } + + }); pqd.put("ANSWERINFO", answerInfos); pqd.remove("TEST_ID"); } + for(PageData pad:list){ + String optionContent = pad.getString("OPTION_CONTENT"); + if(optionContent != null && optionContent.startsWith("[") && optionContent.endsWith("]")){ + String[] options = optionContent.substring(1, optionContent.length() -1).split(","); + pad.put("OPTION_CONTENT", options); + }else{ + pad.put("OPTION_CONTENT", new String[]{optionContent}); + } + } testPd.put("QUESTIONS", list); } @@ -718,7 +925,7 @@ public class V1 extends BaseController { @RequestMapping(value = "/questionintestreportinfo", produces = "application/json;charset=UTF-8") @ResponseBody public Object questionInTestReportInfo() throws Exception { - event("testpaperinfo"); + event("questionInTestReportInfo"); long cur = System.currentTimeMillis(); PageData pd = this.getPageData(); ResponseGson res = new ResponseGson(); @@ -727,66 +934,72 @@ public class V1 extends BaseController { PageData pqd = new PageData(); pqd.put("QUESTION_ID", questionId); PageData tpqd = questionService.findById(pqd); - pqd.putAll(tpqd); - pqd.remove("P_ID"); - pqd.remove("SUBJECT_ID"); - pqd.remove("PROBLEM_TYPE_ID"); - pqd.remove("CHAPTER_ID"); - pqd.remove("TEACHER_ID"); - pqd.remove("SCHOOL_ID"); - pqd.remove("SUG_SCORE"); - pqd.remove("SUG_PART_SCORE"); - pqd.remove("USER_ID"); - pqd.remove("CREATE_DATE"); - pqd.remove("QUESTION_FROM"); - pqd.remove("REMARK"); - String optionContent = pqd.getString("OPTION_CONTENT"); - if(optionContent != null && optionContent.startsWith("[") && optionContent.endsWith("]")){ - String[] options = optionContent.substring(1, optionContent.length() -1).split(","); - pqd.put("OPTION_CONTENT", options); - }else{ - pqd.put("OPTION_CONTENT", new String[]{optionContent}); - } - if(pd.getString("TEST_ID") != null){ - pqd.put("TEST_ID", pd.getString("TEST_ID")); - } - List listinfo = testpaperinfoService - .listTestPaperQuestionIDinfo(pqd); - List answerInfos = new ArrayList(); - for (PageData pid : listinfo) { - String answer = pid.getString("ANSWER"); - PageData answerPd = null; - if (answerInfos.size() > 0) { - answerPd = answerInfos.get(answerInfos.size() - 1); - if (!answer.equals(answerPd.getString("ANSWER"))) { + if (tpqd != null) { + pqd.putAll(tpqd); + pqd.remove("P_ID"); + pqd.remove("SUBJECT_ID"); + pqd.remove("PROBLEM_TYPE_ID"); + pqd.remove("CHAPTER_ID"); + pqd.remove("TEACHER_ID"); + pqd.remove("SCHOOL_ID"); + pqd.remove("SUG_SCORE"); + pqd.remove("SUG_PART_SCORE"); + pqd.remove("USER_ID"); + pqd.remove("CREATE_DATE"); + pqd.remove("QUESTION_FROM"); + pqd.remove("REMARK"); + String optionContent = pqd.getString("OPTION_CONTENT"); + if (optionContent != null && optionContent.startsWith("[") + && optionContent.endsWith("]")) { + String[] options = optionContent.substring(1, + optionContent.length() - 1).split(","); + pqd.put("OPTION_CONTENT", options); + } else { + pqd.put("OPTION_CONTENT", new String[] { optionContent }); + } + if (pd.getString("TEST_ID") != null) { + pqd.put("TEST_ID", pd.getString("TEST_ID")); + } + List listinfo = testpaperinfoService + .listTestPaperQuestionIDinfo(pqd); + List answerInfos = new ArrayList(); + for (PageData pid : listinfo) { + String answer = pid.getString("ANSWER"); + PageData answerPd = null; + if (answerInfos.size() > 0) { + answerPd = answerInfos.get(answerInfos.size() - 1); + if (!answer.equals(answerPd.getString("ANSWER"))) { + answerPd = new PageData(); + answerPd.put("ANSWER", answer); + answerPd.put("ISRIGHT", pid.getString("RIGHT")); + answerInfos.add(answerPd); + } + } else { answerPd = new PageData(); answerPd.put("ANSWER", answer); answerPd.put("ISRIGHT", pid.getString("RIGHT")); answerInfos.add(answerPd); } - } else { - answerPd = new PageData(); - answerPd.put("ANSWER", answer); - answerPd.put("ISRIGHT", pid.getString("RIGHT")); - answerInfos.add(answerPd); - } - String strCount = answerPd.getString("COUNT"); - int count = 0; - if (strCount != null) { - try { - count = Integer.parseInt(strCount); - } catch (NumberFormatException ex) { + String strCount = answerPd.getString("COUNT"); + int count = 0; + if (strCount != null) { + try { + count = Integer.parseInt(strCount); + } catch (NumberFormatException ex) { + } } + count++; + answerPd.put("COUNT", count); } - count++; - answerPd.put("COUNT", count); + pqd.put("ANSWERINFO", answerInfos); + res.setData(pqd); + }else{ + res.setDataError(); } - pqd.put("ANSWERINFO", answerInfos); - res.setData(pqd); }else{ res.setDataError(); } - logger.info("testpaperinfo cost time:" + logger.info("questionInTestReportInfo cost time:" + (System.currentTimeMillis() - cur)); return res.toJson(); } @@ -857,7 +1070,7 @@ public class V1 extends BaseController { } else { res.setOtherError(); } - logger.info("paperInfo cost time : " + logger.info("paperBriefInfo cost time : " + (System.currentTimeMillis() - cur)); return res.toBrifJson(); } @@ -927,6 +1140,7 @@ public class V1 extends BaseController { @RequestMapping(value = "/knowledgename", produces = "application/json;charset=UTF-8") @ResponseBody public Object knowledgename() throws Exception { + event("knowledgename"); ResponseGson> res = new ResponseGson(); List list = new ArrayList(); PageData pd = getPageData(); @@ -957,6 +1171,7 @@ public class V1 extends BaseController { @RequestMapping(value = "/chaptername", produces = "application/json;charset=UTF-8") @ResponseBody public Object chaptername() throws Exception { + event("chaptername"); ResponseGson> res = new ResponseGson(); List list = new ArrayList(); PageData pd = getPageData(); @@ -1161,6 +1376,7 @@ public class V1 extends BaseController { paperPd.put("SUBJECT_ID", paper.getSubject_id()); paperPd.put("GRADE_ID", paper.getGrade_id()); paperPd.put("EXAM_TIME", paper.getExam_time()); + paperPd.put("CLASS_ID", paper.getClass_id()); paperPd.put("SCORE", paper.getScore()); paperPd.put("PAPER_STATE", "0"); paperPd.put("REMARK", ""); @@ -1168,8 +1384,8 @@ public class V1 extends BaseController { paperPd.put("SCHOOL_ID", schoolID); paperPd.put("CREATE_DATE", Tools.date2Str(new Date())); paperPd.put("MODIFY_DATE", Tools.date2Str(new Date())); - int questionNum = 0; List questions = paper.getQuestions(); + int questionNum = questions.size(); if (questions != null) { for (Question question : questions) { PageData pqPd = new PageData(); @@ -1191,7 +1407,7 @@ public class V1 extends BaseController { } else { res.setDataError(); } - logger.info("uploadpaper cost time : " + logger.info("publishpaper cost time : " + (System.currentTimeMillis() - cur)); return res.toJson(); } @@ -1255,6 +1471,7 @@ public class V1 extends BaseController { testPaper.getCreateDate() == null ? Tools .date2Str(new Date()) : testPaper .getCreateDate()); + testPd.put("TEST_TYPE", testPaper.getTest_type() != null ? testPaper.getTest_type() :"101"); List listData = testpaperService.listAll(testPd); if (!(listData != null && listData.size() > 0)) { testPd.put("START_DATE", testPaper.getStartDate()); @@ -1341,7 +1558,7 @@ public class V1 extends BaseController { } else { res.setDataError(); } - logger.info("uploadtestpaper cost time:" + logger.info("uploadTestpaper cost time:" + (System.currentTimeMillis() - cur)); return res.toJson(); @@ -1373,6 +1590,7 @@ public class V1 extends BaseController { testPaper.getCreateDate() == null ? Tools .date2Str(new Date()) : testPaper .getCreateDate()); + testPd.put("TEST_TYPE", testPaper.getTest_type() != null ? testPaper.getTest_type() :"101"); List listData = testpaperService.listAll(testPd); if ((listData != null && listData.size() > 0)) { testPaperId = listData.get(0).getString("TESTPAPER_ID"); @@ -1457,12 +1675,131 @@ public class V1 extends BaseController { } else { res.setDataError(); } - logger.info("uploadtestpaper cost time:" + logger.info("uploadupdatetestpaper cost time:" + (System.currentTimeMillis() - cur)); return res.toJson(); } + + /** + * 上传测验成绩 + * @return + */ + @RequestMapping(value = "/uploadupdatetestpaper2", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object uploadupdateTestpaper2() { + event("uploadupdateTestpaper2"); + long cur = System.currentTimeMillis(); + PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + if (!StringUtils.isEmpty(pd.getJsonString())) { + logger.info(pd.getJsonString()); + TestPaper testPaper = TestPaper.parse(pd.getJsonString()); + try { + PageData testPd = new PageData(); + String testPaperId = this.get32UUID(); + testPd.put("TEACHER_ID", testPaper.getTeacherId()); + testPd.put("PAPER_ID", testPaper.getPaperId()); + testPd.put("SCLASS_ID", testPaper.getClassId()); + testPd.put( + "CREATE_DATE", + testPaper.getCreateDate() == null ? Tools + .date2Str(new Date()) : testPaper + .getCreateDate()); + List listData = testpaperService.listAll(testPd); + if ((listData != null && listData.size() > 0)) { + testPaperId = listData.get(0).getString("TESTPAPER_ID"); + testpaperService.deleteList(testPd); + testPd.put("TEST_ID", testPaperId); + testpaperinfoService.delete(testPd); + studenttestService.delete(testPd); + } + testPd.put("TEST_TYPE", testPaper.getTest_type() != null ? testPaper.getTest_type() :"101"); + testPd.put("START_DATE", testPaper.getStartDate()); + testPd.put("END_DATE", testPaper.getEndDate()); + testPd.put("NAME", testPaper.getName()); + testPd.put("TESTPAPER_ID", testPaperId); + testPd.put("OTHER_SCORE", testPaper.getOtherScore()); + testPd.put("HIGHT_SCORE", testPaper.getHighScore()); + testPd.put("LOW_SCORE", testPaper.getLowScore()); + testPd.put("AVG_SCORE", testPaper.getAvgScore()); + testPd.put("TOTAL_SCORE", testPaper.getTotalScore()); + testPd.put("REMARK", testPaper.getRemark()); + testpaperService.save(testPd); + if (testPaper.getStudents() != null) { + List testInfoPdList = new ArrayList(); + PageData testInfoPd = null; + for (StudentAnswer studentAnswer : testPaper.getStudents()) { + if (studentAnswer.getQuestions() != null) { + PageData studentPageData = new PageData(); + studentPageData.put("STUDENT_ID", + studentAnswer.getStudentId()); + studentPageData.put("TEST_ID", testPaperId); + studentPageData.put("PAPER_ID", + testPaper.getPaperId()); + studentPageData.put("SCORE", + studentAnswer.getScore()); + studentPageData.put("CLASS_ID", + testPaper.getClassId()); + studentPageData.put("STUDENTTEST_ID", get32UUID()); + studenttestService.save(studentPageData); + + for (TestPaperInfo testPaperInfo : studentAnswer + .getQuestions()) { + testInfoPd = new PageData(); + testInfoPd.put("TESTPAPERINFO_ID", + this.get32UUID()); + testInfoPd.put("PAPER_ID", + testPaperInfo.getPaperId()); + testInfoPd.put("STUDENT_ID", + studentAnswer.getStudentId()); + testInfoPd.put("TEST_ID", testPaperId); + testInfoPd.put("QUESTION_ID", + testPaperInfo.getQuestionId()); + testInfoPd.put("ANSWER", + testPaperInfo.getAnswer()); + testInfoPd.put("RIGHT", + testPaperInfo.getRight()); + testInfoPd.put("SCORE", + testPaperInfo.getScore()); + testInfoPd.put("LIKES", + testPaperInfo.getLikes()); + testInfoPd.put("ANSWER_TYPE", testPaperInfo + .getAnswerType() == null ? "1" + : testPaperInfo.getAnswerType()); + testInfoPd.put("PRESS_TIME", + testPaperInfo.getPressTime()); + testInfoPd.put("RECEIVER_DATE", + testPaperInfo.getReceiverDate()); + testInfoPd.put("SUBJECTIVE", + testPaperInfo.getSubjective()); + testInfoPd.put("NOTE", testPaperInfo.getNote()); + testInfoPd.put("MARK_NO", + testPaperInfo.getMarkNo()); + testInfoPd.put("RANDOM", testPaperInfo.getRandom()); + testInfoPd.put("RANK", testPaperInfo.getRank()); + testInfoPdList.add(testInfoPd); + } + } + } + testpaperinfoService.batchSave(testInfoPdList); + } + res.setData(testPaperId); + } catch (Exception e) { + e.printStackTrace(); + res.setError(); + res.setMessage(e.getMessage()); + } + } else { + res.setDataError(); + } + logger.info("uploadupdatetestpaper cost time:" + + (System.currentTimeMillis() - cur)); + + return res.toJson(); + + } /** * 查询知识点 @@ -1472,6 +1809,7 @@ public class V1 extends BaseController { @RequestMapping(value = "/point", produces = "application/json;charset=UTF-8") @ResponseBody public Object point() throws Exception { + event("point"); ResponseGson> res = new ResponseGson(); PageData pd = getPageData(); @@ -2412,4 +2750,55 @@ public class V1 extends BaseController { return res.toJson(); } + + /** + * 根据ID班级名称 + * @param id + * @return + * @throws Exception + */ + @RequestMapping(value = "/qstudentinfo", produces = "application/json;charset=UTF-8") + @ResponseBody + public String qstudentinfo() throws Exception { + ResponseGson> res = new ResponseGson(); + PageData pageData = this.getPageData(); + if (pageData.containsKey("TEST_ID") + && pageData.containsKey("QUESTION_ID")) { + List list = v1Service.getQuestionWrongInfo(pageData); + res.setData(list); + }else{ + res.setDataError(); + } + return res.toJson(); + + } + + @RequestMapping(value = "/uploadfile", produces = "application/json;charset=UTF-8") + @ResponseBody + public String uploadFile(@RequestParam(value="file",required=false)MultipartFile file, HttpServletRequest request) throws Exception{ + ResponseGson res = new ResponseGson(); + if (file != null) { + String path = request.getSession().getServletContext() + .getRealPath("/uploadFiles/uploadFile/"); + String name = System.currentTimeMillis() + file.getOriginalFilename(); + File pathFile = new File(path); + pathFile.mkdirs(); + File saveFile = new File(path + File.separator + name); + if(saveFile.exists()){ + saveFile.delete(); + } + saveFile.createNewFile(); + file.transferTo(saveFile); + path = request.getContextPath(); + String basePath = request.getScheme() + "://" + request.getServerName() + + ":" + request.getServerPort() + path + "/"; + res.setData("/uploadFiles/uploadFile/" + name); + }else{ + res.setDataError(); + } + return res.toJson(); + } + + + } diff --git a/src/com/fh/controller/sunvote/report/ReportController.java b/src/com/fh/controller/sunvote/report/ReportController.java index 24fd251..e03c838 100644 --- a/src/com/fh/controller/sunvote/report/ReportController.java +++ b/src/com/fh/controller/sunvote/report/ReportController.java @@ -50,6 +50,7 @@ public class ReportController extends BaseController { PageData pd = getPageData(); pd.put("SCLASS_ID", pd.get("CLASSID")); pd.put("ID", pd.get("CLASSID")); + pd.put("TEST_TYPE", "1"); // 1 查询班级信息 PageData classPageData = sclassService.findById(pd); PageData info = new PageData(); diff --git a/src/com/fh/controller/sunvote/teacher/TeacherController.java b/src/com/fh/controller/sunvote/teacher/TeacherController.java index eb04a34..9e41a37 100644 --- a/src/com/fh/controller/sunvote/teacher/TeacherController.java +++ b/src/com/fh/controller/sunvote/teacher/TeacherController.java @@ -167,6 +167,24 @@ public class TeacherController extends BaseController { PageData pd = new PageData(); pd = this.getPageData(); mv.setViewName("sunvote/teacher/teach_paper"); + pd.put("userId", userId); + mv.addObject("pd", pd); + return mv; + } + /** + * 列表 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/test_list") + public ModelAndView test_list(Page page) throws Exception { + logBefore(logger, Jurisdiction.getUsername() + "列表Paper"); + String userId = this.getUserID(); + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + mv.setViewName("sunvote/teacher/test_list"); mv.addObject("pd", pd); return mv; } @@ -188,6 +206,24 @@ public class TeacherController extends BaseController { mv.addObject("pd", pd); return mv; } + + /** + * 列表 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/paper_view1") + public ModelAndView paper_view1(Page page) throws Exception { + logBefore(logger, Jurisdiction.getUsername() + "列表Paper"); + String userId = this.getUserID(); + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + mv.setViewName("sunvote/teacher/paper_view1"); + mv.addObject("pd", pd); + return mv; + } /** * 列表 diff --git a/src/com/fh/service/api/V1Manager.java b/src/com/fh/service/api/V1Manager.java index 876cea3..746b280 100644 --- a/src/com/fh/service/api/V1Manager.java +++ b/src/com/fh/service/api/V1Manager.java @@ -19,5 +19,7 @@ public interface V1Manager { public List getTeacherInfo(PageData pd) throws Exception; + public List getQuestionWrongInfo(PageData pd) throws Exception ; + } diff --git a/src/com/fh/service/api/impl/V1Service.java b/src/com/fh/service/api/impl/V1Service.java index 8107222..39cf0b5 100644 --- a/src/com/fh/service/api/impl/V1Service.java +++ b/src/com/fh/service/api/impl/V1Service.java @@ -45,5 +45,10 @@ public class V1Service implements V1Manager { public List getTeacherInfo(PageData pd) throws Exception { return (List)dao.findForList("V1Mapper.getTeacherInfo", pd); } + + @Override + public List getQuestionWrongInfo(PageData pd) throws Exception { + return (List)dao.findForList("V1Mapper.getQuestionWrongInfo", pd); + } } diff --git a/src/com/fh/service/sunvote/paper/PaperManager.java b/src/com/fh/service/sunvote/paper/PaperManager.java index 0781c71..91bb057 100644 --- a/src/com/fh/service/sunvote/paper/PaperManager.java +++ b/src/com/fh/service/sunvote/paper/PaperManager.java @@ -36,6 +36,9 @@ public interface PaperManager{ */ public List list(Page page)throws Exception; + + public List listAllByType(PageData pd)throws Exception; + /**列表(全部) * @param pd * @throws Exception diff --git a/src/com/fh/service/sunvote/paper/impl/PaperService.java b/src/com/fh/service/sunvote/paper/impl/PaperService.java index 975d15b..44dde4f 100644 --- a/src/com/fh/service/sunvote/paper/impl/PaperService.java +++ b/src/com/fh/service/sunvote/paper/impl/PaperService.java @@ -70,6 +70,15 @@ public class PaperService implements PaperManager{ return (List)dao.findForList("PaperMapper.listAllByTypelistPage", pd);//.*listPage.* } + /**列表(全部) + * @param pd + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List listAllByType(PageData pd)throws Exception{ + return (List)dao.findForList("PaperMapper.listAllByType", pd);//.*listPage.* + } + /**通过id获取数据 * @param pd * @throws Exception