123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /**
- *
- */
- package com.diagbot.facade;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.diagbot.client.UserServiceClient;
- import com.diagbot.dto.QuestionPageDTO;
- import com.diagbot.dto.RespDTO;
- import com.diagbot.dto.ScaleContentDTO;
- import com.diagbot.entity.QuestionInfo;
- import com.diagbot.entity.ScaleContent;
- import com.diagbot.enums.IsDeleteEnum;
- import com.diagbot.exception.CommonErrorCode;
- import com.diagbot.exception.CommonException;
- import com.diagbot.service.ScaleContentService;
- import com.diagbot.service.impl.ScaleContentServiceImpl;
- import com.diagbot.util.BeanUtil;
- import com.diagbot.util.DateUtil;
- import com.diagbot.util.UserUtils;
- import com.diagbot.vo.DeleteScaleVO;
- import com.diagbot.vo.QuestionPageVO;
- import com.diagbot.vo.ScaleContentSaveVO;
- import com.diagbot.vo.ScaleContentVO;
- 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.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @author zhoutg
- * @Description
- * @time 2018年12月5日下午4:53:59
- */
- @Component
- public class ScaleContentFacade extends ScaleContentServiceImpl {
- @Autowired
- @Qualifier("scaleContentServiceImpl")
- ScaleContentService scaleContentService;
- @Autowired
- UserServiceClient userServiceClient;
- @Autowired
- QuestionFacade questionFacade;
- /**
- * 量表内容新增或更新
- *
- * @param scaleContentSaveVO
- */
- public void insertOrUpdate(ScaleContentSaveVO scaleContentSaveVO) {
- Long scaleId = scaleContentSaveVO.getScaleId();
- Date now = DateUtil.now();
- String userId = UserUtils.getCurrentPrincipleID();
- // 更新修改信息
- questionFacade.update(new QuestionInfo(), new UpdateWrapper<QuestionInfo>()
- .eq("id", scaleId)
- .set("gmt_modified", now)
- .set("modifier", userId)
- );
- // 删除原关联内容
- if (scaleId != null) {
- this.update(new ScaleContent(), new UpdateWrapper<ScaleContent>()
- .eq("scale_id", scaleId)
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- .set("gmt_modified", now)
- .set("modifier", userId)
- .set("is_deleted", IsDeleteEnum.Y.getKey()));
- }
- // 新增关联内容
- List<ScaleContent> list = new ArrayList<>();
- List<ScaleContentVO> scaleContentVOS = scaleContentSaveVO.getContent();
- for (ScaleContentVO scaleContentVO : scaleContentVOS) {
- ScaleContent bean = new ScaleContent();
- BeanUtil.copyProperties(scaleContentVO, bean);
- bean.setScaleId(scaleId);
- bean.setModifier(userId);
- bean.setCreator(userId);
- bean.setGmtCreate(now);
- bean.setGmtModified(now);
- list.add(bean);
- }
- scaleContentService.saveBatch(list);
- }
- /**
- * 量表列表
- *
- * @param questionPageVO
- * @return
- */
- public IPage<QuestionPageDTO> getListFac(QuestionPageVO questionPageVO) {
- IPage<QuestionPageDTO> res = this.getList(questionPageVO);
- if (res.getTotal() <= 0) {
- return res;
- }
- List<String> personIds = res.getRecords().stream().map(row -> row.getModifier()).collect(Collectors.toList());
- RespDTO<Map<String, String>> mapRespDTO = userServiceClient.getUserInfoByIds(personIds);
- if (mapRespDTO == null || !CommonErrorCode.OK.getCode().equals(mapRespDTO.code)) {
- throw new CommonException(CommonErrorCode.RPC_ERROR, "获取操作人失败");
- }
- for (QuestionPageDTO bean : res.getRecords()) {
- bean.setModifier(mapRespDTO.data.get(bean.getModifier()));
- }
- return res;
- }
- /**
- * 量表列表
- *
- * @param scaleId
- * @return
- */
- public List<ScaleContentDTO> getByParamFac(Long scaleId) {
- return this.getByParam(scaleId);
- }
- /**
- * 量表列表
- *
- * @param deleteScaleVO
- * @return
- */
- public void delete(DeleteScaleVO deleteScaleVO) {
- Date now = DateUtil.now();
- String person = UserUtils.getCurrentPrincipleID();
- List<Long> ids = deleteScaleVO.getIds();
- for(Long id : ids) {
- this.update(new ScaleContent(), new UpdateWrapper<ScaleContent>()
- .eq("scale_id", id)
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- .set("gmt_modified", now)
- .set("modifier", person)
- .set("is_deleted", IsDeleteEnum.Y.getKey()));
- }
- }
- }
|