You've already forked FrameTour-BE
refactor(questionnaire): 重构问卷列表和回答记录列表的响应结构
- 将 QuestionnaireListResponse 和 ResponseListResponse 类移除 - 使用泛型化的 PageResponse 类作为列表响应的基类 - 更新相关接口和方法的返回类型 - 调整示例代码和测试用例
This commit is contained in:
@@ -1,11 +1,10 @@
|
|||||||
package com.ycwl.basic.integration.questionnaire.client;
|
package com.ycwl.basic.integration.questionnaire.client;
|
||||||
|
|
||||||
import com.ycwl.basic.integration.common.response.CommonResponse;
|
import com.ycwl.basic.integration.common.response.CommonResponse;
|
||||||
|
import com.ycwl.basic.integration.common.response.PageResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseListResponse;
|
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.SubmitAnswerRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.SubmitAnswerRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireListResponse;
|
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
@@ -35,7 +34,7 @@ public interface QuestionnaireClient {
|
|||||||
* 获取问卷列表
|
* 获取问卷列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/questionnaires")
|
@GetMapping("/questionnaires")
|
||||||
CommonResponse<QuestionnaireListResponse> getQuestionnaireList(
|
CommonResponse<PageResponse<QuestionnaireResponse>> getQuestionnaireList(
|
||||||
@RequestParam(defaultValue = "1") Integer page,
|
@RequestParam(defaultValue = "1") Integer page,
|
||||||
@RequestParam(defaultValue = "10") Integer pageSize,
|
@RequestParam(defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(required = false) String name,
|
@RequestParam(required = false) String name,
|
||||||
@@ -100,7 +99,7 @@ public interface QuestionnaireClient {
|
|||||||
* 获取回答记录列表
|
* 获取回答记录列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/responses")
|
@GetMapping("/responses")
|
||||||
CommonResponse<ResponseListResponse> getResponseList(
|
CommonResponse<PageResponse<ResponseDetailResponse>> getResponseList(
|
||||||
@RequestParam(defaultValue = "1") Integer page,
|
@RequestParam(defaultValue = "1") Integer page,
|
||||||
@RequestParam(defaultValue = "10") Integer pageSize,
|
@RequestParam(defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(required = false) Long questionnaireId,
|
@RequestParam(required = false) Long questionnaireId,
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
package com.ycwl.basic.integration.questionnaire.dto.answer;
|
|
||||||
|
|
||||||
import com.ycwl.basic.integration.common.response.PageResponse;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class ResponseListResponse extends PageResponse<ResponseDetailResponse> {
|
|
||||||
|
|
||||||
public ResponseListResponse() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
package com.ycwl.basic.integration.questionnaire.dto.questionnaire;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import com.ycwl.basic.integration.common.response.PageResponse;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class QuestionnaireListResponse extends PageResponse<QuestionnaireResponse> {
|
|
||||||
|
|
||||||
public QuestionnaireListResponse() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,5 +1,6 @@
|
|||||||
package com.ycwl.basic.integration.questionnaire.example;
|
package com.ycwl.basic.integration.questionnaire.example;
|
||||||
|
|
||||||
|
import com.ycwl.basic.integration.common.response.PageResponse;
|
||||||
import com.ycwl.basic.integration.common.service.IntegrationFallbackService;
|
import com.ycwl.basic.integration.common.service.IntegrationFallbackService;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.AnswerRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.AnswerRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
||||||
@@ -7,7 +8,6 @@ import com.ycwl.basic.integration.questionnaire.dto.answer.SubmitAnswerRequest;
|
|||||||
import com.ycwl.basic.integration.questionnaire.dto.question.CreateQuestionOptionRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.question.CreateQuestionOptionRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.question.CreateQuestionRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.question.CreateQuestionRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireListResponse;
|
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
||||||
import com.ycwl.basic.integration.questionnaire.service.QuestionnaireIntegrationService;
|
import com.ycwl.basic.integration.questionnaire.service.QuestionnaireIntegrationService;
|
||||||
@@ -126,7 +126,7 @@ public class QuestionnaireIntegrationExample {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取问卷列表(支持 fallback)
|
// 获取问卷列表(支持 fallback)
|
||||||
QuestionnaireListResponse listResponse = questionnaireService.getQuestionnaireList(1, 10, null, null, null);
|
PageResponse<QuestionnaireResponse> listResponse = questionnaireService.getQuestionnaireList(1, 10, null, null, null);
|
||||||
log.info("✅ 问卷列表查询成功,总数: {}, 当前页数据: {}",
|
log.info("✅ 问卷列表查询成功,总数: {}, 当前页数据: {}",
|
||||||
listResponse.getTotal(), listResponse.getList().size());
|
listResponse.getTotal(), listResponse.getList().size());
|
||||||
|
|
||||||
|
@@ -2,13 +2,12 @@ package com.ycwl.basic.integration.questionnaire.service;
|
|||||||
|
|
||||||
import com.ycwl.basic.integration.common.exception.IntegrationException;
|
import com.ycwl.basic.integration.common.exception.IntegrationException;
|
||||||
import com.ycwl.basic.integration.common.response.CommonResponse;
|
import com.ycwl.basic.integration.common.response.CommonResponse;
|
||||||
|
import com.ycwl.basic.integration.common.response.PageResponse;
|
||||||
import com.ycwl.basic.integration.common.service.IntegrationFallbackService;
|
import com.ycwl.basic.integration.common.service.IntegrationFallbackService;
|
||||||
import com.ycwl.basic.integration.questionnaire.client.QuestionnaireClient;
|
import com.ycwl.basic.integration.questionnaire.client.QuestionnaireClient;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseDetailResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.ResponseListResponse;
|
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.answer.SubmitAnswerRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.answer.SubmitAnswerRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.CreateQuestionnaireRequest;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireListResponse;
|
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
import com.ycwl.basic.integration.questionnaire.dto.questionnaire.QuestionnaireResponse;
|
||||||
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
import com.ycwl.basic.integration.questionnaire.dto.statistics.QuestionnaireStatistics;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -40,20 +39,13 @@ public class QuestionnaireIntegrationService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public QuestionnaireListResponse getQuestionnaireList(Integer page, Integer pageSize,
|
public PageResponse<QuestionnaireResponse> getQuestionnaireList(Integer page, Integer pageSize,
|
||||||
String name, Integer status, String createdBy) {
|
String name, Integer status, String createdBy) {
|
||||||
log.info("获取问卷列表, page: {}, pageSize: {}, name: {}, status: {}, createdBy: {}",
|
log.info("获取问卷列表, page: {}, pageSize: {}, name: {}, status: {}, createdBy: {}",
|
||||||
page, pageSize, name, status, createdBy);
|
page, pageSize, name, status, createdBy);
|
||||||
return fallbackService.executeWithFallback(
|
CommonResponse<PageResponse<QuestionnaireResponse>> response =
|
||||||
SERVICE_NAME,
|
|
||||||
"questionnaire:list:" + page + ":" + pageSize + ":" + name + ":" + status + ":" + createdBy,
|
|
||||||
() -> {
|
|
||||||
CommonResponse<QuestionnaireListResponse> response =
|
|
||||||
questionnaireClient.getQuestionnaireList(page, pageSize, name, status, createdBy);
|
questionnaireClient.getQuestionnaireList(page, pageSize, name, status, createdBy);
|
||||||
return handleResponse(response, "获取问卷列表失败");
|
return handleResponse(response, "获取问卷列表失败");
|
||||||
},
|
|
||||||
QuestionnaireListResponse.class
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public QuestionnaireStatistics getStatistics(Long id) {
|
public QuestionnaireStatistics getStatistics(Long id) {
|
||||||
@@ -69,20 +61,13 @@ public class QuestionnaireIntegrationService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResponseListResponse getResponseList(Integer page, Integer pageSize, Long questionnaireId,
|
public PageResponse<ResponseDetailResponse> getResponseList(Integer page, Integer pageSize, Long questionnaireId,
|
||||||
String userId, String startTime, String endTime) {
|
String userId, String startTime, String endTime) {
|
||||||
log.info("获取回答记录列表, page: {}, pageSize: {}, questionnaireId: {}, userId: {}",
|
log.info("获取回答记录列表, page: {}, pageSize: {}, questionnaireId: {}, userId: {}",
|
||||||
page, pageSize, questionnaireId, userId);
|
page, pageSize, questionnaireId, userId);
|
||||||
return fallbackService.executeWithFallback(
|
CommonResponse<PageResponse<ResponseDetailResponse>> response =
|
||||||
SERVICE_NAME,
|
|
||||||
"responses:list:" + page + ":" + pageSize + ":" + questionnaireId + ":" + userId,
|
|
||||||
() -> {
|
|
||||||
CommonResponse<ResponseListResponse> response =
|
|
||||||
questionnaireClient.getResponseList(page, pageSize, questionnaireId, userId, startTime, endTime);
|
questionnaireClient.getResponseList(page, pageSize, questionnaireId, userId, startTime, endTime);
|
||||||
return handleResponse(response, "获取回答记录列表失败");
|
return handleResponse(response, "获取回答记录列表失败");
|
||||||
},
|
|
||||||
ResponseListResponse.class
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResponseDetailResponse getResponseDetail(Long id) {
|
public ResponseDetailResponse getResponseDetail(Long id) {
|
||||||
|
Reference in New Issue
Block a user