Ver Fonte

添加页面覆盖分析接口

MengyangDuan há 4 anos atrás
pai
commit
7af23c0b6f

+ 7 - 4
src/main/java/edu/nju/controller/AnalyzeController.java

@@ -412,13 +412,15 @@ public class AnalyzeController {
 		}
 	}
 
-	@RequestMapping(value = "/analysePage")
+	@RequestMapping(value = "/analysePageCover", method = RequestMethod.GET)
 	@ResponseBody
-	public void analysePage(String caseId, String taskId, String workId , HttpServletResponse response){
+	public void analysePageCover(@RequestParam("caseId") String caseId, @RequestParam("taskId")  String taskId, HttpServletResponse response){
 		try {
+			response.setCharacterEncoding("utf-8");
+			response.setContentType("text/html;charset=utf-8");
 			PrintWriter out = response.getWriter();
-			AnalysePeopleVO analyseVO=aservice.getReviewAnalysePeopleVO(caseId, taskId,workId);
-			out.print(new JSONObject(analyseVO));
+			Map<String,Integer>map=aservice.getPageCover(taskId, caseId);
+			out.print(new JSONObject(map));
 			out.flush();
 			out.close();
 		} catch (Exception e) {
@@ -426,4 +428,5 @@ public class AnalyzeController {
 		}
 	}
 
+
 }

+ 47 - 0
src/main/java/edu/nju/service/AnalyzeService.java

@@ -895,4 +895,51 @@ public class AnalyzeService {
 	}
 
 
+	public Map<String,Integer> getPageCover(String taskId,String caseId){
+		String caseTakeId=caseId+"-"+taskId;
+		Map<String,Integer>coverMap=getBugDetail(caseTakeId);
+		List<String>pageStr=getPageStr(caseId);
+		for(String page:pageStr){
+			if(!coverMap.containsKey(page)){
+				coverMap.put(page,0);
+			}
+		}
+		return coverMap;
+	}
+
+	private List<String> getPageStr(String caseId){
+		List<String>result=new ArrayList<>();
+		Exam exam=extraService.getExam(String.valueOf(caseId));
+		JSONArray jsonArray=new JSONArray(exam.getJson());
+		LinkedList<String> res = new LinkedList<>();
+		if(jsonArray==null){
+			return res;
+		}
+		for(int i=0;i<jsonArray.length();i++){
+			JSONObject jsonObject=jsonArray.getJSONObject(i);
+			if(jsonObject==null||jsonObject.getString("item")==null)
+				return res;
+			solve(jsonObject, jsonObject.getString("item")+"-", res);
+		}
+		return res;
+	}
+
+
+	private void solve(JSONObject jsonObject, String cur, LinkedList<String> res) {
+		if(jsonObject==null||jsonObject.getString("item")==null)
+			return;
+		cur+=jsonObject.getString("item");
+		if (!jsonObject.has("children")||jsonObject.get("children")==null) {
+			res.add(cur);
+		} else {
+			JSONArray jsonArray=jsonObject.getJSONArray("children");
+			for(int i=0;i<jsonArray.length();i++){
+				JSONObject jsonObject1=jsonArray.getJSONObject(i);
+				solve(jsonObject1,cur+"-",res);
+			}
+		}
+	}
+
+
+
 }