From 533fb306ca3b8d096d2f77daf923d398e92b8168 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 13 Feb 2026 12:06:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(questionnaire):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=97=AE=E5=8D=B7=E6=93=8D=E4=BD=9C=E5=90=8E=E7=9A=84=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=B8=85=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在更新问卷后清理问卷相关缓存 - 在删除问卷后清理问卷相关缓存 - 在发布问卷后清理问卷相关缓存 - 在停止问卷后清理问卷相关缓存 - 在提交问卷答案后清理统计缓存 - 新增clearQuestionnaireCache方法统一处理缓存清理逻辑 - 提交答案时根据问卷ID清理对应的统计数据缓存 --- .../QuestionnaireIntegrationService.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ycwl/basic/integration/questionnaire/service/QuestionnaireIntegrationService.java b/src/main/java/com/ycwl/basic/integration/questionnaire/service/QuestionnaireIntegrationService.java index 43aa0c27..afcaf7b7 100644 --- a/src/main/java/com/ycwl/basic/integration/questionnaire/service/QuestionnaireIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/questionnaire/service/QuestionnaireIntegrationService.java @@ -94,31 +94,55 @@ public class QuestionnaireIntegrationService { public QuestionnaireResponse updateQuestionnaire(Long id, CreateQuestionnaireRequest request, String userId) { log.info("更新问卷, id: {}, userId: {}", id, userId); CommonResponse response = questionnaireClient.updateQuestionnaire(id, request, userId); - return handleResponse(response, "更新问卷失败"); + QuestionnaireResponse result = handleResponse(response, "更新问卷失败"); + // 清理问卷相关缓存 + clearQuestionnaireCache(id); + return result; } public void deleteQuestionnaire(Long id, String userId) { log.info("删除问卷, id: {}, userId: {}", id, userId); CommonResponse response = questionnaireClient.deleteQuestionnaire(id, userId); handleResponse(response, "删除问卷失败"); + // 清理问卷相关缓存 + clearQuestionnaireCache(id); } public QuestionnaireResponse publishQuestionnaire(Long id, String userId) { log.info("发布问卷, id: {}, userId: {}", id, userId); CommonResponse response = questionnaireClient.publishQuestionnaire(id, userId); - return handleResponse(response, "发布问卷失败"); + QuestionnaireResponse result = handleResponse(response, "发布问卷失败"); + // 清理问卷相关缓存(发布会改变状态) + clearQuestionnaireCache(id); + return result; } public QuestionnaireResponse stopQuestionnaire(Long id, String userId) { log.info("停止问卷, id: {}, userId: {}", id, userId); CommonResponse response = questionnaireClient.stopQuestionnaire(id, userId); - return handleResponse(response, "停止问卷失败"); + QuestionnaireResponse result = handleResponse(response, "停止问卷失败"); + // 清理问卷相关缓存 + clearQuestionnaireCache(id); + return result; } public ResponseDetailResponse submitAnswer(SubmitAnswerRequest request) { log.info("提交问卷答案, questionnaireId: {}, userId: {}", request.getQuestionnaireId(), request.getUserId()); CommonResponse response = questionnaireClient.submitAnswer(request); - return handleResponse(response, "提交问卷答案失败"); + ResponseDetailResponse result = handleResponse(response, "提交问卷答案失败"); + // 清理统计缓存(提交答案会影响统计) + if (request.getQuestionnaireId() != null) { + fallbackService.clearFallbackCache(SERVICE_NAME, "questionnaire:statistics:" + request.getQuestionnaireId()); + } + return result; + } + + /** + * 清理问卷相关缓存 + */ + private void clearQuestionnaireCache(Long questionnaireId) { + fallbackService.clearFallbackCache(SERVICE_NAME, "questionnaire:" + questionnaireId); + fallbackService.clearFallbackCache(SERVICE_NAME, "questionnaire:statistics:" + questionnaireId); }