Quellcode durchsuchen

Merge branch 'xjw' of http://git.mooctest.net/summer/crowdsource-backend into xjw

xujiawei vor 5 Jahren
Ursprung
Commit
29634b5043

+ 3 - 1
src/main/java/edu/nju/dao/ReviewJobDao.java

@@ -2,6 +2,7 @@ package edu.nju.dao;
 
 import edu.nju.entities.ReviewJob;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -33,7 +34,8 @@ public class ReviewJobDao {
     }
 
     public List<ReviewJob> findJobs(){
-        List<ReviewJob> list = mongoOperations.findAll(ReviewJob.class);
+        Query query = new Query().with(new Sort(Sort.Direction.DESC,"create_time"));;
+        List<ReviewJob> list = mongoOperations.find(query,ReviewJob.class);
         return list;
     }
 

+ 1 - 1
src/main/java/edu/nju/dao/ReviewPaperDao.java

@@ -31,7 +31,7 @@ public class ReviewPaperDao {
     }
 
     public List<ReviewPaper> findPapers(){
-        Query query = new Query().with(new Sort(Sort.Direction.DESC,"createTime"));
+        Query query = new Query().with(new Sort(Sort.Direction.DESC,"create_time"));
         return mongoOperations.find(query,ReviewPaper.class);
     }
 

+ 1 - 1
src/main/java/edu/nju/entities/ReviewGroup.java

@@ -22,9 +22,9 @@ public class ReviewGroup implements java.io.Serializable{
 
     private String job_id;
 
-    //此处的report_id实际上是paper_id+original_id
     private List<String> report_id;
 
+    //实际上是paper_id-original_id
     private List<String>paper_original_id;
 
     private List<String>original_id;

+ 23 - 0
src/main/java/edu/nju/model/BugRecurrent.java

@@ -0,0 +1,23 @@
+package edu.nju.model;
+
+public enum BugRecurrent {
+    其他(0),无规律浮现(1),小概率浮现(2),大概率复现(3),必现(4);
+    private int id;
+
+    BugRecurrent(int id) {
+        this.id=id;
+    }
+
+    public int getId(){
+        return this.id;
+    }
+
+    public static BugRecurrent getValue(int code){
+        for(BugRecurrent bugRecurrent:values()){
+            if(bugRecurrent.getId()==code){
+                return bugRecurrent;
+            }
+        }
+        return null;
+    }
+}

+ 23 - 0
src/main/java/edu/nju/model/BugSeverity.java

@@ -0,0 +1,23 @@
+package edu.nju.model;
+
+public enum BugSeverity {
+    待定(0),较轻(1),一般(2),严重(3),紧急(4);
+    private int id;
+
+    BugSeverity(int i) {
+        this.id=id;
+    }
+
+    public int getId(){
+        return this.id;
+    }
+
+    public static BugSeverity getValue(int code){
+        for(BugSeverity bugSeverity:values()){
+            if(bugSeverity.getId()==code){
+                return bugSeverity;
+            }
+        }
+        return null;
+    }
+}

+ 12 - 8
src/main/java/edu/nju/service/ExtraService.java

@@ -4,10 +4,13 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 import edu.nju.dao.*;
 import edu.nju.entities.*;
+import edu.nju.model.BugRecurrent;
+import edu.nju.model.BugSeverity;
 import edu.nju.util.FormatJson;
 import edu.nju.util.HTTP;
 import edu.nju.util.OssAliyun;
@@ -207,16 +210,20 @@ public class ExtraService {
 				description+=bug.getDescription()+"\n";
 				description+=bug.getBug_page()+"\n";
 				description+=bug.getBug_category()+"\n";
-				description+=bug.getSeverity()+"\n";
-				description+=bug.getRecurrent()+"\n";
-				description+=bug.getCreate_time_millis()+"\n";
+				BugSeverity bugSeverity=BugSeverity.getValue(bug.getSeverity());
+				description+=bugSeverity+"\n";
+				BugRecurrent bugRecurrent=BugRecurrent.getValue(bug.getRecurrent());
+				description+=bugRecurrent+"\n";
+				SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+				String dateStr = dateformat.format(bug.getCreate_time_millis());
+				description+=dateStr+"\n";
 				if(mirror==null){
 					description+="0\n";
 					description+="0\n";
 				}
 				else {
-					description += mirror.getGood().size() + "\n";
-					description += mirror.getBad().size();
+					description += "good: "+mirror.getGood().size() + "\n";
+					description += "bad: "+mirror.getBad().size();
 				}
 				jsonObject.put("description",description);
 				String[]urlArray=new String[1];
@@ -254,9 +261,6 @@ public class ExtraService {
 			write.flush();
 			write.close();
 			OssAliyun.uploadFile("paperjson/"+case_take_id+".json",file);
-			//JSONObject jsonObject=reviewPaperService.uploadPaper(result.toString());
-			//String paperId=jsonObject.getString("paperId");
-			//crowdSourceToReviewPaperDao.save(new CrowdSourceToReviewPaper(paperId,case_take_id,url));
 			return url;
 		} catch (Exception e) {
 			e.printStackTrace();

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

@@ -96,23 +96,21 @@ public class ReviewAnalyzeService {
         int rIndex = 0;
         int iIndex = 0;
         int oIndex = 0;
-        int tempIO ;
         int tempRI;
         int temp  ;
         try {
             HSSFWorkbook wb = new HSSFWorkbook();
-            tempIO = 0;
             tempRI = 0;
             FileOutputStream fileOut = null; // 为了输出excel 文件
             ReviewJob job = reviewJobDao.findJob(jobId);
             HSSFSheet sheet1 = wb.createSheet(job.getName());
-            ReviewPaper paper = reviewPaperDao.findPaper(job.getPaper_id());
             List<ReviewReport> reports = reviewReportDao.getReportsByPaperId(job.getPaper_id());
             Row rTemp ;
             Cell cTemp;
             DecimalFormat df = new DecimalFormat("#.00");
             for( ReviewReport r : reports){
                 List<ReviewItem> items = reviewItemDao.findItemsByReport(r.getId());
+                tempRI = 0;
                 for (ReviewItem i : items){
                     List<ReviewAnswer> answers = reviewAnswerDao.getItemReportJobAnswers(i.getId(),r.getId(),jobId);
                     int [] answerCount = new int [answers.size()];
@@ -128,7 +126,7 @@ public class ReviewAnalyzeService {
                             for( int ii =0;ii<i.getOptions().size();ii++){
                                 rTemp = sheet1.createRow(oIndex++);
                                 cTemp = rTemp.createCell(2);
-                                cTemp.setCellValue(i.getOptions().get(ii)+":"+answerCount[ii]+"  "+df.format(1.0*answerCount[ii]/answers.size()));
+                                cTemp.setCellValue(i.getOptions().get(ii)+":"+answerCount[ii]+" - "+df.format(100.0*answerCount[ii]/answers.size())+"%");
                             }
 
                         case "Description" :

+ 4 - 4
src/main/java/edu/nju/service/ReviewJobService.java

@@ -55,7 +55,7 @@ public class ReviewJobService {
             ReviewJob newReviewJob = new ReviewJob(examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId,reviewPaper.getId(), startTime, endTime, "", isCrossValidation, validationNum,maxWorker);
             jobId = jobDao.save(newReviewJob);
         }
-        if(workerDistribution.equals("")){
+        if(workerDistribution.equals("")||workerDistribution.equals("[]")){
             List<String>workerIds=new ArrayList<>();
             for(int i=0;i<workerList.size();i++){
                 String workerIndex=workerList.get(i);
@@ -93,7 +93,7 @@ public class ReviewJobService {
                 JSONArray jsonArray2=jsonObject.getJSONArray("report");
             }
         }catch (Exception e){
-            return e.getMessage();
+            return "分配信息不正确:"+e.getMessage();
         }
         return "success";
     }
@@ -116,7 +116,7 @@ public class ReviewJobService {
             List<String>originalIds=new ArrayList<>();
             for(int j=0;j<jsonArray2.length();j++){
                 String originalId=String.valueOf(jsonArray2.get(j));
-                String paperOriginalId=paperId+"_"+originalId;
+                String paperOriginalId=paperId+"-"+originalId;
                 String reportId=reportDao.findReportByPaperOriginalId(paperId,originalId).getId();
                 paperOriginalIds.add(paperOriginalId);
                 reportIds.add(reportId);
@@ -212,7 +212,7 @@ public class ReviewJobService {
             jsonObject.put("name",reviewGroup.getName());
             jsonObject.put("description",reviewGroup.getDescription());
             jsonObject.put("worker",reviewGroup.getWorkers_id());
-            jsonObject.put("report",reviewGroup.getPaper_original_id());
+            jsonObject.put("report",reviewGroup.getOriginal_id());
             jsonArray.put(jsonObject);
         }
         return jsonArray;

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

@@ -8,6 +8,7 @@ import edu.nju.model.ReviewPaperVO;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -43,6 +44,9 @@ public class ReviewPaperService {
     @Autowired
     ReviewGroupDao reviewGroupDao;
 
+    @Value("${report.port}")
+    String port;
+
 
     public ReviewPaperJson getReviewPaperJson(String paperId) {
         return reviewPaperJsonDao.findJsonByPaper(paperId);
@@ -288,8 +292,6 @@ public class ReviewPaperService {
                 String reportName=report.getString("name");
                 String originalId=report.getString("original_id");
                 String reportDescription=report.getString("description");
-//                JSONArray imgUrls=report.getJSONArray("img_url");
-//                JSONArray fileUrls=report.getJSONArray("file_url");
 
             }
 
@@ -329,33 +331,8 @@ public class ReviewPaperService {
                     JSONArray options=item.getJSONArray("options");
                 }
             }
-
-
-//			JSONArray groupList=jsonObject.getJSONArray("group_list");
-//			Set<String>workers=new HashSet<>();
-//			for(int i=0;i<groupList.length();i++){
-//				JSONObject groupObject=groupList.getJSONObject(i);
-//				String groupName=groupObject.getString("name");
-//				String groupDescription=groupObject.getString("description");
-//				JSONArray workerList=groupObject.getJSONArray("worker_list");
-//				for(int j=0;j<workerList.length();j++){
-//					String workerId=String.valueOf(workerList.get(j));
-//					if(workers.contains(workerId)){
-//						throw new Exception("同一个worker不能属于不同的group");
-//					}else{
-//						workers.add(workerId);
-//					}
-//				}
-//				JSONArray workerReportList=groupObject.getJSONArray("report_list");
-//				for(int j=0;j<workerReportList.length();j++){
-//					int reportIndex= Integer.parseInt(String.valueOf(workerReportList.get(j)));
-//					if(!reportIndexs.contains(reportIndex)){
-//						throw new Exception("group_report_list中包含不存在的report ");
-//					}
-//				}
-//			}
         }catch (Exception e){
-            return e.getMessage();
+            return "paperJson格式不正确:"+e.getMessage();
         }
         return result;
     }
@@ -397,7 +374,7 @@ public class ReviewPaperService {
         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";
+            String url="http://47.99.140.117:"+port+"/report/review/job/"+jobId+"/"+workerId+"/0";
             return url;
         }
         String workerId=reviewWorkerDao.save(new ReviewWorker(workerIndex,paperId,examId,jobId));
@@ -410,7 +387,7 @@ public class ReviewPaperService {
         workerIds.add(workerId);
         reviewGroup.setWorkers_id(workerIds);
         reviewGroupDao.save(reviewGroup);
-        String url="http://47.99.140.117:9090/report/review/job/"+jobId+"/"+workerId+"/0";
+        String url="http://47.99.140.117:"+port+"/report/review/job/"+jobId+"/"+workerId+"/0";
         return url;
         // TODO: 2019/12/13 对reviewWorker为null的情况返回错误提示 
     }

+ 2 - 2
src/main/java/edu/nju/util/LoadConf.java

@@ -30,8 +30,8 @@ public class LoadConf {
             }else if(name.equals("OSS_CONFIG.json")){
                 s="{\n" +
                         "\tOSS_CONFIG:{\n" +
-                        "\t    ACCESS_KEY_ID:\"IvS323TIcWUT57MG\",\n" +
-                        "\t    ACCESS_KEY_SECRET:\"dYml7rvT8stQkoSjMYlfRTxNj9dEsI\",\n" +
+                        "\t    ACCESS_KEY_ID:\"LTAI4FwTqQ2grekcxanKHnBL\",\n" +
+                        "\t    ACCESS_KEY_SECRET:\"90nz7r8aImh2NhcNh0HAg8xiOJtn5V\",\n" +
                         "\t    BUCKET:\"mooctest-site\",\n" +
                         "\t    END_POINT:\"http://oss-cn-shanghai.aliyuncs.com\",\n" +
                         "\t    EXPIRE_TIME:600,\n" +

+ 29 - 2
src/main/java/edu/nju/util/OssAliyun.java

@@ -50,8 +50,8 @@ import com.aliyun.oss.model.PutObjectRequest;
 public class OssAliyun {
 
     private static String endpoint = "http://oss-cn-shanghai.aliyuncs.com";
-    private static String accessKeyId = "IvS323TIcWUT57MG";
-    private static String accessKeySecret = "dYml7rvT8stQkoSjMYlfRTxNj9dEsI";
+    private static String accessKeyId = "LTAI4FwTqQ2grekcxanKHnBL";
+    private static String accessKeySecret = "90nz7r8aImh2NhcNh0HAg8xiOJtn5V";
     private static String bucketName = "mooctest-site";
 
     public static void uploadFile(String objectName,File file) throws IOException {
@@ -190,4 +190,31 @@ public class OssAliyun {
         reader.close();
     }
 
+    public static void main(String[]arg){
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        String objectName="paperjson/1492-2612.json";
+        try {
+            /*
+             * Delete an object
+             */
+            System.out.println("Deleting an object\n");
+            ossClient.deleteObject(bucketName, objectName);
+
+        } catch (OSSException oe) {
+            System.out.println("Caught an OSSException, which means your request made it to OSS, "
+                    + "but was rejected with an error response for some reason.");
+            System.out.println("Error Message: " + oe.getErrorMessage());
+            System.out.println("Error Code:       " + oe.getErrorCode());
+            System.out.println("Request ID:      " + oe.getRequestId());
+            System.out.println("Host ID:           " + oe.getHostId());
+        } catch (ClientException ce) {
+            System.out.println("Caught an ClientException, which means the client encountered "
+                    + "a serious internal problem while trying to communicate with OSS, "
+                    + "such as not being able to access the network.");
+            System.out.println("Error Message: " + ce.getMessage());
+        } finally {
+            ossClient.shutdown();
+        }
+    }
+
 }