Selaa lähdekoodia

update async task

tangss 7 vuotta sitten
vanhempi
commit
d647d67e42

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/AsyncTaskService.java

@@ -10,6 +10,8 @@ public interface AsyncTaskService {
 
     AsyncTaskDTO saveAsyncTask(AsyncTaskDTO asyncTaskDTO);
 
+    AsyncTaskDTO updateAsyncTask(AsyncTaskDTO asyncTaskDTO);
+
     AsyncTaskDTO getAsyncTask(AsyncJobTool toolType, Long examId, Long caseId);
 
     AsyncTaskDTO getAsyncTask(String sessionId);

+ 2 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/AsyncScheduleServiceImpl.java

@@ -97,7 +97,7 @@ public class AsyncScheduleServiceImpl extends BaseService implements AsyncSchedu
 
         asyncTaskDTO = asyncTaskService.getAsyncTask(sessionId);
         List<AsyncJobDTO> alljobs = asyncTaskDTO.getJobs();
-        AsyncJobDTO temp = new AsyncJobDTO();
+        AsyncJobDTO temp;
         for(int i=0;i<alljobs.size();i++){
             if(alljobs.get(i).getJobId().equals(jobId)){
                 temp = alljobs.remove(i);
@@ -107,7 +107,7 @@ public class AsyncScheduleServiceImpl extends BaseService implements AsyncSchedu
             }
         }
         asyncTaskDTO.setJobs(alljobs);
-        asyncTaskService.saveAsyncTask(asyncTaskDTO);
+        asyncTaskService.updateAsyncTask(asyncTaskDTO);
         return true;
     }
 

+ 16 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/AsyncTaskServiceImpl.java

@@ -43,6 +43,21 @@ public class AsyncTaskServiceImpl extends BaseService implements AsyncTaskServic
     }
 
     @Override
+    public AsyncTaskDTO updateAsyncTask(AsyncTaskDTO asyncTaskDTO) {
+        if(asyncTaskDTO.getId()==null){
+            return null;
+        }
+        RestTemplate rt = new RestTemplate();
+        HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<AsyncTaskDTO> httpEntity = new HttpEntity<>(asyncTaskDTO, headers);
+        String url = MongoAPIUtils.generateUrlWithResourceId(mongoDBConfig.getDb(),
+                MongoAPIUtils.MONGODB_COLLECTION_ASYNC_TASK,asyncTaskDTO.getId());
+        rt.exchange(url, HttpMethod.PUT, httpEntity, String.class);
+        return asyncTaskDTO;
+    }
+
+    @Override
     public AsyncTaskDTO getAsyncTask(AsyncJobTool toolType, Long examId, Long caseId) {
         HttpHeaders headers = MongoAPIUtils.createAuthHeaderForMongo();
         HttpEntity<String> entity = new HttpEntity<>(headers);
@@ -79,6 +94,7 @@ public class AsyncTaskServiceImpl extends BaseService implements AsyncTaskServic
         Gson gson = new Gson();
         JSONObject result = resultArray.getJSONObject(0);
         AsyncTaskDTO asyncTaskDTO = gson.fromJson(result.toString(), AsyncTaskDTO.class);
+        asyncTaskDTO.setId(result.getJSONObject("_id").getString("$oid"));
         return asyncTaskDTO;
     }
 }

+ 1 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/forMongo/AsyncTaskDTO.java

@@ -9,6 +9,7 @@ import java.util.List;
  */
 @Data
 public class AsyncTaskDTO {
+    private String id;
     private String sessionId;
     private String toolName;
     private Short type;