From 91a745c927277652792c7e62b2759333c414a0c6 Mon Sep 17 00:00:00 2001 From: Elvis Date: Mon, 11 Jun 2018 16:25:41 +0800 Subject: [PATCH] 完善后台功能 --- WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_edit.jsp | 24 +++++++++++++++++++++--- WebRoot/WEB-INF/jsp/sunvote/paper/paper_list.jsp | 13 +++++++------ WebRoot/WEB-INF/jsp/sunvote/paperquestion/paperquestion_list.jsp | 3 ++- WebRoot/WEB-INF/jsp/sunvote/question/question_list.jsp | 12 +++++------- WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_edit.jsp | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_list.jsp | 372 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ WebRoot/WEB-INF/tld/elfun.tld | 29 +++++++++++++++++++++++++++-- WebRoot/afterService/document/新东方售后政策&改善说明.pdf | Bin 463886 -> 0 bytes resources/mybatis1/sunvote/StudentTestMapper.xml | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ resources/mybatis1/sunvote/TestPaperInfoMapper.xml | 17 +++++++++++++++++ resources/mybatis1/sunvote/TestPaperMapper.xml | 16 ++++++++++++++++ src/com/fh/bean/StudentAnswer.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/bean/TestPaper.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/bean/TestPaperInfo.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/controller/api/V1.java | 642 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/com/fh/controller/sunvote/Myelfun.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/com/fh/controller/sunvote/classroster/ClassRosterController.java | 17 ++++++++++++++++- src/com/fh/controller/sunvote/papertype/PaperTypeController.java | 5 +---- src/com/fh/controller/sunvote/studenttest/StudentTestController.java | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/service/sunvote/studenttest/StudentTestManager.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 21 files changed, 2009 insertions(+), 219 deletions(-) create mode 100644 WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_edit.jsp create mode 100644 WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_list.jsp create mode 100644 resources/mybatis1/sunvote/StudentTestMapper.xml create mode 100644 src/com/fh/bean/StudentAnswer.java create mode 100644 src/com/fh/bean/TestPaper.java create mode 100644 src/com/fh/bean/TestPaperInfo.java create mode 100644 src/com/fh/controller/sunvote/studenttest/StudentTestController.java create mode 100644 src/com/fh/service/sunvote/studenttest/StudentTestManager.java create mode 100644 src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java diff --git a/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_edit.jsp b/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_edit.jsp index 971646f..e851d44 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_edit.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_edit.jsp @@ -33,15 +33,33 @@ - + - + - + - - - - - + + + + + - + - + diff --git a/WebRoot/WEB-INF/jsp/sunvote/question/question_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/question/question_list.jsp index d49df2e..247e024 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/question/question_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/question/question_list.jsp @@ -83,7 +83,6 @@ - @@ -101,12 +100,12 @@ - - + + - - - + + + @@ -117,7 +116,6 @@ -
班级: + +
学生: + +
学期名称: + +
diff --git a/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list.jsp index 21a4482..bc92907 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/paper/paper_list.jsp @@ -1,6 +1,7 @@ <%@ 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="myelfun" uri="/WEB-INF/tld/elfun.tld"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" @@ -93,15 +94,15 @@ ${vs.index+1} ${var.TITLE}${var.USER_ID}${var.PAPER_TYPE}${var.SUBJECT_ID}${var.GRADE_ID}${var.SCHOOL_ID}${myelfun:findTeacherName(var.USER_ID)}${myelfun:findPaperTypeName(var.PAPER_TYPE)}${myelfun:findSubjectCName(var.SUBJECT_ID)}${myelfun:findGradeName(var.GRADE_ID)}${myelfun:findSchoolName(var.SCHOOL_ID)} ${var.CREATE_DATE} ${var.MODIFY_DATE} ${var.EXAM_TIME}${var.PAPER_STATE}${var.PAPER_STATE == 0 ? "未考":"已考试"} ${var.REMARK} diff --git a/WebRoot/WEB-INF/jsp/sunvote/paperquestion/paperquestion_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/paperquestion/paperquestion_list.jsp index 0e41814..80b3230 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/paperquestion/paperquestion_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/paperquestion/paperquestion_list.jsp @@ -1,6 +1,7 @@ <%@ 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="myelfun" uri="/WEB-INF/tld/elfun.tld"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" @@ -87,7 +88,7 @@ ${vs.index+1}${var.PAPER_ID}${myelfun:findPaperName(var.PAPER_ID)} ${var.QUESTION_ID} ${var.SCORE} ${var.PART_SCORE}题目来源 建议试题总分 建议部分分用户ID 创建时间 备注 操作 ${vs.index+1}${var.P_ID}${var.SUBJECT_ID}${var.P_ID.equals("-1") ? "大题":""}${myelfun:findSubjectCName(var.SUBJECT_ID)} ${var.CHAPTER_ID}${var.PROBLEM_TYPE_ID}${var.TEACHER_ID}${var.SCHOOL_ID}${myelfun:findQuestionTypeName(var.PROBLEM_TYPE_ID)}${myelfun:findTeacherName(var.TEACHER_ID)}${myelfun:findSchoolName(var.SCHOOL_ID)} ${var.KNOWLEDGE_ID} ${var.CONTENT} ${var.OPTION_NUM}${var.QUESTION_FROM} ${var.SUG_SCORE} ${var.SUG_PART_SCORE}${var.USER_ID} ${var.CREATE_DATE} ${var.REMARK} diff --git a/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_edit.jsp b/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_edit.jsp new file mode 100644 index 0000000..61ea369 --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_edit.jsp @@ -0,0 +1,150 @@ +<%@ 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"%> + + + + + +
+ +
+
+
+
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
学生ID:
测验ID:
试卷ID:
得分:
班级ID:
+ 保存 + 取消 +
+
+ +
+
+ +
+ +
+ +
+
+ +
+ + + + + <%@ include file="../../system/index/foot.jsp"%> + + + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_list.jsp new file mode 100644 index 0000000..349e72c --- /dev/null +++ b/WebRoot/WEB-INF/jsp/sunvote/studenttest/studenttest_list.jsp @@ -0,0 +1,372 @@ +<%@ 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"%> + + + + + + +
+ +
+
+
+
+
+ + +
+ + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 序号学生ID测验ID试卷ID得分班级ID操作
+ + ${vs.index+1}${var.STUDENT_ID}${var.TEST_ID}${var.PAPER_ID}${var.SCORE}${var.CLASS_ID} + + + + + +
您无权查看
没有相关数据
+ +
+ +
+ +
+ +
+ +
+
+ + + + + + + +
+ + + + + <%@ include file="../../system/index/foot.jsp"%> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebRoot/WEB-INF/tld/elfun.tld b/WebRoot/WEB-INF/tld/elfun.tld index 32e3681..277e870 100644 --- a/WebRoot/WEB-INF/tld/elfun.tld +++ b/WebRoot/WEB-INF/tld/elfun.tld @@ -90,7 +90,7 @@ 根据ID查找教材名称 findTeachingmaterialName com.fh.controller.sunvote.Myelfun - java.lang.String findTeachingmaterialName(String) + java.lang.String findTeachingmaterialName(java.lang.String) ${myelfun:findTeachingmaterialName(obj1)} @@ -98,9 +98,34 @@ 根据ID查找题目类型 findQuestionTypeName com.fh.controller.sunvote.Myelfun - java.lang.String findQuestionTypeName(String) + java.lang.String findQuestionTypeName(java.lang.String) ${myelfun:findQuestionTypeName(obj1)} + + 根据ID查找试卷类型 + findPaperTypeName + com.fh.controller.sunvote.Myelfun + java.lang.String findPaperTypeName(java.lang.String) + ${myelfun:findPaperTypeName(obj1)} + + + + 根据ID查找试卷名称 + findPaperName + com.fh.controller.sunvote.Myelfun + java.lang.String findPaperName(java.lang.String) + ${myelfun:findPaperName(obj1)} + + + + 根据ID查找试卷名称 + findTestPaperName + com.fh.controller.sunvote.Myelfun + java.lang.String findTestPaperName(java.lang.String) + ${myelfun:findTestPaperName(obj1)} + + + diff --git a/WebRoot/afterService/document/新东方售后政策&改善说明.pdf b/WebRoot/afterService/document/新东方售后政策&改善说明.pdf index 3bdf11f..d98219f 100644 Binary files a/WebRoot/afterService/document/新东方售后政策&改善说明.pdf and b/WebRoot/afterService/document/新东方售后政策&改善说明.pdf differ diff --git a/resources/mybatis1/sunvote/StudentTestMapper.xml b/resources/mybatis1/sunvote/StudentTestMapper.xml new file mode 100644 index 0000000..cbfd91d --- /dev/null +++ b/resources/mybatis1/sunvote/StudentTestMapper.xml @@ -0,0 +1,129 @@ + + + + + + + SV_STUDENTTEST + + + + + STUDENT_ID, + TEST_ID, + PAPER_ID, + SCORE, + CLASS_ID, + STUDENTTEST_ID + + + + + #{STUDENT_ID}, + #{TEST_ID}, + #{PAPER_ID}, + #{SCORE}, + #{CLASS_ID}, + #{STUDENTTEST_ID} + + + + + insert into + + ( + + ) values ( + + ) + + + + + delete from + + where + STUDENTTEST_ID = #{STUDENTTEST_ID} + + + + + update + + set + STUDENT_ID = #{STUDENT_ID}, + TEST_ID = #{TEST_ID}, + PAPER_ID = #{PAPER_ID}, + SCORE = #{SCORE}, + CLASS_ID = #{CLASS_ID}, + STUDENTTEST_ID = STUDENTTEST_ID + where + STUDENTTEST_ID = #{STUDENTTEST_ID} + + + + + + + + + + + + + + delete from + + where + STUDENTTEST_ID in + + #{item} + + + + + \ No newline at end of file diff --git a/resources/mybatis1/sunvote/TestPaperInfoMapper.xml b/resources/mybatis1/sunvote/TestPaperInfoMapper.xml index 705b69e..e3cb98e 100644 --- a/resources/mybatis1/sunvote/TestPaperInfoMapper.xml +++ b/resources/mybatis1/sunvote/TestPaperInfoMapper.xml @@ -23,6 +23,7 @@ SUBJECTIVE, NOTE, MARK_NO, + RANK, TESTPAPERINFO_ID @@ -42,6 +43,7 @@ #{SUBJECTIVE}, #{NOTE}, #{MARK_NO}, + #{RANK}, #{TESTPAPERINFO_ID} @@ -83,6 +85,7 @@ SUBJECTIVE = #{SUBJECTIVE}, NOTE = #{NOTE}, MARK_NO = #{MARK_NO}, + RANK = #{RANK}, TESTPAPERINFO_ID = TESTPAPERINFO_ID where TESTPAPERINFO_ID = #{TESTPAPERINFO_ID} @@ -123,8 +126,22 @@ from + where 1 =1 + + and TEST_ID = #{TEST_ID} + + + and STUDENT_ID = #{STUDENT_ID} + + + and PAPER_ID = #{PAPER_ID} + + + and QUESTION_ID = #{QUESTION_ID} + + delete from diff --git a/resources/mybatis1/sunvote/TestPaperMapper.xml b/resources/mybatis1/sunvote/TestPaperMapper.xml index 9d7f483..5bef5e6 100644 --- a/resources/mybatis1/sunvote/TestPaperMapper.xml +++ b/resources/mybatis1/sunvote/TestPaperMapper.xml @@ -117,6 +117,22 @@ from + + where 1 =1 + + + and (PAPER_ID = #{PAPER_ID}) + + + and (SCLASS_ID = #{CLASS_ID}) + + + and (TEACHER_ID = #{TEACHER_ID}) + + + and (NAME = #{NAME}) + + diff --git a/src/com/fh/bean/StudentAnswer.java b/src/com/fh/bean/StudentAnswer.java new file mode 100644 index 0000000..797c7b0 --- /dev/null +++ b/src/com/fh/bean/StudentAnswer.java @@ -0,0 +1,52 @@ +package com.fh.bean; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; + +public class StudentAnswer { + + private String studentId; + + private String score; + + private List questions = new ArrayList(); + + public String getStudentId() { + return studentId; + } + + public void setStudentId(String studentId) { + this.studentId = studentId; + } + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public List getQuestions() { + return questions; + } + + public void setQuestions(List questions) { + this.questions = questions; + } + + + public static StudentAnswer parse(String json){ + Gson gson = new Gson(); + return gson.fromJson(json, StudentAnswer.class); + } + + public String toJson(){ + Gson gson = new Gson(); + return gson.toJson(this); + } + + +} diff --git a/src/com/fh/bean/TestPaper.java b/src/com/fh/bean/TestPaper.java new file mode 100644 index 0000000..504d8dd --- /dev/null +++ b/src/com/fh/bean/TestPaper.java @@ -0,0 +1,176 @@ +package com.fh.bean; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; + +public class TestPaper { + + // 测试ID + private String testpaperId ; + + // 测验标题 + private String name ; + + // 试卷ID + private String paperId ; + + // 班级ID + private String classId ; + + // 教师ID + private String teacherId ; + + // 开始日期 + private String startDate ; + + //结束日期 + private String endDate ; + + //创建日期 + private String createDate ; + + // 其他分数 + private String otherScore ; + + // 最高分 + private String highScore ; + + //最低分 + private String lowScore ; + + // 平均分 + private String avgScore ; + + // 备注 + private String remark ; + + private List students = new ArrayList(); + + public String getTestpaperId() { + return testpaperId; + } + + public void setTestpaperId(String testpaperId) { + this.testpaperId = testpaperId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPaperId() { + return paperId; + } + + public void setPaperId(String paperId) { + this.paperId = paperId; + } + + + + public String getClassId() { + return classId; + } + + public void setClassId(String classId) { + this.classId = classId; + } + + public String getTeacherId() { + return teacherId; + } + + public void setTeacherId(String teacherId) { + this.teacherId = teacherId; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getOtherScore() { + return otherScore; + } + + public void setOtherScore(String otherScore) { + this.otherScore = otherScore; + } + + public String getHighScore() { + return highScore; + } + + public void setHighScore(String highScore) { + this.highScore = highScore; + } + + public String getLowScore() { + return lowScore; + } + + public void setLowScore(String lowScore) { + this.lowScore = lowScore; + } + + public String getAvgScore() { + return avgScore; + } + + public void setAvgScore(String avgScore) { + this.avgScore = avgScore; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + + public List getStudents() { + return students; + } + + public void setStudents(List students) { + this.students = students; + } + + public static TestPaper parse(String json){ + Gson gson = new Gson(); + return gson.fromJson(json, TestPaper.class); + } + + public String toJson(){ + Gson gson = new Gson(); + return gson.toJson(this); + } + +} diff --git a/src/com/fh/bean/TestPaperInfo.java b/src/com/fh/bean/TestPaperInfo.java new file mode 100644 index 0000000..5fd4794 --- /dev/null +++ b/src/com/fh/bean/TestPaperInfo.java @@ -0,0 +1,162 @@ +package com.fh.bean; + +import com.google.gson.Gson; + +public class TestPaperInfo { + + // 测试试卷ID + private String testPaperInfoId ; + + // 问题ID + private String questionId ; + + // 答案 + private String answer ; + + // 是否正确 + private String right; + + // 分数 + private String score ; + + + // 是否点赞 + private String likes ; + + // 回答类型 + private String answerType ; + + // 按键时间 + private String pressTime ; + + // 接收时间 + private String receiverDate ; + + // 是否主观题 + private String subjective ; + + // 笔记 + private String note; + + // 标记等级 + private String markNo ; + + // 排序 + private String rank ; + + + public String getTestPaperInfoId() { + return testPaperInfoId; + } + + public void setTestPaperInfoId(String testPaperInfoId) { + this.testPaperInfoId = testPaperInfoId; + } + + public String getQuestionId() { + return questionId; + } + + public void setQuestionId(String questionId) { + this.questionId = questionId; + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String getRight() { + return right; + } + + public void setRight(String right) { + this.right = right; + } + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public String getLikes() { + return likes; + } + + public void setLikes(String likes) { + this.likes = likes; + } + + public String getAnswerType() { + return answerType; + } + + public void setAnswerType(String answerType) { + this.answerType = answerType; + } + + public String getPressTime() { + return pressTime; + } + + public void setPressTime(String pressTime) { + this.pressTime = pressTime; + } + + public String getReceiverDate() { + return receiverDate; + } + + public void setReceiverDate(String receiverDate) { + this.receiverDate = receiverDate; + } + + public String getSubjective() { + return subjective; + } + + public void setSubjective(String subjective) { + this.subjective = subjective; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public String getMarkNo() { + return markNo; + } + + public void setMarkNo(String markNo) { + this.markNo = markNo; + } + + public String getRank() { + return rank; + } + + public void setRank(String rank) { + this.rank = rank; + } + + public static TestPaperInfo parse(String json){ + Gson gson = new Gson(); + return gson.fromJson(json, TestPaperInfo.class); + } + + public String toJson(){ + Gson gson = new Gson(); + return gson.toJson(this); + } + +} diff --git a/src/com/fh/controller/api/V1.java b/src/com/fh/controller/api/V1.java index 1cb02f1..6439c6f 100644 --- a/src/com/fh/controller/api/V1.java +++ b/src/com/fh/controller/api/V1.java @@ -13,6 +13,9 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.fh.bean.Paper; import com.fh.bean.Question; +import com.fh.bean.StudentAnswer; +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; @@ -40,8 +43,10 @@ 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.studenttest.StudentTestManager; import com.fh.service.sunvote.subject.SubjectManager; import com.fh.service.sunvote.teacher.TeacherManager; +import com.fh.service.sunvote.testpaper.TestPaperManager; import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; import com.fh.util.PageData; import com.fh.util.Tools; @@ -49,125 +54,134 @@ import com.fh.util.Tools; @Controller @RequestMapping(value = "/api/v1") public class V1 extends BaseController { - + @Resource(name = "schoolService") private SchoolManager schoolService; @Resource(name = "basestationService") private BasestationManager basestationService; - - @Resource(name="chapterService") + + @Resource(name = "chapterService") private ChapterManager chapterService; - - @Resource(name="classbasetationService") + + @Resource(name = "classbasetationService") private ClassBasetationManager classbasetationService; - - @Resource(name="classrosterService") + + @Resource(name = "classrosterService") private ClassRosterManager classrosterService; - - @Resource(name="classtypeService") + + @Resource(name = "classtypeService") private ClassTypeManager classtypeService; - - @Resource(name="gradeService") + + @Resource(name = "gradeService") private GradeManager gradeService; - - @Resource(name="coursemanagementService") + + @Resource(name = "coursemanagementService") private CourseManagementManager coursemanagementService; @Resource(name = "keypadService") private KeypadManager keypadService; - - @Resource(name="keypadcheckService") + + @Resource(name = "keypadcheckService") private KeypadCheckManager keypadcheckService; - - @Resource(name="knowledgeService") + + @Resource(name = "knowledgeService") private KnowledgeManager knowledgeService; - - @Resource(name="knowledgechapterService") + + @Resource(name = "knowledgechapterService") private KnowledgeChapterManager knowledgechapterService; - - @Resource(name="paperService") + + @Resource(name = "paperService") private PaperManager paperService; - - @Resource(name="paperclassteacherService") + + @Resource(name = "paperclassteacherService") private PaperClassTeacherManager paperclassteacherService; - - @Resource(name="paperquestionService") + + @Resource(name = "paperquestionService") private PaperQuestionManager paperquestionService; - - @Resource(name="papertypeService") + + @Resource(name = "papertypeService") private PaperTypeManager papertypeService; - - @Resource(name="questionService") + + @Resource(name = "questionService") private QuestionManager questionService; - - @Resource(name="questiontypeService") + + @Resource(name = "questiontypeService") private QuestionTypeManager questiontypeService; - - @Resource(name="schoolgradesubjectService") + + @Resource(name = "schoolgradesubjectService") private SchoolGradeSubjectManager schoolgradesubjectService; - - @Resource(name="sclassService") + + @Resource(name = "sclassService") private SClassManager sclassService; - - @Resource(name="studentService") + + @Resource(name = "studentService") private StudentManager studentService; - - @Resource(name="subjectService") + + @Resource(name = "subjectService") private SubjectManager subjectService; - - @Resource(name="teacherService") + + @Resource(name = "teacherService") private TeacherManager teacherService; - - @Resource(name="testpaperinfoService") + + @Resource(name = "testpaperinfoService") private TestPaperInfoManager testpaperinfoService; + @Resource(name = "testpaperService") + private TestPaperManager testpaperService; + + @Resource(name = "studenttestService") + private StudentTestManager studenttestService; + @Resource(name = "feedbackService") private FeedbackManager feedbackService; @Resource(name = "problemphenomenonService") private ProblemPhenomenonManager problemphenomenonService; - + @Resource(name = "v1Service") - private V1Manager v1Service ; - + private V1Manager v1Service; + @RequestMapping(value = "/login", produces = "application/json;charset=UTF-8") @ResponseBody public Object login() throws Exception { PageData pd = this.getPageData(); ResponseGson res = new ResponseGson(); - if(!pd.containsKey("ACCOUT")){ + if (!pd.containsKey("ACCOUT")) { pd.put("ACCOUT", pd.get("USERNAME")); } - if(((pd.containsKey("USERNAME") || pd.containsKey("ACCOUT")) && pd.containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")){ + if (((pd.containsKey("USERNAME") || pd.containsKey("ACCOUT")) && pd + .containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")) { PageData pageData = teacherService.getUserInfo(pd); - if(pageData != null && pageData.getString("ID") != null){ - pageData.put("PASSWORD", "");//返回参数中不返回密码 + if (pageData != null && pageData.getString("ID") != null) { + pageData.put("PASSWORD", "");// 返回参数中不返回密码 PageData pt = new PageData(); pt.put("TEACHER_ID", pageData.get("ID")); // 在任课表中查找老师教哪些班级,然后查出班级信息 - List classInfoList = v1Service.getTeacherClassInfo(pt); - + List classInfoList = v1Service + .getTeacherClassInfo(pt); + pageData.put("classInfoList", classInfoList); // 在认可表中查找老师教哪些科目,然后查出科目信息 - List subjectList = v1Service.getTeacherSubjectInfo(pt); + List subjectList = v1Service + .getTeacherSubjectInfo(pt); // 一个sql语句完成。 pageData.put("subjectList", subjectList); - + pageData.remove("SUBJECT_IDS"); - + res.setData(pageData); // 填充数据到返回数据中 - }else{ + } else { res.set1Error(); } - }else{ + } else { res.set1Error(); } - + return res.toJson(); } - + @RequestMapping(value = "/class", produces = "application/json;charset=UTF-8") @ResponseBody public Object sclass() throws Exception { @@ -178,193 +192,218 @@ public class V1 extends BaseController { if (pageData != null && pageData.containsKey("ID")) { PageData pt = new PageData(); pt.put("SCLASS_ID", pageData.get("ID")); - List studentList = v1Service - .getClassStudent(pt); + List studentList = v1Service.getClassStudent(pt); pageData.put("studentList", studentList); res.setData(pageData); } else { res.set2Error(); } - }else{ + } else { res.set2Error(); } return res.toJson(); } - + @RequestMapping(value = "/keypadscan", produces = "application/json;charset=UTF-8") @ResponseBody public Object keypadScan() throws Exception { PageData pd = this.getPageData(); - ResponseGson res = new ResponseGson(); - pd.put("KEYPADCHECK_ID", get32UUID()); //主键 - pd.put("CREATE_DATE", Tools.date2Str(new Date())); //创建时间 - try{ + ResponseGson res = new ResponseGson(); + String ID = get32UUID(); + pd.put("KEYPADCHECK_ID", ID); // 主键 + pd.put("CREATE_DATE", Tools.date2Str(new Date())); // 创建时间 + try { keypadcheckService.save(pd); + res.setData(ID); res.setSuccess(); - }catch(Exception ex){ + } catch (Exception ex) { res.setDataError(); } return res.toJson(); } - + @RequestMapping(value = "/paper", produces = "application/json;charset=UTF-8") @ResponseBody public Object paper() throws Exception { PageData pd = this.getPageData(); ResponseGson> res = new ResponseGson>(); - if(pd.containsKey("PAPER_TYPE") && pd.containsKey("USER_ID")){ + 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")); - if(pd.containsKey("CURRENTPAGE")){ + if (pd.containsKey("CURRENTPAGE")) { String curpage = pd.getString("CURRENTPAGE"); - try{ + try { page.setCurrentPage(Integer.parseInt(curpage)); - }catch(Exception ex){} + } catch (Exception ex) { + } } - if(pd.containsKey("SHOWCOUNT")){ + if (pd.containsKey("SHOWCOUNT")) { String showCount = pd.getString("SHOWCOUNT"); - try{ + try { page.setShowCount(Integer.parseInt(showCount)); - }catch(Exception ex){} - }else{ + } catch (Exception ex) { + } + } else { page.setShowCount(100); } List pageList = paperService.listAllByType(page); res.setData(pageList); - }else{ + } else { res.setParmError(); } return res.toJson(); } - - @RequestMapping(value = "/testpaper", produces = "application/json;charset=UTF-8") + + @RequestMapping(value = "/paperinfo", produces = "application/json;charset=UTF-8") @ResponseBody - public Object testpaper() throws Exception { + public Object paperInfo() throws Exception { PageData pd = this.getPageData(); 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); - 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); + 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.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()); + res.setData(paper); + logger.info(paper.toJson()); + } - paper.getQuestions().add(question); - } - - - res.setData(paper); + } catch (Exception ex) { + ex.printStackTrace(); } - }catch(Exception ex){ + } catch (Exception ex) { ex.printStackTrace(); res.setError(); } - }else{ + } else { res.setOtherError(); } return res.toJson(); } - + @RequestMapping(value = "/paperquestion", produces = "application/json;charset=UTF-8") @ResponseBody public Object paperQuestion() throws Exception { PageData pd = this.getPageData(); ResponseGson res = new ResponseGson(); - + 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())){ + + 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", ""); + 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())); - + 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){ + 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){ + if (question.getQuestions() != null + && question.getQuestions().size() > 0) { qPd.put("P_ID", "-1"); - }else{ + } else { qPd.put("P_ID", "0"); } qPd.put("SUBJECT_ID", paper.getSubject_id()); @@ -386,21 +425,20 @@ public class V1 extends BaseController { 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()); + 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){ + + if (question.getQuestions() != null) { List qs = question.getQuestions(); - for(Question q : qs){ + for (Question q : qs) { String qID = this.get32UUID(); PageData cqPd = new PageData(); cqPd.put("QUESTION_ID", qID); @@ -423,29 +461,247 @@ public class V1 extends BaseController { 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()); - + 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{ + + } else { res.setDataError(); } - + + return res.toJson(); + } + + // 上传测验成绩 + @RequestMapping(value = "/uploadtestpaper", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object uploadTestpaper() { + PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + if (!StringUtils.isEmpty(pd.getJsonString())) { + TestPaper testPaper = TestPaper.parse(pd.getJsonString()); + try { + PageData testPd = new PageData(); + String testPaperId = this.get32UUID(); + testPd.put("TESTPAPER_ID", testPaperId); + testPd.put("TEACHER_ID", testPaper.getTeacherId()); + testPd.put("NAME", testPaper.getName()); + testPd.put("PAPER_ID", testPaper.getPaperId()); + testPd.put("SCLASS_ID", testPaper.getClassId()); + testPd.put("START_DATE", testPaper.getStartDate()); + testPd.put("END_DATE", testPaper.getEndDate()); + testPd.put( + "CREATE_DATE", + testPaper.getCreateDate() == null ? Tools + .date2Str(new Date()) : testPaper + .getCreateDate()); + 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("REMARK", testPaper.getRemark()); + testpaperService.save(testPd); + if (testPaper.getStudents() != null) { + for (StudentAnswer studentAnswer : testPaper.getStudents()) { + if (studentAnswer.getQuestions() != null) { + PageData studentPageData = new PageData(); + studentPageData.put("STUDENTTEST_ID", get32UUID()); + 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()); + studenttestService.save(studentPageData); + + for (TestPaperInfo testPaperInfo : studentAnswer + .getQuestions()) { + PageData testInfoPd = new PageData(); + testInfoPd.put("TESTPAPERINFO_ID", + this.get32UUID()); + testInfoPd.put("PAPER_ID", + testPaper.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()); + 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()); + testpaperinfoService.save(testInfoPd); + } + } + } + } + res.setData(testPaperId); + } catch (Exception e) { + e.printStackTrace(); + res.setError(); + res.setMessage(e.getMessage()); + } + } else { + res.setDataError(); + } + + return res.toJson(); + + } + + // 下载测验成绩 + @RequestMapping(value = "/downloadtestpaper", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object downloadTestpaper() { + PageData pd = this.getPageData(); + ResponseGson res = new ResponseGson(); + + String paperId = pd.getString("ID"); + + if (!StringUtils.isEmpty(paperId)) { + TestPaper testPaper = new TestPaper(); + try { + pd.put("TESTPAPER_ID", paperId); + PageData testPd = testpaperService.findById(pd); + if (testPd != null) { + testPaper.setTestpaperId(paperId); + testPaper.setTeacherId(testPd.getString("TEACHER_ID")); + testPaper.setName(testPd.getString("NAME")); + testPaper.setPaperId(testPd.getString("PAPER_ID")); + testPaper.setClassId(testPd.getString("SCLASS_ID")); + testPaper.setStartDate(testPd.getString("START_DATE")); + testPaper.setEndDate(testPd.getString("END_DATE")); + testPaper.setCreateDate(testPd.getString("CREATE_DATE")); + testPaper.setOtherScore(testPd.getString("OTHER_SCORE")); + testPaper.setHighScore(testPd.getString("HIGHT_SCORE")); + testPaper.setLowScore(testPd.getString("LOW_SCORE")); + testPaper.setAvgScore(testPd.getString("AVG_SCORE")); + testPaper.setRemark(testPd.getString("REMARK")); + PageData testInfof = new PageData(); + testInfof.put("TEST_ID", paperId); + + List studentList = studenttestService + .listAll(testInfof); + + for (PageData sPageData : studentList) { + StudentAnswer studentAnswer = new StudentAnswer(); + testInfof.put("STDUENT_ID", + sPageData.getString("STDUENT_ID")); + studentAnswer.setScore(sPageData.getString("SCORE")); + List list = testpaperinfoService + .listAll(testInfof); + for (PageData testInfoPd : list) { + TestPaperInfo testPaperInfo = new TestPaperInfo(); + testPaperInfo.setTestPaperInfoId(testInfoPd + .getString("TESTPAPERINFO_ID")); + testPaperInfo.setQuestionId(testInfoPd + .getString("QUESTION_ID")); + testPaperInfo.setAnswer(testInfoPd + .getString("ANSWER")); + testPaperInfo.setRight(testInfoPd + .getString("RIGHT")); + testPaperInfo.setScore(testInfoPd + .getString("SCORE")); + testPaperInfo.setLikes(testInfoPd + .getString("LIKES")); + testPaperInfo.setAnswerType(testInfoPd + .getString("ANSWER_TYPE")); + testPaperInfo.setPressTime(testInfoPd + .getString("PRESS_TIME")); + testPaperInfo.setReceiverDate(testInfoPd + .getString("RECEIVER_DATE")); + testPaperInfo.setSubjective(testInfoPd + .getString("SUBJECTIVE")); + testPaperInfo.setNote(testInfoPd.getString("NOTE")); + testPaperInfo.setMarkNo(testInfoPd + .getString("MARK_NO")); + testPaperInfo.setRank(testInfoPd.getString("RANK")); + studentAnswer.getQuestions().add(testPaperInfo); + } + testPaper.getStudents().add(studentAnswer); + } + } + + res.setData(testPaper); + } catch (Exception e) { + e.printStackTrace(); + res.setError(); + } + } + return res.toJson(); + } + // 下载测验成绩 + @RequestMapping(value = "/testpaper", produces = "application/json;charset=UTF-8") + @ResponseBody + public Object testpaper() { + PageData pd = this.getPageData(); + ResponseGson> res = new ResponseGson(); + pd.put("TEACHER_ID", pd.getString("USER_ID")); + try { + List pageList = testpaperService.listAll(pd); + List list = new ArrayList(); + if (pageList != null) { + for (PageData testPd : pageList) { + TestPaper testPaper = new TestPaper(); + testPaper.setTestpaperId(testPd.getString("TESTPAPER_ID")); + testPaper.setTeacherId(testPd.getString("TEACHER_ID")); + testPaper.setName(testPd.getString("NAME")); + testPaper.setPaperId(testPd.getString("PAPER_ID")); + testPaper.setClassId(testPd.getString("SCLASS_ID")); + testPaper.setStartDate(testPd.getString("START_DATE")); + testPaper.setEndDate(testPd.getString("END_DATE")); + testPaper.setCreateDate(testPd.getString("CREATE_DATE")); + testPaper.setOtherScore(testPd.getString("OTHER_SCORE")); + testPaper.setHighScore(testPd.getString("HIGHT_SCORE")); + testPaper.setLowScore(testPd.getString("LOW_SCORE")); + testPaper.setAvgScore(testPd.getString("AVG_SCORE")); + testPaper.setRemark(testPd.getString("REMARK")); + list.add(testPaper); + } + } + res.setData(list); + } catch (Exception e) { + res.setError(); + res.setMessage(e.getMessage()); + e.printStackTrace(); + } + + return res.toJson(); + + } } diff --git a/src/com/fh/controller/sunvote/Myelfun.java b/src/com/fh/controller/sunvote/Myelfun.java index bf7eb5d..1ae5403 100644 --- a/src/com/fh/controller/sunvote/Myelfun.java +++ b/src/com/fh/controller/sunvote/Myelfun.java @@ -5,6 +5,8 @@ import org.springframework.stereotype.Service; import com.fh.service.sunvote.basestation.impl.BasestationService; import com.fh.service.sunvote.classtype.impl.ClassTypeService; import com.fh.service.sunvote.grade.impl.GradeService; +import com.fh.service.sunvote.paper.PaperManager; +import com.fh.service.sunvote.papertype.PaperTypeManager; import com.fh.service.sunvote.questiontype.QuestionTypeManager; import com.fh.service.sunvote.school.impl.SchoolService; import com.fh.service.sunvote.sclass.impl.SClassService; @@ -14,6 +16,7 @@ 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.service.sunvote.term.TermManager; +import com.fh.service.sunvote.testpaper.TestPaperManager; import com.fh.util.PageData; import com.fh.util.SpringBeanFactoryUtils; @@ -206,7 +209,7 @@ public class Myelfun { * @return * @throws Exception */ - public static String findTeachingmaterialName(int id) throws Exception { + public static String findTeachingmaterialName(String id) throws Exception { TeachingMaterialService teachingmaterialService = (TeachingMaterialService)SpringBeanFactoryUtils.getBean("teachingmaterialService"); PageData pageData = new PageData(); pageData.put("ID", id); @@ -224,7 +227,7 @@ public class Myelfun { * @return * @throws Exception */ - public static String findQuestionTypeName(int id) throws Exception { + public static String findQuestionTypeName(String id) throws Exception { QuestionTypeManager questiontypeService = (QuestionTypeManager)SpringBeanFactoryUtils.getBean("questiontypeService"); PageData pageData = new PageData(); pageData.put("QUESTIONTYPE_ID", id); @@ -252,4 +255,53 @@ public class Myelfun { } } + public static String findPaperTypeName(String id){ + PaperTypeManager papertypeService = (PaperTypeManager)SpringBeanFactoryUtils.getBean("papertypeService"); + PageData pageData = new PageData(); + pageData.put("ID", id); + try { + pageData = papertypeService.findById(pageData); + } catch (Exception e) { + e.printStackTrace(); + } + if(pageData != null){ + return pageData.getString("NAME"); + }else{ + return "" ; + } + } + + public static String findPaperName(String id){ + PaperManager paperService = (PaperManager)SpringBeanFactoryUtils.getBean("paperService"); + PageData pageData = new PageData(); + pageData.put("PAPER_ID", id); + try { + pageData = paperService.findById(pageData); + } catch (Exception e) { + e.printStackTrace(); + } + if(pageData != null){ + return pageData.getString("TITLE"); + }else{ + return "" ; + } + } + + public static String findTestPaperName(String id){ + TestPaperManager testpaperService = (TestPaperManager)SpringBeanFactoryUtils.getBean("testpaperService"); + PageData pageData = new PageData(); + pageData.put("TESTPAPER_ID", id); + try { + pageData = testpaperService.findById(pageData); + } catch (Exception e) { + e.printStackTrace(); + } + if(pageData != null){ + return pageData.getString("NAME"); + }else{ + return "" ; + } + } + + } diff --git a/src/com/fh/controller/sunvote/classroster/ClassRosterController.java b/src/com/fh/controller/sunvote/classroster/ClassRosterController.java index 9d96d4e..a94e73e 100644 --- a/src/com/fh/controller/sunvote/classroster/ClassRosterController.java +++ b/src/com/fh/controller/sunvote/classroster/ClassRosterController.java @@ -137,8 +137,16 @@ public class ClassRosterController extends BaseController { PageData pd = new PageData(); pd = this.getPageData(); mv.setViewName("sunvote/classroster/classroster_edit"); + + List classList = sclassService.listAll(pd); + List termList = termService.listAll(pd); + List studentList = studentService.listAll(pd); + mv.addObject("msg", "save"); mv.addObject("pd", pd); + mv.addObject("classList", classList); + mv.addObject("termList", termList); + mv.addObject("studentList", studentList); return mv; } @@ -153,8 +161,15 @@ public class ClassRosterController extends BaseController { pd = this.getPageData(); pd = classrosterService.findById(pd); //根据ID读取 mv.setViewName("sunvote/classroster/classroster_edit"); - mv.addObject("msg", "edit"); + List classList = sclassService.listAll(pd); + List termList = termService.listAll(pd); + List studentList = studentService.listAll(pd); + + mv.addObject("msg", "save"); mv.addObject("pd", pd); + mv.addObject("classList", classList); + mv.addObject("termList", termList); + mv.addObject("studentList", studentList); return mv; } diff --git a/src/com/fh/controller/sunvote/papertype/PaperTypeController.java b/src/com/fh/controller/sunvote/papertype/PaperTypeController.java index ff8b11b..a896154 100644 --- a/src/com/fh/controller/sunvote/papertype/PaperTypeController.java +++ b/src/com/fh/controller/sunvote/papertype/PaperTypeController.java @@ -45,10 +45,10 @@ public class PaperTypeController extends BaseController { @RequestMapping(value="/save") public ModelAndView save() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"新增PaperType"); - if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限 ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); + pd.put("ID", this.get32UUID()); papertypeService.save(pd); mv.addObject("msg","success"); mv.setViewName("save_result"); @@ -62,7 +62,6 @@ public class PaperTypeController extends BaseController { @RequestMapping(value="/delete") public void delete(PrintWriter out) throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"删除PaperType"); - if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限 PageData pd = new PageData(); pd = this.getPageData(); papertypeService.delete(pd); @@ -77,7 +76,6 @@ public class PaperTypeController extends BaseController { @RequestMapping(value="/edit") public ModelAndView edit() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"修改PaperType"); - if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限 ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); @@ -94,7 +92,6 @@ public class PaperTypeController extends BaseController { @RequestMapping(value="/list") public ModelAndView list(Page page) throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"列表PaperType"); - //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); diff --git a/src/com/fh/controller/sunvote/studenttest/StudentTestController.java b/src/com/fh/controller/sunvote/studenttest/StudentTestController.java new file mode 100644 index 0000000..0f29589 --- /dev/null +++ b/src/com/fh/controller/sunvote/studenttest/StudentTestController.java @@ -0,0 +1,213 @@ +package com.fh.controller.sunvote.studenttest; + +import java.io.PrintWriter; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import org.springframework.beans.propertyeditors.CustomDateEditor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.WebDataBinder; +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.controller.base.BaseController; +import com.fh.entity.Page; +import com.fh.util.AppUtil; +import com.fh.util.ObjectExcelView; +import com.fh.util.PageData; +import com.fh.util.Jurisdiction; +import com.fh.util.Tools; +import com.fh.service.sunvote.studenttest.StudentTestManager; + +/** + * 说明:学生报表 + * 创建人:FH Q313596790 + * 创建时间:2018-06-07 + */ +@Controller +@RequestMapping(value="/studenttest") +public class StudentTestController extends BaseController { + + String menuUrl = "studenttest/list.do"; //菜单地址(权限用) + @Resource(name="studenttestService") + private StudentTestManager studenttestService; + + /**保存 + * @param + * @throws Exception + */ + @RequestMapping(value="/save") + public ModelAndView save() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"新增StudentTest"); + if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限 + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + pd.put("STUDENTTEST_ID", this.get32UUID()); //主键 + studenttestService.save(pd); + mv.addObject("msg","success"); + mv.setViewName("save_result"); + return mv; + } + + /**删除 + * @param out + * @throws Exception + */ + @RequestMapping(value="/delete") + public void delete(PrintWriter out) throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"删除StudentTest"); + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限 + PageData pd = new PageData(); + pd = this.getPageData(); + studenttestService.delete(pd); + out.write("success"); + out.close(); + } + + /**修改 + * @param + * @throws Exception + */ + @RequestMapping(value="/edit") + public ModelAndView edit() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"修改StudentTest"); + if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限 + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + studenttestService.edit(pd); + mv.addObject("msg","success"); + mv.setViewName("save_result"); + return mv; + } + + /**列表 + * @param page + * @throws Exception + */ + @RequestMapping(value="/list") + public ModelAndView list(Page page) throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"列表StudentTest"); + //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 = studenttestService.list(page); //列出StudentTest列表 + mv.setViewName("sunvote/studenttest/studenttest_list"); + mv.addObject("varList", varList); + mv.addObject("pd", pd); + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 + return mv; + } + + /**去新增页面 + * @param + * @throws Exception + */ + @RequestMapping(value="/goAdd") + public ModelAndView goAdd()throws Exception{ + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + mv.setViewName("sunvote/studenttest/studenttest_edit"); + mv.addObject("msg", "save"); + mv.addObject("pd", pd); + return mv; + } + + /**去修改页面 + * @param + * @throws Exception + */ + @RequestMapping(value="/goEdit") + public ModelAndView goEdit()throws Exception{ + ModelAndView mv = this.getModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + pd = studenttestService.findById(pd); //根据ID读取 + mv.setViewName("sunvote/studenttest/studenttest_edit"); + mv.addObject("msg", "edit"); + mv.addObject("pd", pd); + return mv; + } + + /**批量删除 + * @param + * @throws Exception + */ + @RequestMapping(value="/deleteAll") + @ResponseBody + public Object deleteAll() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"批量删除StudentTest"); + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限 + PageData pd = new PageData(); + Map map = new HashMap(); + pd = this.getPageData(); + List pdList = new ArrayList(); + String DATA_IDS = pd.getString("DATA_IDS"); + if(null != DATA_IDS && !"".equals(DATA_IDS)){ + String ArrayDATA_IDS[] = DATA_IDS.split(","); + studenttestService.deleteAll(ArrayDATA_IDS); + pd.put("msg", "ok"); + }else{ + pd.put("msg", "no"); + } + pdList.add(pd); + map.put("list", pdList); + return AppUtil.returnObject(pd, map); + } + + /**导出到excel + * @param + * @throws Exception + */ + @RequestMapping(value="/excel") + public ModelAndView exportExcel() throws Exception{ + logBefore(logger, Jurisdiction.getUsername()+"导出StudentTest到excel"); + if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} + ModelAndView mv = new ModelAndView(); + PageData pd = new PageData(); + pd = this.getPageData(); + Map dataMap = new HashMap(); + List titles = new ArrayList(); + titles.add("学生ID"); //1 + titles.add("测验ID"); //2 + titles.add("试卷ID"); //3 + titles.add("得分"); //4 + titles.add("班级ID"); //5 + dataMap.put("titles", titles); + List varOList = studenttestService.listAll(pd); + List varList = new ArrayList(); + for(int i=0;i list(Page page)throws Exception; + + /**列表(全部) + * @param pd + * @throws Exception + */ + public List listAll(PageData pd)throws Exception; + + /**通过id获取数据 + * @param pd + * @throws Exception + */ + public PageData findById(PageData pd)throws Exception; + + /**批量删除 + * @param ArrayDATA_IDS + * @throws Exception + */ + public void deleteAll(String[] ArrayDATA_IDS)throws Exception; + +} + diff --git a/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java b/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java new file mode 100644 index 0000000..bcc5ee2 --- /dev/null +++ b/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java @@ -0,0 +1,82 @@ +package com.fh.service.sunvote.studenttest.impl; + +import java.util.List; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import com.fh.dao.DaoSupport; +import com.fh.entity.Page; +import com.fh.util.PageData; +import com.fh.service.sunvote.studenttest.StudentTestManager; + +/** + * 说明: 学生报表 + * 创建人:FH Q313596790 + * 创建时间:2018-06-07 + * @version + */ +@Service("studenttestService") +public class StudentTestService implements StudentTestManager{ + + @Resource(name = "daoSupport") + private DaoSupport dao; + + /**新增 + * @param pd + * @throws Exception + */ + public void save(PageData pd)throws Exception{ + dao.save("StudentTestMapper.save", pd); + } + + /**删除 + * @param pd + * @throws Exception + */ + public void delete(PageData pd)throws Exception{ + dao.delete("StudentTestMapper.delete", pd); + } + + /**修改 + * @param pd + * @throws Exception + */ + public void edit(PageData pd)throws Exception{ + dao.update("StudentTestMapper.edit", pd); + } + + /**列表 + * @param page + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List list(Page page)throws Exception{ + return (List)dao.findForList("StudentTestMapper.datalistPage", page); + } + + /**列表(全部) + * @param pd + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List listAll(PageData pd)throws Exception{ + return (List)dao.findForList("StudentTestMapper.listAll", pd); + } + + /**通过id获取数据 + * @param pd + * @throws Exception + */ + public PageData findById(PageData pd)throws Exception{ + return (PageData)dao.findForObject("StudentTestMapper.findById", pd); + } + + /**批量删除 + * @param ArrayDATA_IDS + * @throws Exception + */ + public void deleteAll(String[] ArrayDATA_IDS)throws Exception{ + dao.delete("StudentTestMapper.deleteAll", ArrayDATA_IDS); + } + +} + -- libgit2 0.21.4