Procházet zdrojové kódy

根据用户id获取用户信息。java对于json对象的null的处理有点坑啊

MengyangDuan před 5 roky
rodič
revize
70d3714a59

+ 2 - 2
src/main/java/edu/nju/dao/ReviewWorkerDao.java

@@ -20,9 +20,9 @@ public class ReviewWorkerDao {
         return worker.getId();
     }
 
-    public ReviewWorker getWorkerByOriginalId(String originalId,String examId){
+    public ReviewWorker getWorkerByOriginalId(String originalId,String jobId){
         Query query = new Query();
-        query.addCriteria(Criteria.where("original_id").is(originalId).and("exam_id").is(examId));
+        query.addCriteria(Criteria.where("original_id").is(originalId).and("job_id").is(jobId));
         List<ReviewWorker> list = mongoOperations.find(query,ReviewWorker.class);
         if(list.size() == 0 || list == null) {return null;}
         return list.get(0);

+ 10 - 4
src/main/java/edu/nju/service/ExtraService.java

@@ -58,11 +58,17 @@ public class ExtraService {
 	
 	
 	//测试报告相关
-	public String saveReport(String case_id, String task_id, String case_take_id, String woker_id, String name, String device_model, 
+	public synchronized String saveReport(String case_id, String task_id, String case_take_id, String woker_id, String name, String device_model,
 			String device_brand, String device_os, String script_location, String report_location, String log_location) {
-		Report report = new Report(case_id, task_id, case_take_id, woker_id, name, Long.toString(System.currentTimeMillis()),
-				device_model, device_brand, device_os, script_location, report_location, log_location);
-		return reportDao.save(report);
+		Report report=reportDao.findByWoker(case_take_id,woker_id);
+		if(report==null) {
+			Report report2 = new Report(case_id, task_id, case_take_id, woker_id, name, Long.toString(System.currentTimeMillis()),
+					device_model, device_brand, device_os, script_location, report_location, log_location);
+			return reportDao.save(report2);
+		}
+		else{
+			return report.getId();
+		}
 	}
 
 	public boolean updateReport(String report_id, String case_id, String task_id, String case_take_id, String woker_id, String name, String device_model,

+ 7 - 1
src/main/java/edu/nju/service/ReviewPaperService.java

@@ -394,6 +394,12 @@ public class ReviewPaperService {
         ReviewJob reviewJob=reviewJobDao.findJobByExamCase(examId,caseId);
         String paperId=reviewJob.getPaper_id();
         String jobId=reviewJob.getId();
+        ReviewWorker reviewWorker=reviewWorkerDao.getWorkerByOriginalId(workerIndex,jobId);
+        if(reviewWorker!=null){
+            String workerId=reviewWorker.getId();
+            String url="http://47.99.140.117:9090/report/review/job/"+jobId+"/"+workerId+"/0";
+            return url;
+        }
         String workerId=reviewWorkerDao.save(new ReviewWorker(workerIndex,paperId,examId,jobId));
         List<ReviewReport>reviewReports=getReportsByPaperId(paperId);
         List<String>reportIds=new ArrayList<>();
@@ -404,7 +410,7 @@ public class ReviewPaperService {
         workerIds.add(workerId);
         reviewGroup.setWorkers_id(workerIds);
         reviewGroupDao.save(reviewGroup);
-        String url="http://47.99.140.117:9090//review/job/"+jobId+"/"+workerId+"/0";
+        String url="http://47.99.140.117:9090/report/review/job/"+jobId+"/"+workerId+"/0";
         return url;
     }
 

+ 4 - 8
src/main/java/edu/nju/service/ReviewService.java

@@ -115,15 +115,11 @@ public class ReviewService {
                 String school="";
                 if(result != null && !result.equals("")) {
                     JSONObject json = new JSONObject(result);
-                    if(json.has("name")) {
-                        String temp = json.getString("name");
-                        if(temp!=null)
-                            name=temp;
+                    if(json.has("name")&&!json.isNull("name")) {
+                        name = json.getString("name");
                     }
-                    if(json.has("school")) {
-                        String temp = json.getString("school");
-                        if(temp!=null)
-                            school=temp;
+                    if(json.has("school")&&!json.isNull("school")) {
+                        school = json.getString("school");
                     }
                     reviewWorkerVOS.add(new ReviewWorkerVO(reviewWorker,name,school));
                 }