gaodm 6 سال پیش
والد
کامیت
9680ff9689

+ 18 - 1
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -145,10 +145,27 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         }
 
         if (param.getInsertOrUpdate() == InsertOrUpdateEnum.Update.getKey()){
-            cacheFacade.clearCache(questionWrapper.getId());
+            List<Long> ids = new ArrayList<>();
+            ids.add(questionWrapper.getId());
+            clearAllCacheByIds(ids);
         }
     }
 
+    public void clearAllCacheByIds(List<Long> ids){
+        if (ListUtil.isNotEmpty(ids)){
+            for (Long id : ids){
+                cacheFacade.clearCache(id);
+            }
+            //取父级
+            QueryWrapper<QuestionMapping> queryWrapper = new QueryWrapper<>();
+            queryWrapper.in("son_question", ids);
+
+            List<Long> pIds = questionMappingFacade.list(queryWrapper).stream()
+                    .map(r->r.getParentQuestion())
+                    .distinct().collect(Collectors.toList());
+            clearAllCacheByIds(pIds);
+        }
+    }
 
     /**
      * 初始化参数

+ 7 - 0
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -4,6 +4,7 @@ package com.diagbot.web;
 import java.util.List;
 import java.util.Map;
 
+import com.diagbot.facade.CacheFacade;
 import com.diagbot.vo.QuestionIndexSubVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -139,4 +140,10 @@ public class QuestionInfoController {
         Map<Long, Object> data = questionFacade.getByIds(questionIdsVO);
         return RespDTO.onSuc(data);
     }
+
+    @PostMapping("/test")
+    public RespDTO<Boolean> getByIds(@RequestBody List<Long> ids) {
+        questionFacade.clearAllCacheByIds(ids);
+        return RespDTO.onSuc(true);
+    }
 }