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<TaskExamCustomerAnswerMapper, TaskExamCustomerAnswer> 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<TaskItemAnswerObject> 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<TaskItemAnswerObject> 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<TaskExamCustomerAnswer> selectByTUid(List<Integer> taskIds, Integer uid) {
|
return taskExamCustomerAnswerMapper.selectByTUid(taskIds, uid);
|
}
|
}
|