Commit ce70231eaa48ad076bae44fe8c4244475535a351

Authored by 孙向锦
1 parent 02f157fa

增加接口

WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
... ... @@ -73,29 +73,29 @@
73 73 </thead>
74 74 <tbody>
75 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 78 <td class="center"><div style="width:80px;"></div></td>
79 79 <c:forEach items="${testpaperList}" var="var" varStatus="vs">
80 80 <td class="center"><div style="width:80px;margin:0 auto;">${var.TOTAL_SCORE}</div></td>
81 81 </c:forEach>
82 82 </tr>
83 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 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 89 </c:forEach>
90 90 </tr>
91 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 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 97 value="${var.TOTAL_SCORE == 0 ? 0: (var.AVG_SCORE / var.TOTAL_SCORE * 100)}"
98   - maxFractionDigits="2" />%</td>
  98 + maxFractionDigits="2" />%</div></td>
99 99 </c:forEach>
100 100 </tr>
101 101  
... ... @@ -106,15 +106,15 @@
106 106 <%-- <td class="center"><a
107 107 href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a>
108 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 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 113 value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}"
114 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 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 118 value="${var1.TESTPAPER_ID}" /> ${var[TEST_ID] }</div></td>
119 119 </c:forEach>
120 120 </tr>
... ... @@ -268,12 +268,13 @@
268 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 273 $(".th_name").height(name_height);
273 274 });
274 275  
275 276  
276   - console.log('${studentList}');
  277 + //console.log('${studentList}');
277 278  
278 279 </script>
279 280  
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_test.jsp
... ... @@ -52,51 +52,51 @@
52 52 style="margin-top:0px;margin-bottom:0;">
53 53 <thead>
54 54 <tr>
55   - <th class="center"><div style="width:80px;">键盘</div></th>
  55 + <th class="center"><div style="width:109px;">键盘</div></th>
56 56 <th class="center"><div style="width:80px;">学号</div></th>
57 57 <th class="center"><div style="width:80px;">姓名</div></th>
58 58 <th class="center"><div style="width:80px;">得分</div></th>
59 59 <!-- <th class="center"><div style="width:80px;">正确率</div></th> -->
60 60 <th class="center"><div style="width:80px;">排名</div></th>
61 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 63 </c:forEach>
64 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 66 </tr>
67 67 </thead>
68 68 <tbody>
69 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 74 <!-- <td class="center"></td> -->
75   - <td class="center">--</td>
  75 + <td class="center"><div style="width:80px;">--</div></td>
76 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 78 value="${var == 0 ? 0: (var / classInfo.studentNum * 100)}"
79   - maxFractionDigits="1" />%</td>
  79 + maxFractionDigits="1" />%</div></td>
80 80 </c:forEach>
81 81 <!-- <td class="center"></td> -->
82   - <td class="center"></td>
  82 + <td class="center"><div style="width:80px;margin:0 auto;"></div></td>
83 83 </tr>
84 84  
85 85 <c:choose>
86 86 <c:when test="${not empty studentInfo}">
87 87 <c:forEach items="${studentInfo}" var="var" varStatus="vs">
88 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 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 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 97 </c:forEach>
98 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 100 </tr>
101 101 </c:forEach>
102 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 82 \ No newline at end of file
... ...
resources/mybatis1/sunvote/ChapterMapper.xml
... ... @@ -101,6 +101,31 @@
101 101 <include refid="tableName"></include>
102 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 130 <delete id="deleteAll" parameterType="String">
106 131 delete from
... ...
resources/mybatis1/sunvote/KnowledgeMapper.xml
... ... @@ -13,6 +13,7 @@
13 13 P_ID,
14 14 RANK,
15 15 CODE,
  16 + SUBJECT_ID,
16 17 REMARK,
17 18 KNOWLEDGE_ID
18 19 </sql>
... ... @@ -23,6 +24,7 @@
23 24 #{P_ID},
24 25 #{RANK},
25 26 #{CODE},
  27 + #{SUBJECT_ID},
26 28 #{REMARK},
27 29 #{KNOWLEDGE_ID}
28 30 </sql>
... ... @@ -98,6 +100,33 @@
98 100 <include refid="tableName"></include>
99 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 131 <delete id="deleteAll" parameterType="String">
103 132 delete from
... ...
resources/mybatis1/sunvote/QuestionMapper.xml
... ... @@ -28,6 +28,7 @@
28 28 USER_ID,
29 29 CREATE_DATE,
30 30 REMARK,
  31 + METHOD,
31 32 QUESTION_ID
32 33 </sql>
33 34  
... ... @@ -52,6 +53,7 @@
52 53 #{USER_ID},
53 54 #{CREATE_DATE},
54 55 #{REMARK},
  56 + #{METHOD},
55 57 #{QUESTION_ID}
56 58 </sql>
57 59  
... ... @@ -98,6 +100,7 @@
98 100 USER_ID = #{USER_ID},
99 101 CREATE_DATE = #{CREATE_DATE},
100 102 REMARK = #{REMARK},
  103 + METHOD = #{METHOD},
101 104 QUESTION_ID = QUESTION_ID
102 105 where
103 106 QUESTION_ID = #{QUESTION_ID}
... ... @@ -140,6 +143,96 @@
140 143 <include refid="tableName"></include>
141 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 237 <delete id="deleteAll" parameterType="String">
145 238 delete from
... ...
resources/mybatis1/sunvote/TeachingMaterialMapper.xml
... ... @@ -32,17 +32,10 @@
32 32 insert into
33 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 37 ) values (
41   - #{NAME},
42   - #{SUBJECT_ID},
43   - #{GRADE_ID},
44   - #{VERSION_CODE},
45   - #{VERSION_NAME}
  38 + <include refid="FieldValue"></include>
46 39 )
47 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 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 8 import com.google.gson.Gson;
  9 +import com.google.gson.GsonBuilder;
  10 +import com.google.gson.reflect.TypeToken;
4 11  
5 12 public class ResponseGson<T> {
6 13  
... ... @@ -8,7 +15,7 @@ public class ResponseGson&lt;T&gt; {
8 15  
9 16 private String message = "success";
10 17  
11   - private Object data;
  18 + private T data;
12 19  
13 20 public String getCode() {
14 21 return code;
... ... @@ -26,7 +33,7 @@ public class ResponseGson&lt;T&gt; {
26 33 this.message = message;
27 34 }
28 35  
29   - public Object getData() {
  36 + public T getData() {
30 37 return data;
31 38 }
32 39  
... ... @@ -35,10 +42,7 @@ public class ResponseGson&lt;T&gt; {
35 42 }
36 43  
37 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 46 return gson.toJson(this);
43 47 }
44 48  
... ... @@ -48,6 +52,39 @@ public class ResponseGson&lt;T&gt; {
48 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 89 public void setSuccess(){
53 90 code = "0" ;
... ...
src/com/fh/controller/api/V1.java
... ... @@ -2,7 +2,9 @@ package com.fh.controller.api;
2 2  
3 3 import java.util.ArrayList;
4 4 import java.util.Date;
  5 +import java.util.Iterator;
5 6 import java.util.List;
  7 +import java.util.Map;
6 8  
7 9 import javax.annotation.Resource;
8 10 import javax.servlet.http.HttpServletRequest;
... ... @@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
14 16 import org.springframework.web.bind.annotation.ResponseBody;
15 17  
16 18 import com.fh.bean.Paper;
  19 +import com.fh.bean.Point;
17 20 import com.fh.bean.Question;
18 21 import com.fh.bean.StudentAnswer;
19 22 import com.fh.bean.TestPaper;
... ... @@ -27,6 +30,7 @@ import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager;
27 30 import com.fh.service.software.softwareversion.SoftwareVersionManager;
28 31 import com.fh.service.sunvote.attachkeyboard.AttachKeyboardManager;
29 32 import com.fh.service.sunvote.basestation.BasestationManager;
  33 +import com.fh.service.sunvote.cache.CacheManager;
30 34 import com.fh.service.sunvote.chapter.ChapterManager;
31 35 import com.fh.service.sunvote.classbasetation.ClassBasetationManager;
32 36 import com.fh.service.sunvote.classroster.ClassRosterManager;
... ... @@ -52,10 +56,10 @@ import com.fh.service.sunvote.student.StudentManager;
52 56 import com.fh.service.sunvote.studenttest.StudentTestManager;
53 57 import com.fh.service.sunvote.subject.SubjectManager;
54 58 import com.fh.service.sunvote.teacher.TeacherManager;
  59 +import com.fh.service.sunvote.teachingmaterial.TeachingMaterialManager;
55 60 import com.fh.service.sunvote.testpaper.TestPaperManager;
56 61 import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager;
57 62 import com.fh.service.system.user.UserManager;
58   -import com.fh.util.Jurisdiction;
59 63 import com.fh.util.PageData;
60 64 import com.fh.util.Tools;
61 65  
... ... @@ -149,22 +153,28 @@ public class V1 extends BaseController {
149 153  
150 154 @Resource(name = "v1Service")
151 155 private V1Manager v1Service;
152   -
153   - @Resource(name="softwareversionService")
  156 +
  157 + @Resource(name = "softwareversionService")
154 158 private SoftwareVersionManager softwareversionService;
155   -
156   - @Resource(name="attachkeyboardService")
  159 +
  160 + @Resource(name = "attachkeyboardService")
157 161 private AttachKeyboardManager attachkeyboardService;
158   -
159   - @Resource(name="networkstatisticsService")
  162 +
  163 + @Resource(name = "networkstatisticsService")
160 164 private NetworkStatisticsManager networkstatisticsService;
161   -
162   - @Resource(name="eventService")
  165 +
  166 + @Resource(name = "eventService")
163 167 private EventManager eventService;
164   -
165   - @Resource(name="userService")
  168 +
  169 + @Resource(name = "userService")
166 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 178 @RequestMapping(value = "/login", produces = "application/json;charset=UTF-8")
169 179 @ResponseBody
170 180 public Object login() throws Exception {
... ... @@ -174,8 +184,9 @@ public class V1 extends BaseController {
174 184 if (!pd.containsKey("ACCOUT")) {
175 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 190 PageData pageData = teacherService.getUserInfo(pd);
180 191 if (pageData != null && pageData.getString("ID") != null) {
181 192 pageData.put("PASSWORD", "");// 返回参数中不返回密码
... ... @@ -193,19 +204,19 @@ public class V1 extends BaseController {
193 204 pageData.put("subjectList", subjectList);
194 205  
195 206 pageData.remove("SUBJECT_IDS");
196   -
  207 +
197 208 PageData eventPd = new PageData();
198 209 eventPd.put("EVENT_ID", get32UUID());
199 210 eventPd.put("EVENT_NAME", "login");
200 211 eventPd.put("EVENT_USER", pageData.getString("ID"));
201 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 215 eventPd.put("CLIENT_ID", pd.getString("CLIENT_ID"));
205   - }else{
  216 + } else {
206 217 eventPd.put("CLIENT_ID", "CLIENT");
207 218 }
208   - eventPd.put("EVENT_IP",getRemoteIp());
  219 + eventPd.put("EVENT_IP", getRemoteIp());
209 220 eventService.save(eventPd);
210 221  
211 222 res.setData(pageData);
... ... @@ -235,23 +246,26 @@ public class V1 extends BaseController {
235 246 List<PageData> studentList = v1Service.getClassStudent(pt);
236 247 pageData.put("studentList", studentList);
237 248 pt.put("CLASS_ID", pageData.get("ID"));
238   - List<PageData> keyboards = attachkeyboardService.listAllClassId(pt);
  249 + List<PageData> keyboards = attachkeyboardService
  250 + .listAllClassId(pt);
239 251 pageData.put("keyboards", keyboards);
240 252 res.setData(pageData);
241 253 } else {
242 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 258 return res.toJson();
246 259 } else {
247 260 ResponseGson<List<PageData>> res = new ResponseGson();
248 261 List<PageData> list = sclassService.listAll(pd);
249 262 res.setData(list);
250   - logger.info("class cost time : " + (System.currentTimeMillis() - cur));
  263 + logger.info("class cost time : "
  264 + + (System.currentTimeMillis() - cur));
251 265 return res.toJson();
252 266 }
253 267 }
254   -
  268 +
255 269 @RequestMapping(value = "/questiontype", produces = "application/json;charset=UTF-8")
256 270 @ResponseBody
257 271 public Object questiontype() throws Exception {
... ... @@ -261,10 +275,11 @@ public class V1 extends BaseController {
261 275 ResponseGson<List<PageData>> res = new ResponseGson();
262 276 List<PageData> list = questiontypeService.listAll(pd);
263 277 res.setData(list);
264   - logger.info("questiontype cost time : " + (System.currentTimeMillis() - cur));
  278 + logger.info("questiontype cost time : "
  279 + + (System.currentTimeMillis() - cur));
265 280 return res.toJson();
266 281 }
267   -
  282 +
268 283 @RequestMapping(value = "/classtype", produces = "application/json;charset=UTF-8")
269 284 @ResponseBody
270 285 public Object classtype() throws Exception {
... ... @@ -274,10 +289,11 @@ public class V1 extends BaseController {
274 289 ResponseGson<List<PageData>> res = new ResponseGson();
275 290 List<PageData> list = classtypeService.listAll(pd);
276 291 res.setData(list);
277   - logger.info("classtype cost time : " + (System.currentTimeMillis() - cur));
  292 + logger.info("classtype cost time : "
  293 + + (System.currentTimeMillis() - cur));
278 294 return res.toJson();
279 295 }
280   -
  296 +
281 297 @RequestMapping(value = "/grade", produces = "application/json;charset=UTF-8")
282 298 @ResponseBody
283 299 public Object grade() throws Exception {
... ... @@ -295,7 +311,7 @@ public class V1 extends BaseController {
295 311 logger.info("class cost time : " + (System.currentTimeMillis() - cur));
296 312 return res.toJson();
297 313 }
298   -
  314 +
299 315 @RequestMapping(value = "/subject", produces = "application/json;charset=UTF-8")
300 316 @ResponseBody
301 317 public Object subject() throws Exception {
... ... @@ -313,8 +329,6 @@ public class V1 extends BaseController {
313 329 logger.info("subject cost time : " + (System.currentTimeMillis() - cur));
314 330 return res.toJson();
315 331 }
316   -
317   -
318 332  
319 333 @RequestMapping(value = "/keypadscan", produces = "application/json;charset=UTF-8")
320 334 @ResponseBody
... ... @@ -333,7 +347,8 @@ public class V1 extends BaseController {
333 347 } catch (Exception ex) {
334 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 352 return res.toJson();
338 353 }
339 354  
... ... @@ -418,9 +433,9 @@ public class V1 extends BaseController {
418 433 question.setQuestion_from(qpd
419 434 .getString("QUESTION_FROM"));
420 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 439 question.setRank(qpd.getString("RANK"));
425 440 question.setNo_name(qpd.getString("NO_NAME"));
426 441 if ("-1".equals("" + qpd.getString("P_ID"))) {
... ... @@ -449,9 +464,9 @@ public class V1 extends BaseController {
449 464 qq.setQuestion_from(q
450 465 .getString("QUESTION_FROM"));
451 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 470 qq.setRank(q.getString("RANK"));
456 471 qq.setNo_name(q.getString("NO_NAME"));
457 472 question.getQuestions().add(qq);
... ... @@ -477,7 +492,8 @@ public class V1 extends BaseController {
477 492 } else {
478 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 497 return res.toJson();
482 498 }
483 499  
... ... @@ -488,10 +504,11 @@ public class V1 extends BaseController {
488 504 long cur = System.currentTimeMillis();
489 505 PageData pd = this.getPageData();
490 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 509 return res.toJson();
493 510 }
494   -
  511 +
495 512 @RequestMapping(value = "/question", produces = "application/json;charset=UTF-8")
496 513 @ResponseBody
497 514 public Object question() throws Exception {
... ... @@ -499,17 +516,18 @@ public class V1 extends BaseController {
499 516 long cur = System.currentTimeMillis();
500 517 PageData pd = this.getPageData();
501 518 ResponseGson<PageData> res = new ResponseGson();
502   - if(pd.containsKey("ID")){
  519 + if (pd.containsKey("ID")) {
503 520 pd.put("QUESTION_ID", pd.get("ID"));
504 521 PageData data = questionService.findById(pd);
505 522 res.setData(data);
506   - }else{
  523 + } else {
507 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 528 return res.toJson();
511 529 }
512   -
  530 +
513 531 @RequestMapping(value = "/question/add", produces = "application/json;charset=UTF-8")
514 532 @ResponseBody
515 533 public Object questionAdd() throws Exception {
... ... @@ -519,10 +537,11 @@ public class V1 extends BaseController {
519 537 ResponseGson<PageData> res = new ResponseGson();
520 538 pd.put("QUESTION_ID", this.get32UUID());
521 539 questionService.save(pd);
522   - logger.info("questionAdd cost time : " + (System.currentTimeMillis() - cur));
  540 + logger.info("questionAdd cost time : "
  541 + + (System.currentTimeMillis() - cur));
523 542 return res.toJson();
524 543 }
525   -
  544 +
526 545 @RequestMapping(value = "/uploadpaper", produces = "application/json;charset=UTF-8")
527 546 @ResponseBody
528 547 public Object uploadpaper() throws Exception {
... ... @@ -552,8 +571,7 @@ public class V1 extends BaseController {
552 571 paperPd.put("CREATE_DATE", Tools.date2Str(new Date()));
553 572 paperPd.put("MODIFY_DATE", Tools.date2Str(new Date()));
554 573  
555   - int questionNum = 0 ;
556   -
  574 + int questionNum = 0;
557 575  
558 576 List<Question> questions = paper.getQuestions();
559 577 if (questions != null) {
... ... @@ -565,12 +583,14 @@ public class V1 extends BaseController {
565 583 && question.getQuestions().size() > 0) {
566 584 qPd.put("P_ID", "-1");
567 585 } else {
568   - questionNum ++ ;
  586 + questionNum++;
569 587 qPd.put("P_ID", "0");
570 588 }
571 589 qPd.put("SUBJECT_ID", paper.getSubject_id());
572 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 594 qPd.put("TEACHER_ID", paper.getUser_id());
575 595 qPd.put("SCHOOL_ID", schoolID);
576 596 qPd.put("KNOWLEDGE_ID", question.getKnowledge_id());
... ... @@ -607,7 +627,9 @@ public class V1 extends BaseController {
607 627 cqPd.put("P_ID", questionID);
608 628 cqPd.put("SUBJECT_ID", paper.getSubject_id());
609 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 633 cqPd.put("TEACHER_ID", paper.getUser_id());
612 634 cqPd.put("SCHOOL_ID", schoolID);
613 635 cqPd.put("KNOWLEDGE_ID", q.getKnowledge_id());
... ... @@ -636,7 +658,7 @@ public class V1 extends BaseController {
636 658 cpqPd.put("PAPERQUESTION_ID", this.get32UUID());
637 659  
638 660 paperquestionService.save(cpqPd);
639   - questionNum ++ ;
  661 + questionNum++;
640 662 }
641 663 }
642 664 }
... ... @@ -647,7 +669,37 @@ public class V1 extends BaseController {
647 669 } else {
648 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 703 return res.toJson();
652 704 }
653 705  
... ... @@ -747,7 +799,7 @@ public class V1 extends BaseController {
747 799 }
748 800 testpaperinfoService.batchSave(testInfoPdList);
749 801 }
750   - }else{
  802 + } else {
751 803 testPaperId = listData.get(0).getString("TESTPAPER_ID");
752 804 }
753 805 res.setData(testPaperId);
... ... @@ -759,13 +811,13 @@ public class V1 extends BaseController {
759 811 } else {
760 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 817 return res.toJson();
765 818  
766 819 }
767   -
768   -
  820 +
769 821 // 上传测验成绩
770 822 @RequestMapping(value = "/uploadupdatetestpaper", produces = "application/json;charset=UTF-8")
771 823 @ResponseBody
... ... @@ -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 1003 @RequestMapping(value = "/downloadtestpaper", produces = "application/json;charset=UTF-8")
884 1004 @ResponseBody
... ... @@ -960,7 +1080,8 @@ public class V1 extends BaseController {
960 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 1085 return res.toJson();
965 1086  
966 1087 }
... ... @@ -1006,20 +1127,18 @@ public class V1 extends BaseController {
1006 1127 return res.toJson();
1007 1128  
1008 1129 }
1009   -
1010   -
  1130 +
1011 1131 @RequestMapping(value = "/schooladmin", produces = "application/json;charset=UTF-8")
1012 1132 @ResponseBody
1013   - public void schoolAdmin(){
  1133 + public void schoolAdmin() {
1014 1134 event("schoolAdmin");
1015 1135 PageData pd = this.getPageData();
1016 1136 this.getUserID();
1017 1137 }
1018   -
1019   -
  1138 +
1020 1139 @RequestMapping(value = "/network", produces = "application/json;charset=UTF-8")
1021 1140 @ResponseBody
1022   - public Object network() throws Exception{
  1141 + public Object network() throws Exception {
1023 1142 event("network");
1024 1143 PageData pd = this.getPageData();
1025 1144 ResponseGson<PageData> res = new ResponseGson();
... ... @@ -1033,7 +1152,7 @@ public class V1 extends BaseController {
1033 1152 .getString("SUCCESS_COUNT"));
1034 1153 spd.put("SUCCESS_COUNT", ++successCount + "");
1035 1154 int fail = seq - successCount;
1036   - if(fail < 0 ){
  1155 + if (fail < 0) {
1037 1156 fail = 0;
1038 1157 }
1039 1158 spd.put("FAIL_COUNT", fail + "");
... ... @@ -1047,7 +1166,7 @@ public class V1 extends BaseController {
1047 1166 pd.put("SUCCESS_COUNT", "1");
1048 1167 pd.put("CLIENT_IP", getRemoteIp());
1049 1168 int fail = seq - 1;
1050   - if(fail < 0 ){
  1169 + if (fail < 0) {
1051 1170 fail = 0;
1052 1171 }
1053 1172 pd.put("FAIL_COUNT", fail + "");
... ... @@ -1059,14 +1178,13 @@ public class V1 extends BaseController {
1059 1178 pd.remove("NETWORKSTATISTICS_ID");
1060 1179 res.setData(pd);
1061 1180 }
1062   - }else{
  1181 + } else {
1063 1182 res.setDataError();
1064 1183 }
1065 1184 return res.toJson();
1066 1185 }
1067   -
1068   -
1069   - public String getRemoteIp(){
  1186 +
  1187 + public String getRemoteIp() {
1070 1188 HttpServletRequest request = getRequest();
1071 1189 String ip = "";
1072 1190 if (request.getHeader("x-forwarded-for") == null) {
... ... @@ -1076,70 +1194,264 @@ public class V1 extends BaseController {
1076 1194 }
1077 1195 return ip;
1078 1196 }
1079   -
  1197 +
1080 1198 @RequestMapping(value = "/newversion", produces = "application/json;charset=UTF-8")
1081 1199 @ResponseBody
1082   - public Object getNewVersion(HttpServletRequest request) throws Exception{
  1200 + public Object getNewVersion(HttpServletRequest request) throws Exception {
1083 1201 event("getNewVersion");
1084 1202 PageData pd = this.getPageData();
1085 1203 String softId = pd.getString("SOFTID");
1086 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 1207 ResponseGson<PageData> res = new ResponseGson();
1091   - if(softId != null && !"".equals(softId)){
  1208 + if (softId != null && !"".equals(softId)) {
1092 1209 pd.put("SOFTWARE_ID", softId);
1093 1210 PageData result = softwareversionService.findNewVersion(pd);
1094   - if(result != null){
  1211 + if (result != null) {
1095 1212 result.remove("SOFTWAREVERSION_ID");
1096 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 1216 res.setData(result);
1099   - }else{
  1217 + } else {
1100 1218 res.setDataError();
1101 1219 }
1102   - }else{
  1220 + } else {
1103 1221 res.setDataError();
1104 1222 }
1105 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 1419 @RequestMapping(value = "/tempcreateUser", produces = "application/json;charset=UTF-8")
1109 1420 @ResponseBody
1110   - public Object tempCreateUser() throws Exception{
  1421 + public Object tempCreateUser() throws Exception {
1111 1422 PageData pd = new PageData();
1112 1423 pd = this.getPageData();
1113 1424 pd.put("ID", this.get32UUID());
1114 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 1430 pd.put("SKIN", "default");
1120   - pd.put("RIGHTS", "");
  1431 + pd.put("RIGHTS", "");
1121 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 1444 pd.put("TEACHER_ID", pd.get("ID"));
1131 1445 pd.put("CLASS_ID", "bc33389101ec46e6b7d47daa8adf58ac");
1132 1446 pd.put("SUBJECT_ID", "1");
1133 1447 pd.put("GRADE_ID", "1");
1134   - pd.put("TERM_ID","0d8ea2efdef74accbd0d00e9bc07dfbb");
  1448 + pd.put("TERM_ID", "0d8ea2efdef74accbd0d00e9bc07dfbb");
1135 1449 coursemanagementService.save(pd);
1136   -
  1450 +
1137 1451 return "{'res':'success'}";
1138 1452 }
1139   -
1140   -
1141 1453  
1142   - private void event(String apiName){
  1454 + private void event(String apiName) {
1143 1455 PageData eventPd = new PageData();
1144 1456 eventPd.put("EVENT_ID", get32UUID());
1145 1457 eventPd.put("EVENT_NAME", apiName);
... ... @@ -1148,11 +1460,218 @@ public class V1 extends BaseController {
1148 1460 eventPd.put("EVENT_START_TIME", Tools.date2Str(new Date()));
1149 1461 eventPd.put("CLIENT_ID", "SERVER");
1150 1462 eventPd.put("EVENT_IP", getRemoteIp());
1151   - try{
  1463 + try {
1152 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 105 public static String findSubjectCName(String type) throws Exception{
106 106 SubjectService subjectService = (SubjectService)SpringBeanFactoryUtils.getBean("subjectService");
107 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 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 49 ModelAndView mv = this.getModelAndView();
50 50 PageData pd = new PageData();
51 51 pd = this.getPageData();
  52 + pd.put("ID",get32UUID());
52 53 gradeService.save(pd);
53 54 mv.addObject("msg","success");
54 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 1 package com.fh.service.sunvote.chapter;
2 2  
3 3 import java.util.List;
  4 +
4 5 import com.fh.entity.Page;
5 6 import com.fh.util.PageData;
6 7  
... ... @@ -54,5 +55,8 @@ public interface ChapterManager{
54 55 */
55 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 58 * @throws Exception
59 59 */
60 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 70 public List<PageData> listAll(PageData pd)throws Exception{
62 71 return (List<PageData>)dao.findForList("ChapterMapper.listAll", pd);
63 72 }
... ...
src/com/fh/service/sunvote/knowledge/KnowledgeManager.java
1 1 package com.fh.service.sunvote.knowledge;
2 2  
3 3 import java.util.List;
  4 +
4 5 import com.fh.entity.Page;
5 6 import com.fh.util.PageData;
6 7  
... ... @@ -53,5 +54,13 @@ public interface KnowledgeManager{
53 54 */
54 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 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 73 /**通过id获取数据
65 74 * @param pd
66 75 * @throws Exception
... ...
src/com/fh/service/sunvote/question/QuestionManager.java
1 1 package com.fh.service.sunvote.question;
2 2  
3 3 import java.util.List;
  4 +
4 5 import com.fh.entity.Page;
5 6 import com.fh.util.PageData;
6 7  
... ... @@ -53,5 +54,15 @@ public interface QuestionManager{
53 54 */
54 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 60 public List<PageData> listAll(PageData pd)throws Exception{
61 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 80 /**通过id获取数据
65 81 * @param pd
... ...