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<EnforceEvaluateQuestion> 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<EnforceEvaluateQuestion> questionList = questionService.list();
|
for (EnforceEvaluateQuestion question : questionList) {
|
if (question.getQuestionType()==1){
|
List<EnforceEvaluateAnswer> answerList = answerService.list(answerService.lq().eq(EnforceEvaluateAnswer::getQuestionId, question.getQuestionId()));
|
question.setAnswerList(answerList);
|
}
|
}
|
vo.setQuestionList(questionList);
|
return vo;
|
}
|
}
|