package com.mindskip.xzs.service.impl; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.ExamPaperAnswer; import com.mindskip.xzs.domain.TaskExamCustomerAnswer; import com.mindskip.xzs.domain.TextContent; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; import com.mindskip.xzs.repository.TaskExamCustomerAnswerMapper; import com.mindskip.xzs.service.TaskExamCustomerAnswerService; import com.mindskip.xzs.service.TextContentService; import com.mindskip.xzs.utility.JsonUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.Date; import java.util.List; @Service public class TaskExamCustomerAnswerImpl extends BaseServiceImpl implements TaskExamCustomerAnswerService { private final TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper; private final TextContentService textContentService; @Autowired public TaskExamCustomerAnswerImpl(TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper, TextContentService textContentService) { super(taskExamCustomerAnswerMapper); this.taskExamCustomerAnswerMapper = taskExamCustomerAnswerMapper; this.textContentService = textContentService; } @Override public void insertOrUpdate(ExamPaper examPaper, ExamPaperAnswer examPaperAnswer, Date now) { Integer taskId = examPaper.getTaskExamId(); Integer userId = examPaperAnswer.getCreateUser(); TaskExamCustomerAnswer taskExamCustomerAnswer = taskExamCustomerAnswerMapper.getByTUid(taskId, userId); if (null == taskExamCustomerAnswer) { taskExamCustomerAnswer = new TaskExamCustomerAnswer(); taskExamCustomerAnswer.setCreateTime(now); taskExamCustomerAnswer.setCreateUser(userId); taskExamCustomerAnswer.setTaskExamId(taskId); List taskItemAnswerObjects = Arrays.asList(new TaskItemAnswerObject(examPaperAnswer.getExamPaperId(), examPaperAnswer.getId(), examPaperAnswer.getStatus())); TextContent textContent = textContentService.jsonConvertInsert(taskItemAnswerObjects, now, null); textContentService.insertByFilter(textContent); taskExamCustomerAnswer.setTextContentId(textContent.getId()); insertByFilter(taskExamCustomerAnswer); } else { TextContent textContent = textContentService.selectById(taskExamCustomerAnswer.getTextContentId()); List taskItemAnswerObjects = JsonUtil.toJsonListObject(textContent.getContent(), TaskItemAnswerObject.class); taskItemAnswerObjects.add(new TaskItemAnswerObject(examPaperAnswer.getExamPaperId(), examPaperAnswer.getId(), examPaperAnswer.getStatus())); textContentService.jsonConvertUpdate(textContent, taskItemAnswerObjects, null); textContentService.updateByIdFilter(textContent); } } @Override public TaskExamCustomerAnswer selectByTUid(Integer tid, Integer uid) { return taskExamCustomerAnswerMapper.getByTUid(tid, uid); } @Override public List selectByTUid(List taskIds, Integer uid) { return taskExamCustomerAnswerMapper.selectByTUid(taskIds, uid); } }