package com.ots.project.exam.service.impl; import com.ots.project.exam.domain.*; import com.ots.project.exam.dto.TaskItemAnswerObject; import com.ots.project.exam.mapper.TaskExamCustomerAnswerMapper; import com.ots.project.exam.service.ITTextContentService; import com.ots.project.exam.service.TaskExamCustomerAnswerService; import com.ots.project.tool.exam.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 { @Autowired private TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper; @Autowired private ITTextContentService textContentService; @Autowired public TaskExamCustomerAnswerImpl(TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper, ITTextContentService 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())); TTextContent textContent = textContentService.jsonConvertInsert(taskItemAnswerObjects, now, null); textContentService.insertTTextContent(textContent); taskExamCustomerAnswer.setTextContentId(textContent.getId().intValue()); insertByFilter(taskExamCustomerAnswer); } else { TTextContent textContent = textContentService.selectTTextContentById(taskExamCustomerAnswer.getTextContentId().longValue()); List taskItemAnswerObjects = JsonUtil.toJsonListObject(textContent.getContent(), TaskItemAnswerObject.class); taskItemAnswerObjects.add(new TaskItemAnswerObject(examPaperAnswer.getExamPaperId(), examPaperAnswer.getId(), examPaperAnswer.getStatus())); textContentService.jsonConvertUpdate(textContent, taskItemAnswerObjects, null); textContentService.updateTTextContent(textContent); } } @Override public void insertOrUpdate(TExamPaper examPaper, ExamPaperAnswer examPaperAnswer, Date now) { Integer taskId = examPaper.getTaskExamId().intValue(); 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())); TTextContent textContent = textContentService.jsonConvertInsert(taskItemAnswerObjects, now, null); textContentService.insertTTextContent(textContent); taskExamCustomerAnswer.setTextContentId(textContent.getId().intValue()); insertByFilter(taskExamCustomerAnswer); } else { TTextContent textContent = textContentService.selectTTextContentById(taskExamCustomerAnswer.getTextContentId().longValue()); List taskItemAnswerObjects = JsonUtil.toJsonListObject(textContent.getContent(), TaskItemAnswerObject.class); taskItemAnswerObjects.add(new TaskItemAnswerObject(examPaperAnswer.getExamPaperId(), examPaperAnswer.getId(), examPaperAnswer.getStatus())); textContentService.jsonConvertUpdate(textContent, taskItemAnswerObjects, null); textContentService.updateTTextContent(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); } }