Bläddra i källkod

修改数据格式

insomniaLee 4 år sedan
förälder
incheckning
040d06d423

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

@@ -9,11 +9,7 @@ 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.model.*;
 import edu.nju.util.AESUtil;
 import edu.nju.util.BlockChainAspect;
 import org.json.JSONArray;
@@ -470,8 +466,8 @@ public class AnalyzeController {
 				for(int j =0;j<bugInfo[0].length;j++){
 					if(bugInfo[i][j]!=0){
 						JSONArray  temp  = new JSONArray();
-						temp.put(i);
-						temp.put(j);
+						temp.put(BugSeverity.getValue(i));
+						temp.put(BugRecurrent.getValue(j));
 						temp.put(bugInfo[i][j]);
 						temp.put(bugInfo[i][j]+"个");
 						temp.put("报告数量 ");
@@ -505,7 +501,7 @@ public class AnalyzeController {
 			response.setCharacterEncoding("utf-8");
 			response.setContentType("text/html;charset=utf-8");
 			PrintWriter out = response.getWriter();
-			Map<Integer,Integer>map=aservice.getBugSubmitInfo(taskId,caseId,piece);
+			Map<String,Integer>map=aservice.getBugSubmitInfo(taskId,caseId,piece);
 			JSONObject res =  new JSONObject();
 			JSONArray label =  new JSONArray(map.keySet());
 			JSONArray data = new JSONArray(map.values());

+ 7 - 1
src/main/java/edu/nju/controller/OAuthController.java

@@ -4,6 +4,7 @@ import edu.nju.controller.data.UserInfo;
 import edu.nju.controller.interceptor.AuthRequired;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,6 +32,11 @@ public class OAuthController {
     @Autowired
     private RestTemplate restTemplate;
 
+    @Value("${server.host}")
+    private String serverHost;
+    @Value("${report.port}")
+    private String serverPort;
+
     @RequestMapping(value = "/auth", method = RequestMethod.GET)
     public void auth(@RequestParam("task_id") Long taskId,
                      @RequestParam("case_id") Long caseId,
@@ -52,7 +58,7 @@ public class OAuthController {
         session.setAttribute("caseId", caseId);
         session.setAttribute("taskId", taskId);
         try {
-            response.sendRedirect("http://47.99.140.117:9001/report/detail/"+taskId+"/"+caseId+"/"+userInfoResponse.getBody().getId());
+            response.sendRedirect("http://"+serverHost+":"+serverPort+"/report/detail/"+taskId+"/"+caseId+"/"+userInfoResponse.getBody().getId());
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 14 - 102
src/main/java/edu/nju/model/AnalyseVO2.java

@@ -1,10 +1,19 @@
 package edu.nju.model;
 
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.json.JSONArray;
 
 import java.util.List;
 import java.util.Map;
 
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class AnalyseVO2 {
 
     private int likeNum;
@@ -33,123 +42,26 @@ public class AnalyseVO2 {
 
     private Map<Integer,Integer> gradeDistrubute;
 
-    public AnalyseVO2(int likeNum, int dislikeNum, int forkNum, int reportNum, int testcaseNum, int bugNum, long startTime, long endTime, int workerNum, String taskName, JSONArray workerDistribute, List<WorkerVO> workerRank, Map<Integer, Integer> gradeDistrubute) {
-        this.likeNum = likeNum;
-        this.dislikeNum = dislikeNum;
-        this.forkNum = forkNum;
-        this.reportNum = reportNum;
-        this.testcaseNum = testcaseNum;
-        this.bugNum = bugNum;
-        this.startTime = startTime;
-        this.endTime = endTime;
-        this.workerNum = workerNum;
-        this.taskName = taskName;
-        this.workerDistribute = workerDistribute;
-        this.workerRank = workerRank;
-        this.gradeDistrubute = gradeDistrubute;
-    }
+    private double pageCover;
 
-    public int getLikeNum() {
-        return likeNum;
-    }
+    private String managerCheck ;
 
-    public void setLikeNum(int likeNum) {
-        this.likeNum = likeNum;
-    }
-
-    public int getDislikeNum() {
-        return dislikeNum;
-    }
+    public AnalyseVO2(int likeNum, int dislikeNum, int forkNum, int reportNum, int testcaseNum, int bugNum, long startTime, long endTime, int workerNum, String taskName, JSONArray workerDistribute, List<WorkerVO> workerRank, Map<Integer, Integer> gradeDistrubute,double pageCover) {
 
-    public void setDislikeNum(int dislikeNum) {
+        this.likeNum = likeNum;
         this.dislikeNum = dislikeNum;
-    }
-
-    public int getForkNum() {
-        return forkNum;
-    }
-
-    public void setForkNum(int forkNum) {
         this.forkNum = forkNum;
-    }
-
-    public int getReportNum() {
-        return reportNum;
-    }
-
-    public void setReportNum(int reportNum) {
         this.reportNum = reportNum;
-    }
-
-    public int getTestcaseNum() {
-        return testcaseNum;
-    }
-
-    public void setTestcaseNum(int testcaseNum) {
         this.testcaseNum = testcaseNum;
-    }
-
-    public int getBugNum() {
-        return bugNum;
-    }
-
-    public void setBugNum(int bugNum) {
         this.bugNum = bugNum;
-    }
-
-    public long getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(long startTime) {
         this.startTime = startTime;
-    }
-
-    public long getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(long endTime) {
         this.endTime = endTime;
-    }
-
-    public int getWorkerNum() {
-        return workerNum;
-    }
-
-    public void setWorkerNum(int workerNum) {
         this.workerNum = workerNum;
-    }
-
-    public String getTaskName() {
-        return taskName;
-    }
-
-    public void setTaskName(String taskName) {
         this.taskName = taskName;
-    }
-
-    public JSONArray getWorkerDistribute() {
-        return workerDistribute;
-    }
-
-    public void setWorkerDistribute(JSONArray workerDistribute) {
         this.workerDistribute = workerDistribute;
-    }
-
-    public List<WorkerVO> getWorkerRank() {
-        return workerRank;
-    }
-
-    public void setWorkerRank(List<WorkerVO> workerRank) {
         this.workerRank = workerRank;
+        this.gradeDistrubute = gradeDistrubute;
     }
 
-    public Map<Integer, Integer> getGradeDistrubute() {
-        return gradeDistrubute;
-    }
 
-    public void setGradeDistrubute(Map<Integer, Integer> gradeDistrubute) {
-        this.gradeDistrubute = gradeDistrubute;
-    }
 }

+ 39 - 7
src/main/java/edu/nju/service/AnalyzeService.java

@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
 
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
+import com.google.common.collect.Lists;
 import edu.nju.dao.*;
 import edu.nju.entities.*;
 import edu.nju.model.*;
@@ -17,6 +18,7 @@ import org.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.converter.StringHttpMessageConverter;
@@ -76,8 +78,17 @@ public class AnalyzeService {
 	@Autowired
 	ExtraService extraService;
 
+	@Value("${server.host}")
+	private String serverHost;
+	@Value("${report.port}")
+	private String serverPort;
+
 	private static String[] radarInfo = {"发现bug能力","描述bug能力","经验值","bug有效率","众测平均得分"};
 	private static int[] radarValueStart = {70,80,60,50,70};
+	private static List<String> mockLabels = Arrays.asList("移动应用","Android","ios","鸿蒙os","华为","MacOS","Windows10",
+					"小米","Web测试","发现bug能力强","页面覆盖率高","互动性强",
+					"社交类app","江苏省南京市");
+
 
 	Logger logger= LoggerFactory.getLogger(RecommendService.class);
 	
@@ -599,7 +610,7 @@ public class AnalyzeService {
 //			severityValueCount[bug.getSeverity()]++;
 			JSONObject object = new JSONObject();
 			object.put("content",bug.getTitle());
-			object.put("timestamp", TimeUtil.timestamp2DayHour(bug.getCreate_time_millis()));
+			object.put("timestamp", TimeUtil.timestamp2MonthDayHour(bug.getCreate_time_millis(),8));
 			array.put(object);
 		}
 //		int severityMax = Arrays.stream(severityValueCount).max().getAsInt();
@@ -795,7 +806,9 @@ public class AnalyzeService {
 	 */
 	private List<String> getUserLabels(String wordkId){
 		List<UserLabel> labels = userLabelDao.findLabelsByWorkerId(wordkId);
-		return labels.stream().map(UserLabel::getLabel).collect(Collectors.toList());
+		List<String> userLabels = labels.stream().map(UserLabel::getLabel).collect(Collectors.toList());
+		userLabels.addAll(mockLabels);
+		return userLabels;
 	}
 
 
@@ -936,7 +949,20 @@ public class AnalyzeService {
 			jsonObject.put("value",mapValue);
 			workerDistribute.put(jsonObject);
 		}
-		AnalyseVO2 analyseVO=new AnalyseVO2(likeNum,dislikeNum,forkNum,reportNum,testCaseNum,bugNum,startTime,endTime,reportNum,taskName,workerDistribute,workerRank,gradeDistribution);
+		Map<String,Integer>coverMap=getPageCover(taskId,caseId);
+		int size=coverMap.size();
+		int noBugPage=0;
+		for (Map.Entry<String, Integer> entry : coverMap.entrySet()) {
+			if(entry.getValue()==0){
+				noBugPage++;
+			}
+		}
+		double pageCover=noBugPage*1.0/size;
+		AnalyseVO2 analyseVO=new AnalyseVO2(likeNum,dislikeNum,forkNum,reportNum,testCaseNum,bugNum,startTime,endTime,reportNum,taskName,workerDistribute,workerRank,gradeDistribution,pageCover);
+		StringBuffer managerCheckUrl = new StringBuffer("http://");
+		managerCheckUrl.append(serverHost).append(":").append(serverPort).append("/report/managerCheck/")
+				.append(taskId).append("/").append(caseId);
+		analyseVO.setManagerCheck(managerCheckUrl.toString());
 		return analyseVO;
 	}
 
@@ -999,9 +1025,11 @@ public class AnalyzeService {
 		return bugInfo;
 	}
 
-	public Map<Integer,Integer> getBugSubmitInfo(String taskId,String caseId,int piece){
+	public Map<String,Integer> getBugSubmitInfo(String taskId,String caseId,int piece){
+		Map<Integer,Integer>map=new HashMap<>(piece);
+		Map<String,Integer> res = new HashMap<>(piece);
+		if(piece<=0)return res;
 		Task task=taskDao.findById(taskId);
-		Map<Integer,Integer>map=new HashMap<>();
 		long startTime=0;
 		long endTime=0;
 		if(task!=null) {
@@ -1011,9 +1039,10 @@ public class AnalyzeService {
 		long pieceTime=(endTime-startTime)/piece;
 		String caseTakeId=caseId+"-"+taskId;
 		List<Bug>bugs=bdao.findByCaseid(caseTakeId);
+		map.put(0,0);
 		for(Bug bug:bugs){
 			long time=Long.parseLong(bug.getCreate_time_millis());
-			int index=(int)((time-startTime)/pieceTime);
+			int index=(int)((time-startTime)/pieceTime)+1;
 			if(map.containsKey(index)){
 				map.replace(index,map.get(index)+1);
 			}
@@ -1021,7 +1050,10 @@ public class AnalyzeService {
 				map.put(index,1);
 			}
 		}
-		return map;
+		for(Map.Entry<Integer,Integer> e : map.entrySet()){
+			res.put(TimeUtil.timestamp2DayHour(startTime+e.getKey()*pieceTime,8),e.getValue());
+		}
+		return res;
 	}
 
 

+ 4 - 2
src/main/java/edu/nju/service/ReviewPaperService.java

@@ -47,6 +47,8 @@ public class ReviewPaperService {
 
     @Value("${report.port}")
     String port;
+    @Value("${server.host}")
+    private String serverHost;
 
 
     public ReviewPaperJson getReviewPaperJson(String paperId) {
@@ -383,7 +385,7 @@ public class ReviewPaperService {
         ReviewWorker reviewWorker=reviewWorkerDao.getWorkerByOriginalId(workerIndex,jobId);
         if(reviewWorker!=null){
             String workerId=reviewWorker.getId();
-            String url="http://47.99.140.117:"+port+"/report/review/job/"+jobId+"/"+workerId+"/0";
+            String url="http://"+serverHost+":"+port+"/report/review/job/"+jobId+"/"+workerId+"/0";
             return url;
         }
         else {
@@ -397,7 +399,7 @@ public class ReviewPaperService {
             workerIds.add(workerId);
             reviewGroup.setWorkers_id(workerIds);
             reviewGroupDao.save(reviewGroup);
-            String url = "http://47.99.140.117:" + port + "/report/review/job/" + jobId + "/" + workerId + "/0";
+            String url = "http://"+serverHost+":"+port + "/report/review/job/" + jobId + "/" + workerId + "/0";
             return url;
         }
     }

+ 10 - 3
src/main/java/edu/nju/util/TimeUtil.java

@@ -7,9 +7,12 @@ import java.util.Date;
 public class TimeUtil {
 
     private static final String format  = "MM-dd HH:mm:ss";
-    private static final String dayHour  = "MM-dd HH:mm";
+    private static final String monthDayHour  = "MM-dd HH:mm";
+    private static final String dayHour = "dd HH:mm";
     private static final SimpleDateFormat sdf = new SimpleDateFormat(format);
+    private static final SimpleDateFormat monthDayHourFormat = new SimpleDateFormat(monthDayHour);
     private static final SimpleDateFormat dayHourFormat = new SimpleDateFormat(dayHour);
+    private static final long hourMillisecond = 3600000;
 
     public static Date StringToDate(String datetime){
         SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -30,11 +33,15 @@ public class TimeUtil {
         return sdf.format(new Date(Long.valueOf(seconds)));
     }
 
-    public static String timestamp2DayHour(String timestamp) {
+    public static String timestamp2MonthDayHour(String timestamp,int hourOffset) {
         if (timestamp == null || timestamp.isEmpty() || timestamp.equals("null")) {
             return "";
         }
-        return dayHourFormat.format(new Date(Long.valueOf(timestamp)));
+        return monthDayHourFormat.format(new Date(Long.valueOf(timestamp)+hourMillisecond*hourOffset));
+    }
+
+    public static String timestamp2DayHour(long timeStamp,int hourOffset){
+        return dayHourFormat.format(new Date(timeStamp+hourMillisecond*hourOffset));
     }
 
 }