package com.ycl.jxkg.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.jxkg.domain.ExamPaper; import com.ycl.jxkg.domain.ExamPaperAnswer; import com.ycl.jxkg.domain.TaskExamCustomerAnswer; import com.ycl.jxkg.domain.TextContent; import com.ycl.jxkg.domain.task.TaskItemAnswerObject; import com.ycl.jxkg.mapper.TaskExamCustomerAnswerMapper; import com.ycl.jxkg.service.TaskExamCustomerAnswerService; import com.ycl.jxkg.service.TextContentService; import com.ycl.jxkg.utils.JsonUtil; import lombok.RequiredArgsConstructor; 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 @RequiredArgsConstructor public class TaskExamCustomerAnswerImpl extends ServiceImpl implements TaskExamCustomerAnswerService { private final TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper; private final 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); TaskItemAnswerObject taskItemAnswerObject = new TaskItemAnswerObject(); taskItemAnswerObject.setExamPaperId(examPaperAnswer.getExamPaperId()); taskItemAnswerObject.setExamPaperAnswerId(examPaperAnswer.getId()); taskItemAnswerObject.setStatus(examPaperAnswer.getStatus()); List taskItemAnswerObjects = Arrays.asList(taskItemAnswerObject); TextContent textContent = textContentService.jsonConvertInsert(taskItemAnswerObjects, now, null); textContentService.save(textContent); taskExamCustomerAnswer.setTextContentId(textContent.getId()); baseMapper.insert(taskExamCustomerAnswer); } else { TextContent textContent = textContentService.getById(taskExamCustomerAnswer.getTextContentId()); List taskItemAnswerObjects = JsonUtil.toJsonListObject(textContent.getContent(), TaskItemAnswerObject.class); TaskItemAnswerObject taskItemAnswerObject = new TaskItemAnswerObject(); taskItemAnswerObject.setExamPaperId(examPaperAnswer.getExamPaperId()); taskItemAnswerObject.setExamPaperAnswerId(examPaperAnswer.getId()); taskItemAnswerObject.setStatus(examPaperAnswer.getStatus()); taskItemAnswerObjects.add(taskItemAnswerObject); textContentService.jsonConvertUpdate(textContent, taskItemAnswerObjects, null); textContentService.updateById(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); } }