|
|
@@ -1,5 +1,7 @@
|
|
|
package cn.tr.module.smart.common.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.module.smart.common.dto.BizQuestionDTO;
|
|
|
@@ -11,12 +13,13 @@ import cn.tr.module.smart.web.dto.BizQuestionInsertOrUpdateDTO;
|
|
|
import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* 问卷调查问题字段Service接口实现类
|
|
|
*
|
|
|
@@ -38,11 +41,26 @@ public class BizQuestionServiceImpl extends ServiceImpl<BizQuestionRepository, B
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean insertBizQuestion(BizQuestionInsertOrUpdateDTO source){
|
|
|
+ //判断
|
|
|
+ validate(source.getQuestionList());
|
|
|
//对问卷组进行先删后插
|
|
|
baseRepository.delete(new LambdaQueryWrapper<BizQuestionPO>().in(BizQuestionPO::getGroupId, source.getGroupId()));
|
|
|
return this.saveBatch(BizQuestionMapper.INSTANCE.convertPOList(source.getQuestionList()));
|
|
|
}
|
|
|
|
|
|
+ private void validate(List<BizQuestionDTO> questionList) {
|
|
|
+ if(CollectionUtil.size(questionList)>20){
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"试卷问题数量最大为20");
|
|
|
+ }
|
|
|
+ Set<String> filedNameSet = questionList.stream()
|
|
|
+ .map(BizQuestionDTO::getFieldName)
|
|
|
+ .map(StrUtil::trim)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ if(CollectionUtil.size(filedNameSet)!=CollectionUtil.size(questionList)){
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"问题不能重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param groupId
|
|
|
* @description: 根据问卷组ID查询问卷详细信息
|