You've already forked FrameTour-BE
feat(questionnaire): 添加问卷操作后的缓存清理功能
- 在更新问卷后清理问卷相关缓存 - 在删除问卷后清理问卷相关缓存 - 在发布问卷后清理问卷相关缓存 - 在停止问卷后清理问卷相关缓存 - 在提交问卷答案后清理统计缓存 - 新增clearQuestionnaireCache方法统一处理缓存清理逻辑 - 提交答案时根据问卷ID清理对应的统计数据缓存
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user