소스 검색

修改填空题题型为问答题

xiatian 4 년 전
부모
커밋
953c98a4ad

+ 98 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/update_fillblank_question_type/UpdateFillblankQuestionTypeService.java

@@ -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;
+    }
+}