|
@@ -0,0 +1,98 @@
|
|
|
+package cn.com.qmth.dp.examcloud.oe.modules.update_fillblank_question_type;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import org.bson.types.ObjectId;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
+import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
+import org.springframework.data.mongodb.core.query.Query;
|
|
|
+import org.springframework.data.mongodb.core.query.Update;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import com.mongodb.client.result.UpdateResult;
|
|
|
+
|
|
|
+import cn.com.qmth.dp.examcloud.oe.entity.question.Paper;
|
|
|
+import cn.com.qmth.dp.examcloud.oe.entity.question.PaperDetailUnit;
|
|
|
+import cn.com.qmth.dp.examcloud.oe.entity.question.Question;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 修改填空题题型
|
|
|
+ *
|
|
|
+ * @author chenken
|
|
|
+ *
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class UpdateFillblankQuestionTypeService {
|
|
|
+ // orgid=137
|
|
|
+ @Autowired
|
|
|
+ MongoTemplate mongoTemplate;
|
|
|
+
|
|
|
+ public void start() {
|
|
|
+ Date start = new Date();
|
|
|
+ //查找试卷
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("orgId").is("137").and("paperType").is("IMPORT").and("name").regex("211\\(复制课程\\)"));
|
|
|
+ List<Paper> ps = mongoTemplate.find(query, Paper.class, "paper");
|
|
|
+ if (ps != null && ps.size() > 0) {
|
|
|
+ System.out.println("total:" + ps.size());
|
|
|
+ int index = 0;
|
|
|
+ long questionCount=0;
|
|
|
+ for (Paper paper : ps) {
|
|
|
+ index++;
|
|
|
+ System.out.println("paper_index:" + index);
|
|
|
+ //查找该试卷下的填空题paperDetailUnit
|
|
|
+ Query query2 = new Query();
|
|
|
+ query2.addCriteria(Criteria.where("paper.$id").is(new ObjectId(paper.getId())).and("questionType").is("FILL_BLANK_QUESTION"));
|
|
|
+ List<PaperDetailUnit> ds = mongoTemplate.find(query2, PaperDetailUnit.class, "paperDetailUnit");
|
|
|
+ if (ds != null && ds.size() > 0) {
|
|
|
+ for (PaperDetailUnit detail : ds) {
|
|
|
+ //修改paperDetailUnit的questiontype
|
|
|
+ updatePaperDetailUnit(detail.getId());
|
|
|
+ //查找该试卷下的填空题paperDetailUnit对应的question
|
|
|
+ Query query3 = new Query();
|
|
|
+ query3.addCriteria(Criteria.where("_id").is(new ObjectId(detail.getQuestion().getId())));
|
|
|
+ List<Question> qs = mongoTemplate.find(query3, Question.class, "question");
|
|
|
+ if (qs != null && qs.size() > 0) {
|
|
|
+ for (Question qe : qs) {
|
|
|
+ //修改paperDetailUnit对应的question 的questiontype
|
|
|
+ long ret2=updateQuestion(qe.getId(),qe.getQuesBody());
|
|
|
+ questionCount=questionCount+ret2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println("dispose questionCount:" +questionCount);
|
|
|
+ } else {
|
|
|
+ System.out.println("total:" + 0);
|
|
|
+ }
|
|
|
+ Date end = new Date();
|
|
|
+ System.out.println("*****************end:" + ((end.getTime() - start.getTime()) / (1000 * 60)) + "分钟");
|
|
|
+ }
|
|
|
+
|
|
|
+ public long updatePaperDetailUnit(String paperDetailUnitId) {
|
|
|
+ // 查询相应的题目
|
|
|
+ Query query = Query.query(Criteria.where("_id").is(new ObjectId(paperDetailUnitId)));
|
|
|
+ Update update = new Update();
|
|
|
+ update.set("questionType", "TEXT_ANSWER_QUESTION");
|
|
|
+ UpdateResult upResult = mongoTemplate.updateFirst(query, update, "paperDetailUnit");
|
|
|
+ long res = upResult.getMatchedCount();
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ public long updateQuestion(String questionId,String body) {
|
|
|
+ // 查询相应的题目
|
|
|
+ Query query = Query.query(Criteria.where("_id").is(new ObjectId(questionId)));
|
|
|
+ Update update = new Update();
|
|
|
+ update.set("questionType", "TEXT_ANSWER_QUESTION");
|
|
|
+ update.set("quesBody", body.replaceAll("###", "______"));
|
|
|
+
|
|
|
+ UpdateResult upResult = mongoTemplate.updateFirst(query, update, "question");
|
|
|
+ long res = upResult.getMatchedCount();
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+}
|