|
@@ -70,19 +70,19 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
String answerImage = getImagePath(request.getAnswer());
|
|
|
|
|
|
if (StringUtils.isBlank(request.getQuestionId())){
|
|
|
- //题目id不存在则是新增, 新增需要把一个num减1
|
|
|
+ //题目id不存在则是新增, 前端传过来的是新增题目的上一题
|
|
|
KmtExerciseBook book = kmtExerciseBookService.getById(request.getExerciseBookId());
|
|
|
- KmtExerciseQuestion nextQuestion = kmtExerciseMapper.findNextByBookIdAndNum(book.getBookId(), request.getNum());
|
|
|
+ KmtExerciseQuestion previousQuestion = kmtExerciseMapper.findPreviousByBookIdAndNum(book.getBookId(), request.getNum());
|
|
|
//新增小题
|
|
|
if (request.getQuestionClassType() == 2){
|
|
|
- KmtExerciseQuestion newQuestion = saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ KmtExerciseQuestion newQuestion = saveQuestion(book, request, previousQuestion, questionImage, answerImage);
|
|
|
saveJSONFile(newQuestion, request, questionImage);
|
|
|
ThreadPool.getInstance().addTask(new SyncSaveExerciseBookTask(kmtExerciseMapper, exerciseQuestionSearchService, book.getBookId()));
|
|
|
} else {
|
|
|
//新增大题, 如果已存在当前大题号,则报错
|
|
|
- String bqi = kmtExerciseMapper.findBigQuestionIndexByBookCourseId(nextQuestion.getBookCourseId(), request.getBigQuestionIndex());
|
|
|
+ String bqi = kmtExerciseMapper.findBigQuestionIndexByBookCourseId(previousQuestion.getBookCourseId(), request.getBigQuestionIndex());
|
|
|
if (StringUtil.isBlank(bqi)){
|
|
|
- KmtExerciseQuestion newQuestion = saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ KmtExerciseQuestion newQuestion = saveQuestion(book, request, previousQuestion, questionImage, answerImage);
|
|
|
saveJSONFile(newQuestion, request, questionImage);
|
|
|
ThreadPool.getInstance().addTask(new SyncSaveExerciseBookTask(kmtExerciseMapper, exerciseQuestionSearchService, book.getBookId()));
|
|
|
} else {
|
|
@@ -183,21 +183,23 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private KmtExerciseQuestion saveQuestion(KmtExerciseBook book,AddExerciseQuestionRequest request, KmtExerciseQuestion nextQuestion, String questionImage, String answerImage){
|
|
|
- kmtExerciseMapper.updateQuestionNumByBookIdAndNum(book.getBookId(), request.getNum());
|
|
|
+ private KmtExerciseQuestion saveQuestion(KmtExerciseBook book,AddExerciseQuestionRequest request, KmtExerciseQuestion previousQuestion, String questionImage, String answerImage){
|
|
|
+ kmtExerciseMapper.updateQuestionNumByBookIdAndNum(book.getBookId(), request.getNum() + 1);
|
|
|
KmtExerciseQuestion kmtExerciseQuestion = new KmtExerciseQuestion();
|
|
|
String newQuestionId = IdWorker.generateId();
|
|
|
kmtExerciseQuestion.setId(newQuestionId);
|
|
|
- kmtExerciseQuestion.setBookId(nextQuestion.getBookId());
|
|
|
- kmtExerciseQuestion.setUnitId(nextQuestion.getUnitId());
|
|
|
- kmtExerciseQuestion.setBookCourseId(nextQuestion.getBookCourseId());
|
|
|
+ kmtExerciseQuestion.setBookId(previousQuestion.getBookId());
|
|
|
+ kmtExerciseQuestion.setUnitId(previousQuestion.getUnitId());
|
|
|
+ kmtExerciseQuestion.setBookCourseId(previousQuestion.getBookCourseId());
|
|
|
if (request.getQuestionClassType() == 2){
|
|
|
- kmtExerciseQuestion.setBigQuestionIndex(nextQuestion.getBigQuestionIndex());
|
|
|
- if (StringUtil.isBlank(nextQuestion.getParentId())){
|
|
|
- kmtExerciseQuestion.setParentId(null);
|
|
|
- kmtExerciseQuestion.setQuestionClassType(1);
|
|
|
+ kmtExerciseQuestion.setBigQuestionIndex(previousQuestion.getBigQuestionIndex());
|
|
|
+ if (StringUtil.isBlank(previousQuestion.getParentId()) && previousQuestion.getQuestionClassType() == 0){
|
|
|
+ //如果上一题是单题,修改为大标题
|
|
|
+ kmtExerciseMapper.updateKmtExerciseQuestionClassTypeAndParentId(null, 1, previousQuestion.getId());
|
|
|
+ kmtExerciseQuestion.setParentId(previousQuestion.getId());
|
|
|
+ kmtExerciseQuestion.setQuestionClassType(2);
|
|
|
} else {
|
|
|
- kmtExerciseQuestion.setParentId(nextQuestion.getParentId());
|
|
|
+ kmtExerciseQuestion.setParentId(previousQuestion.getParentId());
|
|
|
kmtExerciseQuestion.setQuestionClassType(2);
|
|
|
}
|
|
|
} else {
|
|
@@ -205,23 +207,20 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
kmtExerciseQuestion.setParentId(null);
|
|
|
kmtExerciseQuestion.setQuestionClassType(0);
|
|
|
}
|
|
|
- kmtExerciseQuestion.setPageIndex(nextQuestion.getPageIndex());
|
|
|
+ kmtExerciseQuestion.setPageIndex(previousQuestion.getPageIndex());
|
|
|
kmtExerciseQuestion.setImage(questionImage);
|
|
|
kmtExerciseQuestion.setCreateTime(new Date());
|
|
|
kmtExerciseQuestion.setDealStatus(3);
|
|
|
kmtExerciseQuestion.setAnswerImage(answerImage);
|
|
|
- kmtExerciseQuestion.setNum(nextQuestion.getNum());
|
|
|
+ kmtExerciseQuestion.setNum(previousQuestion.getNum() + 1);
|
|
|
kmtExerciseQuestion.setSmallQuestionName(request.getSmallQuestionIndex());
|
|
|
- kmtExerciseQuestion.setCourseName(nextQuestion.getCourseName());
|
|
|
- kmtExerciseQuestion.setIsCommonFlag(nextQuestion.getIsCommonFlag());
|
|
|
- kmtExerciseQuestion.setExerciseBookId(nextQuestion.getExerciseBookId());
|
|
|
+ kmtExerciseQuestion.setCourseName(previousQuestion.getCourseName());
|
|
|
+ kmtExerciseQuestion.setIsCommonFlag(previousQuestion.getIsCommonFlag());
|
|
|
+ kmtExerciseQuestion.setExerciseBookId(previousQuestion.getExerciseBookId());
|
|
|
kmtExerciseQuestion.setHandlerSubmitTime(DateUtil.parse_yyyyMMddHHmmss("1970-01-01 00:00:01"));
|
|
|
- kmtExerciseQuestion.setQuestionPath(nextQuestion.getQuestionPath().substring(0, nextQuestion.getQuestionPath().lastIndexOf("/")) + "/" + newQuestionId + ".json");
|
|
|
+ kmtExerciseQuestion.setQuestionPath(previousQuestion.getQuestionPath().substring(0, previousQuestion.getQuestionPath().lastIndexOf("/")) + "/" + newQuestionId + ".json");
|
|
|
// logger.error(JSON.toJSONString(kmtExerciseQuestion));
|
|
|
kmtExerciseQuestion = kmtExerciseQuestionService.save(kmtExerciseQuestion);
|
|
|
- if (request.getQuestionClassType() == 2 && StringUtil.isBlank(nextQuestion.getParentId())) {
|
|
|
- kmtExerciseMapper.updateParentIdAndClassType(kmtExerciseQuestion.getId(), 2, book.getBookId(), request.getNum());
|
|
|
- }
|
|
|
return kmtExerciseQuestion;
|
|
|
}
|
|
|
|