18339543638 4 hónapja
szülő
commit
e1ab059f0e

+ 20 - 2
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionServiceImpl.java

@@ -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查询问卷详细信息