package com.ots.project.tool.gen.service; import com.alibaba.fastjson.JSONObject; import com.ots.common.utils.StringUtils; import com.ots.framework.web.service.DictService; import com.ots.project.exam.domain.TExamPaper; import com.ots.project.exam.domain.TQuestion; import com.ots.project.exam.dto.ExamPaperTitleItemObject; import com.ots.project.exam.dto.QuestionObject; import com.ots.project.exam.mapper.TQuestionMapper; import com.ots.project.tool.exam.ExamUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @Service public class IExamUtilServiceImpl implements IExamUtilService { @Autowired private DictService dictService; @Autowired private TQuestionMapper questionMapper; @Override public String getLocalLangType(String langType) { // 取本地的语言 if (StringUtils.equals(langType, "ALL") || StringUtils.isEmpty(langType)) { return dictService.getLangType(LocaleContextHolder.getLocale().toString()); } return langType; } @Override public String getLangOrLocalLangString(String langType, String contentMapJson) { langType = getLocalLangType(langType); return ExamUtil.getLangString(langType, contentMapJson); } // Job 工作分析文具的大题目去取question表 @Override public void setTitleName(TExamPaper tExamPaper, List examPaperTitleItemObjectList) { // 工作分析问卷的大题,大题里面如果有questionId,就取questionId的题目 Map questionIdMap = new HashMap<>(); for (ExamPaperTitleItemObject examPaperTitleItemObject : examPaperTitleItemObjectList) { if (Objects.isNull(examPaperTitleItemObject.getQuestionId())) { continue; } questionIdMap.put(examPaperTitleItemObject.getQuestionId().longValue(), ""); } if (questionIdMap.size() == 0) { return; } // 如果有questionid就是工作分析问卷,要取question表的 List questionList = questionMapper.selectTQuestionByIds(new ArrayList(questionIdMap.keySet())); if (ExamUtil.isListEmpty(questionList)) { return; } questionList.stream().forEach(question -> { QuestionObject questionObject = JSONObject.parseObject(question.getContent(), QuestionObject.class); questionIdMap.put(question.getId(), getLangOrLocalLangString(tExamPaper.getLangType(), questionObject.getTitleContent())); }); // 替换题目的标题 for (ExamPaperTitleItemObject examPaperTitleItemObject : examPaperTitleItemObjectList) { // name就是段的题目 examPaperTitleItemObject.setName(questionIdMap.get(examPaperTitleItemObject.getQuestionId().longValue())); } } }