12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package edu.nju.dao;
- import edu.nju.entities.Task;
- import edu.nju.util.HTTP;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.mongodb.core.MongoOperations;
- import org.springframework.data.mongodb.core.query.Criteria;
- import org.springframework.data.mongodb.core.query.Query;
- import org.springframework.stereotype.Repository;
- import java.util.List;
- @Repository
- public class TaskDao {
- @Autowired
- private MongoOperations mongoOperations;
- @Value("${main.site}")
- private String mainSiteUrl;
- public Task save(Task task) {
- mongoOperations.save(task);
- return task;
- }
- public Task findById(String id) {
- Query query = new Query();
- query.addCriteria(Criteria.where("_id").is(id));
- List<Task> tasks = mongoOperations.find(query, Task.class);
- if(tasks.size() == 0) {
- System.out.println("tasks.size() == 0");
- return getAndSaveTaskInfo(id);
- }
- else { return tasks.get(0); }
- }
- private Task getAndSaveTaskInfo(String id){
- System.out.println("调用主站(信创)获取考试信息-1 " + mainSiteUrl + "/api/exam/" + id + "/info");
- String result = HTTP.sendGet(mainSiteUrl + "/api/exam/" + id + "/info", "");
- if (!"".equals(result)) {
- System.out.println("result1 " + result);
- JSONObject json = new JSONObject(result);
- long beginTime = json.getLong("beginTime");
- long endTime = json.getLong("endTime");
- String name=json.getString("name");
- double totalMins = (endTime - beginTime) / 1000 / 60.0;
- Task newTask = new Task(id, name,beginTime, endTime, totalMins, totalMins);
- save(newTask);
- return newTask;
- }else{
- return null;
- }
- }
- }
|