VersionInfoFacade.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. package com.diagbot.facade;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.stream.Collectors;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Component;
  11. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  12. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  13. import com.baomidou.mybatisplus.core.metadata.IPage;
  14. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  15. import com.diagbot.client.UserServiceClient;
  16. import com.diagbot.dto.RespDTO;
  17. import com.diagbot.dto.VersionDetailDTO;
  18. import com.diagbot.dto.VersionWrapperDTO;
  19. import com.diagbot.entity.VersionDetail;
  20. import com.diagbot.entity.VersionInfo;
  21. import com.diagbot.enums.IsDeleteEnum;
  22. import com.diagbot.enums.StatusEnum;
  23. import com.diagbot.exception.CommonErrorCode;
  24. import com.diagbot.exception.CommonException;
  25. import com.diagbot.service.impl.VersionDetailServiceImpl;
  26. import com.diagbot.service.impl.VersionInfoServiceImpl;
  27. import com.diagbot.util.DateUtil;
  28. import com.diagbot.util.EntityUtil;
  29. import com.diagbot.util.ListUtil;
  30. import com.diagbot.util.UserUtils;
  31. import com.diagbot.vo.VersionDetailVO;
  32. import com.diagbot.vo.VersionInfoAllVO;
  33. import com.diagbot.vo.VersionInfoIdVO;
  34. import com.diagbot.vo.VersionInfoVO;
  35. /**
  36. *
  37. * @author wangfeng
  38. * @Description: 版本信息
  39. * @date 2018年12月6日 下午2:14:54
  40. */
  41. @Component
  42. public class VersionInfoFacade extends VersionInfoServiceImpl {
  43. @Autowired
  44. VersionDetailFacade versionDetailFacade;
  45. @Autowired
  46. VersionDetailServiceImpl versionDetailServiceImpl;
  47. @Autowired
  48. UserServiceClient userServiceClient;
  49. /**
  50. * 查询版本信息
  51. *
  52. * @return
  53. */
  54. public List<VersionWrapperDTO> getVersionInfoAll(Page page, String name) {
  55. // 查询最新的一条版本信息
  56. QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
  57. versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
  58. .like("name", name).orderByDesc("refresh_time");
  59. // List<VersionInfo> versionInfos =list(versionInfoQuery);//
  60. // getOne(versionInfoQuery);
  61. IPage<VersionInfo> queryUserInformation = page(page, versionInfoQuery);
  62. List<VersionInfo> versionInfos = queryUserInformation.getRecords();
  63. List<VersionWrapperDTO> versionLists = new ArrayList<VersionWrapperDTO>();
  64. /*
  65. * List<String> modifierid =
  66. * versionInfos.stream().map(ac->ac.getModifier()).collect(Collectors.
  67. * toList()); RespDTO<Map<String, String>> userNamesDTO =
  68. * userServiceClient.getUserInfoByIds(modifierid); Map<String, String>
  69. * userNames = userNamesDTO.data;
  70. */
  71. List<String> modifierid = new ArrayList<>();
  72. modifierid = versionInfos.stream().map(ac -> ac.getModifier()).collect(Collectors.toList());
  73. Map<String, String> userNames = new HashMap<>();
  74. if (modifierid.size() > 0) {
  75. RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
  76. if (userNamesDTO == null || !"0".equals(userNamesDTO.code)) {
  77. throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有用户信息失败");
  78. }
  79. userNames = userNamesDTO.data;
  80. }
  81. // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
  82. // System.out.println(detail.toString());
  83. for (VersionInfo versionInfo : versionInfos) {
  84. VersionWrapperDTO versionList = new VersionWrapperDTO();
  85. versionList.setId(versionInfo.getId());
  86. versionList.setName(versionInfo.getName());
  87. versionList.setModifierid(userNames.get(versionInfo.getModifier()));
  88. versionList.setRefreshTime(versionInfo.getRefreshTime());
  89. versionList.setStatus(versionInfo.getStatus());
  90. versionLists.add(versionList);
  91. }
  92. List<Long> ids = new ArrayList<>();
  93. if (versionInfos != null) {
  94. // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
  95. for (VersionInfo versionInfo : versionInfos) {
  96. ids.add(versionInfo.getId());
  97. }
  98. List<VersionDetailDTO> details = versionDetailFacade.getByIds(ids);
  99. Map<Long, List<VersionDetailDTO>> map = new HashMap<>();
  100. // 获取所有用户开通的产品信息
  101. map = EntityUtil.makeEntityListMap(details, "versionId");
  102. if (map.size() > 0) {
  103. for (VersionWrapperDTO versionList : versionLists) {
  104. List<VersionDetailDTO> userAndProdutUDTO = map.get(versionList.getId());
  105. if (ListUtil.isNotEmpty(userAndProdutUDTO)) {
  106. versionList.setDetail(userAndProdutUDTO);
  107. }
  108. }
  109. }
  110. }
  111. return versionLists;
  112. }
  113. public boolean saveVersionInfoAll(VersionInfoVO versionInfoVO) {
  114. // 1.判断该版本号是否存在名字相同的数据
  115. QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
  116. templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
  117. VersionInfo dataInfo = getOne(templateInfoFand);
  118. if (dataInfo != null) {
  119. throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
  120. }
  121. //增加版本数据
  122. VersionInfo versionInfo = new VersionInfo();
  123. versionInfo.setCreator(UserUtils.getCurrentPrincipleID());
  124. versionInfo.setGmtCreate(DateUtil.now());
  125. versionInfo.setName(versionInfoVO.getName());
  126. versionInfo.setGmtModified(DateUtil.now());
  127. versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
  128. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  129. try {
  130. versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
  131. } catch (ParseException e) {
  132. throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
  133. // e.printStackTrace();
  134. }
  135. versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
  136. versionInfo.setRemark(versionInfoVO.getRemark());
  137. boolean res = save(versionInfo);
  138. if (res) {
  139. List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
  140. List<VersionDetailVO> datas = versionInfoVO.getVersionDetail();
  141. if (datas != null && datas.size() > 0) {
  142. for (VersionDetailVO data : datas) {
  143. VersionDetail versionDetail = new VersionDetail();
  144. versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
  145. versionDetail.setGmtCreate(DateUtil.now());
  146. versionDetail.setGmtModified(DateUtil.now());
  147. versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
  148. versionDetail.setDescription(data.getDescription());
  149. versionDetail.setOrderNo(data.getOrderNo());
  150. versionDetail.setTitle(data.getTitle());
  151. versionDetail.setVersionId(versionInfo.getId());
  152. // System.out.println("========versionInfo.getId()======" +
  153. // versionInfo.getId());
  154. versionDetail.setRemark(data.getRemark());
  155. versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
  156. dataNew.add(versionDetail);
  157. }
  158. res = versionDetailServiceImpl.saveBatch(dataNew);
  159. }
  160. // System.out.println(res);
  161. }
  162. return res;
  163. }
  164. /**
  165. *
  166. * @param versionInfoVO
  167. * @return
  168. */
  169. public boolean updateVersionInfoAll(VersionInfoAllVO versionInfoVO) {
  170. // 1.先判断数据是否存在有效
  171. QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
  172. VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", versionInfoVO.getId());
  173. VersionInfo data = getOne(VersionInfoFand);
  174. if (data == null) {
  175. throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
  176. }
  177. // 3.修改版本信息
  178. VersionInfo versionInfo = new VersionInfo();
  179. versionInfo.setId(versionInfoVO.getId());// 模板id
  180. versionInfo.setName(versionInfoVO.getName());// 模板名称
  181. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  182. if (versionInfoVO.getRefreshTime() != null) {
  183. try {
  184. versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
  185. } catch (ParseException e) {
  186. throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
  187. // e.printStackTrace();
  188. }
  189. }
  190. versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
  191. versionInfo.setRemark(versionInfoVO.getRemark());
  192. versionInfo.setGmtModified(DateUtil.now());// 修改时间
  193. versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
  194. boolean res = updateById(versionInfo);
  195. if (!res) {
  196. throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
  197. }
  198. return res;
  199. }
  200. /**
  201. * 删除
  202. *
  203. * @param versionInfoVO
  204. * @return
  205. */
  206. public boolean cancelVersionInfoAll(VersionInfoIdVO versionInfoVO) {
  207. UpdateWrapper<VersionInfo> versionInfoNew = new UpdateWrapper<>();
  208. versionInfoNew.in("id", versionInfoVO.getId()).eq("is_deleted", IsDeleteEnum.N.getKey())
  209. .set("is_deleted", IsDeleteEnum.Y.getKey()).set("modifier", UserUtils.getCurrentPrincipleID())
  210. .set("gmt_modified", DateUtil.now());
  211. return update(new VersionInfo(), versionInfoNew);
  212. }
  213. }