xujiawei 5 лет назад
Родитель
Сommit
ab1e67c345

+ 17 - 3
src/main/java/edu/nju/controller/AnalyzeController.java

@@ -1,5 +1,6 @@
 package edu.nju.controller;
 
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.HashMap;
 import java.util.List;
@@ -353,10 +354,23 @@ public class AnalyzeController {
 		return aservice.getHistoricalData(workerId, caseTypeId);
 	}
 
-	@RequestMapping(value = "/uploadTestReport")
+	@RequestMapping(value = "/uploadTestReportToBlockChain")
 	@ResponseBody
-	public void uploadTestReport(String case_take_id){
-		blockChainAspect.uploadTestReportInfo(case_take_id);
+	public void uploadTestReport(String report_id,HttpServletResponse response){
+		try {
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			if (blockChainAspect.uploadTestReportInfoToBlockChain(report_id)) {
+				result.put("status","200");
+			}else{
+				result.put("status","500");
+			}
+			out.print(result);
+			out.flush();
+			out.close();
+		}catch (IOException e){
+			e.printStackTrace();
+		}
 	}
 
 }

+ 60 - 0
src/main/java/edu/nju/util/BlockChainAspect.java

@@ -201,6 +201,66 @@ public class BlockChainAspect {
         }
     }
 
+
+    public boolean uploadTestReportInfoToBlockChain(String report_id){
+        String defaultString="defaultString";
+        Report report=reportDao.findById(report_id);
+        if(report!=null) {
+            JSONObject testReportVO = new JSONObject();
+            testReportVO.put("reportHash", defaultString);
+            testReportVO.put("taskId", report.getCase_take_id());
+            Task task = taskDao.findById(report.getTask_id());
+            if (task == null) {
+                task = getAndSaveTaskInfo(report.getTask_id());
+                if (task == null) {
+                    testReportVO.put("taskName", defaultString);
+                } else {
+                    testReportVO.put("taskName", task.getName());
+                }
+            } else {
+                testReportVO.put("taskName", task.getName());
+            }
+            testReportVO.put("testReportId", report.getId());
+            testReportVO.put("testReportName", report.getName());
+            testReportVO.put("type", 0);
+            testReportVO.put("updateTime", System.currentTimeMillis());
+            testReportVO.put("workerId", report.getWorker_id());
+            String workerName = stuInfoDao.findWorkerName(report.getId());
+            if (!"null".equals(workerName)) {
+                testReportVO.put("workerName", workerName);
+            } else {
+                testReportVO.put("workerName", defaultString);
+            }
+            List<Bug> bugList = bugDao.findByReport(report.getId(), report.getCase_take_id());
+            JSONArray bugReportList = new JSONArray();
+            for (Bug bug : bugList) {
+                JSONObject bugInfo = new JSONObject();
+                bugInfo.put("bugId", bug.getId());
+                bugInfo.put("bugName", bug.getTitle());
+                bugReportList.put(bugInfo);
+            }
+            testReportVO.put("bugReportList", bugReportList);
+            String url = blockChainHost + "testReport";
+            try {
+                String result = HTTP.postBody(url, testReportVO.toString());
+                    if (!result.equals("")) {
+                        JSONObject resultJson = new JSONObject(result);
+//                        System.out.println(resultJson);
+//                        System.out.println(resultJson.get("code").toString());
+                        if("200".equals(resultJson.get("code").toString())){
+                            return true;
+                        }else{
+                            return false;
+                        }
+
+                    }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return false;
+    }
+
 //    public static void main(String[] args){
 //        String url=blockChainHost+"testReport";
 ////        String json="{\"workerId\":\"22383\",\"reportHash\":\"defaultString\",\"taskName\":\"12-1众包测试\",\"updateTime\":1585284050330,\"type\":0,\"workerName\":\"李陈龙\",\"testReportName\":\"宋少行\",\"taskId\":\"1281-2724\",\"testReportId\":\"5cbc1a9f825a8960cdc7bd4f\",\"bugReportList\":[{\"bugId\":\"5cbc1b5c825a8960cdc7bd53\",\"bugName\":\"我再测试测试这个单独分离的\"},{\"bugId\":\"5cbc1b37825a8960cdc7bd52\",\"bugName\":\"帮助出错了\"},{\"bugId\":\"5cbc38f9825a8960cdc7bd57\",\"bugName\":\"测试图片能不能上传\"},{\"bugId\":\"5cbc1d31825a8960cdc7bd54\",\"bugName\":\"无法打开最近账薄\"},{\"bugId\":\"5cbc3919825a8960cdc7bd58\",\"bugName\":\"测试图片\"},{\"bugId\":\"5cbc3ab3825a8960cdc7bd5a\",\"bugName\":\"测试fork\"},{\"bugId\":\"5cbc3a50825a8960cdc7bd59\",\"bugName\":\"测试图片上传\"},{\"bugId\":\"5cbc3e9b825a8960cdc7bd5b\",\"bugName\":\"测试一键fork\"},{\"bugId\":\"5cde9be7825a8948e757cac1\",\"bugName\":\"测试下不选择页面会咋样\"},{\"bugId\":\"5cdfa0cc825a8948e757cade\",\"bugName\":\"打开一下就闪退了\"},{\"bugId\":\"5d402ef3f00e7a801b85e472\",\"bugName\":\"账薄有问题\"},{\"bugId\":\"5d7e1ac33c5a507c1c1cda33\",\"bugName\":\"账薄有问题\"},{\"bugId\":\"5d7e1b003c5a507c1c1cda37\",\"bugName\":\"账薄有问题\"},{\"bugId\":\"5d7e1c363c5a507c60f0766d\",\"bugName\":\"账薄有问题\"},{\"bugId\":\"5d7e1d3a3c5a507c9120b76a\",\"bugName\":\"test\"},{\"bugId\":\"5d7e1e1b3c5a507c9120b76f\",\"bugName\":\"继续测试\"},{\"bugId\":\"5d7f4254f52b558caaaee01a\",\"bugName\":\"11\"},{\"bugId\":\"5d7f42e1f52b558cecef1ffd\",\"bugName\":\"222\"},{\"bugId\":\"5dd761e307bcfb195d0dfe56\",\"bugName\":\"test\"},{\"bugId\":\"5df8a2a2eea9d780220b1b24\",\"bugName\":\"mm\"},{\"bugId\":\"5df8af01eea9d78664436920\",\"bugName\":\"kkkkk\"},{\"bugId\":\"5df9e097336bd0ad48b598b2\",\"bugName\":\"cninvorm o\"},{\"bugId\":\"5e463a89709308afcfb15a2c\",\"bugName\":\"。。。。\"}]}";