Ver código fonte

标签删除

zhoutg 6 anos atrás
pai
commit
c2ed04f20a

+ 2 - 2
icssman-service/src/main/java/com/diagbot/entity/ModuleDetail.java

@@ -63,12 +63,12 @@ public class ModuleDetail implements Serializable {
     /**
      * 前置内容
      */
-    private String labelPrefix;
+    private String prefix;
 
     /**
      * 后置内容
      */
-    private String labelSuffix;
+    private String suffix;
 
     /**
      * questionId

+ 42 - 18
icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java

@@ -9,6 +9,8 @@ import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.DeptInfo;
+import com.diagbot.entity.ModuleDetail;
+import com.diagbot.entity.ModuleInfo;
 import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.QuestionMapping;
@@ -72,6 +74,8 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
     DeptInfoFacade deptInfoFacade;
     @Autowired
     UserServiceClient userServiceClient;
+    @Autowired
+    ModuleInfoFacade moduleInfoFacade;
 
 
     /**
@@ -319,28 +323,48 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
      * @return
      */
     public Boolean deleteByIdsFac(String ids) {
-
         if (StringUtil.isEmpty(ids)) {
             return true;
         }
+        List<String> idList = Arrays.asList(ids.split(","));
+        for (String id : idList) {
+            // 查询映射关系中是否存在父级
+            List<QuestionMapping> questionMappings = questionMappingFacade.list(new QueryWrapper<QuestionMapping>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("son_question", id));
+            if (ListUtil.isNotEmpty(questionMappings)) {
+                List<Long> questionIds = questionMappings.stream().map(row -> row.getParentQuestion()).collect(Collectors.toList());
+                List<String> tagName = this.list(new QueryWrapper<QuestionInfo>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("id", questionIds))
+                        .stream().map(row -> "【" + row.getTagName() + "】").collect(Collectors.toList());
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除标签的关联:" + String.join("、", tagName));
+            }
+            // 查询模板中是否存在
+            List<ModuleDetail> moduleDetails = moduleDetailFacade.list(new QueryWrapper<ModuleDetail>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("question_id", id));
+            if (ListUtil.isNotEmpty(moduleDetails)) {
+                List<Long> moduleIds = moduleDetails.stream().map(row -> row.getModuleId()).collect(Collectors.toList());
+                List<String> moduleName = moduleInfoFacade.list(new QueryWrapper<ModuleInfo>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("id", moduleIds))
+                        .stream().map(row -> "{" + row.getName() + "}").collect(Collectors.toList());
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除模板的关联:" + String.join("、", moduleName));
+            }
 
-        Map paramMap = new HashMap<>();
-        paramMap.put("delete", IsDeleteEnum.Y.getKey());
-        paramMap.put("ids", Arrays.asList(ids.split(",")));
-        paramMap.put("gmtModified", DateUtil.now());
-        paramMap.put("modifier", UserUtils.getCurrentPrincipleID());
-
-        //删除自身
-        this.deleteByIds(paramMap);
-
-        //删除明细
-        questionDetailFacade.deleteByQuestionIdFac(paramMap);
-
-        //删除映射关系
-        questionMappingFacade.deleteByIdsFac(paramMap);
-
-        //删除模板中的标签
-        moduleDetailFacade.deleteByQuestionIdFac(paramMap);
+            Map paramMap = new HashMap<>();
+            paramMap.put("delete", IsDeleteEnum.Y.getKey());
+            paramMap.put("ids", Arrays.asList(ids.split(",")));
+            paramMap.put("gmtModified", DateUtil.now());
+            paramMap.put("modifier", UserUtils.getCurrentPrincipleID());
+            //删除自身
+            this.deleteByIds(paramMap);
+            //删除明细
+            questionDetailFacade.deleteByQuestionIdFac(paramMap);
+            //删除映射关系
+            questionMappingFacade.deleteByIdsFac(paramMap);
+        }
         return true;
     }
 

+ 2 - 2
icssman-service/src/main/resources/mapper/ModuleDetailMapper.xml

@@ -11,8 +11,8 @@
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
         <result column="module_id" property="moduleId" />
-        <result column="label_prefix" property="labelPrefix" />
-        <result column="label_suffix" property="labelSuffix" />
+        <result column="prefix" property="prefix" />
+        <result column="suffix" property="suffix" />
         <result column="question_id" property="questionId" />
         <result column="order_no" property="orderNo" />
         <result column="remark" property="remark" />