|
|
@@ -2,16 +2,20 @@ package cn.seecoder.data.server.schedule;
|
|
|
|
|
|
|
|
|
import cn.seecoder.data.server.domain.GeneralRecordDao;
|
|
|
-import cn.seecoder.data.server.domain.HelperQuizDao;
|
|
|
+import cn.seecoder.data.server.domain.helper.HelperEventDao;
|
|
|
+import cn.seecoder.data.server.domain.helper.HelperQuizDao;
|
|
|
import cn.seecoder.data.server.repository.GeneralRecordRepository;
|
|
|
+import cn.seecoder.data.server.repository.helper.HelperEventRepository;
|
|
|
+import cn.seecoder.data.server.repository.helper.HelperQuizRepository;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@Component
|
|
|
@@ -20,39 +24,91 @@ public class HelperSchedule {
|
|
|
@Autowired
|
|
|
private GeneralRecordRepository generalRecordRepository;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private HelperQuizRepository helperQuizRepository;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private HelperEventRepository helperEventRepository;
|
|
|
+
|
|
|
+ public HelperSchedule(GeneralRecordRepository generalRecordRepository,HelperQuizRepository helperQuizRepository,HelperEventRepository helperEventRepository){
|
|
|
+ this.generalRecordRepository = generalRecordRepository;
|
|
|
+ this.helperQuizRepository = helperQuizRepository;
|
|
|
+ this.helperEventRepository = helperEventRepository;
|
|
|
+ }
|
|
|
+
|
|
|
@Scheduled(cron = "00 00 00 * * ?")
|
|
|
- public void HelperQuizExtraction(){
|
|
|
-// HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
|
|
|
-// httpRequestFactory.setConnectionRequestTimeout(10*1000);
|
|
|
-// httpRequestFactory.setConnectTimeout(10*1000);
|
|
|
-// httpRequestFactory.setReadTimeout(10*1000);
|
|
|
+ public void helperQuizExtraction(){
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
- GeneralRecordDao generalRecordDao = new GeneralRecordDao();
|
|
|
- HelperQuizDao helperQuizDao = new HelperQuizDao();
|
|
|
JSONArray temp;
|
|
|
try{
|
|
|
temp = restTemplate.getForObject(
|
|
|
"http://localhost:8080/api/quiz/quiz-records/all?start={1}&end={2}",
|
|
|
JSONArray.class,
|
|
|
- "2010-01-01 00:00:00",
|
|
|
- "2020-06-01 00:00:00"
|
|
|
+ "2020-06-01 00:00:00",
|
|
|
+ "2021-04-27 00:00:00"
|
|
|
);
|
|
|
for(int i=0;i<temp.size();i++){
|
|
|
JSONObject quiz_record = temp.getJSONObject(i);
|
|
|
for (Map.Entry entry : quiz_record.getJSONObject("answers").entrySet()) {
|
|
|
- String questionId = entry.getKey().toString();
|
|
|
- if(((JSONObject)JSONObject.toJSON(entry.getValue())).getJSONObject("answer").equals("true"))
|
|
|
- System.out.println("true");
|
|
|
- else
|
|
|
- System.out.println("false");
|
|
|
- System.out.println(entry.getKey());
|
|
|
- System.out.println(entry.getValue());
|
|
|
+ GeneralRecordDao generalRecordDao = new GeneralRecordDao();
|
|
|
+ HelperQuizDao helperQuizDao = new HelperQuizDao();
|
|
|
+ generalRecordDao.setUserId(Integer.parseInt(quiz_record.getString("studentId")));
|
|
|
+ generalRecordDao.setQuestionId(entry.getKey().toString());
|
|
|
+ generalRecordDao.setAnswer(((JSONObject)JSONObject.toJSON(entry.getValue())).getString("answer"));
|
|
|
+ generalRecordDao.setDataSource("helper");
|
|
|
+ generalRecordDao.setScoreTotal(5);
|
|
|
+ getTime(generalRecordDao,Integer.parseInt(quiz_record.getString("quizId")),restTemplate,quiz_record.getString("submitAt"));
|
|
|
+ if(((JSONObject)JSONObject.toJSON(entry.getValue())).getBooleanValue("correct")) {
|
|
|
+ generalRecordDao.setPass(1);
|
|
|
+ generalRecordDao.setScore(5);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ generalRecordDao.setPass(0);
|
|
|
+ generalRecordDao.setScore(0);
|
|
|
+ }
|
|
|
+ GeneralRecordDao ans = generalRecordRepository.save(generalRecordDao);
|
|
|
+ helperQuizDao.setQuizId(Integer.parseInt(quiz_record.getString("quizId")));
|
|
|
+ helperQuizDao.setQuizName(quiz_record.getString("quizName"));
|
|
|
+ helperQuizDao.setGeneralId(ans.getId());
|
|
|
+ helperQuizDao.setSubmitNumber(quiz_record.getInteger("submitNumber"));
|
|
|
+ helperQuizRepository.save(helperQuizDao);
|
|
|
+ System.out.println(generalRecordDao);
|
|
|
+ System.out.println(helperQuizDao);
|
|
|
}
|
|
|
- generalRecordDao.setUserId(Integer.parseInt(quiz_record.getString("studentId")));
|
|
|
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
System.out.println(e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Scheduled(cron = "00 00 00 * * ?")
|
|
|
+ public void helperEventExtraction(){
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ JSONArray jsonArray = restTemplate.getForObject(
|
|
|
+ "http://localhost:8080/api/event/time?start={1}&end={2}",
|
|
|
+ JSONArray.class,
|
|
|
+ "2000-01-01 00:00:00",
|
|
|
+ "2021-04-27 00:00:00"
|
|
|
+ );
|
|
|
+ for(int i=0;i<jsonArray.size();i++){
|
|
|
+ HelperEventDao helperEventDao = jsonArray.getObject(i,HelperEventDao.class);
|
|
|
+ helperEventRepository.save(helperEventDao);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void getTime(GeneralRecordDao generalRecordDao, int quizId, RestTemplate restTemplate, String submit){
|
|
|
+ try {
|
|
|
+ JSONObject quiz = restTemplate.getForObject("http://localhost:8080/api/quiz/{1}",JSONObject.class,quizId);
|
|
|
+ String start = quiz.getString("createAt").replace('T',' ').split("\\.")[0];
|
|
|
+ String end = quiz.getString("createAt").replace('T',' ').split("\\.")[0];
|
|
|
+ DateTimeFormatter sdf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ generalRecordDao.setStartTime(LocalDateTime.parse(start,sdf2));
|
|
|
+ generalRecordDao.setEndTime(LocalDateTime.parse(end,sdf2));
|
|
|
+ generalRecordDao.setSubmitTime(LocalDateTime.parse(submit));
|
|
|
+ }catch (Exception e){
|
|
|
+ System.out.println(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|