123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- package edu.nju.controller;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletResponse;
- import edu.nju.model.AnalysePeopleVO;
- import edu.nju.model.AnalyseVO;
- import edu.nju.model.AnalyseVO2;
- import edu.nju.model.BugDataVO;
- import edu.nju.model.HistoricalDataVO;
- import edu.nju.util.BlockChainAspect;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.CrossOrigin;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import edu.nju.service.AnalyzeService;
- import edu.nju.service.ReportService;
- @Controller
- @RequestMapping(value = "/analyze")
- @CrossOrigin(origins = "*", maxAge = 3600, allowCredentials = "true")
- public class AnalyzeController {
-
- @Autowired
- AnalyzeService aservice;
-
- @Autowired
- ReportService rservice;
- @Autowired
- BlockChainAspect blockChainAspect;
-
- //根据用例获取所有有效bug
- @RequestMapping(value = "/valid")
- @ResponseBody
- public void getValid(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- List<String> list = aservice.getValid(case_take_id);
- result.put("Count", list.size());
- result.put("Detail", new JSONArray(list));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //根据用例获取所有有效bug
- @RequestMapping(value = "/validByBugId")
- @ResponseBody
- public void getValidByBugId(String id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- List<String> list = aservice.getValidByBugId(id);
- result.put("Count", list.size());
- result.put("Detail", new JSONArray(list));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //根据用例获取所有有效bug
- @RequestMapping(value = "/bugData")
- @ResponseBody
- public List<BugDataVO> getBugDataVO(String case_take_id) {
- return aservice.getBugDataVO(case_take_id);
- }
-
- //获取所有有点赞记录的bug
- @RequestMapping(value = "/thums")
- @ResponseBody
- public void getThums(String case_take_id, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- PrintWriter out = response.getWriter();
- Map<String, String> map = aservice.getThums(case_take_id);
- result.put("Count", map.size());
- result.put("Detail", new JSONObject(map));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**
- * 47.99.140.117:9001/Bug/api/analyze/scores
- *
- * @param case_take_id
- * caseId - taskId,示例1632-2927
- * @return [{"名字":"庄坤涛","report_id":"10010000035757","报告得分":28,"审查得分":4,"worker_id":"39669"}]
- */
- @RequestMapping(value = "/scores")
- @ResponseBody
- public void getScores(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- out.print(aservice.getScores(case_take_id));
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**
- * 47.99.140.117:9001/Bug/api/analyze/newScores
- *
- * @param case_take_id
- * caseId - taskId,示例1632-2927
- * @return [{"名字":"庄坤涛","report_id":"10010000035757","报告得分":28,"审查得分":4,"worker_id":"39669"}]
- */
- @RequestMapping(value = "/newScores")
- @ResponseBody
- public void getNewScores(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- out.print(aservice.getNewScores(aservice.getScores(case_take_id)));
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //获取所有的参与用户,这个方法之前写的,ms有点问题啊
- @RequestMapping(value = "/users")
- @ResponseBody
- public void getUsers(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- out.print(new JSONArray(aservice.getReports(case_take_id)));
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //真正获取所有的参与用户
- @RequestMapping(value = "/workers")
- @ResponseBody
- public List<Long> getUserss(Long examId) {
- return aservice.getUsers(String.valueOf(examId));
- }
-
- //获取指定bug的打分等级
- @RequestMapping(value = "/grade")
- @ResponseBody
- public void getGrade(String id, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- result.put("grade", aservice.getGrade(id));
- PrintWriter out = response.getWriter();
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //存储单个bug的打分等级
- @RequestMapping(value = "/save")
- @ResponseBody
- public void saveGrade(String id, String grade, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- if(aservice.saveGrade(id, Integer.parseInt(grade))) {result.put("status", "200");}
- else {result.put("status", "500");}
- PrintWriter out = response.getWriter();
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- @RequestMapping(value = "/saveSimiliar")
- @ResponseBody
- public void saveSimiliarGrade(String id, String grade,String similiarBug, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- if(aservice.saveSimiliarGrade(id, Integer.parseInt(grade),similiarBug)) {result.put("status", "200");}
- else {result.put("status", "500");}
- PrintWriter out = response.getWriter();
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- @RequestMapping(value = "/saveByWorker")
- @ResponseBody
- public void saveGradeByWorker(String id,String worker_id, String grade, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- if(aservice.saveGradeByWorker(id, worker_id,Integer.parseInt(grade))) {result.put("status", "200");}
- else {result.put("status", "500");}
- PrintWriter out = response.getWriter();
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //获取页面和种类的分布情况
- @RequestMapping(value = "/bugDetail")
- @ResponseBody
- public void getDetail(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- out.print(aservice.getCaseDetail(case_take_id));
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //获取所有打分等级
- @RequestMapping(value = "/allGrades")
- @ResponseBody
- public void getAllGrades(String case_take_id, HttpServletResponse response) {
- try {
- JSONObject result = new JSONObject();
- Map<String, Integer> map = aservice.getAllGrades(case_take_id);
- result.put("Count", map.size());
- result.put("Detail", new JSONObject(map));
- PrintWriter out = response.getWriter();
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //判断哪些还没有打分,split后面是用例表中不存在的bug
- @RequestMapping(value = "/diff")
- @ResponseBody
- public void getDiff(String case_take_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- List<String> list = aservice.getDiff(case_take_id);
- result.put("Count", list.size());
- result.put("Detail", new JSONArray(list));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- //获取路径信息
- @RequestMapping(value = "/path")
- @ResponseBody
- public void getUserPath(String case_take_id, String report_id, HttpServletResponse response) {
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- result.put("all", filter(aservice.getBugDetail(case_take_id)));
- result.put("self", filter(rservice.getUserPath(report_id, case_take_id)));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- private Map<String, Integer> filter(Map<String, Integer> maps) {
- Map<String, Integer> result = new HashMap<String, Integer>();
- for(Map.Entry<String, Integer> entry : maps.entrySet()) {
- String[] pages = entry.getKey().split("-");
- if(pages.length > 0) {
- String key = pages[pages.length - 1];
- result.put(key, result.getOrDefault(key, 0) + entry.getValue());
- }
- }
- return result;
- }
- @RequestMapping(value = "/afterSimilarBug")
- @ResponseBody
- public void getAfterSimilarBug(String bug_id, HttpServletResponse response){
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- result.put("bugList",aservice.getAfterSimilarBug(bug_id));
- out.print(result);
- out.flush();
- out.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @RequestMapping(value = "/analyseExam")
- @ResponseBody
- public void analyseExam(String caseId, String taskId, HttpServletResponse response){
- try {
- PrintWriter out = response.getWriter();
- AnalyseVO analyseVO=aservice.getReviewAnalyseVO(caseId, taskId);
- out.print(new JSONObject(analyseVO));
- out.flush();
- out.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * todo 引进 guvva 来做缓存
- * @param caseId
- * @param taskId
- * @param workId
- * @param response
- */
- @RequestMapping(value = "/analysePeople")
- @ResponseBody
- public void analyseTask(String caseId, String taskId, String workId , HttpServletResponse response){
- try {
- PrintWriter out = response.getWriter();
- AnalysePeopleVO analyseVO=aservice.getReviewAnalysePeopleVO(caseId, taskId,workId);
- out.print(new JSONObject(analyseVO));
- out.flush();
- out.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @RequestMapping(value = "/historicalData")
- @ResponseBody
- public HistoricalDataVO getHistoricalData(Long workerId,int caseTypeId){
- return aservice.getHistoricalData(workerId, caseTypeId);
- }
- @RequestMapping(value = "/uploadTestReportToBlockChain")
- @ResponseBody
- public void uploadTestReport(String bug_id,HttpServletResponse response){
- try {
- PrintWriter out = response.getWriter();
- JSONObject result = new JSONObject();
- if (blockChainAspect.uploadTestReportInfoToBlockChain(bug_id)) {
- result.put("status","200");
- }else{
- result.put("status","500");
- }
- out.print(result);
- out.flush();
- out.close();
- }catch (IOException e){
- e.printStackTrace();
- }
- }
- @RequestMapping(value = "/analyseExam2")
- @ResponseBody
- public void analyseExam2(String caseId, String taskId, HttpServletResponse response){
- try {
- PrintWriter out = response.getWriter();
- AnalyseVO2 analyseVO=aservice.getReviewAnalyseVO2(caseId, taskId);
- out.print(new JSONObject(analyseVO));
- out.flush();
- out.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|