Bläddra i källkod

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

Your Name 3 år sedan
förälder
incheckning
708037ff32
17 ändrade filer med 206 tillägg och 30 borttagningar
  1. 23 0
      java110-bean/src/main/java/com/java110/dto/questionAnswer/QuestionAnswerDto.java
  2. 10 0
      java110-bean/src/main/java/com/java110/dto/user/UserQuestionAnswerValueDto.java
  3. 13 2
      java110-db/src/main/resources/mapper/user/QuestionAnswerV1ServiceDaoImplMapper.xml
  4. 3 2
      java110-db/src/main/resources/mapper/user/QuestionTitleValueV1ServiceDaoImplMapper.xml
  5. 3 0
      java110-db/src/main/resources/mapper/user/UserQuestionAnswerV1ServiceDaoImplMapper.xml
  6. 2 1
      java110-db/src/main/resources/mapper/user/UserQuestionAnswerValueV1ServiceDaoImplMapper.xml
  7. 6 0
      java110-doc/readme.md
  8. 3 0
      java110-interface/src/main/java/com/java110/intf/user/IQuestionAnswerV1InnerServiceSMO.java
  9. 6 6
      service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java
  10. 4 0
      service-user/src/main/java/com/java110/user/cmd/question/ListOwnerVoteCmd.java
  11. 63 12
      service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java
  12. 1 0
      service-user/src/main/java/com/java110/user/cmd/question/QueryOwnerQuestionAnswerCmd.java
  13. 50 6
      service-user/src/main/java/com/java110/user/cmd/question/SaveQuestionAnswerCmd.java
  14. 1 0
      service-user/src/main/java/com/java110/user/dao/IQuestionAnswerV1ServiceDao.java
  15. 6 0
      service-user/src/main/java/com/java110/user/dao/impl/QuestionAnswerV1ServiceDaoImpl.java
  16. 11 0
      service-user/src/main/java/com/java110/user/smo/impl/QuestionAnswerV1InnerServiceSMOImpl.java
  17. 1 1
      springboot/src/main/java/com/java110/boot/smo/assetImport/impl/ImportOwnerCarSMOImpl.java

+ 23 - 0
java110-bean/src/main/java/com/java110/dto/questionAnswer/QuestionAnswerDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.questionAnswer;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.questionTitle.QuestionTitleDto;
 import com.java110.dto.questionTitleValue.QuestionTitleValueDto;
 
 import java.io.Serializable;
@@ -18,6 +19,8 @@ import java.util.List;
 public class QuestionAnswerDto extends PageDto implements Serializable {
 
     public static final String QA_TYPE_VOTE = "3003";// 业主投票
+    public static final String QA_TYPE_QUESTION = "1001";// 业主问卷
+
     public static final String STATE_WAIT = "W"; // 待发布
     public static final String STATE_COMPLETE = "C"; //发布完成
 
@@ -40,6 +43,8 @@ public class QuestionAnswerDto extends PageDto implements Serializable {
 
     private long votedCount; // 已投票人数
 
+    private long score;
+
     private String ownerName;
 
     private String link;
@@ -48,6 +53,8 @@ public class QuestionAnswerDto extends PageDto implements Serializable {
 
     private List<QuestionTitleValueDto> titleValues;
 
+    private List<QuestionTitleDto> titles;
+
     private String state;
 
     private String userQaId;
@@ -204,4 +211,20 @@ public class QuestionAnswerDto extends PageDto implements Serializable {
     public void setUserQaId(String userQaId) {
         this.userQaId = userQaId;
     }
+
+    public List<QuestionTitleDto> getTitles() {
+        return titles;
+    }
+
+    public void setTitles(List<QuestionTitleDto> titles) {
+        this.titles = titles;
+    }
+
+    public long getScore() {
+        return score;
+    }
+
+    public void setScore(long score) {
+        this.score = score;
+    }
 }

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/user/UserQuestionAnswerValueDto.java

@@ -23,6 +23,8 @@ public class UserQuestionAnswerValueDto extends PageDto implements Serializable
     private String userTitleId;
     private String qaId;
 
+    private String qaValue;
+
 
     private Date createTime;
 
@@ -101,4 +103,12 @@ public class UserQuestionAnswerValueDto extends PageDto implements Serializable
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String getQaValue() {
+        return qaValue;
+    }
+
+    public void setQaValue(String qaValue) {
+        this.qaValue = qaValue;
+    }
 }

+ 13 - 2
java110-db/src/main/resources/mapper/user/QuestionAnswerV1ServiceDaoImplMapper.xml

@@ -19,10 +19,9 @@
     <select id="getQuestionAnswerInfo" parameterType="Map" resultType="Map">
         select t.qa_name,t.qa_name qaName,t.qa_type,t.qa_type qaType,t.start_time,t.start_time
         startTime,t.remark,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time endTime,t.community_id,t.community_id
-        communityId,t.content,t.qa_id,t.qa_id qaId,t.create_time createTime,t.state,count(uqa1.user_qa_id) voteCount,count(uqa2.user_qa_id) votedCount
+        communityId,t.content,t.qa_id,t.qa_id qaId,t.create_time createTime,t.state,count(uqa1.user_qa_id) voteCount
         from question_answer t
         left join user_question_answer uqa1 on t.qa_id = uqa1.qa_id and uqa1.status_cd = '0'
-        left join user_question_answer uqa2 on t.qa_id = uqa2.qa_id and uqa2.status_cd = '0' and uqa2.state = '1202'
         where 1 =1
         <if test="qaName !=null and qaName != ''">
             and t.qa_name= #{qaName}
@@ -139,4 +138,16 @@
 
     </select>
 
+
+    <select id="queryVotedCountAndScore" parameterType="Map" resultType="Map">
+        select qa_id qaId, count(1) votedCount,SUM(t.score) score
+        from user_question_answer t
+        where
+        t.state = '1202'
+        and t.qa_id in
+        <foreach collection="qaIds" item="item" index="index" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        GROUP BY qa_id
+    </select>
 </mapper>

+ 3 - 2
java110-db/src/main/resources/mapper/user/QuestionTitleValueV1ServiceDaoImplMapper.xml

@@ -115,13 +115,14 @@
     </select>
 
     <select id="queryQuestionOwnerTitleValues" parameterType="Map" resultType="Map">
-        select qt.title_type titleType,qa.qa_id qaId,t.qa_value qaValue,t.seq,count(uqav.user_qa_id) personCount
+        select qt.qa_title qaTitle,qt.title_id titleId, qt.title_type titleType,qa.qa_id qaId,t.qa_value qaValue,t.seq,count(uqav.user_qa_id) personCount
         from question_title_value t
         inner join question_title qt on t.title_id = qt.title_id and qt.status_cd = '0'
         inner join question_answer_title_rel qatr on t.title_id = qatr.title_id and qatr.status_cd = '0'
         inner join question_answer qa on qatr.qa_id = qa.qa_id and qa.status_cd = '0'
         left join user_question_answer_value uqav on qa.qa_id = uqav.qa_id and t.value_id = uqav.value_id and t.title_id = uqav.title_id and uqav.status_cd = '0'
         where 1=1
+
         and t.community_id = #{communityId}
         <if test="titleId !=null and titleId != ''">
             and t.title_id= #{titleId}
@@ -135,7 +136,7 @@
                 #{item}
             </foreach>
         </if>
-        group by qt.title_type,qa.qa_id,t.qa_value,t.seq
+        group by qt.qa_title,qt.title_id , qt.title_type,qa.qa_id,t.qa_value,t.seq
         order by t.seq
 
 

+ 3 - 0
java110-db/src/main/resources/mapper/user/UserQuestionAnswerV1ServiceDaoImplMapper.xml

@@ -167,6 +167,9 @@
             and t.status_cd = '0'
             and t.community_id = #{communityId}
             and t.link = #{link}
+            <if test="state != null and state != ''">
+                and t.state = #{state}
+            </if>
             and qa.qa_type = #{qaType}
             and qa.state = 'C'
             and qa.start_time &lt; NOW()

+ 2 - 1
java110-db/src/main/resources/mapper/user/UserQuestionAnswerValueV1ServiceDaoImplMapper.xml

@@ -28,8 +28,9 @@
         select t.value_id,t.value_id valueId,t.title_id,t.title_id titleId,t.user_qa_id,t.user_qa_id
         userQaId,t.value_content,t.value_content valueContent,t.status_cd,t.status_cd
         statusCd,t.community_id,t.community_id communityId,t.user_title_id,t.user_title_id userTitleId,t.qa_id,t.qa_id
-        qaId
+        qaId,qtv.qa_value qaValue
         from user_question_answer_value t
+        left join question_title_value qtv on t.value_id = qtv.value_id and qtv.status_cd = '0'
         where 1 =1
         <if test="valueId !=null and valueId != ''">
             and t.value_id= #{valueId}

+ 6 - 0
java110-doc/readme.md

@@ -1,5 +1,11 @@
 ## java110 api 文档使用说明
 
+### 文档查看地址
+
+http://ip:port/doc-ui.html
+
+比如:hc的文档 http://127.0.0.1:8008/doc-ui.html
+
 ### @Java110ApiDoc 的使用
 
 样例

+ 3 - 0
java110-interface/src/main/java/com/java110/intf/user/IQuestionAnswerV1InnerServiceSMO.java

@@ -65,4 +65,7 @@ public interface IQuestionAnswerV1InnerServiceSMO {
      */
     @RequestMapping(value = "/queryQuestionAnswersCount", method = RequestMethod.POST)
     int queryQuestionAnswersCount(@RequestBody QuestionAnswerDto questionAnswerDto);
+
+    @RequestMapping(value = "/queryVotedCountAndScore", method = RequestMethod.POST)
+    List<QuestionAnswerDto> queryVotedCountAndScore(@RequestBody String[] toArray);
 }

+ 6 - 6
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java

@@ -242,11 +242,11 @@ public class ImportOwnerCarSMOImpl extends DefaultAbstractComponentSMO implement
 
         for (OwnerCarDto ownerCarDto : ownerCars) {
 
-            if(!"1001".equals(ownerCarDto.getTypeCd()) && !"2001".equals(ownerCarDto.getTypeCd())){
-                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"停车场类型应填写 1001(地上停车场)或者 2001 (地下停车场)");
+            if (!"1001".equals(ownerCarDto.getTypeCd()) && !"2001".equals(ownerCarDto.getTypeCd())) {
+                throw new IllegalArgumentException(ownerCarDto.getCarNum() + "停车场类型应填写 1001(地上停车场)或者 2001 (地下停车场)");
             }
-            if(!"H".equals(ownerCarDto.getSpaceSate()) && !"S".equals(ownerCarDto.getSpaceSate())){
-                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"车位状态应填写 S(出售)或者 H (出租)");
+            if (!"H".equals(ownerCarDto.getSpaceSate()) && !"S".equals(ownerCarDto.getSpaceSate())) {
+                throw new IllegalArgumentException(ownerCarDto.getCarNum() + "车位状态应填写 S(出售)或者 H (出租)");
             }
 
             OwnerDto ownerDto = new OwnerDto();
@@ -256,8 +256,8 @@ public class ImportOwnerCarSMOImpl extends DefaultAbstractComponentSMO implement
             //查询业主
             List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
             //Assert.listOnlyOne(ownerDtos, ownerCarDto.getCarNum() + "查询业主信息错误!");
-            if(ownerDtos == null || ownerDtos.size() < 1){
-                throw new IllegalArgumentException("业主不存在");
+            if (ownerDtos == null || ownerDtos.size() < 1) {
+                throw new IllegalArgumentException(ownerCarDto.getCarNum() + "业主不存在");
             }
             ownerCarDto.setOwnerId(ownerDtos.get(0).getOwnerId());
         }

+ 4 - 0
service-user/src/main/java/com/java110/user/cmd/question/ListOwnerVoteCmd.java

@@ -91,16 +91,20 @@ public class ListOwnerVoteCmd extends Cmd {
             return;
         }
         List<QuestionTitleValueDto> values = null;
+        long votedCount = 0;
         for (QuestionAnswerDto tmpQuestionAnswerDto : questionAnswerDtos) {
             values = new ArrayList<>();
+            votedCount = 0;
             for (QuestionTitleValueDto tmpQuestionTitleValueDto : questionTitleValueDtos) {
                 if (!tmpQuestionTitleValueDto.getQaId().equals(tmpQuestionAnswerDto.getQaId())) {
                     continue;
                 }
                 values.add(tmpQuestionTitleValueDto);
                 tmpQuestionAnswerDto.setTitleType(tmpQuestionTitleValueDto.getTitleType());
+                votedCount += tmpQuestionTitleValueDto.getPersonCount();
             }
             tmpQuestionAnswerDto.setTitleValues(values);
+            tmpQuestionAnswerDto.setVotedCount(votedCount);
         }
     }
 }

+ 63 - 12
service-user/src/main/java/com/java110/user/cmd/question/ListQuestionAnswerCmd.java

@@ -20,15 +20,20 @@ import com.java110.core.annotation.Java110Cmd;
 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,10 +53,17 @@ import org.slf4j.LoggerFactory;
 @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) {
         super.validatePageInfo(reqJson);
@@ -61,22 +73,61 @@ public class ListQuestionAnswerCmd extends Cmd {
     @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);
+
+        List<QuestionAnswerDto> questionAnswerDtos = null;
 
-           int count = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswersCount(questionAnswerDto);
+        if (count > 0) {
+            questionAnswerDtos = questionAnswerV1InnerServiceSMOImpl.queryQuestionAnswers(questionAnswerDto);
+        } else {
+            questionAnswerDtos = new ArrayList<>();
+        }
 
-           List<QuestionAnswerDto> questionAnswerDtos = null;
+        //todo 查询已投票数据和 得分
+        computeVotedCountAndScore(questionAnswerDtos);
 
-           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);
+        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);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
-           cmdDataFlowContext.setResponseEntity(responseEntity);
+        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());
+            }
+        }
+    }
+
+
 }

+ 1 - 0
service-user/src/main/java/com/java110/user/cmd/question/QueryOwnerQuestionAnswerCmd.java

@@ -49,6 +49,7 @@ public class QueryOwnerQuestionAnswerCmd extends Cmd {
         userQuestionAnswerDto.setLink(userDtos.get(0).getTel());
         userQuestionAnswerDto.setCommunityId(reqJson.getString("communityId"));
         userQuestionAnswerDto.setQaType(reqJson.getString("qaType"));
+        userQuestionAnswerDto.setState(reqJson.getString("state"));
         List<QuestionAnswerDto> questionAnswerDtos = userQuestionAnswerV1InnerServiceSMOImpl.queryOwnerQuestionAnswers(userQuestionAnswerDto);
         context.setResponseEntity(ResultVo.createResponseEntity(questionAnswerDtos));
     }

+ 50 - 6
service-user/src/main/java/com/java110/user/cmd/question/SaveQuestionAnswerCmd.java

@@ -15,6 +15,7 @@
  */
 package com.java110.user.cmd.question;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,8 +23,12 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.questionAnswer.QuestionAnswerDto;
+import com.java110.intf.user.IQuestionAnswerTitleRelV1InnerServiceSMO;
 import com.java110.intf.user.IQuestionAnswerV1InnerServiceSMO;
 import com.java110.po.questionAnswer.QuestionAnswerPo;
+import com.java110.po.questionAnswerTitleRel.QuestionAnswerTitleRelPo;
+import com.java110.user.bmo.question.IQuestionAnswerBMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -52,13 +57,26 @@ public class SaveQuestionAnswerCmd extends Cmd {
     @Autowired
     private IQuestionAnswerV1InnerServiceSMO questionAnswerV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IQuestionAnswerTitleRelV1InnerServiceSMO questionAnswerTitleRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IQuestionAnswerBMO questionAnswerBMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "qaType", "请求报文中未包含qaType");
-Assert.hasKeyAndValue(reqJson, "qaName", "请求报文中未包含qaName");
-Assert.hasKeyAndValue(reqJson, "startTime", "请求报文中未包含startTime");
-Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含endTime");
-Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "qaName", "请求报文中未包含投票名称");
+        Assert.hasKey(reqJson, "roomIds", "请求报文中未包含投票房屋");
+        Assert.hasKeyAndValue(reqJson, "startTime", "未包含开始时间");
+        Assert.hasKeyAndValue(reqJson, "endTime", "未包含结束时间");
+        Assert.hasKeyAndValue(reqJson, "content", "未包含说明");
+        Assert.hasKey(reqJson, "questionTitles", "请求报文中未包含题目");
+
+        JSONArray questionTitles = reqJson.getJSONArray("questionTitles");
+        if (questionTitles == null || questionTitles.size() < 1) {
+            throw new IllegalArgumentException("未包含题目");
+        }
 
     }
 
@@ -66,13 +84,39 @@ Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含community
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       QuestionAnswerPo questionAnswerPo = BeanConvertUtil.covertBean(reqJson, QuestionAnswerPo.class);
+        //todo 写入投票信息
+        QuestionAnswerPo questionAnswerPo = new QuestionAnswerPo();
+        questionAnswerPo.setContent(reqJson.getString("content"));
+        questionAnswerPo.setEndTime(reqJson.getString("endTime"));
+        questionAnswerPo.setStartTime(reqJson.getString("startTime"));
         questionAnswerPo.setQaId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        questionAnswerPo.setQaName(reqJson.getString("qaName"));
+        questionAnswerPo.setCommunityId(reqJson.getString("communityId"));
+        questionAnswerPo.setQaType(QuestionAnswerDto.QA_TYPE_QUESTION);
+        questionAnswerPo.setState(QuestionAnswerDto.STATE_WAIT);
         int flag = questionAnswerV1InnerServiceSMOImpl.saveQuestionAnswer(questionAnswerPo);
 
         if (flag < 1) {
             throw new CmdException("保存数据失败");
         }
+        JSONArray questionTitles = reqJson.getJSONArray("questionTitles");
+        JSONObject title = null;
+        for (int titleIndex = 0; titleIndex < questionTitles.size(); titleIndex++) {
+            title= questionTitles.getJSONObject(titleIndex);
+            QuestionAnswerTitleRelPo questionAnswerTitleRelPo = new QuestionAnswerTitleRelPo();
+            questionAnswerTitleRelPo.setCommunityId(reqJson.getString("communityId"));
+            questionAnswerTitleRelPo.setTitleId(title.getString("titleId"));
+            questionAnswerTitleRelPo.setSeq((titleIndex + 1) + "");
+            questionAnswerTitleRelPo.setScore("0");
+            if(title.containsKey("score")){
+                questionAnswerTitleRelPo.setScore(title.getString("score"));
+            }
+            questionAnswerTitleRelPo.setQaId(questionAnswerPo.getQaId());
+            questionAnswerTitleRelPo.setQatrId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            questionAnswerTitleRelV1InnerServiceSMOImpl.saveQuestionAnswerTitleRel(questionAnswerTitleRelPo);
+        }
+
+        questionAnswerBMOImpl.saveUserQuestionAnswer(questionAnswerPo, reqJson.getJSONArray("roomIds"));
 
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }

+ 1 - 0
service-user/src/main/java/com/java110/user/dao/IQuestionAnswerV1ServiceDao.java

@@ -70,4 +70,5 @@ public interface IQuestionAnswerV1ServiceDao {
      */
     int queryQuestionAnswersCount(Map info);
 
+    List<Map> queryVotedCountAndScore(Map info);
 }

+ 6 - 0
service-user/src/main/java/com/java110/user/dao/impl/QuestionAnswerV1ServiceDaoImpl.java

@@ -108,5 +108,11 @@ public class QuestionAnswerV1ServiceDaoImpl extends BaseServiceDao implements IQ
         return Integer.parseInt(businessQuestionAnswerInfos.get(0).get("count").toString());
     }
 
+    @Override
+    public List<Map> queryVotedCountAndScore(Map info) {
+        List<Map> businessQuestionAnswerInfos = sqlSessionTemplate.selectList("questionAnswerV1ServiceDaoImpl.queryVotedCountAndScore",info);
+
+        return businessQuestionAnswerInfos;    }
+
 
 }

+ 11 - 0
service-user/src/main/java/com/java110/user/smo/impl/QuestionAnswerV1InnerServiceSMOImpl.java

@@ -29,7 +29,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 类表述: 服务之前调用的接口实现类,不对外提供接口能力 只用于接口建调用
@@ -86,4 +88,13 @@ public class QuestionAnswerV1InnerServiceSMOImpl extends BaseServiceSMO implemen
     public int queryQuestionAnswersCount(@RequestBody QuestionAnswerDto questionAnswerDto) {
         return questionAnswerV1ServiceDaoImpl.queryQuestionAnswersCount(BeanConvertUtil.beanCovertMap(questionAnswerDto));    }
 
+    @Override
+    public List<QuestionAnswerDto> queryVotedCountAndScore(String[] qaIds) {
+        Map infos = new HashMap();
+        infos.put("qaIds",qaIds);
+        List<QuestionAnswerDto> questionAnswers = BeanConvertUtil.covertBeanList(questionAnswerV1ServiceDaoImpl.queryVotedCountAndScore(infos), QuestionAnswerDto.class);
+
+        return questionAnswers;
+    }
+
 }

+ 1 - 1
springboot/src/main/java/com/java110/boot/smo/assetImport/impl/ImportOwnerCarSMOImpl.java

@@ -259,7 +259,7 @@ public class ImportOwnerCarSMOImpl extends DefaultAbstractComponentSMO implement
             List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
             //Assert.listOnlyOne(ownerDtos, ownerCarDto.getCarNum() + "查询业主信息错误!");
             if(ownerDtos == null || ownerDtos.size() < 1){
-                throw new IllegalArgumentException("业主不存在");
+                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"业主不存在");
             }
             ownerCarDto.setOwnerId(ownerDtos.get(0).getOwnerId());
         }