java110 лет назад: 2
Родитель
Сommit
8e6ea234b2

+ 4 - 0
java110-bean/src/main/java/com/java110/dto/questionTitle/QuestionTitleDto.java

@@ -17,6 +17,10 @@ import java.util.List;
  **/
 public class QuestionTitleDto extends PageDto implements Serializable {
 
+    public static final String TITLE_TYPE_SINGLE = "1001"; // 单选题
+    public static final String TITLE_TYPE_MULTIPLE = "2002"; // 多选题
+    public static final String TITLE_TYPE_QUESTIONS = "3003"; // 简答题
+
     private String titleType;
     private String titleId;
     private String communityId;

+ 35 - 21
java110-bean/src/main/java/com/java110/po/questionTitleValue/QuestionTitleValuePo.java

@@ -17,6 +17,7 @@ package com.java110.po.questionTitleValue;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2023-07-10 15:24:35 mail: 928255095@qq.com
@@ -28,55 +29,68 @@ import java.util.Date;
 public class QuestionTitleValuePo implements Serializable {
 
     private String score;
-private String valueId;
-private String titleId;
-private String statusCd = "0";
-private String communityId;
-private String qaValue;
-private String seq;
-public String getScore() {
+    private String valueId;
+    private String titleId;
+    private String statusCd = "0";
+    private String communityId;
+    private String qaValue;
+    private String seq;
+
+    public String getScore() {
         return score;
     }
-public void setScore(String score) {
+
+    public void setScore(String score) {
         this.score = score;
     }
-public String getValueId() {
+
+    public String getValueId() {
         return valueId;
     }
-public void setValueId(String valueId) {
+
+    public void setValueId(String valueId) {
         this.valueId = valueId;
     }
-public String getTitleId() {
+
+    public String getTitleId() {
         return titleId;
     }
-public void setTitleId(String titleId) {
+
+    public void setTitleId(String titleId) {
         this.titleId = titleId;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getQaValue() {
+
+    public String getQaValue() {
         return qaValue;
     }
-public void setQaValue(String qaValue) {
+
+    public void setQaValue(String qaValue) {
         this.qaValue = qaValue;
     }
-public String getSeq() {
+
+    public String getSeq() {
         return seq;
     }
-public void setSeq(String seq) {
+
+    public void setSeq(String seq) {
         this.seq = seq;
     }
 
 
-
 }

+ 35 - 0
service-user/src/main/java/com/java110/user/cmd/question/SaveQuestionTitleCmd.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,13 @@ 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.maintainance.MaintainanceItemDto;
+import com.java110.dto.questionTitle.QuestionTitleDto;
 import com.java110.intf.user.IQuestionTitleV1InnerServiceSMO;
+import com.java110.intf.user.IQuestionTitleValueV1InnerServiceSMO;
+import com.java110.po.maintainance.MaintainanceItemValuePo;
 import com.java110.po.questionTitle.QuestionTitlePo;
+import com.java110.po.questionTitleValue.QuestionTitleValuePo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -52,12 +58,24 @@ public class SaveQuestionTitleCmd extends Cmd {
     @Autowired
     private IQuestionTitleV1InnerServiceSMO questionTitleV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IQuestionTitleValueV1InnerServiceSMO questionTitleValueV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "qaTitle", "请求报文中未包含qaTitle");
         Assert.hasKeyAndValue(reqJson, "titleType", "请求报文中未包含titleType");
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
 
+        //todo 如果不是简答题 需要 包含选项
+        JSONArray titleValues = null;
+        if (!QuestionTitleDto.TITLE_TYPE_QUESTIONS.equals(reqJson.getString("titleType"))) {
+            titleValues = reqJson.getJSONArray("titleValues");
+            if (titleValues.size() < 1) {
+                throw new IllegalArgumentException("未包含选项");
+            }
+        }
+
     }
 
     @Override
@@ -72,6 +90,23 @@ public class SaveQuestionTitleCmd extends Cmd {
             throw new CmdException("保存数据失败");
         }
 
+        //todo 简答题不用 写入,直接返回
+        if (QuestionTitleDto.TITLE_TYPE_QUESTIONS.equals(questionTitlePo.getTitleType())) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+            return;
+        }
+        JSONArray titleValues = reqJson.getJSONArray("titleValues");
+        QuestionTitleValuePo questionTitleValuePo = null;
+        for (int titleValueIndex = 0; titleValueIndex < titleValues.size(); titleValueIndex++) {
+            questionTitleValuePo = new QuestionTitleValuePo();
+            questionTitleValuePo.setQaValue(titleValues.getJSONObject(titleValueIndex).getString("itemValue"));
+            questionTitleValuePo.setSeq(titleValues.getJSONObject(titleValueIndex).getString("seq"));
+            questionTitleValuePo.setTitleId(questionTitlePo.getTitleId());
+            questionTitleValuePo.setValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_valueId));
+            questionTitleValuePo.setCommunityId(questionTitlePo.getCommunityId());
+            questionTitleValueV1InnerServiceSMOImpl.saveQuestionTitleValue(questionTitleValuePo);
+        }
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 }