From 338594c886548116e4237a91a30e6b973567cdd1 Mon Sep 17 00:00:00 2001 From: Elvis Date: Thu, 31 May 2018 18:26:32 +0800 Subject: [PATCH] 添加教师端页面 --- .settings/org.eclipse.core.resources.prefs | 1 + WebRoot/WEB-INF/jsp/sunvote/images/head_pic.jpg | Bin 0 -> 24349 bytes WebRoot/WEB-INF/jsp/sunvote/paper/paper_edit2.jsp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/jsp/system/index/login.jsp | 6 +++++- WebRoot/afterService/index.html | 1 + WebRoot/static/css/index-style.css | 12 ++++++++++++ WebRoot/static/css/style.css | 13 +++++++++++++ WebRoot/static/images/head_pic.jpg | Bin 0 -> 24349 bytes WebRoot/static/js/control.js | 371 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ resources/mybatis1/api/V1Mapper.xml | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- resources/mybatis1/sunvote/PaperMapper.xml | 24 ++++++++++++++++++++++-- resources/mybatis1/sunvote/PaperQuestionMapper.xml | 11 +++++++++++ src/com/fh/bean/Paper.java | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/bean/Question.java | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/controller/api/ResponseGson.java | 7 +++++-- src/com/fh/controller/api/V.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/controller/api/V1.java | 196 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/com/fh/controller/api/V2.java | 14 ++++++++++++++ src/com/fh/controller/base/BaseController.java | 2 ++ src/com/fh/controller/sunvote/Myelfun.java | 17 +++++++++++++++++ src/com/fh/controller/sunvote/paper/PaperController.java | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/com/fh/controller/system/login/LoginController.java | 36 ++++++++++++++++++++++++++++++++---- src/com/fh/service/api/V1Manager.java | 5 +++++ src/com/fh/service/api/impl/V1Service.java | 10 ++++++++++ src/com/fh/service/sunvote/paper/impl/PaperService.java | 2 +- src/com/fh/service/sunvote/paperquestion/PaperQuestionManager.java | 8 ++++++++ src/com/fh/service/sunvote/paperquestion/impl/PaperQuestionService.java | 8 ++++++++ src/com/fh/util/PageData.java | 27 ++++++++++++++++++++++++++- 31 files changed, 2382 insertions(+), 19 deletions(-) create mode 100644 WebRoot/WEB-INF/jsp/sunvote/images/head_pic.jpg create mode 100644 WebRoot/WEB-INF/jsp/sunvote/paper/paper_edit2.jsp create mode 100644 WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp create mode 100644 WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp create mode 100644 WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp create mode 100644 WebRoot/static/css/index-style.css create mode 100644 WebRoot/static/css/style.css create mode 100644 WebRoot/static/images/head_pic.jpg create mode 100644 WebRoot/static/js/control.js create mode 100644 src/com/fh/bean/Paper.java create mode 100644 src/com/fh/bean/Question.java create mode 100644 src/com/fh/controller/api/V.java create mode 100644 src/com/fh/controller/api/V2.java diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 3b4f9b6..ed07cff 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,5 @@ eclipse.preferences.version=1 +encoding//WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp=UTF-8 encoding//WebRoot/WEB-INF/jsp/system/appuser/appuser_list.jsp=UTF-8 encoding//WebRoot/WEB-INF/jsp/system/fhsms/fhsms_list.jsp=UTF-8 encoding//WebRoot/WEB-INF/jsp/system/index/head.jsp=UTF-8 diff --git a/WebRoot/WEB-INF/jsp/sunvote/images/head_pic.jpg b/WebRoot/WEB-INF/jsp/sunvote/images/head_pic.jpg new file mode 100644 index 0000000..40c55d3 Binary files /dev/null and b/WebRoot/WEB-INF/jsp/sunvote/images/head_pic.jpg differ diff --git a/WebRoot/WEB-INF/jsp/sunvote/paper/paper_edit2.jsp b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_edit2.jsp new file mode 100644 index 0000000..480f8e8 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_edit2.jsp @@ -0,0 +1,112 @@ +<%@ 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+"/"; +%> + + + + + + + + <%@ include file="../../system/index/top.jsp"%> + + + + + +
+ +
+
+
+
+
+ +
+ +
+ + + + + + + + + + + + +
试卷标题:
建议考试时长:
+ 保存 + 取消 +
+
+ +
+
+ +
+ +
+ +
+
+ +
+ + + + + <%@ include file="../../system/index/foot.jsp"%> + + + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp new file mode 100644 index 0000000..4206fc0 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp @@ -0,0 +1,323 @@ +<%@ 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"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme() + "://" + + request.getServerName() + ":" + request.getServerPort() + + path + "/"; +%> + + + + + + + + + + +<%@ include file="../../system/index/top.jsp"%> + + + + + + +
+ +
+
+
+
+
+ + +
+ + + <%-- --%> + + + + + + <%-- + --%> +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 序号测验标题创建时间建议考试时长总分操作
+ + ${vs.index+1}${var.TITLE}${var.CREATE_DATE}${var.EXAM_TIME}${var.SCORE} +
+ + + +
+
没有相关数据
+ +
+ +
+ +
+ +
+ +
+
+ + + + + + + +
+ + + + + + + + <%@ include file="../../system/index/foot.jsp"%> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp new file mode 100644 index 0000000..dfa4efd --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp @@ -0,0 +1,211 @@ + + + + 创建试卷 + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..b6526e8 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp @@ -0,0 +1,202 @@ +<%@ 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"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme() + "://" + + request.getServerName() + ":" + request.getServerPort() + + path + "/"; +%> + + + + + + +<%@ include file="../../system/index/top.jsp"%> + + + + + + + + + + + + + + + + + + + +
+ <%@ include file="../../system/index/head.jsp"%> +
+ +
+
+
+ +
+
+

${pd.TEACHER[0].TEACHER_NAME }

+

${pd.TEACHER[0].SCHOOL_NAME }

+
+
+
+
+

${pd.TEACHER[0].GRADE_NAME}${pd.TEACHER[0].SUBJECT_NAME} ${pd.TEACHER[0].CLASS_NAME}

+
+
测验
+
分析
+
+
+ +
+
+ + + + <%@ include file="../../system/index/foot.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/jsp/system/index/login.jsp b/WebRoot/WEB-INF/jsp/system/index/login.jsp index c77dd9f..3ba2fad 100644 --- a/WebRoot/WEB-INF/jsp/system/index/login.jsp +++ b/WebRoot/WEB-INF/jsp/system/index/login.jsp @@ -259,7 +259,11 @@ success: function(data){ if("success" == data.result){ saveCookie(); - window.location.href="main/index"; + if(data.teacher != null){ + window.location.href="main/teacher"; + }else{ + window.location.href="main/index"; + } }else if("usererror" == data.result){ $("#loginname").tips({ side : 1, diff --git a/WebRoot/afterService/index.html b/WebRoot/afterService/index.html index 596eb11..aad7104 100644 --- a/WebRoot/afterService/index.html +++ b/WebRoot/afterService/index.html @@ -19,6 +19,7 @@

产品问题反馈

+

点击对应产品进行反馈

基站

diff --git a/WebRoot/static/css/index-style.css b/WebRoot/static/css/index-style.css new file mode 100644 index 0000000..e2206f8 --- /dev/null +++ b/WebRoot/static/css/index-style.css @@ -0,0 +1,12 @@ +.content_l{width:30%;min-width:400px;} +.info_box{width:100%;height:300px;background:#36c345;color:#fff;position:relative;} +.info{display:table;width:70%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;} +.info_l{width:120px;height:120px;float:left;border-radius:100px;overflow:hidden;position:relative;} +.info_l img{width:100%;position:absolute;top:0;min-height:100%;} +.info_r{margin-left:150px;} +.info_r p{width:100%;text-align:left;} +.info_r p:first-child{font-size:24px;} +.class{background:#36c333;color:#fff;margin-top:12px;} +.class p{margin:0;line-height:3em;box-sizing:border-box;padding-left:3em;font-size:20px;} +.test{background:#36b733;font-size:32px;text-align:center;color:#fff;padding:3% 0;letter-spacing:1em;margin-top:12px;} +.analysis{background:#36a733;font-size:32px;text-align:center;color:#fff;padding:3% 0;letter-spacing:1em;margin-top:12px;} diff --git a/WebRoot/static/css/style.css b/WebRoot/static/css/style.css new file mode 100644 index 0000000..e878764 --- /dev/null +++ b/WebRoot/static/css/style.css @@ -0,0 +1,13 @@ +input[type="number"]{-moz-appearance:textfield;} +input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance: none !important;} +.page-header{margin-top:0;background:#fff;position:fixed;top:0;width:100%;} +.page-header .time .bg-primary{padding:5px 10px;} +.content{padding-top:180px;padding-bottom:60px;} +.content .section .title{border-bottom:1px dashed #ccc;padding:10px 0;} +.content .section h3{display:inline-block;margin: 0;line-height:34px;vertical-align: bottom;} +.content .section .title input[type="button"]{margin-left:10px;} +.content .question_list .question{margin:10px 0;} +.content .question_list .question li{margin:0 20px;} +.content .question_list .question .on{background:#5cb85c;color:#fff;} +.content .question_list .question span{float:left;display:inline-block;line-height:34px;font-size:20px;} +.modal-body label{line-height:34px;} \ No newline at end of file diff --git a/WebRoot/static/images/head_pic.jpg b/WebRoot/static/images/head_pic.jpg new file mode 100644 index 0000000..40c55d3 Binary files /dev/null and b/WebRoot/static/images/head_pic.jpg differ diff --git a/WebRoot/static/js/control.js b/WebRoot/static/js/control.js new file mode 100644 index 0000000..9422030 --- /dev/null +++ b/WebRoot/static/js/control.js @@ -0,0 +1,371 @@ +$(function(){ + /*创建答案列表*/ + var score=0; + function creat(str_ans,a_num,fraction){ + $(".section").remove(); + $(".content").append('

一、单选

') + var str=str_ans.split(','); + q_num=str.length; + for(var i=0;i'+(i+1)+'、
    '); + for(var j=0;j'+option+''); + }else + $(".question"+(i+1)+' ul').append('
  • '+option+'
  • '); + } + }else{ + alert("题目"+(i+1)+":"+String.fromCharCode(code)+"答案错误,超出选项数"); + //return; + } + } + } + + /*********** + *1、单选题 + *2、完形填空 + *3、阅读理解 + *4、判断题 + *5、多选题 + ***********/ + var type_2=1; + var index_s_2=1; + var index_e_2=5; + var answer_2='a,b,c,d,a'; + var num_ans_2=4; + + function addQuestion(type,str_ans,a_num,index_s_2,index_e_2){ + console.log($(".section").length); + var question_num=SectionToChinese($(".section").length+1); + switch(type){ + case 1: //单选题 + $(".content").append('

    '+question_num+'、'+'单选

    '); + var str=str_ans.split(','); + q_num=str.length; + if(q_num!==(index_e_2-index_s_2+1)){ + alert("答案长度错误,请检查后重新填写"); + return; + } + for(var i=index_s_2;i<=index_e_2;i++){ + str_temp=str[i-index_s_2]; + str_temp=str_temp.toUpperCase() + code = str_temp.charCodeAt(); + on_index=code-65; + if(code<(65+a_num)){ + console.log(str_temp); + $(".section-1 .question_list").append('
    '+i+'、
      '); + for(var j=0;j'+option+''); + }else + $(".question"+i+' ul').append('
    • '+option+'
    • '); + } + }else{ + alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数"); + //return; + } + } + break; + case 2: //完形填空 + $(".content").append('

      '+question_num+'、完形填空

      '); + var str=str_ans.split(','); + q_num=str.length; + if(q_num!==(index_e_2-index_s_2+1)){ + alert("答案长度错误,请检查后重新填写"); + return; + } + for(var i=index_s_2;i<=index_e_2;i++){ + str_temp=str[i-index_s_2]; + str_temp=str_temp.toUpperCase() + code = str_temp.charCodeAt(); + on_index=code-65; + if(code<(65+a_num)){ + console.log(str_temp); + $(".section-2 .question_list").append('
      '+i+'、
        '); + for(var j=0;j'+option+''); + }else + $(".question"+i+' ul').append('
      • '+option+'
      • '); + } + }else{ + alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数"); + //return; + } + } + break; + case 3: //阅读理解 + $(".content").append('

        '+question_num+'、阅读理解

        '); + var str=str_ans.split(','); + q_num=str.length; + if(q_num!==(index_e_2-index_s_2+1)){ + alert("答案长度错误,请检查后重新填写"); + return; + } + for(var i=index_s_2;i<=index_e_2;i++){ + str_temp=str[i-index_s_2]; + str_temp=str_temp.toUpperCase() + code = str_temp.charCodeAt(); + on_index=code-65; + if(code<(65+a_num)){ + console.log(str_temp); + $(".section-3 .question_list").append('
        '+i+'、
          '); + for(var j=0;j'+option+''); + }else + $(".question"+i+' ul').append('
        • '+option+'
        • '); + } + }else{ + alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数"); + //return; + } + } + break; + } + } + //addQuestion(1,answer_2,num_ans_2,index_s_2,index_e_2); + //addQuestion(2,answer_2,num_ans_2,6,10); + //addQuestion(3,answer_2,num_ans_2,11,15); + //addQuestion(1); + //creat("A,B,a,D,C,E,b",4); + + $(document).on('click','.remove',function(){ //删除按钮 + $(this).parent().parent().remove(); + }) + $("#fast_submit").click(function(){ //点击确定,创建答案列表 + $("#addQuestion").attr("disabled","disabled"); + var answer=$("#answer").val(); + var num_ans=$("#num_ans").val(); + var fraction=$("#fraction").val(); + if(answer==''){ + alert("请输入题目答案,以分号隔开"); + return; + }else if(fraction==''){ + alert("请输入题目分数"); + return; + } + //$(".fast").toggle(); + //$(".modal-backdrop").remove(); + $('.fast').modal('hide'); + score += parseInt(fraction)*answer.split(",").length; + creat(answer,num_ans,fraction); + }) + + var type_2=1; + var index_s_2=1; + var index_e_2=5; + var answer_2='a,b,c,d,a'; + var num_ans_2=4; + /*添加试题的确定按钮*/ + $("#addQuestion_submit").click(function(){ + $("#fast").attr("disabled","disabled"); + var type_2=$("#type").val(); + var index_s_2=$("#index_s_2").val(); + var index_e_2=$("#index_e_2").val(); + var answer_2=$("#answer_2").val(); + var num_ans_2=$("#num_ans_2").val(); + var fraction2=$("#fraction2").val(); + if(index_s_2==''){ + alert("请输入题目开始序号"); + return; + }else if(index_e_2==''){ + alert("请输入题目结束序号"); + return; + } + + $('.addQuestion').modal('hide'); + }) + /*更改考试时长*/ + $("#time_submit").click(function(){ + var test_time=$("#enter_time").val(); + if(test_time==''){ + alert("请输入考试时间"); + return; + } + $("#time").html(test_time); + $('.test_time').modal('hide'); + }) + /*更改单选答案*/ + $(document).on('click','.single li',function(){ + $(this).siblings().removeClass("on"); + $(this).addClass("on"); + }) + /*提交保存数据*/ + $("#save").click(function(){ + var url="http://192.168.0.240:8080/SunvoteEducation/api/v1/uploadpaper"; + var data={ + title: $(".text-center").text(), + exam_time: parseInt($("#time").text()), + paper_type: "1", + subject_id: "1", + grade_id: "1", + user_id: "1", + score:score, + questions:[] + } + var rank=0; + if($(".section").length>0){ + for(i=0;i<$(".section").length;i++){ + rank++; + data.questions[i]={ + chapter_id: "0", + problem_type_id: "0", + knowledge_id: "0", + content: $(".que_name").text(), + option_num: "", + option_content: "", + answer: "", + difficulty: "", + analysis: "", + question_from: "", + score:parseInt($(".section").eq(i).attr("data-fraction")), + part_score: "", + remark: "", + rank: rank, + no_name: $(".que_num").text(), + questions:[] + } + for(j=0;j<$(".section").eq(i).find(".question_list").children(".question").length;j++){ + rank++; + data.questions[i].questions[j]={ + chapter_id: "0", + problem_type_id: "0", + knowledge_id: "0", + content: "", + option_num: $(".question").eq(j).find("li").length, + option_content: "", + answer: $(".question").eq(j).find(".on").text(), + difficulty: "0", + analysis: "", + question_from: "1", + score: parseInt($(".section").eq(i).attr("data-fraction")), + part_score: "0", + remark: "", + rank: rank, + no_name: (i+1)+'.'+(j+1), + } + } + } + } + + if(data.questions.length>0){ + data=JSON.stringify(data); + dataJson={"json":data}; + console.log(data); + ajax_submit(url,dataJson); + var suc=ajax_submit(url,dataJson); +// alert(suc); + if(suc==1){ + + } + } + else + alert("请添加试题"); + }) +}) + +/*ajax封装函数*/ +function ajax_submit(url,data){ + var flag=0; + $.ajax({ + url:url, + type:"POST", + async:false, + data:data, + dataType:"json", + success:function(data){ + flag=1; + alert("保存成功"); + window.close(); + } + }) + return flag; +} + + + creatHtml(testData); +function creatHtml(data){ + console.log(data); + if(data.questions.length>0){ + $(".btn_box").remove(); + } + $(".header_box h1").html(data.title); + $("#time").html(data.exam_time); + for(var i=0;i

          '+data.questions[i].no_name+''+''+data.questions[i].content+'

          ') + if(data.questions.length>0){$(".remove").remove();} + for(var j=0;j'+(j+1)+'、'); + for(var k=0;k'+String.fromCharCode(0x41+k)+''); + }else + $(".question"+(j+1)+' ul').append('
        • '+String.fromCharCode(0x41+k)+'
        • '); + } + } + } + } + +/*数字转汉字数字*/ +var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"]; + var chnUnitSection = ["","万","亿","万亿","亿亿"]; + var chnUnitChar = ["","十","百","千"]; + + function SectionToChinese(section){ + var strIns = '', chnStr = ''; + var unitPos = 0; + var zero = true; + while(section > 0){ + var v = section % 10; + if(v === 0){ + if(!zero){ + zero = true; + chnStr = chnNumChar[v] + chnStr; + } + }else{ + zero = false; + strIns = chnNumChar[v]; + strIns += chnUnitChar[unitPos]; + chnStr = strIns + chnStr; + } + unitPos++; + section = Math.floor(section / 10); + } + return chnStr; + } + + //alert(SectionToChinese(123)); + + + //
          + // 1、 + //
            + //
          • A
          • + //
          • B
          • + //
          • C
          • + //
          • D
          • + //
          + //
          + //

          一、单选

          + + diff --git a/resources/mybatis1/api/V1Mapper.xml b/resources/mybatis1/api/V1Mapper.xml index 3452179..559b00d 100644 --- a/resources/mybatis1/api/V1Mapper.xml +++ b/resources/mybatis1/api/V1Mapper.xml @@ -34,7 +34,8 @@ - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/mybatis1/sunvote/PaperMapper.xml b/resources/mybatis1/sunvote/PaperMapper.xml index 34937ad..80aaefd 100644 --- a/resources/mybatis1/sunvote/PaperMapper.xml +++ b/resources/mybatis1/sunvote/PaperMapper.xml @@ -20,6 +20,7 @@ EXAM_TIME, PAPER_STATE, REMARK, + SCORE, PAPER_ID @@ -36,6 +37,7 @@ #{EXAM_TIME}, #{PAPER_STATE}, #{REMARK}, + #{SCORE}, #{PAPER_ID} @@ -74,6 +76,7 @@ EXAM_TIME = #{EXAM_TIME}, PAPER_STATE = #{PAPER_STATE}, REMARK = #{REMARK}, + SCORE = #{SCORE}, PAPER_ID = PAPER_ID where PAPER_ID = #{PAPER_ID} @@ -96,9 +99,10 @@ from where 1=1 - + and ( + CREATE_DATE > #{pd.LASTSTART} ) + + and + ( + CREATE_DATE < CONCAT(#{pd.LASTEND},'A') + + ) + + + order by CREATE_DATE DESC @@ -114,10 +131,12 @@ from + + order by CREATE_DATE DESC - select from @@ -131,6 +150,7 @@ and USER_ID = #{pd.USER_ID} + order by CREATE_DATE DESC diff --git a/resources/mybatis1/sunvote/PaperQuestionMapper.xml b/resources/mybatis1/sunvote/PaperQuestionMapper.xml index 4317c0e..4814361 100644 --- a/resources/mybatis1/sunvote/PaperQuestionMapper.xml +++ b/resources/mybatis1/sunvote/PaperQuestionMapper.xml @@ -112,5 +112,16 @@ + + + delete from + + where + PAPER_ID in + + #{item} + + + \ No newline at end of file diff --git a/src/com/fh/bean/Paper.java b/src/com/fh/bean/Paper.java new file mode 100644 index 0000000..42056fa --- /dev/null +++ b/src/com/fh/bean/Paper.java @@ -0,0 +1,101 @@ +package com.fh.bean; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; + +public class Paper { + private String title = ""; + + private String exam_time = ""; + + private String paper_type = ""; + + private String subject_id = ""; + + private String grade_id = ""; + + private String user_id = ""; + + private List questions = new ArrayList(); + + private String score = ""; + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return this.title; + } + + public void setExam_time(String exam_time) { + this.exam_time = exam_time; + } + + public String getExam_time() { + return this.exam_time; + } + + public void setPaper_type(String paper_type) { + this.paper_type = paper_type; + } + + public String getPaper_type() { + return this.paper_type; + } + + public void setSubject_id(String subject_id) { + this.subject_id = subject_id; + } + + public String getSubject_id() { + return this.subject_id; + } + + public void setGrade_id(String grade_id) { + this.grade_id = grade_id; + } + + public String getGrade_id() { + return this.grade_id; + } + + public void setUser_id(String user_id) { + this.user_id = user_id; + } + + public String getUser_id() { + return this.user_id; + } + + public void setQuestions(List questions) { + this.questions = questions; + } + + public List getQuestions() { + return this.questions; + } + + + + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public static Paper parse(String json){ + Gson gson = new Gson(); + return gson.fromJson(json, Paper.class); + } + + public String toJson(){ + Gson gson = new Gson(); + return gson.toJson(this); + } +} diff --git a/src/com/fh/bean/Question.java b/src/com/fh/bean/Question.java new file mode 100644 index 0000000..314b031 --- /dev/null +++ b/src/com/fh/bean/Question.java @@ -0,0 +1,207 @@ +package com.fh.bean; + +import java.util.List; + +public class Question { + + private String question_id ; + + private String subject_id; + + private String chapter_id; + + private String problem_type_id; + + private String knowledge_id; + + private String content; + + private String option_num; + + private String option_content; + + private String answer; + + private String difficulty; + + private String analysis; + + private String question_from; + + private String score; + + private String part_score; + + private String remark; + + private String rank; + + private String no_name; + + private String sug_score; + + private String sug_part_score; + + private List questions; + + public void setSubject_id(String subject_id) { + this.subject_id = subject_id; + } + + public String getSubject_id() { + return this.subject_id; + } + + public void setChapter_id(String chapter_id) { + this.chapter_id = chapter_id; + } + + public String getChapter_id() { + return this.chapter_id; + } + + public void setProblem_type_id(String problem_type_id) { + this.problem_type_id = problem_type_id; + } + + public String getProblem_type_id() { + return this.problem_type_id; + } + + public void setKnowledge_id(String knowledge_id) { + this.knowledge_id = knowledge_id; + } + + public String getKnowledge_id() { + return this.knowledge_id; + } + + public void setContent(String content) { + this.content = content; + } + + public String getContent() { + return this.content; + } + + public void setOption_num(String option_num) { + this.option_num = option_num; + } + + public String getOption_num() { + return this.option_num; + } + + public void setOption_content(String option_content) { + this.option_content = option_content; + } + + public String getOption_content() { + return this.option_content; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String getAnswer() { + return this.answer; + } + + public void setDifficulty(String difficulty) { + this.difficulty = difficulty; + } + + public String getDifficulty() { + return this.difficulty; + } + + public void setAnalysis(String analysis) { + this.analysis = analysis; + } + + public String getAnalysis() { + return this.analysis; + } + + public void setQuestion_from(String question_from) { + this.question_from = question_from; + } + + public String getQuestion_from() { + return this.question_from; + } + + public void setScore(String score) { + this.score = score; + } + + public String getScore() { + return this.score; + } + + public void setPart_score(String part_score) { + this.part_score = part_score; + } + + public String getPart_score() { + return this.part_score; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getRemark() { + return this.remark; + } + + public void setRank(String rank) { + this.rank = rank; + } + + public String getRank() { + return this.rank; + } + + public void setNo_name(String no_rank) { + this.no_name = no_rank; + } + + public String getNo_name() { + return this.no_name; + } + + public void setSug_score(String sug_score){ + this.sug_score = sug_score ; + } + public void setSug_part_score(String sug_part_score){ + this.sug_part_score = sug_part_score ; + } + + public String getSug_score(){ + return this.sug_score; + } + public String getSug_part_score(){ + return this.sug_part_score; + } + + + + public String getQuestion_id() { + return question_id; + } + + public void setQuestion_id(String question_id) { + this.question_id = question_id; + } + + public void setQuestions(List questions) { + this.questions = questions; + } + + public List getQuestions() { + return this.questions; + } + +} diff --git a/src/com/fh/controller/api/ResponseGson.java b/src/com/fh/controller/api/ResponseGson.java index 8de572e..aeea0a6 100644 --- a/src/com/fh/controller/api/ResponseGson.java +++ b/src/com/fh/controller/api/ResponseGson.java @@ -8,7 +8,7 @@ public class ResponseGson { private String message = "success"; - private T data; + private Object data; public String getCode() { return code; @@ -26,7 +26,7 @@ public class ResponseGson { this.message = message; } - public T getData() { + public Object getData() { return data; } @@ -35,6 +35,9 @@ public class ResponseGson { } public String toJson(){ + if(data == null){ + data = new Object(); + } Gson gson = new Gson(); return gson.toJson(this); } diff --git a/src/com/fh/controller/api/V.java b/src/com/fh/controller/api/V.java new file mode 100644 index 0000000..82bed06 --- /dev/null +++ b/src/com/fh/controller/api/V.java @@ -0,0 +1,159 @@ +package com.fh.controller.api; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.fh.controller.base.BaseController; +import com.fh.service.feedback.feedback.FeedbackManager; +import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager; +import com.fh.service.sunvote.basestation.BasestationManager; +import com.fh.service.sunvote.chapter.ChapterManager; +import com.fh.service.sunvote.classbasetation.ClassBasetationManager; +import com.fh.service.sunvote.classroster.ClassRosterManager; +import com.fh.service.sunvote.classtype.ClassTypeManager; +import com.fh.service.sunvote.coursemanagement.CourseManagementManager; +import com.fh.service.sunvote.grade.GradeManager; +import com.fh.service.sunvote.keypad.KeypadManager; +import com.fh.service.sunvote.keypadcheck.KeypadCheckManager; +import com.fh.service.sunvote.knowledge.KnowledgeManager; +import com.fh.service.sunvote.knowledgechapter.KnowledgeChapterManager; +import com.fh.service.sunvote.paper.PaperManager; +import com.fh.service.sunvote.paperclassteacher.PaperClassTeacherManager; +import com.fh.service.sunvote.paperquestion.PaperQuestionManager; +import com.fh.service.sunvote.papertype.PaperTypeManager; +import com.fh.service.sunvote.question.QuestionManager; +import com.fh.service.sunvote.questiontype.QuestionTypeManager; +import com.fh.service.sunvote.school.SchoolManager; +import com.fh.service.sunvote.schoolgradesubject.SchoolGradeSubjectManager; +import com.fh.service.sunvote.sclass.SClassManager; +import com.fh.service.sunvote.student.StudentManager; +import com.fh.service.sunvote.subject.SubjectManager; +import com.fh.service.sunvote.teacher.TeacherManager; +import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; +import com.fh.util.PageData; + + +@Controller +@RequestMapping(value = "/api/v") +public class V extends BaseController { + + @Resource(name = "schoolService") + private SchoolManager schoolService; + + @RequestMapping(value = "/school/list", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object schoolList() throws Exception { + PageData pd = this.getPageData(); + String id = pd.getString("ID"); + if (id != null && !"".equals(id)) { + PageData ret = schoolService.findById(pd); + ResponseGson res = new ResponseGson(); + res.setData(ret); + return res.toJson(); + } else { + List ret = schoolService.listAll(pd); + ResponseGson> res = new ResponseGson(); + res.setData(ret); + return res.toJson(); + } + } + @RequestMapping(value = "/school/add", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object schoolAdd() throws Exception { + PageData pd = this.getPageData(); + String id = pd.getString("ID"); + if (id != null && !"".equals(id)) { + PageData ret = schoolService.findById(pd); + ResponseGson res = new ResponseGson(); + res.setData(ret); + return res.toJson(); + } else { + List ret = schoolService.listAll(pd); + ResponseGson> res = new ResponseGson(); + res.setData(ret); + return res.toJson(); + } + } + + @Resource(name = "basestationService") + private BasestationManager basestationService; + + @Resource(name="chapterService") + private ChapterManager chapterService; + + @Resource(name="classbasetationService") + private ClassBasetationManager classbasetationService; + + @Resource(name="classrosterService") + private ClassRosterManager classrosterService; + + @Resource(name="classtypeService") + private ClassTypeManager classtypeService; + + @Resource(name="gradeService") + private GradeManager gradeService; + + @Resource(name="coursemanagementService") + private CourseManagementManager coursemanagementService; + + @Resource(name = "keypadService") + private KeypadManager keypadService; + + @Resource(name="keypadcheckService") + private KeypadCheckManager keypadcheckService; + + @Resource(name="knowledgeService") + private KnowledgeManager knowledgeService; + + @Resource(name="knowledgechapterService") + private KnowledgeChapterManager knowledgechapterService; + + @Resource(name="paperService") + private PaperManager paperService; + + @Resource(name="paperclassteacherService") + private PaperClassTeacherManager paperclassteacherService; + + @Resource(name="paperquestionService") + private PaperQuestionManager paperquestionService; + + @Resource(name="papertypeService") + private PaperTypeManager papertypeService; + + @Resource(name="questionService") + private QuestionManager questionService; + + @Resource(name="questiontypeService") + private QuestionTypeManager questiontypeService; + + @Resource(name="schoolgradesubjectService") + private SchoolGradeSubjectManager schoolgradesubjectService; + + @Resource(name="sclassService") + private SClassManager sclassService; + + @Resource(name="studentService") + private StudentManager studentService; + + @Resource(name="subjectService") + private SubjectManager subjectService; + + @Resource(name="teacherService") + private TeacherManager teacherService; + + @Resource(name="testpaperinfoService") + private TestPaperInfoManager testpaperinfoService; + + @Resource(name = "feedbackService") + private FeedbackManager feedbackService; + + @Resource(name = "problemphenomenonService") + private ProblemPhenomenonManager problemphenomenonService; + + +} diff --git a/src/com/fh/controller/api/V1.java b/src/com/fh/controller/api/V1.java index b31a884..1cb02f1 100644 --- a/src/com/fh/controller/api/V1.java +++ b/src/com/fh/controller/api/V1.java @@ -1,15 +1,20 @@ package com.fh.controller.api; +import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.fh.bean.Paper; +import com.fh.bean.Question; 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; @@ -227,6 +232,8 @@ public class V1 extends BaseController { } List pageList = paperService.listAllByType(page); res.setData(pageList); + }else{ + res.setParmError(); } return res.toJson(); } @@ -235,13 +242,75 @@ public class V1 extends BaseController { @ResponseBody public Object testpaper() throws Exception { PageData pd = this.getPageData(); - ResponseGson> res = new ResponseGson>(); + ResponseGson res = new ResponseGson(); if(pd.containsKey("PAPER_ID")){ 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.setTitle(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); - res.setData(questList); + 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.setSug_score(qpd.getString("SUG_SCORE")); + question.setSug_part_score(qpd.getString("SUG_PART_SCORE")); + question.setRank(qpd.getString("RANK")); + question.setNo_name(qpd.getString("NO_NAME")); + if("-1".equals(qpd.getString("PID"))){ + 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.setSug_score(q.getString("SUG_SCORE")); + qq.setSug_part_score(q.getString("SUG_PART_SCORE")); + qq.setRank(q.getString("RANK")); + qq.setNo_name(q.getString("NO_NAME")); + question.getQuestions().add(qq); + } + } + paper.getQuestions().add(question); + } + + + res.setData(paper); + } }catch(Exception ex){ - res.setOtherError(); + ex.printStackTrace(); + res.setError(); } }else{ res.setOtherError(); @@ -258,4 +327,125 @@ public class V1 extends BaseController { return res.toJson(); } + + @RequestMapping(value = "/uploadpaper", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object uploadpaper() throws Exception { + PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + + if(!StringUtils.isEmpty(pd.getJsonString())){ + Paper paper = Paper.parse(pd.getJsonString()); + PageData paperPd = new PageData(); + String paperID = this.get32UUID(); + res.setData(paperID); + paperPd.put("PAPER_ID", paperID); + paperPd.put("TITLE", paper.getTitle()); + paperPd.put("USER_ID", paper.getUser_id()); + paperPd.put("PAPER_TYPE", paper.getPaper_type()); + paperPd.put("SUBJECT_ID", paper.getSubject_id()); + paperPd.put("GRADE_ID", paper.getGrade_id()); + paperPd.put("EXAM_TIME", paper.getExam_time()); + paperPd.put("SCORE", paper.getScore()); + paperPd.put("PAPER_STATE", "0"); + paperPd.put("REMARK", ""); + String schoolID = Myelfun.getUserID(paper.getUser_id()); + paperPd.put("SCHOOL_ID", schoolID); + paperPd.put("CREATE_DATE", Tools.date2Str(new Date())); + paperPd.put("MODIFY_DATE", Tools.date2Str(new Date())); + + paperService.save(paperPd); + + List questions = paper.getQuestions(); + if(questions != null){ + for(Question question : questions){ + String questionID = this.get32UUID(); + PageData qPd = new PageData(); + qPd.put("QUESTION_ID", questionID); + if(question.getQuestions() != null && question.getQuestions().size() > 0){ + qPd.put("P_ID", "-1"); + }else{ + qPd.put("P_ID", "0"); + } + qPd.put("SUBJECT_ID", paper.getSubject_id()); + qPd.put("CHAPTER_ID", question.getChapter_id()); + qPd.put("PROBLEM_TYPE_ID", question.getProblem_type_id()); + qPd.put("TEACHER_ID", paper.getUser_id()); + qPd.put("SCHOOL_ID", schoolID); + qPd.put("KNOWLEDGE_ID", question.getKnowledge_id()); + qPd.put("CONTENT", question.getContent()); + qPd.put("OPTION_NUM", question.getOption_num()); + qPd.put("OPTION_CONTENT", question.getOption_content()); + qPd.put("ANSWER", question.getAnswer()); + qPd.put("DIFFICULTY", question.getDifficulty()); + qPd.put("ANALYSIS", question.getAnalysis()); + qPd.put("QUESTION_FROM", question.getQuestion_from()); + qPd.put("SUG_SCORE", question.getScore()); + qPd.put("SUG_PART_SCORE", question.getPart_score()); + qPd.put("USER_ID", paper.getUser_id()); + qPd.put("CREATE_DATE", Tools.date2Str(new Date())); + qPd.put("REMARK", ""); + questionService.save(qPd); + + PageData pqPd = new PageData(); + pqPd.put("PAPER_ID",paperID); + pqPd.put("QUESTION_ID",questionID); + pqPd.put("SCORE",question.getScore()); + pqPd.put("PART_SCORE","0"); + pqPd.put("RANK",question.getRank()); + pqPd.put("NO_NAME",question.getNo_name()); + pqPd.put("PAPERQUESTION_ID",this.get32UUID()); + paperquestionService.save(pqPd); + + + if(question.getQuestions() != null){ + List qs = question.getQuestions(); + for(Question q : qs){ + String qID = this.get32UUID(); + PageData cqPd = new PageData(); + cqPd.put("QUESTION_ID", qID); + cqPd.put("P_ID", questionID); + cqPd.put("SUBJECT_ID", paper.getSubject_id()); + cqPd.put("CHAPTER_ID", q.getChapter_id()); + cqPd.put("PROBLEM_TYPE_ID", q.getProblem_type_id()); + cqPd.put("TEACHER_ID", paper.getUser_id()); + cqPd.put("SCHOOL_ID", schoolID); + cqPd.put("KNOWLEDGE_ID", q.getKnowledge_id()); + cqPd.put("CONTENT", q.getContent()); + cqPd.put("OPTION_NUM", q.getOption_num()); + cqPd.put("OPTION_CONTENT", q.getOption_content()); + cqPd.put("ANSWER", q.getAnswer()); + cqPd.put("DIFFICULTY", q.getDifficulty()); + cqPd.put("ANALYSIS", q.getAnalysis()); + cqPd.put("QUESTION_FROM", q.getQuestion_from()); + cqPd.put("SUG_SCORE", q.getScore()); + cqPd.put("SUG_PART_SCORE", q.getSug_part_score()); + cqPd.put("USER_ID", paper.getUser_id()); + cqPd.put("CREATE_DATE", Tools.date2Str(new Date())); + cqPd.put("REMARK", ""); + + questionService.save(cqPd); + + PageData cpqPd = new PageData(); + cpqPd.put("PAPER_ID",paperID); + cpqPd.put("QUESTION_ID",qID); + cpqPd.put("SCORE",q.getScore()); + cpqPd.put("PART_SCORE","0"); + cpqPd.put("RANK",q.getRank()); + cpqPd.put("NO_NAME",q.getNo_name()); + cpqPd.put("PAPERQUESTION_ID",this.get32UUID()); + + paperquestionService.save(cpqPd); + } + } + } + } + + }else{ + res.setDataError(); + } + + return res.toJson(); + } + } diff --git a/src/com/fh/controller/api/V2.java b/src/com/fh/controller/api/V2.java new file mode 100644 index 0000000..48583c4 --- /dev/null +++ b/src/com/fh/controller/api/V2.java @@ -0,0 +1,14 @@ +package com.fh.controller.api; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.fh.controller.base.BaseController; + +@Controller +@RequestMapping(value = "/api/v2") +public class V2 extends BaseController { + + + +} diff --git a/src/com/fh/controller/base/BaseController.java b/src/com/fh/controller/base/BaseController.java index 2c6e7b1..7c566ec 100644 --- a/src/com/fh/controller/base/BaseController.java +++ b/src/com/fh/controller/base/BaseController.java @@ -81,4 +81,6 @@ public class BaseController { } return "ERROR"; } + + } diff --git a/src/com/fh/controller/sunvote/Myelfun.java b/src/com/fh/controller/sunvote/Myelfun.java index abd5ccb..421cbda 100644 --- a/src/com/fh/controller/sunvote/Myelfun.java +++ b/src/com/fh/controller/sunvote/Myelfun.java @@ -9,6 +9,7 @@ import com.fh.service.sunvote.questiontype.QuestionTypeManager; import com.fh.service.sunvote.school.impl.SchoolService; import com.fh.service.sunvote.sclass.impl.SClassService; import com.fh.service.sunvote.subject.impl.SubjectService; +import com.fh.service.sunvote.teacher.TeacherManager; import com.fh.service.sunvote.teacher.impl.TeacherService; import com.fh.service.sunvote.teachingmaterial.impl.TeachingMaterialService; import com.fh.util.PageData; @@ -197,4 +198,20 @@ public class Myelfun { } } + public static String getUserID(String user_id){ + TeacherManager teacherService = (TeacherManager)SpringBeanFactoryUtils.getBean("teacherService"); + PageData pd = new PageData(); + pd.put("ID", user_id); + try { + pd = teacherService.findById(pd); + } catch (Exception e) { + e.printStackTrace(); + } + if(pd != null){ + return pd.getString("SCHOOL_ID"); + }else{ + return "" ; + } + } + } diff --git a/src/com/fh/controller/sunvote/paper/PaperController.java b/src/com/fh/controller/sunvote/paper/PaperController.java index a89f46f..d1dab5f 100644 --- a/src/com/fh/controller/sunvote/paper/PaperController.java +++ b/src/com/fh/controller/sunvote/paper/PaperController.java @@ -8,7 +8,10 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.annotation.Resource; + +import org.apache.shiro.session.Session; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; @@ -16,14 +19,21 @@ import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; + +import com.fh.bean.Paper; +import com.fh.bean.Question; import com.fh.controller.base.BaseController; import com.fh.entity.Page; +import com.fh.entity.system.User; import com.fh.util.AppUtil; +import com.fh.util.Const; import com.fh.util.ObjectExcelView; import com.fh.util.PageData; import com.fh.util.Jurisdiction; import com.fh.util.Tools; +import com.fh.service.api.V1Manager; import com.fh.service.sunvote.paper.PaperManager; +import com.fh.service.sunvote.paperquestion.PaperQuestionManager; /** * 说明:试卷 @@ -37,6 +47,12 @@ public class PaperController extends BaseController { @Resource(name="paperService") private PaperManager paperService; + @Resource(name="paperquestionService") + private PaperQuestionManager paperquestionService; + + @Resource(name = "v1Service") + private V1Manager v1Service ; + /**保存 * @param * @throws Exception @@ -55,6 +71,20 @@ public class PaperController extends BaseController { return mv; } + /**保存 + * @param + * @throws Exception + */ + @RequestMapping(value="/newpaper") + public ModelAndView newPaper() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"新增Paper"); + ModelAndView mv = this.getModelAndView(); + + mv.addObject("msg","success"); + mv.setViewName("save_result"); + return mv; + } + /**删除 * @param out * @throws Exception @@ -62,9 +92,11 @@ public class PaperController extends BaseController { @RequestMapping(value="/delete") public void delete(PrintWriter out) throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"删除Paper"); - if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限 +// if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限 PageData pd = new PageData(); pd = this.getPageData(); + String[] ArrayDATA_IDS = new String[]{pd.getString("PAPER_ID")}; + paperquestionService.deleteAllPaper(ArrayDATA_IDS); paperService.delete(pd); out.write("success"); out.close(); @@ -111,6 +143,173 @@ public class PaperController extends BaseController { return mv; } + @RequestMapping(value="/iteminfo") + public ModelAndView iteminfo() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"Paper详细信息"); + //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + + if(pd.containsKey("PAPER_ID")){ + 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.setSug_score(qpd.getString("SUG_SCORE")); + question.setSug_part_score(qpd.getString("SUG_PART_SCORE")); + 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.setSug_score(q.getString("SUG_SCORE")); + qq.setSug_part_score(q.getString("SUG_PART_SCORE")); + 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()); + logger.info(paper.toJson()); + + } + }catch(Exception ex){ + ex.printStackTrace(); + } + } + mv.setViewName("sunvote/teacher/creat_question"); + mv.addObject("pd", pd); + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 + return mv; + } + + + @RequestMapping(value="/npaper") + public ModelAndView newpaper() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"Paper详细信息"); + //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + Paper paper = new Paper(); + paper.setTitle(pd.getString("NAME")); + paper.setExam_time(pd.getString("TIME")); + Session session = Jurisdiction.getSession(); + User user = (User)session.getAttribute(Const.SESSION_USER); + paper.setUser_id(user.getUSER_ID()); + paper.setPaper_type("1"); + paper.setSubject_id("1"); + paper.setGrade_id("1"); + paper.setQuestions(new ArrayList()); + pd.put("JSON", paper.toJson()); + logger.info(paper.toJson()); + + mv.setViewName("sunvote/teacher/creat_question"); + mv.addObject("pd", pd); + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 + return mv; + } + + + + /**列表 + * @param page + * @throws Exception + */ + @RequestMapping(value="/list2") + public ModelAndView list2(Page page) throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"列表Paper"); + //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + String keywords = pd.getString("keywords"); //关键词检索条件 + if(null != keywords && !"".equals(keywords)){ + pd.put("keywords", keywords.trim()); + } + page.setPd(pd); + List varList = paperService.list(page); //列出Paper列表 + mv.setViewName("sunvote/paper/paper_list2"); + + for(PageData p:varList){ + String examTime = p.getString("EXAM_TIME"); + if(examTime != null){ + try{ + int et = Integer.parseInt(examTime); + String min = (et / 60 ) + "" ; + if(min.length() < 2){ + min = "0" + min ; + } + String sec = (et % 60 ) + "" ; + if(sec.length() < 2){ + sec = "0" + sec ; + } + if(et > 60){ + examTime = min + ":" + sec; + }else{ + examTime = "00:" + sec; + } + }catch(Exception e){ + e.printStackTrace(); + } + } + if(examTime == null){ + examTime = "00:00"; + } + p.put("EXAM_TIME", examTime); + } + + mv.addObject("varList", varList); + mv.addObject("pd", pd); + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 + return mv; + } + /**去新增页面 * @param * @throws Exception @@ -126,6 +325,21 @@ public class PaperController extends BaseController { return mv; } + /**去新增页面 + * @param + * @throws Exception + */ + @RequestMapping(value="/goAddTest") + public ModelAndView goAddTest()throws Exception{ + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + mv.setViewName("sunvote/paper/paper_edit2"); + mv.addObject("msg", "newpaper"); + mv.addObject("pd", pd); + return mv; + } + /**去修改页面 * @param * @throws Exception @@ -150,7 +364,7 @@ public class PaperController extends BaseController { @ResponseBody public Object deleteAll() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"批量删除Paper"); - if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限 +// if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限 PageData pd = new PageData(); Map map = new HashMap(); pd = this.getPageData(); @@ -159,6 +373,7 @@ public class PaperController extends BaseController { if(null != DATA_IDS && !"".equals(DATA_IDS)){ String ArrayDATA_IDS[] = DATA_IDS.split(","); paperService.deleteAll(ArrayDATA_IDS); + paperquestionService.deleteAllPaper(ArrayDATA_IDS); pd.put("msg", "ok"); }else{ pd.put("msg", "no"); diff --git a/src/com/fh/controller/system/login/LoginController.java b/src/com/fh/controller/system/login/LoginController.java index b6b8a0b..b86f9ad 100644 --- a/src/com/fh/controller/system/login/LoginController.java +++ b/src/com/fh/controller/system/login/LoginController.java @@ -21,7 +21,10 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.fh.controller.base.BaseController; +import com.fh.service.api.V1Manager; import com.fh.service.fhoa.datajur.DatajurManager; +import com.fh.service.sunvote.school.SchoolManager; +import com.fh.service.sunvote.teacher.TeacherManager; import com.fh.service.system.appuser.AppuserManager; import com.fh.service.system.buttonrights.ButtonrightsManager; import com.fh.service.system.fhbutton.FhbuttonManager; @@ -70,6 +73,13 @@ public class LoginController extends BaseController { private FHlogManager FHLOG; @Resource(name = "loginimgService") private LogInImgManager loginimgService; + @Resource(name="teacherService") + private TeacherManager teacherService; + @Resource(name="schoolService") + private SchoolManager schoolService; + + @Resource(name = "v1Service") + private V1Manager v1Service ; /** * 访问登录页 @@ -124,6 +134,9 @@ public class LoginController extends BaseController { user.setNAME(pd.getString("NAME")); user.setRIGHTS(pd.getString("RIGHTS")); user.setROLE_ID(pd.getString("ROLE_ID")); + if("57bb1e6f138247a0b05cc721a5da1b64".equals(pd.getString("ROLE_ID"))){ + map.put("teacher", pd.getString("RIGHTS")); + } user.setLAST_LOGIN(pd.getString("LAST_LOGIN")); user.setIP(pd.getString("IP")); user.setSTATUS(pd.getString("STATUS")); @@ -166,6 +179,7 @@ public class LoginController extends BaseController { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); + try { Session session = Jurisdiction.getSession(); User user = (User) session.getAttribute(Const.SESSION_USER); // 读取session中的用户信息(单独用户信息) @@ -189,16 +203,25 @@ public class LoginController extends BaseController { allmenuList = this.getAttributeMenu(session, USERNAME, roleRights, getArrayRoleRights(ROLE_IDS)); // 菜单缓存 List menuList = new ArrayList(); - menuList = this.changeMenuF(allmenuList, session, USERNAME, - changeMenu); // 切换菜单 - if (null == session.getAttribute(USERNAME + Const.SESSION_QX)) { + if (null == session.getAttribute(USERNAME + + Const.SESSION_QX)) { session.setAttribute(USERNAME + Const.SESSION_QX, this.getUQX(USERNAME)); // 主职角色按钮权限放到session中 session.setAttribute(USERNAME + Const.SESSION_QX2, this.getUQX2(USERNAME)); // 副职角色按钮权限放到session中 } this.getRemortIP(USERNAME); // 更新登录IP - mv.setViewName("system/index/main"); + menuList = this.changeMenuF(allmenuList, session, USERNAME, + changeMenu); // 切换菜单 + if (!"teacher".equals(changeMenu)) { + mv.setViewName("system/index/main"); + } else { + PageData tpd = new PageData(); + tpd.put("ID", user.getUSER_ID()); + List teacherInfos = v1Service.getTeacherInfo(tpd); + pd.put("TEACHER", teacherInfos); + mv.setViewName("sunvote/teacher/teacher_main"); + } mv.addObject("user", user); mv.addObject("menuList", menuList); } else { @@ -358,6 +381,11 @@ public class LoginController extends BaseController { session.removeAttribute("changeMenu"); session.setAttribute("changeMenu", "4"); menuList = menuList4; + }else if("teacher".equals(changeMenu)){ + session.setAttribute(USERNAME + Const.SESSION_menuList, + menuList2); + session.removeAttribute("changeMenu"); + session.setAttribute("changeMenu", "index"); } } else { menuList = (List) session.getAttribute(USERNAME diff --git a/src/com/fh/service/api/V1Manager.java b/src/com/fh/service/api/V1Manager.java index 764a744..876cea3 100644 --- a/src/com/fh/service/api/V1Manager.java +++ b/src/com/fh/service/api/V1Manager.java @@ -15,4 +15,9 @@ public interface V1Manager { public List getTestPaperInfo(PageData pd) throws Exception; + public List getQuestionsByPID(PageData pd) throws Exception; + + public List getTeacherInfo(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 f6b8c8c..8107222 100644 --- a/src/com/fh/service/api/impl/V1Service.java +++ b/src/com/fh/service/api/impl/V1Service.java @@ -36,4 +36,14 @@ public class V1Service implements V1Manager { return (List)dao.findForList("V1Mapper.getTestPaperInfo", pd); } + @Override + public List getQuestionsByPID(PageData pd) throws Exception { + return (List)dao.findForList("V1Mapper.getQuestionsByPID", pd); + } + + @Override + public List getTeacherInfo(PageData pd) throws Exception { + return (List)dao.findForList("V1Mapper.getTeacherInfo", pd); + } + } diff --git a/src/com/fh/service/sunvote/paper/impl/PaperService.java b/src/com/fh/service/sunvote/paper/impl/PaperService.java index e367815..975d15b 100644 --- a/src/com/fh/service/sunvote/paper/impl/PaperService.java +++ b/src/com/fh/service/sunvote/paper/impl/PaperService.java @@ -67,7 +67,7 @@ public class PaperService implements PaperManager{ */ @SuppressWarnings("unchecked") public List listAllByType(Page pd)throws Exception{ - return (List)dao.findForList("PaperMapper.listAllByType", pd); + return (List)dao.findForList("PaperMapper.listAllByTypelistPage", pd);//.*listPage.* } /**通过id获取数据 diff --git a/src/com/fh/service/sunvote/paperquestion/PaperQuestionManager.java b/src/com/fh/service/sunvote/paperquestion/PaperQuestionManager.java index 1b5ce46..91b402f 100644 --- a/src/com/fh/service/sunvote/paperquestion/PaperQuestionManager.java +++ b/src/com/fh/service/sunvote/paperquestion/PaperQuestionManager.java @@ -1,6 +1,7 @@ package com.fh.service.sunvote.paperquestion; import java.util.List; + import com.fh.entity.Page; import com.fh.util.PageData; @@ -53,5 +54,12 @@ public interface PaperQuestionManager{ */ public void deleteAll(String[] ArrayDATA_IDS)throws Exception; + /** + * + * @param ArrayDATA_IDS + * @throws Exception + */ + public void deleteAllPaper(String[] ArrayDATA_IDS)throws Exception; + } diff --git a/src/com/fh/service/sunvote/paperquestion/impl/PaperQuestionService.java b/src/com/fh/service/sunvote/paperquestion/impl/PaperQuestionService.java index 33f86ab..4fd9acd 100644 --- a/src/com/fh/service/sunvote/paperquestion/impl/PaperQuestionService.java +++ b/src/com/fh/service/sunvote/paperquestion/impl/PaperQuestionService.java @@ -77,5 +77,13 @@ public class PaperQuestionService implements PaperQuestionManager{ dao.delete("PaperQuestionMapper.deleteAll", ArrayDATA_IDS); } + /**批量删除 + * @param ArrayDATA_IDS + * @throws Exception + */ + public void deleteAllPaper(String[] ArrayDATA_IDS)throws Exception{ + dao.delete("PaperQuestionMapper.deleteAllPaper", ArrayDATA_IDS); + } + } diff --git a/src/com/fh/util/PageData.java b/src/com/fh/util/PageData.java index 5d092ae..b3451a7 100644 --- a/src/com/fh/util/PageData.java +++ b/src/com/fh/util/PageData.java @@ -1,6 +1,7 @@ package com.fh.util; import java.io.BufferedReader; +import java.io.InputStreamReader; import java.io.Reader; import java.util.Collection; import java.util.HashMap; @@ -11,6 +12,7 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; import com.alibaba.druid.proxy.jdbc.ClobProxyImpl; +import com.alibaba.fastjson.JSONObject; public class PageData extends HashMap implements Map{ private static final long serialVersionUID = 1L; @@ -18,7 +20,7 @@ public class PageData extends HashMap implements Map{ Map map = null; HttpServletRequest request; public PageData(HttpServletRequest request){ - this.request = request; + this.request = request; Map properties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); @@ -42,6 +44,19 @@ public class PageData extends HashMap implements Map{ } returnMap.put(name.toUpperCase(), value); } + try { + BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8")); + StringBuilder responseStrBuilder = new StringBuilder(); + String body = ""; + while ((body = streamReader.readLine()) != null){ + responseStrBuilder.append(body); + } + if(!returnMap.containsKey("JSON")){ + returnMap.put("JSON",responseStrBuilder.toString()); + } + } catch (Exception e) { + e.printStackTrace(); + } map = returnMap; } @@ -49,6 +64,16 @@ public class PageData extends HashMap implements Map{ map = new HashMap(); } + + public String getJsonString(){ + Object obj = ""; + if(map != null){ + obj = map.get("JSON"); + } + + return obj.toString() ; + } + @Override public Object get(Object key) { Object obj = null; -- libgit2 0.21.4