Commit ce70231eaa48ad076bae44fe8c4244475535a351

Authored by 孙向锦
1 parent 02f157fa

增加接口

WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
@@ -73,29 +73,29 @@ @@ -73,29 +73,29 @@
73 </thead> 73 </thead>
74 <tbody> 74 <tbody>
75 <tr> 75 <tr>
76 - <td class="center">班级课程总分</td>  
77 - <td class="center"></td> 76 + <td class="center"><div style="width:150px;">班级课程总分</div></td>
  77 + <td class="center"><div style="width:150px;"></div></td>
78 <td class="center"><div style="width:80px;"></div></td> 78 <td class="center"><div style="width:80px;"></div></td>
79 <c:forEach items="${testpaperList}" var="var" varStatus="vs"> 79 <c:forEach items="${testpaperList}" var="var" varStatus="vs">
80 <td class="center"><div style="width:80px;margin:0 auto;">${var.TOTAL_SCORE}</div></td> 80 <td class="center"><div style="width:80px;margin:0 auto;">${var.TOTAL_SCORE}</div></td>
81 </c:forEach> 81 </c:forEach>
82 </tr> 82 </tr>
83 <tr> 83 <tr>
84 - <td class="center">班级课程平均分</td>  
85 - <td class="center"></td>  
86 - <td class="center"></td> 84 + <td class="center"><div style="width:150px;">班级课程平均分</div></td>
  85 + <td class="center"><div style="width:150px;"></div></td>
  86 + <td class="center"><div style="width:80px;"></div></td>
87 <c:forEach items="${testpaperList}" var="var" varStatus="vs"> 87 <c:forEach items="${testpaperList}" var="var" varStatus="vs">
88 - <td class="center">${var.AVG_SCORE}</td> 88 + <td class="center"><div style="width:80px;margin:0 auto;">${var.AVG_SCORE}</div></td>
89 </c:forEach> 89 </c:forEach>
90 </tr> 90 </tr>
91 <tr> 91 <tr>
92 - <td class="center">班级课程平均得分率</td>  
93 - <td class="center"></td>  
94 - <td class="center"></td> 92 + <td class="center"><div style="width:150px;">班级课程平均得分率</div></td>
  93 + <td class="center"><div style="width:150px;"></div></td>
  94 + <td class="center"><div style="width:80px;"></div></td>
95 <c:forEach items="${testpaperList}" var="var" varStatus="vs"> 95 <c:forEach items="${testpaperList}" var="var" varStatus="vs">
96 - <td class="center"><fmt:formatNumber type="number" 96 + <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number"
97 value="${var.TOTAL_SCORE == 0 ? 0: (var.AVG_SCORE / var.TOTAL_SCORE * 100)}" 97 value="${var.TOTAL_SCORE == 0 ? 0: (var.AVG_SCORE / var.TOTAL_SCORE * 100)}"
98 - maxFractionDigits="2" />%</td> 98 + maxFractionDigits="2" />%</div></td>
99 </c:forEach> 99 </c:forEach>
100 </tr> 100 </tr>
101 101
@@ -106,15 +106,15 @@ @@ -106,15 +106,15 @@
106 <%-- <td class="center"><a 106 <%-- <td class="center"><a
107 href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a> 107 href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a>
108 </td> --%> 108 </td> --%>
109 - <td class="center"><a  
110 - onclick="student('${info.CLASS_ID}','${var.ID}')">${var.NAME}</a> 109 + <td class="center"><div style="width:150px;"><a
  110 + onclick="student('${info.CLASS_ID}','${var.ID}')">${var.NAME}</a></div>
111 </td> 111 </td>
112 - <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number" 112 + <td class="center"><div style="width:150px;"><fmt:formatNumber type="number"
113 value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}" 113 value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}"
114 maxFractionDigits="2" />%</div></td> 114 maxFractionDigits="2" />%</div></td>
115 - <td class="center">${var.GETSCORE }</td> 115 + <td class="center"><div style="width:80px;margin:0 auto;">${var.GETSCORE }</div></td>
116 <c:forEach items="${testpaperList}" var="var1" varStatus="vs1"> 116 <c:forEach items="${testpaperList}" var="var1" varStatus="vs1">
117 - <td class="center"><div style="width:80px;margin:0 auto;"><c:set var="TEST_ID" 117 + <td class="center"><div style="width:180px;margin:0 auto;"><c:set var="TEST_ID"
118 value="${var1.TESTPAPER_ID}" /> ${var[TEST_ID] }</div></td> 118 value="${var1.TESTPAPER_ID}" /> ${var[TEST_ID] }</div></td>
119 </c:forEach> 119 </c:forEach>
120 </tr> 120 </tr>
@@ -268,12 +268,13 @@ @@ -268,12 +268,13 @@
268 $("#simple-table").tablescroller(options); 268 $("#simple-table").tablescroller(options);
269 269
270 270
271 - var name_height = $(".kc").last().parent().height()-18; 271 + var name_height = $(".kc").last().parent().height()-18.5;
  272 + console.log(name_height);
272 $(".th_name").height(name_height); 273 $(".th_name").height(name_height);
273 }); 274 });
274 275
275 276
276 - console.log('${studentList}'); 277 + //console.log('${studentList}');
277 278
278 </script> 279 </script>
279 280
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_test.jsp
@@ -52,51 +52,51 @@ @@ -52,51 +52,51 @@
52 style="margin-top:0px;margin-bottom:0;"> 52 style="margin-top:0px;margin-bottom:0;">
53 <thead> 53 <thead>
54 <tr> 54 <tr>
55 - <th class="center"><div style="width:80px;">键盘</div></th> 55 + <th class="center"><div style="width:109px;">键盘</div></th>
56 <th class="center"><div style="width:80px;">学号</div></th> 56 <th class="center"><div style="width:80px;">学号</div></th>
57 <th class="center"><div style="width:80px;">姓名</div></th> 57 <th class="center"><div style="width:80px;">姓名</div></th>
58 <th class="center"><div style="width:80px;">得分</div></th> 58 <th class="center"><div style="width:80px;">得分</div></th>
59 <!-- <th class="center"><div style="width:80px;">正确率</div></th> --> 59 <!-- <th class="center"><div style="width:80px;">正确率</div></th> -->
60 <th class="center"><div style="width:80px;">排名</div></th> 60 <th class="center"><div style="width:80px;">排名</div></th>
61 <c:forEach items="${questionInfo}" var="var" varStatus="vs"> 61 <c:forEach items="${questionInfo}" var="var" varStatus="vs">
62 - <th class="center"><div style="width:80px;">题目${vs.index+1}</div></th> 62 + <th class="center"><div style="width:80px;margin:0 auto;">题目${vs.index+1}</div></th>
63 </c:forEach> 63 </c:forEach>
64 <!-- <th class="center"><div style="width:150px;">非选择题得分</div></th> --> 64 <!-- <th class="center"><div style="width:150px;">非选择题得分</div></th> -->
65 - <th class="center"><div style="width:80px;">总分</div></th> 65 + <th class="center"><div style="width:80px;margin:0 auto;">总分</div></th>
66 </tr> 66 </tr>
67 </thead> 67 </thead>
68 <tbody> 68 <tbody>
69 <tr> 69 <tr>
70 - <td class="center">--</td>  
71 - <td class="center">--</td>  
72 - <td class="center">--</td>  
73 - <td class="center">--</td> 70 + <td class="center"><div style="width:109px;">--</div></td>
  71 + <td class="center"><div style="width:80px;">--</div></td>
  72 + <td class="center"><div style="width:80px;">--</div></td>
  73 + <td class="center"><div style="width:80px;">--</div></td>
74 <!-- <td class="center"></td> --> 74 <!-- <td class="center"></td> -->
75 - <td class="center">--</td> 75 + <td class="center"><div style="width:80px;">--</div></td>
76 <c:forEach items="${questionInfo}" var="var" varStatus="vs"> 76 <c:forEach items="${questionInfo}" var="var" varStatus="vs">
77 - <td class="center"><fmt:formatNumber type="number" 77 + <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number"
78 value="${var == 0 ? 0: (var / classInfo.studentNum * 100)}" 78 value="${var == 0 ? 0: (var / classInfo.studentNum * 100)}"
79 - maxFractionDigits="1" />%</td> 79 + maxFractionDigits="1" />%</div></td>
80 </c:forEach> 80 </c:forEach>
81 <!-- <td class="center"></td> --> 81 <!-- <td class="center"></td> -->
82 - <td class="center"></td> 82 + <td class="center"><div style="width:80px;margin:0 auto;"></div></td>
83 </tr> 83 </tr>
84 84
85 <c:choose> 85 <c:choose>
86 <c:when test="${not empty studentInfo}"> 86 <c:when test="${not empty studentInfo}">
87 <c:forEach items="${studentInfo}" var="var" varStatus="vs"> 87 <c:forEach items="${studentInfo}" var="var" varStatus="vs">
88 <tr> 88 <tr>
89 - <td class="center">${var.KEYPAD_ID}</td>  
90 - <td class="center">${var.NUMBER}</td>  
91 - <td class="center">${var.NAME}</td>  
92 - <td class="center">${var.GETSCORE}</td> 89 + <td class="center"><div style="width:109px;">${var.KEYPAD_ID}</div></td>
  90 + <td class="center"><div style="width:80px;">${var.NUMBER}</div></td>
  91 + <td class="center"><div style="width:80px;">${var.NAME}</div></td>
  92 + <td class="center"><div style="width:80px;">${var.GETSCORE}</div></td>
93 <%-- <td class="center">${var.RIGHT}</td> --%> 93 <%-- <td class="center">${var.RIGHT}</td> --%>
94 - <td class="center">${vs.index + 1}</td> 94 + <td class="center"><div style="width:80px;">${vs.index + 1}</div></td>
95 <c:forEach items="${questionInfo}" var="var1" varStatus="vs1"> 95 <c:forEach items="${questionInfo}" var="var1" varStatus="vs1">
96 - <td class="center"><div style="width:80px">${var.detail[vs1.index].ANSWER}</div></td> 96 + <td class="center"><div style="width:80px;margin:0 auto;">${var.detail[vs1.index].ANSWER}</div></td>
97 </c:forEach> 97 </c:forEach>
98 <%-- <td class="center">${var.OTHER_SCORE}</td> --%> 98 <%-- <td class="center">${var.OTHER_SCORE}</td> --%>
99 - <td class="center">${var.GETSCORE}</td> 99 + <td class="center"><div style="width:80px;margin:0 auto;">${var.GETSCORE}</div></td>
100 </tr> 100 </tr>
101 </c:forEach> 101 </c:forEach>
102 </c:when> 102 </c:when>
resources/mybatis1/sunvote/CacheMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="CacheMapper">
  4 +
  5 + <!--表名 -->
  6 + <sql id="tableName">
  7 + SV_CACHE
  8 + </sql>
  9 +
  10 + <!-- 字段 -->
  11 + <sql id="Field">
  12 + `KEY`,
  13 + `CACHE`
  14 + </sql>
  15 +
  16 + <!-- 字段值 -->
  17 + <sql id="FieldValue">
  18 + #{KEY},
  19 + #{CACHE}
  20 + </sql>
  21 +
  22 + <!-- 新增-->
  23 + <insert id="save" parameterType="pd">
  24 + insert into
  25 + <include refid="tableName"></include>
  26 + (
  27 + <include refid="Field"></include>
  28 + ) values (
  29 + <include refid="FieldValue"></include>
  30 + )
  31 + </insert>
  32 +
  33 + <!-- 删除-->
  34 + <delete id="delete" parameterType="pd">
  35 + delete from
  36 + <include refid="tableName"></include>
  37 + where
  38 + `KEY` = #{KEY}
  39 + </delete>
  40 +
  41 + <!-- 通过ID获取数据 -->
  42 + <select id="findById" parameterType="pd" resultType="pd">
  43 + select
  44 + <include refid="Field"></include>
  45 + from
  46 + <include refid="tableName"></include>
  47 + where
  48 + `KEY` = #{KEY}
  49 + </select>
  50 +
  51 + <!-- 列表 -->
  52 + <select id="datalistPage" parameterType="page" resultType="pd">
  53 + select
  54 + <include refid="Field"></include>
  55 + from
  56 + <include refid="tableName"></include>
  57 + where 1=1
  58 +
  59 + </select>
  60 +
  61 + <!-- 列表(全部) -->
  62 + <select id="listAll" parameterType="pd" resultType="pd">
  63 + select
  64 + <include refid="Field"></include>
  65 + from
  66 + <include refid="tableName"></include>
  67 + </select>
  68 +
  69 + <!-- 批量删除 -->
  70 + <delete id="deleteAll" parameterType="String">
  71 + delete from
  72 + <include refid="tableName"></include>
  73 + where
  74 + `KEY` in
  75 + <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  76 + #{item}
  77 + </foreach>
  78 + </delete>
  79 +
  80 + <!-- fh313596790qq(青苔) -->
  81 +</mapper>
0 \ No newline at end of file 82 \ No newline at end of file
resources/mybatis1/sunvote/ChapterMapper.xml
@@ -101,6 +101,31 @@ @@ -101,6 +101,31 @@
101 <include refid="tableName"></include> 101 <include refid="tableName"></include>
102 </select> 102 </select>
103 103
  104 + <!-- 列表(全部) -->
  105 + <select id="listAllChapter" parameterType="pd" resultType="pd">
  106 + select
  107 + <include refid="Field"></include>
  108 + from
  109 + <include refid="tableName"></include>
  110 +
  111 + where 1 = 1
  112 +
  113 + <if test="P_ID != null and P_ID != ''">
  114 + and P_ID = #{P_ID}
  115 + </if>
  116 +
  117 + <if test="P_ID == null or P_ID == ''">
  118 + and P_ID is NULL
  119 + </if>
  120 +
  121 +
  122 + <if test="TEACHINGMATERIAL_ID != null and TEACHINGMATERIAL_ID != ''">
  123 + and TEACHINGMATERIAL_ID = #{TEACHINGMATERIAL_ID}
  124 + </if>
  125 +
  126 + order by RANK
  127 + </select>
  128 +
104 <!-- 批量删除 --> 129 <!-- 批量删除 -->
105 <delete id="deleteAll" parameterType="String"> 130 <delete id="deleteAll" parameterType="String">
106 delete from 131 delete from
resources/mybatis1/sunvote/KnowledgeMapper.xml
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
13 P_ID, 13 P_ID,
14 RANK, 14 RANK,
15 CODE, 15 CODE,
  16 + SUBJECT_ID,
16 REMARK, 17 REMARK,
17 KNOWLEDGE_ID 18 KNOWLEDGE_ID
18 </sql> 19 </sql>
@@ -23,6 +24,7 @@ @@ -23,6 +24,7 @@
23 #{P_ID}, 24 #{P_ID},
24 #{RANK}, 25 #{RANK},
25 #{CODE}, 26 #{CODE},
  27 + #{SUBJECT_ID},
26 #{REMARK}, 28 #{REMARK},
27 #{KNOWLEDGE_ID} 29 #{KNOWLEDGE_ID}
28 </sql> 30 </sql>
@@ -98,6 +100,33 @@ @@ -98,6 +100,33 @@
98 <include refid="tableName"></include> 100 <include refid="tableName"></include>
99 </select> 101 </select>
100 102
  103 + <!-- 列表(全部) -->
  104 + <select id="listAllknowledge" parameterType="pd" resultType="pd">
  105 + select
  106 + <include refid="Field"></include>
  107 + from
  108 + <include refid="tableName"></include>
  109 +
  110 + where 1 = 1
  111 +
  112 + <if test="P_ID != null and P_ID != ''">
  113 + and P_ID = #{P_ID}
  114 + </if>
  115 +
  116 + <if test="P_ID == null or P_ID == ''">
  117 + and P_ID is NULL
  118 + </if>
  119 +
  120 + <if test="SUBJECT_ID != null and SUBJECT_ID != ''">
  121 + and SUBJECT_ID = #{SUBJECT_ID}
  122 + </if>
  123 + <if test="KNOWLEDGE_FROM != null and KNOWLEDGE_FROM != ''">
  124 + and KNOWLEDGE_FROM = #{KNOWLEDGE_FROM}
  125 + </if>
  126 +
  127 + </select>
  128 +
  129 +
101 <!-- 批量删除 --> 130 <!-- 批量删除 -->
102 <delete id="deleteAll" parameterType="String"> 131 <delete id="deleteAll" parameterType="String">
103 delete from 132 delete from
resources/mybatis1/sunvote/QuestionMapper.xml
@@ -28,6 +28,7 @@ @@ -28,6 +28,7 @@
28 USER_ID, 28 USER_ID,
29 CREATE_DATE, 29 CREATE_DATE,
30 REMARK, 30 REMARK,
  31 + METHOD,
31 QUESTION_ID 32 QUESTION_ID
32 </sql> 33 </sql>
33 34
@@ -52,6 +53,7 @@ @@ -52,6 +53,7 @@
52 #{USER_ID}, 53 #{USER_ID},
53 #{CREATE_DATE}, 54 #{CREATE_DATE},
54 #{REMARK}, 55 #{REMARK},
  56 + #{METHOD},
55 #{QUESTION_ID} 57 #{QUESTION_ID}
56 </sql> 58 </sql>
57 59
@@ -98,6 +100,7 @@ @@ -98,6 +100,7 @@
98 USER_ID = #{USER_ID}, 100 USER_ID = #{USER_ID},
99 CREATE_DATE = #{CREATE_DATE}, 101 CREATE_DATE = #{CREATE_DATE},
100 REMARK = #{REMARK}, 102 REMARK = #{REMARK},
  103 + METHOD = #{METHOD},
101 QUESTION_ID = QUESTION_ID 104 QUESTION_ID = QUESTION_ID
102 where 105 where
103 QUESTION_ID = #{QUESTION_ID} 106 QUESTION_ID = #{QUESTION_ID}
@@ -140,6 +143,96 @@ @@ -140,6 +143,96 @@
140 <include refid="tableName"></include> 143 <include refid="tableName"></include>
141 </select> 144 </select>
142 145
  146 + <!-- 列表(全部) -->
  147 + <select id="listAllquestion" parameterType="pd" resultType="pd">
  148 + select
  149 + <include refid="Field"></include>
  150 + from
  151 + <include refid="tableName"></include>
  152 +
  153 + where 1 =1
  154 + <if test="CHAPTER_IDS != null and CHAPTER_IDS.size() > 0">
  155 + and CHAPTER_ID in
  156 +
  157 + <foreach item="item" index="index" collection="CHAPTER_IDS" open="(" separator="," close=")">
  158 + #{item}
  159 + </foreach>
  160 +
  161 + </if>
  162 + <if test="KNOWLEDGE_IDS != null and KNOWLEDGE_IDS.size() > 0">
  163 + and
  164 + <foreach item="item" index="index" collection="KNOWLEDGE_IDS" open="(" separator=" or " close=")">
  165 + FIND_IN_SET(#{item},KNOWLEDGE_ID)
  166 + </foreach>
  167 +
  168 + </if>
  169 + <if test="QUESTION_FROM != null and QUESTION_FROM != ''">
  170 + and QUESTION_FROM = #{QUESTION_FROM}
  171 + </if>
  172 + <if test="USER_ID != null and USER_ID != ''">
  173 + and USER_ID = #{USER_ID}
  174 + </if>
  175 + <if test="PROBLEM_TYPE != null and PROBLEM_TYPE != ''">
  176 + and PROBLEM_TYPE = #{PROBLEM_TYPE}
  177 + </if>
  178 + <if test="SUBJECT_ID != null and SUBJECT_ID != ''">
  179 + and SUBJECT_ID = #{SUBJECT_ID}
  180 + </if>
  181 +
  182 + ORDER BY QUESTION_ID
  183 +
  184 + <if test="COUNT != null and COUNT != ''">
  185 + limit ${COUNT}
  186 + </if>
  187 +
  188 +
  189 + </select>
  190 +
  191 + <!-- 列表(全部) -->
  192 + <select id="listAllRandquestion" parameterType="pd" resultType="pd">
  193 + select
  194 + <include refid="Field"></include>
  195 + from
  196 + <include refid="tableName"></include>
  197 +
  198 + where 1 =1
  199 + <if test="CHAPTER_IDS != null and CHAPTER_IDS.size() > 0">
  200 + and CHAPTER_ID in
  201 +
  202 + <foreach item="item" index="index" collection="CHAPTER_IDS" open="(" separator="," close=")">
  203 + #{item}
  204 + </foreach>
  205 +
  206 + </if>
  207 + <if test="KNOWLEDGE_IDS != null and KNOWLEDGE_IDS.size() > 0">
  208 + and
  209 + <foreach item="item" index="index" collection="KNOWLEDGE_IDS" open="(" separator=" or " close=")">
  210 + FIND_IN_SET(#{item},KNOWLEDGE_ID)
  211 + </foreach>
  212 +
  213 + </if>
  214 + <if test="QUESTION_FROM != null and QUESTION_FROM != ''">
  215 + and QUESTION_FROM = #{QUESTION_FROM}
  216 + </if>
  217 + <if test="USER_ID != null and USER_ID != ''">
  218 + and USER_ID = #{USER_ID}
  219 + </if>
  220 + <if test="PROBLEM_TYPE != null and PROBLEM_TYPE != ''">
  221 + and PROBLEM_TYPE = #{PROBLEM_TYPE}
  222 + </if>
  223 + <if test="SUBJECT_ID != null and SUBJECT_ID != ''">
  224 + and SUBJECT_ID = #{SUBJECT_ID}
  225 + </if>
  226 +
  227 + ORDER BY rand()
  228 +
  229 + <if test="COUNT != null and COUNT != ''">
  230 + limit ${COUNT}
  231 + </if>
  232 +
  233 +
  234 + </select>
  235 +
143 <!-- 批量删除 --> 236 <!-- 批量删除 -->
144 <delete id="deleteAll" parameterType="String"> 237 <delete id="deleteAll" parameterType="String">
145 delete from 238 delete from
resources/mybatis1/sunvote/TeachingMaterialMapper.xml
@@ -32,17 +32,10 @@ @@ -32,17 +32,10 @@
32 insert into 32 insert into
33 <include refid="tableName"></include> 33 <include refid="tableName"></include>
34 ( 34 (
35 - NAME,  
36 - SUBJECT_ID,  
37 - GRADE_ID,  
38 - VERSION_CODE,  
39 - VERSION_NAME 35 + <include refid="Field"></include>
  36 +
40 ) values ( 37 ) values (
41 - #{NAME},  
42 - #{SUBJECT_ID},  
43 - #{GRADE_ID},  
44 - #{VERSION_CODE},  
45 - #{VERSION_NAME} 38 + <include refid="FieldValue"></include>
46 ) 39 )
47 </insert> 40 </insert>
48 41
src/com/fh/bean/Point.java 0 → 100644
  1 +package com.fh.bean;
  2 +
  3 +import java.util.List;
  4 +
  5 +import com.google.gson.Gson;
  6 +
  7 +public class Point {
  8 +
  9 + private String code ;
  10 +
  11 + private String name;
  12 +
  13 + private String subjectCode;
  14 +
  15 + private List<Point> children ;
  16 +
  17 + public String getCode() {
  18 + return code;
  19 + }
  20 +
  21 + public void setCode(String code) {
  22 + this.code = code;
  23 + }
  24 +
  25 + public String getName() {
  26 + return name;
  27 + }
  28 +
  29 + public void setName(String name) {
  30 + this.name = name;
  31 + }
  32 +
  33 + public List<Point> getChildren() {
  34 + return children;
  35 + }
  36 +
  37 + public void setChildren(List<Point> children) {
  38 + this.children = children;
  39 + }
  40 +
  41 +
  42 +
  43 + public String getSubjectCode() {
  44 + return subjectCode;
  45 + }
  46 +
  47 + public void setSubjectCode(String subjectCode) {
  48 + this.subjectCode = subjectCode;
  49 + }
  50 +
  51 + public static Point parse(String json){
  52 + Gson gson = new Gson();
  53 + return gson.fromJson(json, Point.class);
  54 + }
  55 +
  56 + public String toJson(){
  57 + Gson gson = new Gson();
  58 + return gson.toJson(this);
  59 + }
  60 +}
src/com/fh/controller/api/ResponseGson.java
1 package com.fh.controller.api; 1 package com.fh.controller.api;
2 2
  3 +import java.lang.reflect.ParameterizedType;
  4 +import java.lang.reflect.Type;
  5 +import java.util.List;
  6 +
  7 +import com.fh.bean.Point;
3 import com.google.gson.Gson; 8 import com.google.gson.Gson;
  9 +import com.google.gson.GsonBuilder;
  10 +import com.google.gson.reflect.TypeToken;
4 11
5 public class ResponseGson<T> { 12 public class ResponseGson<T> {
6 13
@@ -8,7 +15,7 @@ public class ResponseGson&lt;T&gt; { @@ -8,7 +15,7 @@ public class ResponseGson&lt;T&gt; {
8 15
9 private String message = "success"; 16 private String message = "success";
10 17
11 - private Object data; 18 + private T data;
12 19
13 public String getCode() { 20 public String getCode() {
14 return code; 21 return code;
@@ -26,7 +33,7 @@ public class ResponseGson&lt;T&gt; { @@ -26,7 +33,7 @@ public class ResponseGson&lt;T&gt; {
26 this.message = message; 33 this.message = message;
27 } 34 }
28 35
29 - public Object getData() { 36 + public T getData() {
30 return data; 37 return data;
31 } 38 }
32 39
@@ -35,10 +42,7 @@ public class ResponseGson&lt;T&gt; { @@ -35,10 +42,7 @@ public class ResponseGson&lt;T&gt; {
35 } 42 }
36 43
37 public String toJson(){ 44 public String toJson(){
38 - if(data == null){  
39 - data = new Object();  
40 - }  
41 - Gson gson = new Gson(); 45 + Gson gson = new GsonBuilder().serializeNulls().create();
42 return gson.toJson(this); 46 return gson.toJson(this);
43 } 47 }
44 48
@@ -48,6 +52,39 @@ public class ResponseGson&lt;T&gt; { @@ -48,6 +52,39 @@ public class ResponseGson&lt;T&gt; {
48 + ", data=" + data + "]"; 52 + ", data=" + data + "]";
49 } 53 }
50 54
  55 + public static <T> ResponseGson<T> parse(String json) {
  56 + Gson gson = new Gson();
  57 + Type objectType = new TypeToken<ResponseGson<T>>() {}.getType();
  58 + return gson.fromJson(json, objectType);
  59 + }
  60 +
  61 + public static <T> ResponseGson<T> parse(String json,Class clazz) {
  62 + Gson gson = new Gson();
  63 + if(clazz == Point.class){
  64 + Type objectType = new TypeToken<ResponseGson<List<Point>>>() {}.getType();
  65 + return gson.fromJson(json, objectType);
  66 + }
  67 + return null;
  68 + }
  69 +
  70 +
  71 +
  72 + static ParameterizedType type(final Class raw, final Type... args) {
  73 + return new ParameterizedType() {
  74 + public Type getRawType() {
  75 + return raw;
  76 + }
  77 +
  78 + public Type[] getActualTypeArguments() {
  79 + return args;
  80 + }
  81 +
  82 + public Type getOwnerType() {
  83 + return null;
  84 + }
  85 + };
  86 + }
  87 +
51 88
52 public void setSuccess(){ 89 public void setSuccess(){
53 code = "0" ; 90 code = "0" ;
src/com/fh/controller/api/V1.java
@@ -2,7 +2,9 @@ package com.fh.controller.api; @@ -2,7 +2,9 @@ package com.fh.controller.api;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.Date; 4 import java.util.Date;
  5 +import java.util.Iterator;
5 import java.util.List; 6 import java.util.List;
  7 +import java.util.Map;
6 8
7 import javax.annotation.Resource; 9 import javax.annotation.Resource;
8 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletRequest;
@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.ResponseBody; 16 import org.springframework.web.bind.annotation.ResponseBody;
15 17
16 import com.fh.bean.Paper; 18 import com.fh.bean.Paper;
  19 +import com.fh.bean.Point;
17 import com.fh.bean.Question; 20 import com.fh.bean.Question;
18 import com.fh.bean.StudentAnswer; 21 import com.fh.bean.StudentAnswer;
19 import com.fh.bean.TestPaper; 22 import com.fh.bean.TestPaper;
@@ -27,6 +30,7 @@ import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager; @@ -27,6 +30,7 @@ import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager;
27 import com.fh.service.software.softwareversion.SoftwareVersionManager; 30 import com.fh.service.software.softwareversion.SoftwareVersionManager;
28 import com.fh.service.sunvote.attachkeyboard.AttachKeyboardManager; 31 import com.fh.service.sunvote.attachkeyboard.AttachKeyboardManager;
29 import com.fh.service.sunvote.basestation.BasestationManager; 32 import com.fh.service.sunvote.basestation.BasestationManager;
  33 +import com.fh.service.sunvote.cache.CacheManager;
30 import com.fh.service.sunvote.chapter.ChapterManager; 34 import com.fh.service.sunvote.chapter.ChapterManager;
31 import com.fh.service.sunvote.classbasetation.ClassBasetationManager; 35 import com.fh.service.sunvote.classbasetation.ClassBasetationManager;
32 import com.fh.service.sunvote.classroster.ClassRosterManager; 36 import com.fh.service.sunvote.classroster.ClassRosterManager;
@@ -52,10 +56,10 @@ import com.fh.service.sunvote.student.StudentManager; @@ -52,10 +56,10 @@ import com.fh.service.sunvote.student.StudentManager;
52 import com.fh.service.sunvote.studenttest.StudentTestManager; 56 import com.fh.service.sunvote.studenttest.StudentTestManager;
53 import com.fh.service.sunvote.subject.SubjectManager; 57 import com.fh.service.sunvote.subject.SubjectManager;
54 import com.fh.service.sunvote.teacher.TeacherManager; 58 import com.fh.service.sunvote.teacher.TeacherManager;
  59 +import com.fh.service.sunvote.teachingmaterial.TeachingMaterialManager;
55 import com.fh.service.sunvote.testpaper.TestPaperManager; 60 import com.fh.service.sunvote.testpaper.TestPaperManager;
56 import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; 61 import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager;
57 import com.fh.service.system.user.UserManager; 62 import com.fh.service.system.user.UserManager;
58 -import com.fh.util.Jurisdiction;  
59 import com.fh.util.PageData; 63 import com.fh.util.PageData;
60 import com.fh.util.Tools; 64 import com.fh.util.Tools;
61 65
@@ -149,22 +153,28 @@ public class V1 extends BaseController { @@ -149,22 +153,28 @@ public class V1 extends BaseController {
149 153
150 @Resource(name = "v1Service") 154 @Resource(name = "v1Service")
151 private V1Manager v1Service; 155 private V1Manager v1Service;
152 -  
153 - @Resource(name="softwareversionService") 156 +
  157 + @Resource(name = "softwareversionService")
154 private SoftwareVersionManager softwareversionService; 158 private SoftwareVersionManager softwareversionService;
155 -  
156 - @Resource(name="attachkeyboardService") 159 +
  160 + @Resource(name = "attachkeyboardService")
157 private AttachKeyboardManager attachkeyboardService; 161 private AttachKeyboardManager attachkeyboardService;
158 -  
159 - @Resource(name="networkstatisticsService") 162 +
  163 + @Resource(name = "networkstatisticsService")
160 private NetworkStatisticsManager networkstatisticsService; 164 private NetworkStatisticsManager networkstatisticsService;
161 -  
162 - @Resource(name="eventService") 165 +
  166 + @Resource(name = "eventService")
163 private EventManager eventService; 167 private EventManager eventService;
164 -  
165 - @Resource(name="userService") 168 +
  169 + @Resource(name = "userService")
166 private UserManager userService; 170 private UserManager userService;
167 171
  172 + @Resource(name = "teachingmaterialService")
  173 + private TeachingMaterialManager teachingmaterialService;
  174 +
  175 + @Resource(name="cacheService")
  176 + private CacheManager cacheService;
  177 +
168 @RequestMapping(value = "/login", produces = "application/json;charset=UTF-8") 178 @RequestMapping(value = "/login", produces = "application/json;charset=UTF-8")
169 @ResponseBody 179 @ResponseBody
170 public Object login() throws Exception { 180 public Object login() throws Exception {
@@ -174,8 +184,9 @@ public class V1 extends BaseController { @@ -174,8 +184,9 @@ public class V1 extends BaseController {
174 if (!pd.containsKey("ACCOUT")) { 184 if (!pd.containsKey("ACCOUT")) {
175 pd.put("ACCOUT", pd.get("USERNAME")); 185 pd.put("ACCOUT", pd.get("USERNAME"));
176 } 186 }
177 - if (((pd.containsKey("USERNAME") || (pd.containsKey("ACCOUT") && pd.get("ACCOUT") != null)) && pd  
178 - .containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")) { 187 + if (((pd.containsKey("USERNAME") || (pd.containsKey("ACCOUT") && pd
  188 + .get("ACCOUT") != null)) && pd.containsKey("PASSWORD"))
  189 + || pd.containsKey("KEYPAD_ID")) {
179 PageData pageData = teacherService.getUserInfo(pd); 190 PageData pageData = teacherService.getUserInfo(pd);
180 if (pageData != null && pageData.getString("ID") != null) { 191 if (pageData != null && pageData.getString("ID") != null) {
181 pageData.put("PASSWORD", "");// 返回参数中不返回密码 192 pageData.put("PASSWORD", "");// 返回参数中不返回密码
@@ -193,19 +204,19 @@ public class V1 extends BaseController { @@ -193,19 +204,19 @@ public class V1 extends BaseController {
193 pageData.put("subjectList", subjectList); 204 pageData.put("subjectList", subjectList);
194 205
195 pageData.remove("SUBJECT_IDS"); 206 pageData.remove("SUBJECT_IDS");
196 - 207 +
197 PageData eventPd = new PageData(); 208 PageData eventPd = new PageData();
198 eventPd.put("EVENT_ID", get32UUID()); 209 eventPd.put("EVENT_ID", get32UUID());
199 eventPd.put("EVENT_NAME", "login"); 210 eventPd.put("EVENT_NAME", "login");
200 eventPd.put("EVENT_USER", pageData.getString("ID")); 211 eventPd.put("EVENT_USER", pageData.getString("ID"));
201 eventPd.put("EVENT_TYPE", "0"); 212 eventPd.put("EVENT_TYPE", "0");
202 - eventPd.put("EVENT_START_TIME",Tools.date2Str(new Date()));  
203 - if(pd.getString("CLIENT_ID") != null){ 213 + eventPd.put("EVENT_START_TIME", Tools.date2Str(new Date()));
  214 + if (pd.getString("CLIENT_ID") != null) {
204 eventPd.put("CLIENT_ID", pd.getString("CLIENT_ID")); 215 eventPd.put("CLIENT_ID", pd.getString("CLIENT_ID"));
205 - }else{ 216 + } else {
206 eventPd.put("CLIENT_ID", "CLIENT"); 217 eventPd.put("CLIENT_ID", "CLIENT");
207 } 218 }
208 - eventPd.put("EVENT_IP",getRemoteIp()); 219 + eventPd.put("EVENT_IP", getRemoteIp());
209 eventService.save(eventPd); 220 eventService.save(eventPd);
210 221
211 res.setData(pageData); 222 res.setData(pageData);
@@ -235,23 +246,26 @@ public class V1 extends BaseController { @@ -235,23 +246,26 @@ public class V1 extends BaseController {
235 List<PageData> studentList = v1Service.getClassStudent(pt); 246 List<PageData> studentList = v1Service.getClassStudent(pt);
236 pageData.put("studentList", studentList); 247 pageData.put("studentList", studentList);
237 pt.put("CLASS_ID", pageData.get("ID")); 248 pt.put("CLASS_ID", pageData.get("ID"));
238 - List<PageData> keyboards = attachkeyboardService.listAllClassId(pt); 249 + List<PageData> keyboards = attachkeyboardService
  250 + .listAllClassId(pt);
239 pageData.put("keyboards", keyboards); 251 pageData.put("keyboards", keyboards);
240 res.setData(pageData); 252 res.setData(pageData);
241 } else { 253 } else {
242 res.set2Error(); 254 res.set2Error();
243 } 255 }
244 - logger.info("class cost time : " + (System.currentTimeMillis() - cur)); 256 + logger.info("class cost time : "
  257 + + (System.currentTimeMillis() - cur));
245 return res.toJson(); 258 return res.toJson();
246 } else { 259 } else {
247 ResponseGson<List<PageData>> res = new ResponseGson(); 260 ResponseGson<List<PageData>> res = new ResponseGson();
248 List<PageData> list = sclassService.listAll(pd); 261 List<PageData> list = sclassService.listAll(pd);
249 res.setData(list); 262 res.setData(list);
250 - logger.info("class cost time : " + (System.currentTimeMillis() - cur)); 263 + logger.info("class cost time : "
  264 + + (System.currentTimeMillis() - cur));
251 return res.toJson(); 265 return res.toJson();
252 } 266 }
253 } 267 }
254 - 268 +
255 @RequestMapping(value = "/questiontype", produces = "application/json;charset=UTF-8") 269 @RequestMapping(value = "/questiontype", produces = "application/json;charset=UTF-8")
256 @ResponseBody 270 @ResponseBody
257 public Object questiontype() throws Exception { 271 public Object questiontype() throws Exception {
@@ -261,10 +275,11 @@ public class V1 extends BaseController { @@ -261,10 +275,11 @@ public class V1 extends BaseController {
261 ResponseGson<List<PageData>> res = new ResponseGson(); 275 ResponseGson<List<PageData>> res = new ResponseGson();
262 List<PageData> list = questiontypeService.listAll(pd); 276 List<PageData> list = questiontypeService.listAll(pd);
263 res.setData(list); 277 res.setData(list);
264 - logger.info("questiontype cost time : " + (System.currentTimeMillis() - cur)); 278 + logger.info("questiontype cost time : "
  279 + + (System.currentTimeMillis() - cur));
265 return res.toJson(); 280 return res.toJson();
266 } 281 }
267 - 282 +
268 @RequestMapping(value = "/classtype", produces = "application/json;charset=UTF-8") 283 @RequestMapping(value = "/classtype", produces = "application/json;charset=UTF-8")
269 @ResponseBody 284 @ResponseBody
270 public Object classtype() throws Exception { 285 public Object classtype() throws Exception {
@@ -274,10 +289,11 @@ public class V1 extends BaseController { @@ -274,10 +289,11 @@ public class V1 extends BaseController {
274 ResponseGson<List<PageData>> res = new ResponseGson(); 289 ResponseGson<List<PageData>> res = new ResponseGson();
275 List<PageData> list = classtypeService.listAll(pd); 290 List<PageData> list = classtypeService.listAll(pd);
276 res.setData(list); 291 res.setData(list);
277 - logger.info("classtype cost time : " + (System.currentTimeMillis() - cur)); 292 + logger.info("classtype cost time : "
  293 + + (System.currentTimeMillis() - cur));
278 return res.toJson(); 294 return res.toJson();
279 } 295 }
280 - 296 +
281 @RequestMapping(value = "/grade", produces = "application/json;charset=UTF-8") 297 @RequestMapping(value = "/grade", produces = "application/json;charset=UTF-8")
282 @ResponseBody 298 @ResponseBody
283 public Object grade() throws Exception { 299 public Object grade() throws Exception {
@@ -295,7 +311,7 @@ public class V1 extends BaseController { @@ -295,7 +311,7 @@ public class V1 extends BaseController {
295 logger.info("class cost time : " + (System.currentTimeMillis() - cur)); 311 logger.info("class cost time : " + (System.currentTimeMillis() - cur));
296 return res.toJson(); 312 return res.toJson();
297 } 313 }
298 - 314 +
299 @RequestMapping(value = "/subject", produces = "application/json;charset=UTF-8") 315 @RequestMapping(value = "/subject", produces = "application/json;charset=UTF-8")
300 @ResponseBody 316 @ResponseBody
301 public Object subject() throws Exception { 317 public Object subject() throws Exception {
@@ -313,8 +329,6 @@ public class V1 extends BaseController { @@ -313,8 +329,6 @@ public class V1 extends BaseController {
313 logger.info("subject cost time : " + (System.currentTimeMillis() - cur)); 329 logger.info("subject cost time : " + (System.currentTimeMillis() - cur));
314 return res.toJson(); 330 return res.toJson();
315 } 331 }
316 -  
317 -  
318 332
319 @RequestMapping(value = "/keypadscan", produces = "application/json;charset=UTF-8") 333 @RequestMapping(value = "/keypadscan", produces = "application/json;charset=UTF-8")
320 @ResponseBody 334 @ResponseBody
@@ -333,7 +347,8 @@ public class V1 extends BaseController { @@ -333,7 +347,8 @@ public class V1 extends BaseController {
333 } catch (Exception ex) { 347 } catch (Exception ex) {
334 res.setDataError(); 348 res.setDataError();
335 } 349 }
336 - logger.info("keypadScan cost time : " + (System.currentTimeMillis() - cur)); 350 + logger.info("keypadScan cost time : "
  351 + + (System.currentTimeMillis() - cur));
337 return res.toJson(); 352 return res.toJson();
338 } 353 }
339 354
@@ -418,9 +433,9 @@ public class V1 extends BaseController { @@ -418,9 +433,9 @@ public class V1 extends BaseController {
418 question.setQuestion_from(qpd 433 question.setQuestion_from(qpd
419 .getString("QUESTION_FROM")); 434 .getString("QUESTION_FROM"));
420 question.setScore(qpd.getString("SCORE")); 435 question.setScore(qpd.getString("SCORE"));
421 - question.setPart_score(qpd  
422 - .getString("PART_SCORE"));  
423 - question.setQuestionType(qpd.getString("PROBLEM_TYPE_ID")); 436 + question.setPart_score(qpd.getString("PART_SCORE"));
  437 + question.setQuestionType(qpd
  438 + .getString("PROBLEM_TYPE_ID"));
424 question.setRank(qpd.getString("RANK")); 439 question.setRank(qpd.getString("RANK"));
425 question.setNo_name(qpd.getString("NO_NAME")); 440 question.setNo_name(qpd.getString("NO_NAME"));
426 if ("-1".equals("" + qpd.getString("P_ID"))) { 441 if ("-1".equals("" + qpd.getString("P_ID"))) {
@@ -449,9 +464,9 @@ public class V1 extends BaseController { @@ -449,9 +464,9 @@ public class V1 extends BaseController {
449 qq.setQuestion_from(q 464 qq.setQuestion_from(q
450 .getString("QUESTION_FROM")); 465 .getString("QUESTION_FROM"));
451 qq.setScore(q.getString("SCORE")); 466 qq.setScore(q.getString("SCORE"));
452 - qq.setPart_score(q  
453 - .getString("PART_SCORE"));  
454 - qq.setQuestionType(qpd.getString("PROBLEM_TYPE_ID")); 467 + qq.setPart_score(q.getString("PART_SCORE"));
  468 + qq.setQuestionType(qpd
  469 + .getString("PROBLEM_TYPE_ID"));
455 qq.setRank(q.getString("RANK")); 470 qq.setRank(q.getString("RANK"));
456 qq.setNo_name(q.getString("NO_NAME")); 471 qq.setNo_name(q.getString("NO_NAME"));
457 question.getQuestions().add(qq); 472 question.getQuestions().add(qq);
@@ -477,7 +492,8 @@ public class V1 extends BaseController { @@ -477,7 +492,8 @@ public class V1 extends BaseController {
477 } else { 492 } else {
478 res.setOtherError(); 493 res.setOtherError();
479 } 494 }
480 - logger.info("paperInfo cost time : " + (System.currentTimeMillis() - cur)); 495 + logger.info("paperInfo cost time : "
  496 + + (System.currentTimeMillis() - cur));
481 return res.toJson(); 497 return res.toJson();
482 } 498 }
483 499
@@ -488,10 +504,11 @@ public class V1 extends BaseController { @@ -488,10 +504,11 @@ public class V1 extends BaseController {
488 long cur = System.currentTimeMillis(); 504 long cur = System.currentTimeMillis();
489 PageData pd = this.getPageData(); 505 PageData pd = this.getPageData();
490 ResponseGson<PageData> res = new ResponseGson(); 506 ResponseGson<PageData> res = new ResponseGson();
491 - logger.info("paperquestion cost time : " + (System.currentTimeMillis() - cur)); 507 + logger.info("paperquestion cost time : "
  508 + + (System.currentTimeMillis() - cur));
492 return res.toJson(); 509 return res.toJson();
493 } 510 }
494 - 511 +
495 @RequestMapping(value = "/question", produces = "application/json;charset=UTF-8") 512 @RequestMapping(value = "/question", produces = "application/json;charset=UTF-8")
496 @ResponseBody 513 @ResponseBody
497 public Object question() throws Exception { 514 public Object question() throws Exception {
@@ -499,17 +516,18 @@ public class V1 extends BaseController { @@ -499,17 +516,18 @@ public class V1 extends BaseController {
499 long cur = System.currentTimeMillis(); 516 long cur = System.currentTimeMillis();
500 PageData pd = this.getPageData(); 517 PageData pd = this.getPageData();
501 ResponseGson<PageData> res = new ResponseGson(); 518 ResponseGson<PageData> res = new ResponseGson();
502 - if(pd.containsKey("ID")){ 519 + if (pd.containsKey("ID")) {
503 pd.put("QUESTION_ID", pd.get("ID")); 520 pd.put("QUESTION_ID", pd.get("ID"));
504 PageData data = questionService.findById(pd); 521 PageData data = questionService.findById(pd);
505 res.setData(data); 522 res.setData(data);
506 - }else{ 523 + } else {
507 res.setDataError(); 524 res.setDataError();
508 } 525 }
509 - logger.info("question cost time : " + (System.currentTimeMillis() - cur)); 526 + logger.info("question cost time : "
  527 + + (System.currentTimeMillis() - cur));
510 return res.toJson(); 528 return res.toJson();
511 } 529 }
512 - 530 +
513 @RequestMapping(value = "/question/add", produces = "application/json;charset=UTF-8") 531 @RequestMapping(value = "/question/add", produces = "application/json;charset=UTF-8")
514 @ResponseBody 532 @ResponseBody
515 public Object questionAdd() throws Exception { 533 public Object questionAdd() throws Exception {
@@ -519,10 +537,11 @@ public class V1 extends BaseController { @@ -519,10 +537,11 @@ public class V1 extends BaseController {
519 ResponseGson<PageData> res = new ResponseGson(); 537 ResponseGson<PageData> res = new ResponseGson();
520 pd.put("QUESTION_ID", this.get32UUID()); 538 pd.put("QUESTION_ID", this.get32UUID());
521 questionService.save(pd); 539 questionService.save(pd);
522 - logger.info("questionAdd cost time : " + (System.currentTimeMillis() - cur)); 540 + logger.info("questionAdd cost time : "
  541 + + (System.currentTimeMillis() - cur));
523 return res.toJson(); 542 return res.toJson();
524 } 543 }
525 - 544 +
526 @RequestMapping(value = "/uploadpaper", produces = "application/json;charset=UTF-8") 545 @RequestMapping(value = "/uploadpaper", produces = "application/json;charset=UTF-8")
527 @ResponseBody 546 @ResponseBody
528 public Object uploadpaper() throws Exception { 547 public Object uploadpaper() throws Exception {
@@ -552,8 +571,7 @@ public class V1 extends BaseController { @@ -552,8 +571,7 @@ public class V1 extends BaseController {
552 paperPd.put("CREATE_DATE", Tools.date2Str(new Date())); 571 paperPd.put("CREATE_DATE", Tools.date2Str(new Date()));
553 paperPd.put("MODIFY_DATE", Tools.date2Str(new Date())); 572 paperPd.put("MODIFY_DATE", Tools.date2Str(new Date()));
554 573
555 - int questionNum = 0 ;  
556 - 574 + int questionNum = 0;
557 575
558 List<Question> questions = paper.getQuestions(); 576 List<Question> questions = paper.getQuestions();
559 if (questions != null) { 577 if (questions != null) {
@@ -565,12 +583,14 @@ public class V1 extends BaseController { @@ -565,12 +583,14 @@ public class V1 extends BaseController {
565 && question.getQuestions().size() > 0) { 583 && question.getQuestions().size() > 0) {
566 qPd.put("P_ID", "-1"); 584 qPd.put("P_ID", "-1");
567 } else { 585 } else {
568 - questionNum ++ ; 586 + questionNum++;
569 qPd.put("P_ID", "0"); 587 qPd.put("P_ID", "0");
570 } 588 }
571 qPd.put("SUBJECT_ID", paper.getSubject_id()); 589 qPd.put("SUBJECT_ID", paper.getSubject_id());
572 qPd.put("CHAPTER_ID", question.getChapter_id()); 590 qPd.put("CHAPTER_ID", question.getChapter_id());
573 - qPd.put("PROBLEM_TYPE_ID", question.getProblem_type_id() == null ? "1" : question.getProblem_type_id()); 591 + qPd.put("PROBLEM_TYPE_ID",
  592 + question.getProblem_type_id() == null ? "1"
  593 + : question.getProblem_type_id());
574 qPd.put("TEACHER_ID", paper.getUser_id()); 594 qPd.put("TEACHER_ID", paper.getUser_id());
575 qPd.put("SCHOOL_ID", schoolID); 595 qPd.put("SCHOOL_ID", schoolID);
576 qPd.put("KNOWLEDGE_ID", question.getKnowledge_id()); 596 qPd.put("KNOWLEDGE_ID", question.getKnowledge_id());
@@ -607,7 +627,9 @@ public class V1 extends BaseController { @@ -607,7 +627,9 @@ public class V1 extends BaseController {
607 cqPd.put("P_ID", questionID); 627 cqPd.put("P_ID", questionID);
608 cqPd.put("SUBJECT_ID", paper.getSubject_id()); 628 cqPd.put("SUBJECT_ID", paper.getSubject_id());
609 cqPd.put("CHAPTER_ID", q.getChapter_id()); 629 cqPd.put("CHAPTER_ID", q.getChapter_id());
610 - cqPd.put("PROBLEM_TYPE_ID", question.getProblem_type_id() == null ? "1" : question.getProblem_type_id()); 630 + cqPd.put("PROBLEM_TYPE_ID", question
  631 + .getProblem_type_id() == null ? "1"
  632 + : question.getProblem_type_id());
611 cqPd.put("TEACHER_ID", paper.getUser_id()); 633 cqPd.put("TEACHER_ID", paper.getUser_id());
612 cqPd.put("SCHOOL_ID", schoolID); 634 cqPd.put("SCHOOL_ID", schoolID);
613 cqPd.put("KNOWLEDGE_ID", q.getKnowledge_id()); 635 cqPd.put("KNOWLEDGE_ID", q.getKnowledge_id());
@@ -636,7 +658,7 @@ public class V1 extends BaseController { @@ -636,7 +658,7 @@ public class V1 extends BaseController {
636 cpqPd.put("PAPERQUESTION_ID", this.get32UUID()); 658 cpqPd.put("PAPERQUESTION_ID", this.get32UUID());
637 659
638 paperquestionService.save(cpqPd); 660 paperquestionService.save(cpqPd);
639 - questionNum ++ ; 661 + questionNum++;
640 } 662 }
641 } 663 }
642 } 664 }
@@ -647,7 +669,37 @@ public class V1 extends BaseController { @@ -647,7 +669,37 @@ public class V1 extends BaseController {
647 } else { 669 } else {
648 res.setDataError(); 670 res.setDataError();
649 } 671 }
650 - logger.info("uploadpaper cost time : " + (System.currentTimeMillis() - cur)); 672 + logger.info("uploadpaper cost time : "
  673 + + (System.currentTimeMillis() - cur));
  674 + return res.toJson();
  675 + }
  676 +
  677 + @RequestMapping(value = "/uploadpoint", produces = "application/json;charset=UTF-8")
  678 + @ResponseBody
  679 + public Object uploadpoint() throws Exception {
  680 + event("uploadpoint");
  681 + long cur = System.currentTimeMillis();
  682 + PageData pd = this.getPageData();
  683 + ResponseGson<String> res = new ResponseGson();
  684 +
  685 + if (!StringUtils.isEmpty(pd.getJsonString())) {
  686 + try {
  687 + ResponseGson<List<Point>> req = ResponseGson.parse(
  688 + pd.getJsonString(), Point.class);
  689 + List<Point> list = req.getData();
  690 + if (list != null && list.size() > 0) {
  691 + for (Point point : list) {
  692 + savePoint(point, null);
  693 + }
  694 + }
  695 + } catch (Exception e) {
  696 + res.setError();
  697 + }
  698 + } else {
  699 + res.setDataError();
  700 + }
  701 + logger.info("uploadpoint cost time : "
  702 + + (System.currentTimeMillis() - cur));
651 return res.toJson(); 703 return res.toJson();
652 } 704 }
653 705
@@ -747,7 +799,7 @@ public class V1 extends BaseController { @@ -747,7 +799,7 @@ public class V1 extends BaseController {
747 } 799 }
748 testpaperinfoService.batchSave(testInfoPdList); 800 testpaperinfoService.batchSave(testInfoPdList);
749 } 801 }
750 - }else{ 802 + } else {
751 testPaperId = listData.get(0).getString("TESTPAPER_ID"); 803 testPaperId = listData.get(0).getString("TESTPAPER_ID");
752 } 804 }
753 res.setData(testPaperId); 805 res.setData(testPaperId);
@@ -759,13 +811,13 @@ public class V1 extends BaseController { @@ -759,13 +811,13 @@ public class V1 extends BaseController {
759 } else { 811 } else {
760 res.setDataError(); 812 res.setDataError();
761 } 813 }
762 - logger.info("uploadtestpaper cost time:" + (System.currentTimeMillis() - cur)); 814 + logger.info("uploadtestpaper cost time:"
  815 + + (System.currentTimeMillis() - cur));
763 816
764 return res.toJson(); 817 return res.toJson();
765 818
766 } 819 }
767 -  
768 - 820 +
769 // 上传测验成绩 821 // 上传测验成绩
770 @RequestMapping(value = "/uploadupdatetestpaper", produces = "application/json;charset=UTF-8") 822 @RequestMapping(value = "/uploadupdatetestpaper", produces = "application/json;charset=UTF-8")
771 @ResponseBody 823 @ResponseBody
@@ -879,6 +931,74 @@ public class V1 extends BaseController { @@ -879,6 +931,74 @@ public class V1 extends BaseController {
879 931
880 } 932 }
881 933
  934 + @RequestMapping(value = "/point", produces = "application/json;charset=UTF-8")
  935 + @ResponseBody
  936 + public Object point() throws Exception {
  937 + ResponseGson<List<PageData>> res = new ResponseGson();
  938 +
  939 + PageData pd = getPageData();
  940 + String key = this.getRequestKey(pd,"point");
  941 + PageData pagedata = new PageData();
  942 + pagedata.put("KEY", key);
  943 + if(!"".equals(key.trim())){
  944 + PageData ret = cacheService.findById(pagedata);
  945 + if(ret != null && ret.get("CACHE") != null){
  946 + return ret.get("CACHE");
  947 + }
  948 + }
  949 + List<PageData> list = knowledgeService.listAllknowledge(pd);
  950 + String depth = pd.getString("DEPTH");
  951 + int end = 3 ;
  952 + if(depth != null){
  953 + try{
  954 + end = Integer.parseInt(depth);
  955 + }catch(Exception e){
  956 +
  957 + }
  958 + }
  959 + roundPointData(list,1,end);
  960 + res.setData(list);
  961 + String str = res.toJson();
  962 + str = str.replaceAll("[^\\u0000-\\uFFFF]", "");
  963 + pagedata.put("CACHE", str);
  964 + cacheService.save(pagedata);
  965 + return str;
  966 + }
  967 +
  968 + private void roundPointData(List<PageData> list,int dept , int end) throws Exception {
  969 + if (list != null) {
  970 + for (PageData pd : list) {
  971 + pd.put("P_ID", pd.getString("KNOWLEDGE_ID"));
  972 + if (pd.getString("P_ID") != null
  973 + && !"".equals(pd.getString("P_ID")) && dept < end) {
  974 + List<PageData> ret = knowledgeService.listAllknowledge(pd);
  975 + if (ret != null && ret.size() > 0) {
  976 + roundPointData(ret,dept + 1,end);
  977 + pd.put("CHILDREN", ret);
  978 + }
  979 + }
  980 + pd.remove("P_ID");
  981 + }
  982 + }
  983 + }
  984 +
  985 + private void roundChapterData(List<PageData> list,int dept,int end) throws Exception {
  986 + if (list != null && dept < end) {
  987 + for (PageData pd : list) {
  988 + pd.put("P_ID", pd.getString("ID"));
  989 + if (pd.getString("P_ID") != null
  990 + && !"".equals(pd.getString("P_ID"))) {
  991 + List<PageData> ret = chapterService.listAllChapter(pd);
  992 + if (ret != null && ret.size() > 0) {
  993 + roundChapterData(ret,dept+1,end);
  994 + pd.put("CHILDREN", ret);
  995 + }
  996 + }
  997 + pd.remove("P_ID");
  998 + }
  999 + }
  1000 + }
  1001 +
882 // 下载测验成绩 1002 // 下载测验成绩
883 @RequestMapping(value = "/downloadtestpaper", produces = "application/json;charset=UTF-8") 1003 @RequestMapping(value = "/downloadtestpaper", produces = "application/json;charset=UTF-8")
884 @ResponseBody 1004 @ResponseBody
@@ -960,7 +1080,8 @@ public class V1 extends BaseController { @@ -960,7 +1080,8 @@ public class V1 extends BaseController {
960 res.setError(); 1080 res.setError();
961 } 1081 }
962 } 1082 }
963 - logger.info("downloadtestpaper cost time:" + (System.currentTimeMillis() - cur)); 1083 + logger.info("downloadtestpaper cost time:"
  1084 + + (System.currentTimeMillis() - cur));
964 return res.toJson(); 1085 return res.toJson();
965 1086
966 } 1087 }
@@ -1006,20 +1127,18 @@ public class V1 extends BaseController { @@ -1006,20 +1127,18 @@ public class V1 extends BaseController {
1006 return res.toJson(); 1127 return res.toJson();
1007 1128
1008 } 1129 }
1009 -  
1010 - 1130 +
1011 @RequestMapping(value = "/schooladmin", produces = "application/json;charset=UTF-8") 1131 @RequestMapping(value = "/schooladmin", produces = "application/json;charset=UTF-8")
1012 @ResponseBody 1132 @ResponseBody
1013 - public void schoolAdmin(){ 1133 + public void schoolAdmin() {
1014 event("schoolAdmin"); 1134 event("schoolAdmin");
1015 PageData pd = this.getPageData(); 1135 PageData pd = this.getPageData();
1016 this.getUserID(); 1136 this.getUserID();
1017 } 1137 }
1018 -  
1019 - 1138 +
1020 @RequestMapping(value = "/network", produces = "application/json;charset=UTF-8") 1139 @RequestMapping(value = "/network", produces = "application/json;charset=UTF-8")
1021 @ResponseBody 1140 @ResponseBody
1022 - public Object network() throws Exception{ 1141 + public Object network() throws Exception {
1023 event("network"); 1142 event("network");
1024 PageData pd = this.getPageData(); 1143 PageData pd = this.getPageData();
1025 ResponseGson<PageData> res = new ResponseGson(); 1144 ResponseGson<PageData> res = new ResponseGson();
@@ -1033,7 +1152,7 @@ public class V1 extends BaseController { @@ -1033,7 +1152,7 @@ public class V1 extends BaseController {
1033 .getString("SUCCESS_COUNT")); 1152 .getString("SUCCESS_COUNT"));
1034 spd.put("SUCCESS_COUNT", ++successCount + ""); 1153 spd.put("SUCCESS_COUNT", ++successCount + "");
1035 int fail = seq - successCount; 1154 int fail = seq - successCount;
1036 - if(fail < 0 ){ 1155 + if (fail < 0) {
1037 fail = 0; 1156 fail = 0;
1038 } 1157 }
1039 spd.put("FAIL_COUNT", fail + ""); 1158 spd.put("FAIL_COUNT", fail + "");
@@ -1047,7 +1166,7 @@ public class V1 extends BaseController { @@ -1047,7 +1166,7 @@ public class V1 extends BaseController {
1047 pd.put("SUCCESS_COUNT", "1"); 1166 pd.put("SUCCESS_COUNT", "1");
1048 pd.put("CLIENT_IP", getRemoteIp()); 1167 pd.put("CLIENT_IP", getRemoteIp());
1049 int fail = seq - 1; 1168 int fail = seq - 1;
1050 - if(fail < 0 ){ 1169 + if (fail < 0) {
1051 fail = 0; 1170 fail = 0;
1052 } 1171 }
1053 pd.put("FAIL_COUNT", fail + ""); 1172 pd.put("FAIL_COUNT", fail + "");
@@ -1059,14 +1178,13 @@ public class V1 extends BaseController { @@ -1059,14 +1178,13 @@ public class V1 extends BaseController {
1059 pd.remove("NETWORKSTATISTICS_ID"); 1178 pd.remove("NETWORKSTATISTICS_ID");
1060 res.setData(pd); 1179 res.setData(pd);
1061 } 1180 }
1062 - }else{ 1181 + } else {
1063 res.setDataError(); 1182 res.setDataError();
1064 } 1183 }
1065 return res.toJson(); 1184 return res.toJson();
1066 } 1185 }
1067 -  
1068 -  
1069 - public String getRemoteIp(){ 1186 +
  1187 + public String getRemoteIp() {
1070 HttpServletRequest request = getRequest(); 1188 HttpServletRequest request = getRequest();
1071 String ip = ""; 1189 String ip = "";
1072 if (request.getHeader("x-forwarded-for") == null) { 1190 if (request.getHeader("x-forwarded-for") == null) {
@@ -1076,70 +1194,264 @@ public class V1 extends BaseController { @@ -1076,70 +1194,264 @@ public class V1 extends BaseController {
1076 } 1194 }
1077 return ip; 1195 return ip;
1078 } 1196 }
1079 - 1197 +
1080 @RequestMapping(value = "/newversion", produces = "application/json;charset=UTF-8") 1198 @RequestMapping(value = "/newversion", produces = "application/json;charset=UTF-8")
1081 @ResponseBody 1199 @ResponseBody
1082 - public Object getNewVersion(HttpServletRequest request) throws Exception{ 1200 + public Object getNewVersion(HttpServletRequest request) throws Exception {
1083 event("getNewVersion"); 1201 event("getNewVersion");
1084 PageData pd = this.getPageData(); 1202 PageData pd = this.getPageData();
1085 String softId = pd.getString("SOFTID"); 1203 String softId = pd.getString("SOFTID");
1086 String path = request.getContextPath(); 1204 String path = request.getContextPath();
1087 - String basePath = request.getScheme() + "://"  
1088 - + request.getServerName() + ":" + request.getServerPort()  
1089 - + path + "/"; 1205 + String basePath = request.getScheme() + "://" + request.getServerName()
  1206 + + ":" + request.getServerPort() + path + "/";
1090 ResponseGson<PageData> res = new ResponseGson(); 1207 ResponseGson<PageData> res = new ResponseGson();
1091 - if(softId != null && !"".equals(softId)){ 1208 + if (softId != null && !"".equals(softId)) {
1092 pd.put("SOFTWARE_ID", softId); 1209 pd.put("SOFTWARE_ID", softId);
1093 PageData result = softwareversionService.findNewVersion(pd); 1210 PageData result = softwareversionService.findNewVersion(pd);
1094 - if(result != null){ 1211 + if (result != null) {
1095 result.remove("SOFTWAREVERSION_ID"); 1212 result.remove("SOFTWAREVERSION_ID");
1096 result.remove("SOFTWARE_ID"); 1213 result.remove("SOFTWARE_ID");
1097 - result.put("VERSION_PATH",basePath + "uploadFiles/uploadFile/" + result.getString("VERSION_PATH")); 1214 + result.put("VERSION_PATH", basePath + "uploadFiles/uploadFile/"
  1215 + + result.getString("VERSION_PATH"));
1098 res.setData(result); 1216 res.setData(result);
1099 - }else{ 1217 + } else {
1100 res.setDataError(); 1218 res.setDataError();
1101 } 1219 }
1102 - }else{ 1220 + } else {
1103 res.setDataError(); 1221 res.setDataError();
1104 } 1222 }
1105 return res.toJson(); 1223 return res.toJson();
1106 } 1224 }
  1225 +
  1226 + /**
  1227 + * 获取教材版本
  1228 + *
  1229 + * @return
  1230 + * @throws Exception
  1231 + */
  1232 + @RequestMapping(value = "/teachingmaterial", produces = "application/json;charset=UTF-8")
  1233 + @ResponseBody
  1234 + public Object teachingmaterial() throws Exception {
  1235 + PageData pd = getPageData();
  1236 + ResponseGson<List<PageData>> ret = new ResponseGson<List<PageData>>();
  1237 + List<PageData> lpd = new ArrayList<PageData>();
  1238 + List<PageData> list = teachingmaterialService.listAll(pd);
  1239 + String subjectID = pd.getString("SUBJECT_ID");
  1240 + if (subjectID != null && !"".equals(subjectID)) {
  1241 + for (PageData pad : list) {
  1242 + String subis = pad.getString("SUBJECT_ID");
  1243 + if (subis != null) {
  1244 + String[] subs = subis.split(",");
  1245 + if (subs != null) {
  1246 + for (String sub : subs) {
  1247 + if (subjectID.trim().equals(sub.trim())) {
  1248 + pad.remove("SUBJECT_ID");
  1249 + pad.put("VERSION_CODE", pad.getString("VERSION_CODE"));
  1250 + lpd.add(pad);
  1251 + break;
  1252 + }
  1253 + }
  1254 + }
  1255 + }
  1256 + }
  1257 + } else {
  1258 + for (PageData pad : list) {
  1259 + pad.remove("SUBJECT_ID");
  1260 + pad.put("VERSION_CODE", pad.getString("VERSION_CODE"));
  1261 + lpd.add(pad);
  1262 + }
  1263 + }
  1264 + ret.setData(lpd);
  1265 + return ret.toJson();
  1266 + }
  1267 +
  1268 + /**
  1269 + * 获取教材版本
  1270 + *
  1271 + * @return
  1272 + * @throws Exception
  1273 + */
  1274 + @RequestMapping(value = "/chapter", produces = "application/json;charset=UTF-8")
  1275 + @ResponseBody
  1276 + public Object chapter() throws Exception {
  1277 + PageData pd = getPageData();
  1278 + String key = this.getRequestKey(pd,"chapter");
  1279 + PageData pagedata = new PageData();
  1280 + pagedata.put("KEY", key);
  1281 + if(!"".equals(key.trim())){
  1282 + PageData ret = cacheService.findById(pagedata);
  1283 + if(ret != null && ret.get("CACHE") != null){
  1284 + return ret.get("CACHE");
  1285 + }
  1286 + }
  1287 + ResponseGson<List<PageData>> res = new ResponseGson<List<PageData>>();
  1288 + List<PageData> list = chapterService.listAllChapter(pd);
  1289 + String depth = pd.getString("DEPTH");
  1290 + int end = 3 ;
  1291 + if(depth != null){
  1292 + try{
  1293 + end = Integer.parseInt(depth);
  1294 + }catch(Exception e){
  1295 +
  1296 + }
  1297 + }
  1298 + roundChapterData(list,1,end);
  1299 + res.setData(list);
  1300 + String str = res.toJson();
  1301 + str = str.replaceAll("[^\\u0000-\\uFFFF]", "");
  1302 + pagedata.put("CACHE", str);
  1303 + cacheService.save(pagedata);
  1304 + return str;
  1305 + }
  1306 +
  1307 + /**
  1308 + * 获取试题
  1309 + *
  1310 + * @return
  1311 + * @throws Exception
  1312 + */
  1313 + @RequestMapping(value = "/questions", produces = "application/json;charset=UTF-8")
  1314 + @ResponseBody
  1315 + public Object questions() throws Exception {
  1316 + PageData pd = getPageData();
  1317 + ResponseGson<List<PageData>> res = new ResponseGson<List<PageData>>();
  1318 + String teachingmaterialId = pd.getString("TEACHINGMATERIAL_ID");
  1319 + String chapterId = pd.getString("CHAPTER_ID");
  1320 + if(teachingmaterialId != null && !teachingmaterialId.equals("") && chapterId == null){
  1321 + PageData chapterPd = new PageData();
  1322 + chapterPd.put("TEACHINGMATERIAL_ID", teachingmaterialId);
  1323 + List<PageData> chapterList = chapterService.listAllChapter(chapterPd);
  1324 + roundChapterData(chapterList, 1, 3);
  1325 + List<String> ids = getIds(chapterList,"ID");
  1326 + pd.put("CHAPTER_IDS", ids);
  1327 + }else{
  1328 + List<String> ids = new ArrayList<String>();
  1329 + if(chapterId != null && !"".equals(chapterId.trim())){
  1330 + ids.add(chapterId);
  1331 + }
  1332 + pd.put("CHAPTER_IDS", ids);
  1333 + }
  1334 + pd.remove("CHAPTER_ID");
  1335 + String knowledge = pd.getString("KNOWLEDGE_ID");
  1336 + if(knowledge != null && !"".equals(knowledge.trim())){
  1337 + PageData knowPd = new PageData();
  1338 + knowPd.put("P_ID", knowledge);
  1339 + List<PageData> knowlist = knowledgeService.listAllknowledge(knowPd);
  1340 + roundPointData(knowlist, 1, 3);
  1341 + List<String> ids = getIds(knowlist,"KNOWLEDGE_ID");
  1342 + ids.add(knowledge);
  1343 + pd.put("KNOWLEDGE_IDS",ids);
  1344 + pd.remove("KNOWLEDGE_ID");
  1345 + }
  1346 + List<PageData> list = questionService.listAllquestion(pd);
  1347 + res.setData(list);
  1348 + return res.toJson();
  1349 + }
1107 1350
  1351 + /**
  1352 + * 随机获取试题
  1353 + *
  1354 + * @return
  1355 + * @throws Exception
  1356 + */
  1357 + @RequestMapping(value = "/randquestions", produces = "application/json;charset=UTF-8")
  1358 + @ResponseBody
  1359 + public Object randquestions() throws Exception {
  1360 + PageData pd = getPageData();
  1361 + ResponseGson<List<PageData>> res = new ResponseGson<List<PageData>>();
  1362 + String teachingmaterialId = pd.getString("TEACHINGMATERIAL_ID");
  1363 + String chapterId = pd.getString("CHAPTER_ID");
  1364 + if(teachingmaterialId != null && !teachingmaterialId.equals("") && chapterId == null){
  1365 + PageData chapterPd = new PageData();
  1366 + chapterPd.put("TEACHINGMATERIAL_ID", teachingmaterialId);
  1367 + List<PageData> chapterList = chapterService.listAllChapter(chapterPd);
  1368 + roundChapterData(chapterList, 1, 3);
  1369 + List<String> ids = getIds(chapterList,"ID");
  1370 + pd.put("CHAPTER_IDS", ids);
  1371 + }else{
  1372 + List<String> ids = new ArrayList<String>();
  1373 + if(chapterId != null && !"".equals(chapterId.trim())){
  1374 + ids.add(chapterId);
  1375 + }
  1376 + pd.put("CHAPTER_IDS", ids);
  1377 + }
  1378 + pd.remove("CHAPTER_ID");
  1379 + String knowledge = pd.getString("KNOWLEDGE_ID");
  1380 + if(knowledge != null && !"".equals(knowledge.trim())){
  1381 + PageData knowPd = new PageData();
  1382 + knowPd.put("P_ID", knowledge);
  1383 + List<PageData> knowlist = knowledgeService.listAllknowledge(knowPd);
  1384 + roundPointData(knowlist, 1, 3);
  1385 + List<String> ids = getIds(knowlist,"KNOWLEDGE_ID");
  1386 + ids.add(knowledge);
  1387 + pd.put("KNOWLEDGE_IDS",ids);
  1388 + pd.remove("KNOWLEDGE_ID");
  1389 + }
  1390 + List<PageData> list = questionService.listAllRandquestion(pd);
  1391 + res.setData(list);
  1392 + return res.toJson();
  1393 + }
  1394 +
  1395 + public List<String> getIds(List<PageData> chapterList,String key){
  1396 + List<String> ids = new ArrayList<String>();
  1397 + if(chapterList != null && chapterList.size() > 0){
  1398 + for(PageData pd : chapterList){
  1399 + String chapterid = pd.getString(key);
  1400 + if(chapterid != null && !"".equals(chapterid)){
  1401 + ids.add(chapterid);
  1402 + }
  1403 + Object obj = pd.get("CHILDREN");
  1404 + if(obj != null && (obj instanceof List)){
  1405 + @SuppressWarnings("unchecked")
  1406 + List<PageData> list = (List<PageData>)obj ;
  1407 + List<String> ret = getIds(list,key);
  1408 + if(ret != null && ret.size() > 0){
  1409 + ids.addAll(ret);
  1410 + }
  1411 + }
  1412 + }
  1413 + }
  1414 +
  1415 + return ids;
  1416 +
  1417 + }
  1418 +
1108 @RequestMapping(value = "/tempcreateUser", produces = "application/json;charset=UTF-8") 1419 @RequestMapping(value = "/tempcreateUser", produces = "application/json;charset=UTF-8")
1109 @ResponseBody 1420 @ResponseBody
1110 - public Object tempCreateUser() throws Exception{ 1421 + public Object tempCreateUser() throws Exception {
1111 PageData pd = new PageData(); 1422 PageData pd = new PageData();
1112 pd = this.getPageData(); 1423 pd = this.getPageData();
1113 pd.put("ID", this.get32UUID()); 1424 pd.put("ID", this.get32UUID());
1114 teacherService.save(pd); 1425 teacherService.save(pd);
1115 - pd.put("USER_ID", pd.getString("ID")); //ID 主键  
1116 - pd.put("LAST_LOGIN", ""); //最后登录时间  
1117 - pd.put("IP", ""); //IP  
1118 - pd.put("STATUS", "0"); //状态 1426 + pd.put("USER_ID", pd.getString("ID")); // ID 主键
  1427 + pd.put("LAST_LOGIN", ""); // 最后登录时间
  1428 + pd.put("IP", ""); // IP
  1429 + pd.put("STATUS", "0"); // 状态
1119 pd.put("SKIN", "default"); 1430 pd.put("SKIN", "default");
1120 - pd.put("RIGHTS", ""); 1431 + pd.put("RIGHTS", "");
1121 pd.put("USERNAME", pd.getString("ACCOUT")); 1432 pd.put("USERNAME", pd.getString("ACCOUT"));
1122 - pd.put("ROLE_ID", "57bb1e6f138247a0b05cc721a5da1b64");  
1123 - pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("ACCOUT"), pd.getString("PASSWORD")).toString()); //密码加密  
1124 -  
1125 - if(null == userService.findByUsername(pd)){ //判断用户名是否存在  
1126 - userService.saveU(pd); //执行保存 1433 + pd.put("ROLE_ID", "57bb1e6f138247a0b05cc721a5da1b64");
  1434 + pd.put("PASSWORD",
  1435 + new SimpleHash("SHA-1", pd.getString("ACCOUT"), pd
  1436 + .getString("PASSWORD")).toString()); // 密码加密
  1437 +
  1438 + if (null == userService.findByUsername(pd)) { // 判断用户名是否存在
  1439 + userService.saveU(pd); // 执行保存
1127 } 1440 }
1128 -  
1129 - //ID, TEACHER_ID, CLASS_ID, SUBJECT_ID, START_DATE, END_DATE, GRADE_ID, TERM_ID, REMARK 1441 +
  1442 + // ID, TEACHER_ID, CLASS_ID, SUBJECT_ID, START_DATE, END_DATE, GRADE_ID,
  1443 + // TERM_ID, REMARK
1130 pd.put("TEACHER_ID", pd.get("ID")); 1444 pd.put("TEACHER_ID", pd.get("ID"));
1131 pd.put("CLASS_ID", "bc33389101ec46e6b7d47daa8adf58ac"); 1445 pd.put("CLASS_ID", "bc33389101ec46e6b7d47daa8adf58ac");
1132 pd.put("SUBJECT_ID", "1"); 1446 pd.put("SUBJECT_ID", "1");
1133 pd.put("GRADE_ID", "1"); 1447 pd.put("GRADE_ID", "1");
1134 - pd.put("TERM_ID","0d8ea2efdef74accbd0d00e9bc07dfbb"); 1448 + pd.put("TERM_ID", "0d8ea2efdef74accbd0d00e9bc07dfbb");
1135 coursemanagementService.save(pd); 1449 coursemanagementService.save(pd);
1136 - 1450 +
1137 return "{'res':'success'}"; 1451 return "{'res':'success'}";
1138 } 1452 }
1139 -  
1140 -  
1141 1453
1142 - private void event(String apiName){ 1454 + private void event(String apiName) {
1143 PageData eventPd = new PageData(); 1455 PageData eventPd = new PageData();
1144 eventPd.put("EVENT_ID", get32UUID()); 1456 eventPd.put("EVENT_ID", get32UUID());
1145 eventPd.put("EVENT_NAME", apiName); 1457 eventPd.put("EVENT_NAME", apiName);
@@ -1148,11 +1460,218 @@ public class V1 extends BaseController { @@ -1148,11 +1460,218 @@ public class V1 extends BaseController {
1148 eventPd.put("EVENT_START_TIME", Tools.date2Str(new Date())); 1460 eventPd.put("EVENT_START_TIME", Tools.date2Str(new Date()));
1149 eventPd.put("CLIENT_ID", "SERVER"); 1461 eventPd.put("CLIENT_ID", "SERVER");
1150 eventPd.put("EVENT_IP", getRemoteIp()); 1462 eventPd.put("EVENT_IP", getRemoteIp());
1151 - try{ 1463 + try {
1152 eventService.save(eventPd); 1464 eventService.save(eventPd);
1153 - }catch(Exception e){  
1154 - 1465 + } catch (Exception e) {
  1466 +
  1467 + }
  1468 + }
  1469 +
  1470 + static int index = 0;
  1471 +
  1472 + private void savePoint(Point point, String pid) {
  1473 + List<Point> children = point.getChildren();
  1474 + if (children != null && children.size() > 0) {
  1475 + for (Point p : children) {
  1476 + savePoint(p, point.getCode());
  1477 + }
  1478 + }
  1479 + PageData pageData = new PageData();
  1480 + pageData.put("KNOWLEDGE_ID", point.getCode());
  1481 + pageData.put("NAME", point.getName());
  1482 + pageData.put("P_ID", pid);
  1483 + pageData.put("RANK", ++index);
  1484 + try {
  1485 + knowledgeService.save(pageData);
  1486 + } catch (Exception e) {
  1487 + e.printStackTrace();
  1488 + }
  1489 + }
  1490 +
  1491 + @RequestMapping(value = "/uploadbook", produces = "application/json;charset=UTF-8")
  1492 + @ResponseBody
  1493 + public Object uploadbook() throws Exception {
  1494 + event("uploadbook");
  1495 + long cur = System.currentTimeMillis();
  1496 + PageData pd = this.getPageData();
  1497 + ResponseGson<String> res = new ResponseGson();
  1498 +
  1499 + if (!StringUtils.isEmpty(pd.getJsonString())) {
  1500 + try {
  1501 + ResponseGson<List<Point>> req = ResponseGson.parse(
  1502 + pd.getJsonString(), Point.class);
  1503 + List<Point> list = req.getData();
  1504 + if (list != null && list.size() > 0) {
  1505 + for (Point point : list) {
  1506 + saveBook(point);
  1507 + }
  1508 + }
  1509 + } catch (Exception e) {
  1510 + res.setError();
  1511 + }
  1512 + } else {
  1513 + res.setDataError();
  1514 + }
  1515 + logger.info("uploadpoint cost time : "
  1516 + + (System.currentTimeMillis() - cur));
  1517 + return res.toJson();
  1518 + }
  1519 +
  1520 + private void saveBook(Point point) {
  1521 +
  1522 + PageData pd = new PageData();
  1523 + pd.put("ID", point.getCode());
  1524 + pd.put("NAME", point.getName());
  1525 + pd.put("SUBJECT_ID", point.getSubjectCode());
  1526 + try {
  1527 + teachingmaterialService.save(pd);
  1528 + } catch (Exception e) {
  1529 + // TODO Auto-generated catch block
  1530 + e.printStackTrace();
  1531 + }
  1532 + }
  1533 +
  1534 +
  1535 + @RequestMapping(value = "/uploadyuncelianquestion", produces = "application/json;charset=UTF-8")
  1536 + @ResponseBody
  1537 + public Object uploadyuncelianquestion() throws Exception {
  1538 + event("uploadyuncelianquestion");
  1539 + long cur = System.currentTimeMillis();
  1540 + PageData pd = this.getPageData();
  1541 + ResponseGson<Object> res = new ResponseGson();
  1542 +
  1543 + if (!StringUtils.isEmpty(pd.getJsonString())) {
  1544 + try {
  1545 + ResponseGson<Object> req = ResponseGson.parse(
  1546 + pd.getJsonString());
  1547 + Object data = req.getData();
  1548 + if(data instanceof List){
  1549 + List<Object> list = (List)data;
  1550 + for(Object obj : list){
  1551 + if(obj instanceof Map){
  1552 + Map map = (Map)obj;
  1553 +
  1554 + PageData pageData = new PageData();
  1555 + pageData.put("QUESTION_ID", map.get("id"));
  1556 + Object cateObj = map.get("cate");
  1557 + if(cateObj != null){
  1558 + String cate = cateObj.toString();
  1559 + float catef = Float.parseFloat(cate);
  1560 + pageData.put("QUESTION_TYPE_ID", (int)catef);
  1561 + }
  1562 + Object contentObj = map.get("content");
  1563 + if(contentObj != null){
  1564 + String content = contentObj.toString();
  1565 + content = replaceWebUrl(content);
  1566 + pageData.put("CONTENT", content);
  1567 + }
  1568 + Object subjectCodeObj = map.get("subjectCode");
  1569 + if(subjectCodeObj != null){
  1570 + String subjectCode = subjectCodeObj.toString();
  1571 + pageData.put("SUBJECT_ID",subjectCode);
  1572 + }
  1573 + Object optionsObj = map.get("options");
  1574 + if(optionsObj instanceof List){
  1575 + List ss = (List)optionsObj;
  1576 + pageData.put("OPTION_CONTENT", optionsObj.toString());
  1577 + pageData.put("OPTION_NUM", "" + ss.size());
  1578 + }
  1579 + Object answersObj = map.get("answers");
  1580 + if(answersObj instanceof List){
  1581 + List answers = (List)answersObj;
  1582 + StringBuilder sb = new StringBuilder();
  1583 + for(Object as:answers){
  1584 + sb.append(as.toString());
  1585 + }
  1586 + pageData.put("ANSWER", sb.toString());
  1587 + }
  1588 + Object difficulty = map.get("difficulty");
  1589 + try{
  1590 + if (difficulty != null) {
  1591 + float fdifficulty = Float
  1592 + .parseFloat(difficulty.toString());
  1593 + pageData.put("DIFFICULTY",
  1594 + (int) fdifficulty);
  1595 + }
  1596 + }catch(Exception ex){
  1597 + ex.printStackTrace();
  1598 + }
  1599 + Object discussObj = map.get("discuss");
  1600 + if(discussObj != null){
  1601 + String discuss = discussObj.toString();
  1602 + discuss = replaceWebUrl(discuss);
  1603 + pageData.put("REMARK", discuss);
  1604 + }
  1605 + Object analyseObj = map.get("analyse");
  1606 + if(analyseObj != null){
  1607 + String analyse = analyseObj.toString();
  1608 + analyse = replaceWebUrl(analyse);
  1609 + pageData.put("ANALYSIS", analyse);
  1610 + }
  1611 + Object methodObj = map.get("method");
  1612 + if(methodObj != null){
  1613 + String method = methodObj.toString();
  1614 + method = replaceWebUrl(method);
  1615 + pageData.put("METHOD", method);
  1616 + }
  1617 + Object points = map.get("points");
  1618 + StringBuilder sb = new StringBuilder();
  1619 + if(points instanceof List){
  1620 + List pointsList = (List)points;
  1621 + for(Object pObject : pointsList){
  1622 + if(pObject instanceof Map){
  1623 + Map pMap = (Map)pObject;
  1624 + sb.append(pMap.get("code")).append(",");
  1625 + }
  1626 + }
  1627 +
  1628 + if(sb.toString().length() > 1){
  1629 + sb.deleteCharAt(sb.length() - 1);
  1630 + }
  1631 + pageData.put("KNOWLEDGE_ID", sb.toString());
  1632 + }
  1633 + pageData.put("QUESTION_FROM", "101");
  1634 + try{
  1635 + questionService.save(pageData);
  1636 + }catch(Exception e){
  1637 + logger.error("save fail:" + map.get("id"),e);
  1638 + }
  1639 + }
  1640 + }
  1641 + }
  1642 + } catch (Exception e) {
  1643 + res.setError();
  1644 + }
  1645 + } else {
  1646 + res.setDataError();
1155 } 1647 }
  1648 + logger.info("uploadyuncelianquestion cost time : "
  1649 + + (System.currentTimeMillis() - cur));
  1650 + return res.toJson();
1156 } 1651 }
  1652 +
1157 1653
  1654 + private String replaceWebUrl(String content){
  1655 + if(content != null){
  1656 + content = content.replaceAll("http://image.yuncelian.com/1/analysis/", "http://image.yuncelian.com/1/analysis/");
  1657 + }
  1658 + return content;
  1659 + }
  1660 +
  1661 +
  1662 + public String getRequestKey(PageData pd,String methodName){
  1663 + StringBuilder key = new StringBuilder() ;
  1664 + key.append(methodName).append("{");
  1665 + if (pd != null) {
  1666 + Iterator iterator = pd.keySet().iterator();
  1667 + while (iterator.hasNext()) {
  1668 + Object obj = iterator.next();
  1669 + key.append(obj.toString()).append(":")
  1670 + .append(pd.get(obj).toString()).append(";");
  1671 + }
  1672 + }
  1673 + key.append("}");
  1674 +
  1675 + return key.toString();
  1676 + }
1158 } 1677 }
src/com/fh/controller/sunvote/Myelfun.java
@@ -105,13 +105,25 @@ public class Myelfun { @@ -105,13 +105,25 @@ public class Myelfun {
105 public static String findSubjectCName(String type) throws Exception{ 105 public static String findSubjectCName(String type) throws Exception{
106 SubjectService subjectService = (SubjectService)SpringBeanFactoryUtils.getBean("subjectService"); 106 SubjectService subjectService = (SubjectService)SpringBeanFactoryUtils.getBean("subjectService");
107 PageData pageData = new PageData(); 107 PageData pageData = new PageData();
108 - pageData.put("ID", type);  
109 - pageData = subjectService.findById(pageData);  
110 - if(pageData != null){  
111 - return pageData.getString("CNAME"); 108 + StringBuilder sb = new StringBuilder();
  109 + if(type.contains(",")){
  110 + String[] types = type.split(",");
  111 + for (String t : types) {
  112 + pageData.put("ID", t);
  113 + pageData = subjectService.findById(pageData);
  114 + if (pageData != null) {
  115 + sb.append(pageData.getString("CNAME") + "; ");
  116 + }
  117 + }
  118 + sb.delete(sb.length() -3, sb.length());
112 }else{ 119 }else{
113 - return "" ; 120 + pageData.put("ID", type);
  121 + pageData = subjectService.findById(pageData);
  122 + if (pageData != null) {
  123 + return pageData.getString("CNAME");
  124 + }
114 } 125 }
  126 + return sb.toString() ;
115 } 127 }
116 128
117 /** 129 /**
src/com/fh/controller/sunvote/cache/CacheController.java 0 → 100644
  1 +package com.fh.controller.sunvote.cache;
  2 +
  3 +import java.io.PrintWriter;
  4 +import java.text.DateFormat;
  5 +import java.text.SimpleDateFormat;
  6 +import java.util.ArrayList;
  7 +import java.util.Date;
  8 +import java.util.HashMap;
  9 +import java.util.List;
  10 +import java.util.Map;
  11 +import javax.annotation.Resource;
  12 +import org.springframework.beans.propertyeditors.CustomDateEditor;
  13 +import org.springframework.stereotype.Controller;
  14 +import org.springframework.web.bind.WebDataBinder;
  15 +import org.springframework.web.bind.annotation.InitBinder;
  16 +import org.springframework.web.bind.annotation.RequestMapping;
  17 +import org.springframework.web.bind.annotation.ResponseBody;
  18 +import org.springframework.web.servlet.ModelAndView;
  19 +import com.fh.controller.base.BaseController;
  20 +import com.fh.entity.Page;
  21 +import com.fh.util.AppUtil;
  22 +import com.fh.util.ObjectExcelView;
  23 +import com.fh.util.PageData;
  24 +import com.fh.util.Jurisdiction;
  25 +import com.fh.util.Tools;
  26 +import com.fh.service.sunvote.cache.CacheManager;
  27 +
  28 +/**
  29 + * 说明:缓存管理
  30 + * 创建人:FH Q313596790
  31 + * 创建时间:2018-08-08
  32 + */
  33 +@Controller
  34 +@RequestMapping(value="/cache")
  35 +public class CacheController extends BaseController {
  36 +
  37 + String menuUrl = "cache/list.do"; //菜单地址(权限用)
  38 + @Resource(name="cacheService")
  39 + private CacheManager cacheService;
  40 +
  41 + /**保存
  42 + * @param
  43 + * @throws Exception
  44 + */
  45 + @RequestMapping(value="/save")
  46 + public ModelAndView save() throws Exception{
  47 + logBefore(logger, Jurisdiction.getUsername()+"新增Cache");
  48 + ModelAndView mv = this.getModelAndView();
  49 + PageData pd = new PageData();
  50 + pd = this.getPageData();
  51 + pd.put("KEY", ""); //key
  52 + pd.put("CACHE", ""); //cache
  53 + cacheService.save(pd);
  54 + mv.addObject("msg","success");
  55 + mv.setViewName("save_result");
  56 + return mv;
  57 + }
  58 +
  59 + /**删除
  60 + * @param out
  61 + * @throws Exception
  62 + */
  63 + @RequestMapping(value="/delete")
  64 + public void delete(PrintWriter out) throws Exception{
  65 + logBefore(logger, Jurisdiction.getUsername()+"删除Cache");
  66 + PageData pd = new PageData();
  67 + pd = this.getPageData();
  68 + cacheService.delete(pd);
  69 + out.write("success");
  70 + out.close();
  71 + }
  72 +
  73 +
  74 +
  75 +}
src/com/fh/controller/sunvote/grade/GradeController.java
@@ -49,6 +49,7 @@ public class GradeController extends BaseController { @@ -49,6 +49,7 @@ public class GradeController extends BaseController {
49 ModelAndView mv = this.getModelAndView(); 49 ModelAndView mv = this.getModelAndView();
50 PageData pd = new PageData(); 50 PageData pd = new PageData();
51 pd = this.getPageData(); 51 pd = this.getPageData();
  52 + pd.put("ID",get32UUID());
52 gradeService.save(pd); 53 gradeService.save(pd);
53 mv.addObject("msg","success"); 54 mv.addObject("msg","success");
54 mv.setViewName("save_result"); 55 mv.setViewName("save_result");
src/com/fh/service/sunvote/cache/CacheManager.java 0 → 100644
  1 +package com.fh.service.sunvote.cache;
  2 +
  3 +import java.util.List;
  4 +import com.fh.entity.Page;
  5 +import com.fh.util.PageData;
  6 +
  7 +/**
  8 + * 说明: 缓存管理接口
  9 + * 创建人:FH Q313596790
  10 + * 创建时间:2018-08-08
  11 + * @version
  12 + */
  13 +public interface CacheManager{
  14 +
  15 + /**新增
  16 + * @param pd
  17 + * @throws Exception
  18 + */
  19 + public void save(PageData pd)throws Exception;
  20 +
  21 + /**删除
  22 + * @param pd
  23 + * @throws Exception
  24 + */
  25 + public void delete(PageData pd)throws Exception;
  26 +
  27 + /**修改
  28 + * @param pd
  29 + * @throws Exception
  30 + */
  31 + public void edit(PageData pd)throws Exception;
  32 +
  33 + /**列表
  34 + * @param page
  35 + * @throws Exception
  36 + */
  37 + public List<PageData> list(Page page)throws Exception;
  38 +
  39 + /**列表(全部)
  40 + * @param pd
  41 + * @throws Exception
  42 + */
  43 + public List<PageData> listAll(PageData pd)throws Exception;
  44 +
  45 + /**通过id获取数据
  46 + * @param pd
  47 + * @throws Exception
  48 + */
  49 + public PageData findById(PageData pd)throws Exception;
  50 +
  51 + /**批量删除
  52 + * @param ArrayDATA_IDS
  53 + * @throws Exception
  54 + */
  55 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
  56 +
  57 +}
  58 +
src/com/fh/service/sunvote/cache/impl/CacheService.java 0 → 100644
  1 +package com.fh.service.sunvote.cache.impl;
  2 +
  3 +import java.util.List;
  4 +import javax.annotation.Resource;
  5 +import org.springframework.stereotype.Service;
  6 +import com.fh.dao.DaoSupport;
  7 +import com.fh.entity.Page;
  8 +import com.fh.util.PageData;
  9 +import com.fh.service.sunvote.cache.CacheManager;
  10 +
  11 +/**
  12 + * 说明: 缓存管理
  13 + * 创建人:FH Q313596790
  14 + * 创建时间:2018-08-08
  15 + * @version
  16 + */
  17 +@Service("cacheService")
  18 +public class CacheService implements CacheManager{
  19 +
  20 + @Resource(name = "daoSupport")
  21 + private DaoSupport dao;
  22 +
  23 + /**新增
  24 + * @param pd
  25 + * @throws Exception
  26 + */
  27 + public void save(PageData pd)throws Exception{
  28 + dao.save("CacheMapper.save", pd);
  29 + }
  30 +
  31 + /**删除
  32 + * @param pd
  33 + * @throws Exception
  34 + */
  35 + public void delete(PageData pd)throws Exception{
  36 + dao.delete("CacheMapper.delete", pd);
  37 + }
  38 +
  39 + /**修改
  40 + * @param pd
  41 + * @throws Exception
  42 + */
  43 + public void edit(PageData pd)throws Exception{
  44 + dao.update("CacheMapper.edit", pd);
  45 + }
  46 +
  47 + /**列表
  48 + * @param page
  49 + * @throws Exception
  50 + */
  51 + @SuppressWarnings("unchecked")
  52 + public List<PageData> list(Page page)throws Exception{
  53 + return (List<PageData>)dao.findForList("CacheMapper.datalistPage", page);
  54 + }
  55 +
  56 + /**列表(全部)
  57 + * @param pd
  58 + * @throws Exception
  59 + */
  60 + @SuppressWarnings("unchecked")
  61 + public List<PageData> listAll(PageData pd)throws Exception{
  62 + return (List<PageData>)dao.findForList("CacheMapper.listAll", pd);
  63 + }
  64 +
  65 + /**通过id获取数据
  66 + * @param pd
  67 + * @throws Exception
  68 + */
  69 + public PageData findById(PageData pd)throws Exception{
  70 + return (PageData)dao.findForObject("CacheMapper.findById", pd);
  71 + }
  72 +
  73 + /**批量删除
  74 + * @param ArrayDATA_IDS
  75 + * @throws Exception
  76 + */
  77 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
  78 + dao.delete("CacheMapper.deleteAll", ArrayDATA_IDS);
  79 + }
  80 +
  81 +}
  82 +
src/com/fh/service/sunvote/chapter/ChapterManager.java
1 package com.fh.service.sunvote.chapter; 1 package com.fh.service.sunvote.chapter;
2 2
3 import java.util.List; 3 import java.util.List;
  4 +
4 import com.fh.entity.Page; 5 import com.fh.entity.Page;
5 import com.fh.util.PageData; 6 import com.fh.util.PageData;
6 7
@@ -54,5 +55,8 @@ public interface ChapterManager{ @@ -54,5 +55,8 @@ public interface ChapterManager{
54 */ 55 */
55 public void deleteAll(String[] ArrayDATA_IDS)throws Exception; 56 public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
56 57
  58 +
  59 + public List<PageData> listAllChapter(PageData pd)throws Exception;
  60 +
57 } 61 }
58 62
src/com/fh/service/sunvote/chapter/impl/ChapterService.java
@@ -58,6 +58,15 @@ public class ChapterService implements ChapterManager{ @@ -58,6 +58,15 @@ public class ChapterService implements ChapterManager{
58 * @throws Exception 58 * @throws Exception
59 */ 59 */
60 @SuppressWarnings("unchecked") 60 @SuppressWarnings("unchecked")
  61 + public List<PageData> listAllChapter(PageData pd)throws Exception{
  62 + return (List<PageData>)dao.findForList("ChapterMapper.listAllChapter", pd);
  63 + }
  64 +
  65 + /**列表(全部)
  66 + * @param pd
  67 + * @throws Exception
  68 + */
  69 + @SuppressWarnings("unchecked")
61 public List<PageData> listAll(PageData pd)throws Exception{ 70 public List<PageData> listAll(PageData pd)throws Exception{
62 return (List<PageData>)dao.findForList("ChapterMapper.listAll", pd); 71 return (List<PageData>)dao.findForList("ChapterMapper.listAll", pd);
63 } 72 }
src/com/fh/service/sunvote/knowledge/KnowledgeManager.java
1 package com.fh.service.sunvote.knowledge; 1 package com.fh.service.sunvote.knowledge;
2 2
3 import java.util.List; 3 import java.util.List;
  4 +
4 import com.fh.entity.Page; 5 import com.fh.entity.Page;
5 import com.fh.util.PageData; 6 import com.fh.util.PageData;
6 7
@@ -53,5 +54,13 @@ public interface KnowledgeManager{ @@ -53,5 +54,13 @@ public interface KnowledgeManager{
53 */ 54 */
54 public void deleteAll(String[] ArrayDATA_IDS)throws Exception; 55 public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
55 56
  57 + /**
  58 + *
  59 + * @param pd
  60 + * @return
  61 + * @throws Exception
  62 + */
  63 + public List<PageData> listAllknowledge(PageData pd)throws Exception;
  64 +
56 } 65 }
57 66
src/com/fh/service/sunvote/knowledge/impl/KnowledgeService.java
@@ -61,6 +61,15 @@ public class KnowledgeService implements KnowledgeManager{ @@ -61,6 +61,15 @@ public class KnowledgeService implements KnowledgeManager{
61 return (List<PageData>)dao.findForList("KnowledgeMapper.listAll", pd); 61 return (List<PageData>)dao.findForList("KnowledgeMapper.listAll", pd);
62 } 62 }
63 63
  64 + /**列表(全部)
  65 + * @param pd
  66 + * @throws Exception
  67 + */
  68 + @SuppressWarnings("unchecked")
  69 + public List<PageData> listAllknowledge(PageData pd)throws Exception{
  70 + return (List<PageData>)dao.findForList("KnowledgeMapper.listAllknowledge", pd);
  71 + }
  72 +
64 /**通过id获取数据 73 /**通过id获取数据
65 * @param pd 74 * @param pd
66 * @throws Exception 75 * @throws Exception
src/com/fh/service/sunvote/question/QuestionManager.java
1 package com.fh.service.sunvote.question; 1 package com.fh.service.sunvote.question;
2 2
3 import java.util.List; 3 import java.util.List;
  4 +
4 import com.fh.entity.Page; 5 import com.fh.entity.Page;
5 import com.fh.util.PageData; 6 import com.fh.util.PageData;
6 7
@@ -53,5 +54,15 @@ public interface QuestionManager{ @@ -53,5 +54,15 @@ public interface QuestionManager{
53 */ 54 */
54 public void deleteAll(String[] ArrayDATA_IDS)throws Exception; 55 public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
55 56
  57 + /**
  58 + *
  59 + * @param pd
  60 + * @return
  61 + * @throws Exception
  62 + */
  63 + public List<PageData> listAllquestion(PageData pd)throws Exception;
  64 +
  65 + public List<PageData> listAllRandquestion(PageData pd)throws Exception;
  66 +
56 } 67 }
57 68
src/com/fh/service/sunvote/question/impl/QuestionService.java
@@ -60,6 +60,22 @@ public class QuestionService implements QuestionManager{ @@ -60,6 +60,22 @@ public class QuestionService implements QuestionManager{
60 public List<PageData> listAll(PageData pd)throws Exception{ 60 public List<PageData> listAll(PageData pd)throws Exception{
61 return (List<PageData>)dao.findForList("QuestionMapper.listAll", pd); 61 return (List<PageData>)dao.findForList("QuestionMapper.listAll", pd);
62 } 62 }
  63 + /**列表(全部)
  64 + * @param pd
  65 + * @throws Exception
  66 + */
  67 + @SuppressWarnings("unchecked")
  68 + public List<PageData> listAllquestion(PageData pd)throws Exception{
  69 + return (List<PageData>)dao.findForList("QuestionMapper.listAllquestion", pd);
  70 + }
  71 + /**列表(全部)
  72 + * @param pd
  73 + * @throws Exception
  74 + */
  75 + @SuppressWarnings("unchecked")
  76 + public List<PageData> listAllRandquestion(PageData pd)throws Exception{
  77 + return (List<PageData>)dao.findForList("QuestionMapper.listAllRandquestion", pd);
  78 + }
63 79
64 /**通过id获取数据 80 /**通过id获取数据
65 * @param pd 81 * @param pd