package com.project.enforce.service.impl; import com.project.common.exception.base.BaseException; import com.project.common.utils.StringUtils; import com.project.enforce.domain.EnforceEvaluateAnswer; import com.project.enforce.domain.EnforceEvaluateQuestion; import com.project.enforce.domain.bo.editBo.EnforceEvaluateBo; import com.project.enforce.domain.vo.EnforceEvaluateVo; import com.project.enforce.service.IEnforceEvaluateAnswerService; import com.project.enforce.service.IEnforceEvaluateQuestionService; import com.project.enforce.service.IEnforceEvaluateService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * 功能描述: * * @author ZQN * @version 1.0 */ @Service @RequiredArgsConstructor(onConstructor_ = @Autowired) public class EnforceEvaluateServiceImpl implements IEnforceEvaluateService { private final IEnforceEvaluateQuestionService questionService; private final IEnforceEvaluateAnswerService answerService; @Override//保存 @Transactional public Boolean save(EnforceEvaluateBo bo) { List questionList = bo.getQuestionList(); if (StringUtils.isEmpty(questionList)){ throw new BaseException("评价项不可为空!"); } for (EnforceEvaluateQuestion question : bo.getQuestionList()) { if (question.getQuestionType()==1 && StringUtils.isEmpty(question.getAnswerList())){ throw new BaseException("选择类型答案不可为空!"); } if (question.getQuestionId()==null){ int count = questionService.count(questionService.lq() .eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId())); if (count>0) { throw new BaseException(StringUtils.format("{},重复,请重试!", question.getQuestionName())); } } else { int count = questionService.count(questionService.lq(). eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId()) .ne(EnforceEvaluateQuestion::getQuestionId,question.getQuestionId())); if (count>0) { throw new BaseException(StringUtils.format("{},题目重复,请重试!", question.getQuestionName())); } } questionService.saveOrUpdate(question); if (StringUtils.isNotEmpty(question.getAnswerList())){ EnforceEvaluateQuestion one = questionService.getOne(questionService.lq().eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionName())); question.getAnswerList().forEach(enforceEvaluateAnswer -> { enforceEvaluateAnswer.setQuestionId(one.getQuestionId()); enforceEvaluateAnswer.setQuestionName(one.getQuestionName()); }); answerService.saveOrUpdateBatch(question.getAnswerList()); } } return true; } @Override//评价设置详情 public EnforceEvaluateVo getInfo() { EnforceEvaluateVo vo = new EnforceEvaluateVo(); List questionList = questionService.list(); for (EnforceEvaluateQuestion question : questionList) { if (question.getQuestionType()==1){ List answerList = answerService.list(answerService.lq().eq(EnforceEvaluateAnswer::getQuestionId, question.getQuestionId())); question.setAnswerList(answerList); } } vo.setQuestionList(questionList); return vo; } }