FusionService.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fdkankan.common.exception.BusinessException;
  5. import com.fdkankan.ucenter.common.PageInfo;
  6. import com.fdkankan.ucenter.constant.LoginConstant;
  7. import com.fdkankan.ucenter.entity.*;
  8. import com.fdkankan.ucenter.service.*;
  9. import com.fdkankan.ucenter.vo.request.SceneParam;
  10. import com.fdkankan.ucenter.vo.response.ScenePlusVo;
  11. import com.fdkankan.ucenter.vo.response.SceneProEntityVo;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.BeanUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.*;
  17. import java.util.stream.Collectors;
  18. @Service
  19. public class FusionService implements IFusionService {
  20. @Autowired
  21. IScenePlusService scenePlusService;
  22. @Autowired
  23. IScenePlusExtService scenePlusExtService;
  24. @Autowired
  25. IUserService userService;
  26. @Autowired
  27. ICameraService cameraService;
  28. @Autowired
  29. IScenePlusVoidService scenePlusVoidService;
  30. @Override
  31. public PageInfo scenePageOnlyV4List(SceneParam param, String token) {
  32. PageInfo pageInfo = this.scenePageList(param, token);
  33. List<ScenePlusVo> list = (List<ScenePlusVo>) pageInfo.getList();
  34. List<SceneProEntityVo> proEntityVos = new ArrayList<>();
  35. for (ScenePlusVo scenePlusVo : list) {
  36. SceneProEntityVo vo = new SceneProEntityVo();
  37. vo.setSceneName(scenePlusVo.getTitle());
  38. vo.setStatus(scenePlusVo.getSceneStatus());
  39. BeanUtils.copyProperties(scenePlusVo,vo);
  40. BeanUtils.copyProperties(scenePlusVo.getPlusExt(),vo);
  41. proEntityVos.add(vo);
  42. }
  43. Page<SceneProEntityVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
  44. pageVo.setRecords(proEntityVos);
  45. pageVo.setTotal(pageInfo.getTotal());
  46. return PageInfo.PageInfo(pageVo);
  47. }
  48. @Override
  49. public PageInfo scenePageList(SceneParam param, String token) {
  50. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  51. if(StringUtils.isNotBlank(token)){
  52. User user = userService.getByToken(token);
  53. if(user == null){
  54. throw new BusinessException(LoginConstant.FAILURE_CODE_3015,LoginConstant.FAILURE_MSG_3015);
  55. }
  56. wrapper.eq(ScenePlus::getUserId,user.getId());
  57. }
  58. List<Integer> resourceList = new ArrayList<>();
  59. if(param.getType()!= null && param.getType() == 0){ //看看
  60. resourceList = Arrays.asList(1,2,12,13,14);
  61. }else if(param.getType()!= null && param.getType() == 1){ //看见
  62. resourceList = Collections.singletonList(3);
  63. }else if(param.getType()!=null && param.getType() == 4){
  64. resourceList = Collections.singletonList(4);
  65. List<ScenePlusExt> plusExtList = scenePlusExtService.getSsObj();
  66. List<Long> plusIds = plusExtList.stream().map(ScenePlusExt::getPlusId).collect(Collectors.toList());
  67. if(plusIds.size() >0){
  68. wrapper.in(ScenePlus::getId,plusIds);
  69. }
  70. }
  71. if(param.getStatus() !=null && param.getStatus() == 2){
  72. wrapper.eq(ScenePlus::getSceneStatus,-2); //计算成功
  73. wrapper.eq(ScenePlus::getPayStatus,1);
  74. }
  75. if(resourceList.size() >0){
  76. wrapper.in(ScenePlus::getSceneSource,resourceList);
  77. }
  78. if(StringUtils.isNotBlank(param.getSceneName())){
  79. wrapper.like(ScenePlus::getTitle,param.getSceneName());
  80. }
  81. if(param.getHaveVoid() !=null && param.getHaveVoid() == 0 && param.getNumList()!= null && param.getNumList().size() >0){
  82. wrapper.in(ScenePlus::getNum, param.getNumList());
  83. }
  84. if(param.getHaveVoid() !=null && param.getHaveVoid() == 1 && param.getNumList()!= null && param.getNumList().size() >0){
  85. wrapper.notIn(ScenePlus::getNum, param.getNumList());
  86. }
  87. wrapper.orderByDesc(ScenePlus::getCreateTime);
  88. Page<ScenePlus> page = scenePlusService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  89. if(page.getTotal() <=0){
  90. return PageInfo.PageInfo(page);
  91. }
  92. List<Long> plusIds = page.getRecords().parallelStream().map(ScenePlus::getId).collect(Collectors.toList());
  93. List<Long> cameraIds = page.getRecords().parallelStream().map(ScenePlus::getCameraId).collect(Collectors.toList());
  94. List<ScenePlusVo> list = new ArrayList<>();
  95. HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
  96. HashMap<Long, ScenePlusVoid> voidMap = scenePlusVoidService.getByPlusIds(plusIds);
  97. HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
  98. for (ScenePlus record : page.getRecords()) {
  99. ScenePlusVo scenePlusVo = new ScenePlusVo();
  100. BeanUtils.copyProperties(record,scenePlusVo);
  101. String snCode = cameraMap.get(scenePlusVo.getCameraId()) == null ? "" :cameraMap.get(scenePlusVo.getCameraId()).getSnCode();
  102. scenePlusVo.setPlusExt(extMap.get(record.getId()));
  103. scenePlusVo.setSnCode(snCode);
  104. scenePlusVo.setSceneType(param.getType());
  105. scenePlusVo.setPlusVoid(voidMap.get(record.getId()));
  106. list.add(scenePlusVo);
  107. }
  108. Page<ScenePlusVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
  109. pageVo.setRecords(list);
  110. pageVo.setTotal(page.getTotal());
  111. return PageInfo.PageInfo(pageVo);
  112. }
  113. }