Browse Source

整合接口

郭超 4 years ago
parent
commit
35ff5f7a8f
1 changed files with 198 additions and 33 deletions
  1. 198 33
      src/main/java/edu/nju/controller/HistoryController.java

+ 198 - 33
src/main/java/edu/nju/controller/HistoryController.java

@@ -77,8 +77,16 @@ public class HistoryController {
 			e.printStackTrace();
 		}
 	}
-	
-	//获取所有形成树状结构的bug根节点
+
+	/**
+	 * 教师所有形成树状结构的bug根节点
+	 * @param case_take_id
+	 * @param start 从第几个开始
+	 * @param count 显示几个
+	 * @param page 页面信息  eg:首页  or  首页——众测广场 or  首页——众测广场--任务
+	 * @param session
+	 * @param response
+	 */
 	@RequestMapping(value = "/getTrees")
 	@ResponseBody
 	public void getTrees(String case_take_id, String start, String count, String page, HttpSession session, HttpServletResponse response) {
@@ -101,10 +109,31 @@ public class HistoryController {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
+
+//		try {
+//			PrintWriter out = response.getWriter();
+//			JSONObject result = new JSONObject();
+//			List<String> all = hisservice.getTreeRoots(case_take_id);
+//			hisservice.pageFilter(all, page);
+//			hisservice.hotSortTree(all);
+//			List<String> ids = all.subList(Integer.parseInt(start), Math.min(all.size(), Integer.parseInt(start) + Integer.parseInt(count)));
+//			List<List<String>> list = new ArrayList<List<String>>();
+//			for(String id: ids) {
+//				list.add(hisservice.getDetail(id));
+//			}
+//			result.put("Count", all.size());
+//			result.put("TreeRoot", new JSONArray(list));
+//			out.print(result);
+//			out.flush();
+//			out.close();
+//		} catch (IOException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
 	}
 
 	/**
-	 * 获取所有形成树状结构的bug根节点
+	 * 学生获取所有形成树状结构的bug根节点
 	 * @param case_take_id
 	 * @param start 从第几个开始
 	 * @param count 显示几个
@@ -141,8 +170,15 @@ public class HistoryController {
 		}
 	}
 
-
-	//获取所有单个节点的数据
+	/**
+	 * 教师获取所有单个节点的数据 /getSingle
+	 * @param case_take_id
+	 * @param start 从第几个开始
+	 * @param count 显示几个
+	 * @param page 页面信息  eg:首页  or  首页——众测广场 or  首页——众测广场--任务
+	 * @param session
+	 * @param response
+	 */
 	@RequestMapping(value = "/getSingle")
 	@ResponseBody
 	public void getSingle(String case_take_id, String start, String count, String page, HttpSession session, HttpServletResponse response) {
@@ -150,23 +186,121 @@ public class HistoryController {
 			PrintWriter out = response.getWriter();
 			JSONObject result = new JSONObject();
 			List<String> all = new ArrayList<String>();
-////			获取所有单个节点
-////			for(String id : hisservice.getRoots(case_take_id)) {
-////				if(hisservice.getHistory(id).getChildren().size() == 0) {all.add(id);}
-////			}
-//			//三级页面筛选,单个节点筛选
+			//三级页面筛选,单个节点筛选(没有parent,也没有children)
+			for(String id : hisservice.getBugIdListByPage(case_take_id,page,start,count)) {
+				BugHistory bugHistory=hisservice.getHistory(id);
+				if(bugHistory==null || bugHistory.getChildren().size() == 0&&bugHistory.getParent().equals("null")) {all.add(id);}
+			}
+			//根据三级页面筛选
+			//分页
+			List<String> ids = all.subList(Integer.parseInt(start), Math.min(all.size(), Integer.parseInt(start) + Integer.parseInt(count)));
+
+			List<String> invalid = hisservice.getInvalid(ids);
+			for(String id: invalid) {
+				if(ids.contains(id)) {ids.remove(id);}
+			}
+			List<List<String>> list = new ArrayList<List<String>>();
+			for(String id : ids) {
+				List<String> temp = new ArrayList<String>();
+				temp.add(id);
+				int score = aservice.getGrade(id);
+				if(score != -1) {temp.add("true");}
+				else {temp.add("false");}
+				temp.add(recservice.getTitle(id));
+				list.add(temp);
+			}
+			result.put("Count", all.size());
+			result.put("TreeRoot", new JSONArray(list));
+			out.print(result);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+//		try {
+//			PrintWriter out = response.getWriter();
+//			JSONObject result = new JSONObject();
+//			List<String> all = new ArrayList<String>();
+//			//三级页面筛选,单个节点筛选(没有parent,也没有children)
 //			for(String id : hisservice.getBugIdListByPage(case_take_id,page,start,count)) {
-//				if(hisservice.getHistory(id).getChildren().size() == 0) {all.add(id);}
+//				BugHistory bugHistory=hisservice.getHistory(id);
+//				if(bugHistory.getChildren().size() == 0&&bugHistory.getParent().equals("null")) {all.add(id);}
 //			}
+//			//根据热度排序,热度低的排在前面
+//			hisservice.hotSortSingle(all);
 //			//根据三级页面筛选
-////			hisservice.pageFilter(all, page);
-////
-
+//			//分页
+//			List<String> ids = all.subList(Integer.parseInt(start), Math.min(all.size(), Integer.parseInt(start) + Integer.parseInt(count)));
+//
+//			List<String> invalid = hisservice.getInvalid(ids);
+//			for(String id: invalid) {
+//				if(ids.contains(id)) {ids.remove(id);}
+//			}
+//			//判断是否已被评分
+//			List<List<String>> list = new ArrayList<List<String>>();
+//			for(String id : ids) {
+//				List<String> temp = new ArrayList<String>();
+//				temp.add(id);
+//				int score = aservice.getGrade(id);
+//				if(score != -1) {temp.add("true");}
+//				else {temp.add("false");}
+//				temp.add(recservice.getTitle(id));
+//				list.add(temp);
+//			}
+//			result.put("Count", all.size());
+//			result.put("TreeRoot", new JSONArray(list));
+//			out.print(result);
+//			out.flush();
+//			out.close();
+//		} catch (IOException e) {
+//			e.printStackTrace();
+//		}
+	}
+	/**
+	 * 教师通过是否评分筛选接口 /getSingle
+	 * @param case_take_id
+	 * @param start 从第几个开始
+	 * @param count 显示几个
+	 * @param page 页面信息  eg:首页  or  首页——众测广场 or  首页——众测广场--任务
+	 * @param condition 是否评分
+	 * @param roleId 默认为0学生 1为教师
+	 * @param session
+	 * @param response
+	 */
+	@RequestMapping(value = "/getSingleData")
+	@ResponseBody
+	public void getSingles(String case_take_id, String start, String count, String page,String condition,int roleId, HttpSession session, HttpServletResponse response) {
+		try {
+			String bugCondition="";
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			List<String> all = new ArrayList<String>();
 			//三级页面筛选,单个节点筛选(没有parent,也没有children)
 			for(String id : hisservice.getBugIdListByPage(case_take_id,page,start,count)) {
 				BugHistory bugHistory=hisservice.getHistory(id);
-				if(bugHistory==null || bugHistory.getChildren().size() == 0&&bugHistory.getParent().equals("null")) {all.add(id);}
+				if(bugHistory.getChildren().size() == 0&&bugHistory.getParent().equals("null")) {
+					if(condition.equals("null")){
+						all.add(id);
+					}else{
+						int score = aservice.getGrade(id);
+						if(score != -1) {
+							bugCondition="true";
+						}
+						else {bugCondition="false";}
+						if(bugCondition.equals(condition)) {
+							all.add(id);
+						}
+					}
+				}
+			}
+
+			//学生视图根据热度排序,热度低的排在前面
+			// 默认为0学生 1为教师
+			if(roleId == 0){
+				hisservice.hotSortSingle(all);
 			}
+
 			//根据三级页面筛选
 			//分页
 			List<String> ids = all.subList(Integer.parseInt(start), Math.min(all.size(), Integer.parseInt(start) + Integer.parseInt(count)));
@@ -175,6 +309,7 @@ public class HistoryController {
 			for(String id: invalid) {
 				if(ids.contains(id)) {ids.remove(id);}
 			}
+
 			List<List<String>> list = new ArrayList<List<String>>();
 			for(String id : ids) {
 				List<String> temp = new ArrayList<String>();
@@ -185,6 +320,44 @@ public class HistoryController {
 				temp.add(recservice.getTitle(id));
 				list.add(temp);
 			}
+			//所有符合条件的,而非仅仅是展示的
+			result.put("Count", all.size());
+			result.put("TreeRoot", new JSONArray(list));
+			out.print(result);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 所有形成树状结构的bug根节点
+	 * @param case_take_id
+	 * @param start 从第几个开始
+	 * @param count 显示几个
+	 * @param page 页面信息  eg:首页  or  首页——众测广场 or  首页——众测广场--任务
+	 * @param roleId 默认为0学生 1为教师
+	 * @param session
+	 * @param response
+	 */
+	@RequestMapping(value = "/getTreeData")
+	@ResponseBody
+	public void getTree(String case_take_id, String start, String count, String page,int roleId, HttpSession session, HttpServletResponse response) {
+		try {
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			List<String> all = hisservice.getTreeRoots(case_take_id);
+			hisservice.pageFilter(all, page);
+			if(roleId == 0){
+				hisservice.hotSortTree(all);
+			}
+			List<String> ids = all.subList(Integer.parseInt(start), Math.min(all.size(), Integer.parseInt(start) + Integer.parseInt(count)));
+			List<List<String>> list = new ArrayList<List<String>>();
+			for(String id: ids) {
+				list.add(hisservice.getDetail(id));
+			}
 			result.put("Count", all.size());
 			result.put("TreeRoot", new JSONArray(list));
 			out.print(result);
@@ -334,7 +507,16 @@ public class HistoryController {
 		if(session.getAttribute("single") != null) {session.removeAttribute("single");}
 	}
 
-	//根据条件筛选单个节点的数据
+	/**
+	 * 教师通过是否评分筛选接口 /getSingleByCondition
+	 * @param case_take_id
+	 * @param start
+	 * @param count
+	 * @param page
+	 * @param condition 是否评分
+	 * @param session
+	 * @param response
+	 */
 	@RequestMapping(value = "/getSingleByCondition")
 	@ResponseBody
 	public void getSingleByCondition(String case_take_id, String start, String count, String page,String condition, HttpSession session, HttpServletResponse response) {
@@ -343,23 +525,6 @@ public class HistoryController {
 			PrintWriter out = response.getWriter();
 			JSONObject result = new JSONObject();
 			List<String> all = new ArrayList<String>();
-//			for(String id : hisservice.getRoots(case_take_id)) {
-//				//根据是否有子bug判断是否是单节点
-//				if(hisservice.getHistory(id).getChildren().size() == 0) {
-//					//判断是否满足条件
-//					int score = aservice.getGrade(id);
-//					if(score != -1) {
-//						bugCondition="true";
-//					}
-//					else {bugCondition="false";}
-//					if(bugCondition.equals(condition)){
-//						all.add(id);
-//					}
-//				}
-//			}
-//			hisservice.pageFilter(all, page);
-//
-
             for(String id : hisservice.getBugIdListByPage(case_take_id,page,start,count)) {
                 BugHistory bugHistory=hisservice.getHistory(id);
                 if(bugHistory.getChildren().size() == 0&&bugHistory.getParent().equals("null")) {