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); }