Browse Source

根据条件筛选单个bug

xujiawei 5 years ago
parent
commit
dde6649e71

+ 51 - 0
src/main/java/edu/nju/controller/HistoryController.java

@@ -161,4 +161,55 @@ public class HistoryController {
 		if(session.getAttribute("trees") != null) {session.removeAttribute("trees");}
 		if(session.getAttribute("single") != null) {session.removeAttribute("single");}
 	}
+
+	//根据条件筛选单个节点的数据
+	@RequestMapping(value = "/getSingleByCondition")
+	@ResponseBody
+	public void getSingleByCondition(String case_take_id, String start, String count, String page,String condition, HttpSession session, HttpServletResponse response) {
+		try {
+			String bugCondition="";
+			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);
+
+			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);
+				temp.add(condition);
+				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();
+		}
+	}
 }

+ 21 - 4
src/main/java/edu/nju/service/AnalyzeService.java

@@ -1,9 +1,6 @@
 package edu.nju.service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import edu.nju.util.HTTP;
 import org.json.JSONArray;
@@ -324,4 +321,24 @@ public class AnalyzeService {
 		if(workerId == null || workerId.equals("null")) { return "";}
 		return workerId;
 	}
+
+
+	public List<Bug> getAfterSimilarBug(String bug_id){
+		Bug bug =bdao.findByid(bug_id);
+		List<Bug> bugList=bdao.findByCaseid(bug.getCase_id());
+		List<Bug> result=new ArrayList<>();
+		for(Bug tempBug: bugList){
+			if(Long.parseLong(tempBug.getCreate_time_millis())>Long.parseLong(bug.getCreate_time_millis())){
+				if(checkSimilarity(bug,tempBug)){
+					result.add(tempBug);
+				}
+			}
+		}
+		return result;
+	}
+
+	//todo check similarity
+	private boolean checkSimilarity(Bug bug1,Bug bug2){
+		return true;
+	}
 }