wuxw
2024-03-21 18f32dd969a866224138be314639baaae3d103f5
service-user/src/main/java/com/java110/user/cmd/question/UpdateQuestionTitleCmd.java
@@ -15,14 +15,24 @@
 */
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;
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.inspection.InspectionItemTitleDto;
import com.java110.dto.maintainance.MaintainanceItemDto;
import com.java110.dto.maintainance.MaintainanceItemValueDto;
import com.java110.dto.questionTitle.QuestionTitleDto;
import com.java110.dto.questionTitleValue.QuestionTitleValueDto;
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;
@@ -30,6 +40,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
@@ -51,11 +63,21 @@
    @Autowired
    private IQuestionTitleV1InnerServiceSMO questionTitleV1InnerServiceSMOImpl;
    @Autowired
    private IQuestionTitleValueV1InnerServiceSMO questionTitleValueV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "titleId", "titleId不能为空");
        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
        JSONArray titleValues = null;
        if (!QuestionTitleDto.TITLE_TYPE_QUESTIONS.equals(reqJson.getString("titleType"))) {
            titleValues = reqJson.getJSONArray("titleValues");
            if (titleValues.size() < 1) {
                throw new IllegalArgumentException("未包含选项");
            }
        }
    }
    @Override
@@ -69,6 +91,38 @@
            throw new CmdException("更新数据失败");
        }
        if (QuestionTitleDto.TITLE_TYPE_QUESTIONS.equals(questionTitlePo.getTitleType())) {
            cmdDataFlowContext.setResponseEntity(ResultVo.success());
            return;
        }
        QuestionTitleValueDto questionTitleValueDto = new QuestionTitleValueDto();
        questionTitleValueDto.setTitleId(reqJson.getString("titleId"));
        List<QuestionTitleValueDto> questionTitleValues = questionTitleValueV1InnerServiceSMOImpl.queryQuestionTitleValues(questionTitleValueDto);
        if (questionTitleValues != null && questionTitleValues.size() > 0) {
            QuestionTitleValuePo deleteQuestionTitleValuePo = new QuestionTitleValuePo();
            deleteQuestionTitleValuePo.setTitleId(questionTitlePo.getTitleId());
            flag = questionTitleValueV1InnerServiceSMOImpl.deleteQuestionTitleValue(deleteQuestionTitleValuePo);
            if (flag < 1) {
                throw new CmdException("更新数据失败");
            }
        }
        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("qaValue"));
            questionTitleValuePo.setSeq(titleValues.getJSONObject(titleValueIndex).getString("seq"));
            if(titleValues.getJSONObject(titleValueIndex).containsKey("score")) {
                questionTitleValuePo.setScore(titleValues.getJSONObject(titleValueIndex).getString("score"));
            }else{
                questionTitleValuePo.setScore("0");
            }
            questionTitleValuePo.setTitleId(questionTitlePo.getTitleId());
            questionTitleValuePo.setValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_valueId));
            questionTitleValuePo.setCommunityId(questionTitlePo.getCommunityId());
            questionTitleValueV1InnerServiceSMOImpl.saveQuestionTitleValue(questionTitleValuePo);
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
}