From 0fea532b07be89978343cb4aede3693af99f5656 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 25 七月 2023 23:04:41 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java |   75 +++++++++++++++++++++++++++++++------
 1 files changed, 63 insertions(+), 12 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..dc0d746 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
@@ -20,15 +20,20 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.questionTitleValue.QuestionTitleValueDto;
 import com.java110.intf.user.IQuestionAnswerV1InnerServiceSMO;
+import com.java110.intf.user.IQuestionTitleV1InnerServiceSMO;
+import com.java110.intf.user.IQuestionTitleValueV1InnerServiceSMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 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;
@@ -48,9 +53,16 @@
 @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;
+
+
+    @Autowired
+    private IQuestionTitleV1InnerServiceSMO questionTitleV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IQuestionTitleValueV1InnerServiceSMO questionTitleValueV1InnerServiceSMOImpl;
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
@@ -61,22 +73,61 @@
     @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);
 
-           cmdDataFlowContext.setResponseEntity(responseEntity);
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, questionAnswerDtos);
+
+        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