From 4d19713a1a4d4e1f078a9574761c7a3d2df74afd Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 07 五月 2024 17:49:00 +0800
Subject: [PATCH] 优化定时任务自动重启问题
---
service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java b/service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java
index e167afd..fa37b7f 100644
--- a/service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java
@@ -27,13 +27,14 @@
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import com.java110.dto.questionAnswer.QuestionAnswerDto;
+
import java.util.List;
import java.util.ArrayList;
+
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
* 绫昏〃杩帮細鏌ヨ
@@ -48,7 +49,8 @@
@Java110Cmd(serviceCode = "question.listQuestionAnswer")
public class ListQuestionAnswerCmd extends Cmd {
- private static Logger logger = LoggerFactory.getLogger(ListQuestionAnswerCmd.class);
+ private static Logger logger = LoggerFactory.getLogger(ListQuestionAnswerCmd.class);
+
@Autowired
private IQuestionAnswerV1InnerServiceSMO questionAnswerV1InnerServiceSMOImpl;
@@ -61,22 +63,54 @@
@Override
public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
- QuestionAnswerDto questionAnswerDto = BeanConvertUtil.covertBean(reqJson, QuestionAnswerDto.class);
+ QuestionAnswerDto questionAnswerDto = BeanConvertUtil.covertBean(reqJson, QuestionAnswerDto.class);
- int count = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswersCount(questionAnswerDto);
+ int count = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswersCount(questionAnswerDto);
- List<QuestionAnswerDto> questionAnswerDtos = null;
+ List<QuestionAnswerDto> questionAnswerDtos = null;
- if (count > 0) {
- questionAnswerDtos = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswers(questionAnswerDto);
- } else {
- questionAnswerDtos = new ArrayList<>();
- }
+ if (count > 0) {
+ questionAnswerDtos = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswers(questionAnswerDto);
+ } else {
+ questionAnswerDtos = new ArrayList<>();
+ }
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, questionAnswerDtos);
+ //todo 鏌ヨ宸叉姇绁ㄦ暟鎹拰 寰楀垎
+ computeVotedCountAndScore(questionAnswerDtos);
- ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, questionAnswerDtos);
- cmdDataFlowContext.setResponseEntity(responseEntity);
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ cmdDataFlowContext.setResponseEntity(responseEntity);
+ }
+
+ /**
+ * 璁$畻 鎶曠エ鍜屽緱鍒�
+ *
+ * @param questionAnswerDtos
+ */
+ private void computeVotedCountAndScore(List<QuestionAnswerDto> questionAnswerDtos) {
+ if (questionAnswerDtos == null || questionAnswerDtos.size() < 1) {
+ return;
+ }
+ List<String> qaIds = new ArrayList<>();
+ for (QuestionAnswerDto questionAnswerDto : questionAnswerDtos) {
+ qaIds.add(questionAnswerDto.getQaId());
+ }
+ // todo 鏌ヨ鎶曠エ浜烘暟鍜屽緱鍒�
+ List<QuestionAnswerDto> votedQAs = questionAnswerV1InnerServiceSMOImpl.queryVotedCountAndScore(qaIds.toArray(new String[qaIds.size()]));
+ if (votedQAs == null || votedQAs.size() < 1) {
+ return;
+ }
+ for (QuestionAnswerDto questionAnswerDto : questionAnswerDtos) {
+ for (QuestionAnswerDto votedQa : votedQAs) {
+ if (!questionAnswerDto.getQaId().equals(votedQa.getQaId())) {
+ continue;
+ }
+ questionAnswerDto.setVotedCount(votedQa.getVotedCount());
+ questionAnswerDto.setScore(votedQa.getScore());
+ }
+ }
}
}
--
Gitblit v1.8.0