|
@@ -1,22 +1,29 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.diagbot.dto.QuestionIndexDTO;
|
|
|
+import com.diagbot.entity.QuestionDetail;
|
|
|
import com.diagbot.entity.QuestionInfo;
|
|
|
import com.diagbot.entity.wrapper.QuestionWrapper;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.service.QuestionDetailService;
|
|
|
import com.diagbot.service.impl.QuestionInfoServiceImpl;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.util.UserUtils;
|
|
|
import com.diagbot.vo.QuestionSaveVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -32,6 +39,9 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
|
|
|
@Autowired
|
|
|
QuestionDetailFacade questionDetailFacade;
|
|
|
@Autowired
|
|
|
+ @Qualifier("questionDetailServiceImpl")
|
|
|
+ QuestionDetailService questionDetailService;
|
|
|
+ @Autowired
|
|
|
QuestionMappingFacade questionMappingFacade;
|
|
|
@Autowired
|
|
|
ModuleDetailFacade moduleDetailFacade;
|
|
@@ -51,43 +61,61 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
|
|
|
QuestionInfo questionInfo = new QuestionInfo();
|
|
|
String saveOrUpdate = "save"; //新增或修改的标识
|
|
|
if(questionWrapper.getId() != null) {
|
|
|
- QueryWrapper queryWrapper = new QueryWrapper();
|
|
|
- queryWrapper.eq("id", questionWrapper.getId());
|
|
|
- queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
- questionInfo = getOne(queryWrapper);
|
|
|
+ questionInfo = this.getOne(new QueryWrapper<QuestionInfo>()
|
|
|
+ .eq("id", questionWrapper.getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
if(questionInfo == null) {
|
|
|
- throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
|
|
|
- "标签不存在");
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签不存在");
|
|
|
}
|
|
|
saveOrUpdate = "update";
|
|
|
}
|
|
|
BeanUtil.copyProperties(questionWrapper, questionInfo);
|
|
|
- //标签type、tagName唯一
|
|
|
- QueryWrapper queryWrapper = new QueryWrapper();
|
|
|
- queryWrapper.eq("tag_name", questionInfo.getTagName());
|
|
|
- queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
- queryWrapper.eq("type", questionInfo.getType());
|
|
|
- queryWrapper.ne("id", questionInfo.getId() == null ? 0 : questionInfo.getId());
|
|
|
- List<QuestionInfo> questionInfoList = this.list(queryWrapper);
|
|
|
- if(questionInfoList.size() > 0) {
|
|
|
- throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
|
|
|
- "标签名已存在");
|
|
|
+ List<QuestionInfo> questionInfoList = this.list(new QueryWrapper<QuestionInfo>()
|
|
|
+ .eq("tag_name", questionInfo.getTagName())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("type", questionInfo.getType())
|
|
|
+ .ne("id", questionInfo.getId() == null ? 0 : questionInfo.getId()));
|
|
|
+ if(questionInfoList.size() > 0) { //标签type、tagName唯一
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签名已存在");
|
|
|
}
|
|
|
+ Date now = DateUtil.now();
|
|
|
if("save".equals(saveOrUpdate)) {
|
|
|
questionInfo.setCreator(person); //创建人
|
|
|
- questionInfo.setGmtCreate(DateUtil.now());//创建时间
|
|
|
- } else {
|
|
|
- questionInfo.setGmtModified(DateUtil.now());//修改时间
|
|
|
- questionInfo.setModifier(person);//修改人
|
|
|
+ questionInfo.setGmtCreate(now);//创建时间
|
|
|
}
|
|
|
+ questionInfo.setGmtModified(now);//修改时间
|
|
|
+ questionInfo.setModifier(person);//修改人
|
|
|
this.saveOrUpdate(questionInfo);
|
|
|
|
|
|
+ //2、明细信息(先删除原明细,再插入新明细)
|
|
|
+ questionDetailFacade.update(new QuestionDetail(), //删除原明细
|
|
|
+ new UpdateWrapper<QuestionDetail>()
|
|
|
+ .eq("question_id", questionInfo.getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .set("gmt_modified", now)
|
|
|
+ .set("modifier", person)
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey()));
|
|
|
+ List<QuestionDetail> questionDetails = questionWrapper.getQuestionDetails();
|
|
|
+ if(ListUtil.isNotEmpty(questionDetails)) {
|
|
|
+ List<QuestionDetail> saveDetail = new ArrayList<>();
|
|
|
+ int i = 1;
|
|
|
+ for(QuestionDetail detail : questionDetails) {
|
|
|
+ QuestionDetail bean = new QuestionDetail();
|
|
|
+ BeanUtil.copyProperties(detail, bean);
|
|
|
+ bean.setId(null); //防止前端传参,将前端的id置空自动插入
|
|
|
+ bean.setCreator(person);
|
|
|
+ bean.setGmtCreate(now);
|
|
|
+ bean.setModifier(person);
|
|
|
+ bean.setGmtModified(now);
|
|
|
+ bean.setQuestionId(questionInfo.getId());
|
|
|
+ bean.setOrderNo(i++);
|
|
|
+ saveDetail.add(bean);
|
|
|
+ }
|
|
|
+ questionDetailService.saveBatch(saveDetail);
|
|
|
+ }
|
|
|
|
|
|
- //明细信息
|
|
|
-
|
|
|
- //映射信息
|
|
|
+ //3、映射信息
|
|
|
|
|
|
- //同义词信息
|
|
|
|
|
|
}
|
|
|
|