Explorar o código

Merge branch 'mongo-config' into 'DEV'

Mongo config



See merge request !448

梅杰 %!s(int64=7) %!d(string=hai) anos
pai
achega
3073b81879

+ 1 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/configure/ApplicationStartup.java

@@ -14,7 +14,7 @@ public class ApplicationStartup implements ApplicationListener<ContextRefreshedE
         System.out.println("-----------------------------------------------------------------------------------------");
         System.out.println("listener");
         ExamController examController = event.getApplicationContext().getBean(ExamController.class);
-//        examController.updateStatusForAllTask();
+        examController.updateStatusForAllTask();
         examController.startInitExamSchedulerMap();
         System.out.println("exam scheduler map initialized");
         System.out.println("-----------------------------------------------------------------------------------------");

+ 25 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/configure/MongoDBConfiguration.java

@@ -0,0 +1,25 @@
+package cn.iselab.mooctest.site.configure;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by major on 2017/12/21.
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix="mongodb")
+public class MongoDBConfiguration {
+    private String host;
+    private String port;
+    private String db;
+    private String reportCollection;
+    private String mutationCollection;
+    private String caseGraghCollection;
+    private String caughtNodeCollection;
+    private String userCatchCollection;
+    private String sumCatchCollection;
+    private String base64Auth;
+
+}

+ 15 - 11
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/common/impl/MongoAPIServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.iselab.mooctest.site.service.common.impl;
 
+import cn.iselab.mooctest.site.configure.MongoDBConfiguration;
 import cn.iselab.mooctest.site.rpc.dev.data.MutationDTO;
 import cn.iselab.mooctest.site.service.common.MongoAPIService;
 import cn.iselab.mooctest.site.web.data.forMongo.MutationForMongoDTO;
@@ -9,6 +10,7 @@ import com.google.gson.Gson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -23,6 +25,8 @@ import java.util.*;
 @Service
 public class MongoAPIServiceImpl implements MongoAPIService {
 
+    @Autowired
+    MongoDBConfiguration mongoDBConfig;
     @Override
     public List<MutationForMongoDTO> getMutationFromMongo(Long stuId, Long examId, Long caseId) throws IOException {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
@@ -40,8 +44,8 @@ public class MongoAPIServiceImpl implements MongoAPIService {
             queryParams.put("caseId", caseId);
         }
         String filter = MongoAPIUtils.generateFilterStr(queryParams);
-        String url = MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_MUTATION);
+        String url = MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getMutationCollection());
         ResponseEntity<JSONObject> dto = rt.exchange(url, HttpMethod.GET, entity, JSONObject.class, filter);
 
         List<MutationForMongoDTO> mutationDTOS = extractMutationData(dto);
@@ -56,8 +60,8 @@ public class MongoAPIServiceImpl implements MongoAPIService {
         headers.setContentType(MediaType.APPLICATION_JSON);
         MutationForMongoDTO mutationForMongoDTO = new MutationForMongoDTO(null, null, stuId, examId, caseId, mutationDTO);
         HttpEntity<MutationForMongoDTO> httpEntity = new HttpEntity<>(mutationForMongoDTO, headers);
-        String url = MongoAPIUtils.generateCommonUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_MUTATION);
+        String url = MongoAPIUtils.generateCommonUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getMutationCollection());
         rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
     }
 
@@ -67,8 +71,8 @@ public class MongoAPIServiceImpl implements MongoAPIService {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
         headers.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<MutationForMongoDTO> httpEntity = new HttpEntity<>(mutationDTO, headers);
-        String url = MongoAPIUtils.generateUrlWithResourceId(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_MUTATION, mutationDTO.getId());
+        String url = MongoAPIUtils.generateUrlWithResourceId(mongoDBConfig.getDb(),
+                mongoDBConfig.getMutationCollection(), mutationDTO.getId());
         rt.exchange(url, HttpMethod.PUT, httpEntity, String.class);
     }
 
@@ -101,7 +105,7 @@ public class MongoAPIServiceImpl implements MongoAPIService {
         queryParams.put("caseTakeId",caseTakeId);
 
         String filter= MongoAPIUtils.generateFilterStr(queryParams);
-        String url=MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,MongoAPIUtils.MONGODB_COLLECTION_REPORT);
+        String url=MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),mongoDBConfig.getReportCollection());
         ResponseEntity<JSONObject> responseEntity=rt.exchange(url,HttpMethod.GET,entity,JSONObject.class,filter);
 
         List<ReportForMongoDTO> reportVOS=extractReportData(responseEntity);
@@ -114,8 +118,8 @@ public class MongoAPIServiceImpl implements MongoAPIService {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
         headers.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<ReportForMongoDTO> httpEntity = new HttpEntity<>(reportForMongoDTO, headers);
-        String url = MongoAPIUtils.generateCommonUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_REPORT);
+        String url = MongoAPIUtils.generateCommonUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getReportCollection());
         rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
     }
 
@@ -125,8 +129,8 @@ public class MongoAPIServiceImpl implements MongoAPIService {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
         headers.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<ReportForMongoDTO> httpEntity = new HttpEntity<>(reportForMongoDTO, headers);
-        String url = MongoAPIUtils.generateUrlWithResourceId(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_REPORT, reportForMongoDTO.getId());
+        String url = MongoAPIUtils.generateUrlWithResourceId(mongoDBConfig.getDb(),
+                mongoDBConfig.getReportCollection(), reportForMongoDTO.getId());
         rt.exchange(url, HttpMethod.PUT, httpEntity, String.class);
 }
 

+ 12 - 8
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/CaseGraphServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.configure.MongoDBConfiguration;
 import cn.iselab.mooctest.site.service.CaseGraphService;
 import cn.iselab.mooctest.site.web.data.forMongo.NodeCatch.CaughtNodeDTO;
 import cn.iselab.mooctest.site.web.data.forMongo.caseGraph.CaseGraphDTO;
@@ -9,6 +10,7 @@ import com.google.gson.Gson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -21,6 +23,8 @@ import java.util.Map;
 @Service
 public class CaseGraphServiceImpl implements CaseGraphService {
 
+    @Autowired
+    MongoDBConfiguration mongoDBConfig;
     @Override
     public CaseGraphDTO saveCaseGraph(CaseGraphDTO caseGraphDTO) {
         RestTemplate rt = new RestTemplate();
@@ -44,7 +48,7 @@ public class CaseGraphServiceImpl implements CaseGraphService {
         queryParams.put("caseId",caseId);
 
         String filter= MongoAPIUtils.generateFilterStr(queryParams);
-        String url=MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,MongoAPIUtils.MONGODB_COLLECTION_CASE_GRAPH);
+        String url=MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),mongoDBConfig.getCaseGraghCollection());
         ResponseEntity<JSONObject> responseEntity=rt.exchange(url,HttpMethod.GET,entity,JSONObject.class,filter);
         return extractCaseGraphDTO(responseEntity);
     }
@@ -60,7 +64,7 @@ public class CaseGraphServiceImpl implements CaseGraphService {
         queryParams.put("caseId",caseId);
 
         String filter= MongoAPIUtils.generateFilterStr(queryParams);
-        String url=MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,MongoAPIUtils.MONGODB_COLLECTION_CAUGHT_NODE);
+        String url=MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),mongoDBConfig.getCaughtNodeCollection());
         ResponseEntity<JSONObject> responseEntity=rt.exchange(url,HttpMethod.GET,entity,JSONObject.class,filter);
         return extractNodeCatchMap(responseEntity);
     }
@@ -75,8 +79,8 @@ public class CaseGraphServiceImpl implements CaseGraphService {
         queryParams.put("caseId",caseId);
 
         String avars= MongoAPIUtils.generateFilterStr(queryParams);
-        String url=MongoAPIUtils.generateAggrUrl(MongoAPIUtils.MONGODB_DB,MongoAPIUtils.MONGODB_COLLECTION_CAUGHT_NODE,
-                MongoAPIUtils.MONGODB_AGGREGATION_SUM_CATCH);
+        String url=MongoAPIUtils.generateAggrUrl(mongoDBConfig.getDb(),mongoDBConfig.getCaughtNodeCollection(),
+                mongoDBConfig.getSumCatchCollection());
         ResponseEntity<JSONObject> responseEntity=rt.exchange(url,HttpMethod.GET,entity,JSONObject.class,avars);
         return extractNodeCatchMap(responseEntity);
     }
@@ -107,16 +111,16 @@ public class CaseGraphServiceImpl implements CaseGraphService {
 
     private CaseGraphDTO createCaseGraph(HttpEntity<CaseGraphDTO> httpEntity, CaseGraphDTO caseGraphDTO){
         RestTemplate rt = new RestTemplate();
-        String url = MongoAPIUtils.generateCommonUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_CASE_GRAPH);
+        String url = MongoAPIUtils.generateCommonUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getCaseGraghCollection());
         rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
         return caseGraphDTO;
     }
 
     private CaseGraphDTO updateCaseGraph(HttpEntity<CaseGraphDTO> httpEntity, CaseGraphDTO caseGraphDTO){
         RestTemplate rt = new RestTemplate();
-        String url = MongoAPIUtils.generateUrlWithResourceId(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_CASE_GRAPH, caseGraphDTO.getId());
+        String url = MongoAPIUtils.generateUrlWithResourceId(mongoDBConfig.getDb(),
+                mongoDBConfig.getCaseGraghCollection(), caseGraphDTO.getId());
         rt.exchange(url, HttpMethod.PUT, httpEntity, String.class);
         return caseGraphDTO;
     }

+ 10 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/CaughtNodeServiceImpl.java

@@ -1,11 +1,13 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.configure.MongoDBConfiguration;
 import cn.iselab.mooctest.site.service.CaughtNodeService;
 import cn.iselab.mooctest.site.web.data.forMongo.NodeCatch.CaughtNodeDTO;
 import cn.iselab.mooctest.site.web.util.mongodb.MongoAPIUtils;
 import com.google.gson.Gson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -22,6 +24,8 @@ import java.util.Map;
 @Service
 public class CaughtNodeServiceImpl implements CaughtNodeService {
 
+    @Autowired
+    MongoDBConfiguration mongoDBConfig;
     @Override
     public CaughtNodeDTO getCaughtNodeDTO(Long examId, Long caseId, String nodeName) {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
@@ -39,8 +43,8 @@ public class CaughtNodeServiceImpl implements CaughtNodeService {
             queryParams.put("nodeName", nodeName);
         }
         String filter = MongoAPIUtils.generateFilterStr(queryParams);
-        String url = MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_CAUGHT_NODE);
+        String url = MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getCaughtNodeCollection());
         ResponseEntity<JSONObject> dto = rt.exchange(url, HttpMethod.GET, entity, JSONObject.class, filter);
 
         CaughtNodeDTO caughtNodeDTO = extractUserCatchData(dto);
@@ -54,8 +58,8 @@ public class CaughtNodeServiceImpl implements CaughtNodeService {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
         headers.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<CaughtNodeDTO> httpEntity = new HttpEntity<>(caughtNodeDTO, headers);
-        String url = MongoAPIUtils.generateCommonUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_CAUGHT_NODE);
+        String url = MongoAPIUtils.generateCommonUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getCaughtNodeCollection());
         rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
         return caughtNodeDTO;
     }
@@ -87,8 +91,8 @@ public class CaughtNodeServiceImpl implements CaughtNodeService {
             queryParams.put("caseId", caseId);
         }
         String filter = MongoAPIUtils.generateFilterStr(queryParams);
-        String url = MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_CAUGHT_NODE);
+        String url = MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getCaughtNodeCollection());
         ResponseEntity<JSONObject> dto = rt.exchange(url, HttpMethod.GET, entity, JSONObject.class, filter);
         return extractCaughtNodeList(dto);
     }

+ 10 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/UserCatchServiceImpl.java

@@ -1,11 +1,13 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.configure.MongoDBConfiguration;
 import cn.iselab.mooctest.site.service.UserCatchService;
 import cn.iselab.mooctest.site.web.data.forMongo.NodeCatch.UserCatchDTO;
 import cn.iselab.mooctest.site.web.util.mongodb.MongoAPIUtils;
 import com.google.gson.Gson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -20,6 +22,8 @@ import java.util.Map;
 @Service
 public class UserCatchServiceImpl implements UserCatchService {
 
+    @Autowired
+    MongoDBConfiguration mongoDBConfig;
     @Override
     public UserCatchDTO getUserCatchDTO(Long userId) {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
@@ -31,8 +35,8 @@ public class UserCatchServiceImpl implements UserCatchService {
             queryParams.put("userId", userId);
         }
         String filter = MongoAPIUtils.generateFilterStr(queryParams);
-        String url = MongoAPIUtils.generateFilterUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_USER_CATCH);
+        String url = MongoAPIUtils.generateFilterUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getUserCatchCollection());
         ResponseEntity<JSONObject> dto = rt.exchange(url, HttpMethod.GET, entity, JSONObject.class, filter);
 
         UserCatchDTO userCatchDTO = extractUserCatchData(dto);
@@ -55,16 +59,16 @@ public class UserCatchServiceImpl implements UserCatchService {
 
     private UserCatchDTO createUserCatchDTO(HttpEntity<UserCatchDTO> httpEntity, UserCatchDTO userCatchDTO){
         RestTemplate rt = new RestTemplate();
-        String url = MongoAPIUtils.generateCommonUrl(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_USER_CATCH);
+        String url = MongoAPIUtils.generateCommonUrl(mongoDBConfig.getDb(),
+                mongoDBConfig.getUserCatchCollection());
         rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
         return userCatchDTO;
     }
 
     private UserCatchDTO updateUserCatchDTO(HttpEntity<UserCatchDTO> httpEntity, UserCatchDTO userCatchDTO){
         RestTemplate rt = new RestTemplate();
-        String url = MongoAPIUtils.generateUrlWithResourceId(MongoAPIUtils.MONGODB_DB,
-                MongoAPIUtils.MONGODB_COLLECTION_USER_CATCH, userCatchDTO.getId());
+        String url = MongoAPIUtils.generateUrlWithResourceId(mongoDBConfig.getDb(),
+                mongoDBConfig.getUserCatchCollection(), userCatchDTO.getId());
         rt.exchange(url, HttpMethod.PUT, httpEntity, String.class);
         return userCatchDTO;
     }

+ 14 - 12
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/util/mongodb/MongoAPIUtils.java

@@ -1,30 +1,32 @@
 package cn.iselab.mooctest.site.web.util.mongodb;
 
+import cn.iselab.mooctest.site.configure.MongoDBConfiguration;
 import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
 /**
  * Created by major on 2017/9/26.
  */
+@Component
 public class MongoAPIUtils {
-    public static final String MONGODB_HOST = "114.55.91.27";
-    public static final String MONGODB_PORT = "80";
-    public static final String MONGODB_DB = "testGraph";
-    public static final String MONGODB_COLLECTION_REPORT= "report";
-    public static final String MONGODB_COLLECTION_MUTATION = "mutation";
-    public static final String MONGODB_COLLECTION_CASE_GRAPH = "caseGraph";
-    public static final String MONGODB_COLLECTION_CAUGHT_NODE = "caughtNode";
-    public static final String MONGODB_COLLECTION_USER_CATCH = "userCatch";
 
-    public static final String MONGODB_AGGREGATION_SUM_CATCH = "sumCatch";
 
-    public static final String BASE64_AUTH = "Basic YWRtaW46Y2hhbmdlaXQ=";
+
+    static MongoDBConfiguration mongoDBConfiguration;
+
+    @Autowired
+    public MongoAPIUtils(MongoDBConfiguration mongoDBConfig) {
+        mongoDBConfiguration = mongoDBConfig;
+    }
 
     public static String generateCommonUrl(String dbName, String collectionName) {
         StringBuilder builder = new StringBuilder();
-        builder.append("http://").append(MONGODB_HOST).append(":").append(MONGODB_PORT).append("/")
+        builder.append("http://").append(mongoDBConfiguration.getHost()).append(":")
+                .append(mongoDBConfiguration.getPort()).append("/")
                 .append(dbName).append("/").append(collectionName);
         return builder.toString();
     }
@@ -47,7 +49,7 @@ public class MongoAPIUtils {
 
     public static HttpHeaders createAuthHeaderForMongo() {
         HttpHeaders headers = new HttpHeaders();
-        headers.add("Authorization", BASE64_AUTH);
+        headers.add("Authorization", mongoDBConfiguration.getBase64Auth());
         return headers;
     }
 }

+ 49 - 0
mooctest-site-server/src/main/resources/application.yaml

@@ -77,6 +77,20 @@ featureSwitch:
         rpcKibugService: true
         rpcSourceService: true
 
+mongodb:
+      host: 114.55.91.27
+      port: 80
+      db: testGragh
+      reportCollection: report
+      mutationCollection: mutation
+      caseGraghCollection: caseGraph
+      caughtNodeCollection: caughtNode
+      userCatchCollection: userCatch
+      sumCatchCollection: sumCatch
+      base64Auth: Basic YWRtaW46Y2hhbmdlaXQ=
+
+
+
 rpcServer:
     port: 9100
     group: iselab
@@ -125,6 +139,17 @@ featureSwitch:
         rpcKibugService: true
         rpcSourceService: true
 
+mongodb:
+      host: 114.55.91.27
+      port: 80
+      db: testGragh
+      reportCollection: report
+      mutationCollection: mutation
+      caseGraghCollection: caseGraph
+      caughtNodeCollection: caughtNode
+      userCatchCollection: userCatch
+      sumCatchCollection: sumCatch
+      base64Auth: Basic YWRtaW46Y2hhbmdlaXQ=
 server:
     port: 9001
 
@@ -174,6 +199,18 @@ featureSwitch:
         rpcKibugService: true
         rpcSourceService: true
 
+mongodb:
+      host: 114.55.91.27
+      port: 80
+      db: testdb
+      reportCollection: report
+      mutationCollection: mutation
+      caseGraghCollection: caseGraph
+      caughtNodeCollection: caughtNode
+      userCatchCollection: userCatch
+      sumCatchCollection: sumCatch
+      base64Auth: Basic YWRtaW46Y2hhbmdlaXQ=
+
 server:
     port: 8088
 
@@ -216,6 +253,18 @@ featureSwitch:
         rpcKibugService: false
         rpcSourceService: false
 
+mongodb:
+      host: 114.55.91.27
+      port: 80
+      db: testdb
+      reportCollection: report
+      mutationCollection: mutation
+      caseGraghCollection: caseGraph
+      caughtNodeCollection: caughtNode
+      userCatchCollection: userCatch
+      sumCatchCollection: sumCatch
+      base64Auth:
+
 server:
     port: 9001