feat(questionnaire): 添加问卷操作后的缓存清理功能

- 在更新问卷后清理问卷相关缓存
- 在删除问卷后清理问卷相关缓存
- 在发布问卷后清理问卷相关缓存
- 在停止问卷后清理问卷相关缓存
- 在提交问卷答案后清理统计缓存
- 新增clearQuestionnaireCache方法统一处理缓存清理逻辑
- 提交答案时根据问卷ID清理对应的统计数据缓存
This commit is contained in:
2026-02-13 12:06:37 +08:00
parent 701d7879a8
commit 533fb306ca

View File

@@ -94,31 +94,55 @@ public class QuestionnaireIntegrationService {
public QuestionnaireResponse updateQuestionnaire(Long id, CreateQuestionnaireRequest request, String userId) {
log.info("更新问卷, id: {}, userId: {}", id, userId);
CommonResponse<QuestionnaireResponse> 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<Void> response = questionnaireClient.deleteQuestionnaire(id, userId);
handleResponse(response, "删除问卷失败");
// 清理问卷相关缓存
clearQuestionnaireCache(id);
}
public QuestionnaireResponse publishQuestionnaire(Long id, String userId) {
log.info("发布问卷, id: {}, userId: {}", id, userId);
CommonResponse<QuestionnaireResponse> 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<QuestionnaireResponse> 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<ResponseDetailResponse> 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);
}