SceneServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.fdkankan.ucenter.common.PageInfo;
  7. import com.fdkankan.ucenter.entity.Camera;
  8. import com.fdkankan.ucenter.entity.Scene;
  9. import com.fdkankan.ucenter.entity.ScenePlus;
  10. import com.fdkankan.ucenter.entity.ScenePro;
  11. import com.fdkankan.ucenter.mapper.ISceneMapper;
  12. import com.fdkankan.ucenter.service.*;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import com.fdkankan.ucenter.util.DateUserUtil;
  15. import com.fdkankan.ucenter.vo.ResponseScene;
  16. import com.fdkankan.ucenter.vo.request.RequestScene;
  17. import com.fdkankan.ucenter.vo.request.SceneParam;
  18. import com.fdkankan.ucenter.vo.response.SceneVo;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.util.ObjectUtils;
  24. import java.util.ArrayList;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Set;
  28. import java.util.stream.Collectors;
  29. /**
  30. * <p>
  31. * 场景表 服务实现类
  32. * </p>
  33. *
  34. * @author
  35. * @since 2022-07-04
  36. */
  37. @Service
  38. public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implements ISceneService {
  39. @Autowired
  40. IUserService userService;
  41. @Autowired
  42. ICameraService cameraService;
  43. @Autowired
  44. ISceneProService sceneProService;
  45. @Autowired
  46. IScenePlusService scenePlusService;
  47. @Override
  48. public Integer getCountByUserId(Long userId) {
  49. LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
  50. wrapper.eq(Scene::getUserId,userId);
  51. return Math.toIntExact(this.count(wrapper));
  52. }
  53. @Override
  54. public void bindOrUnCamera(List<Long> cameraIds, Long userId) {
  55. if(cameraIds.size() >0){
  56. LambdaUpdateWrapper<Scene> wrapper = new LambdaUpdateWrapper<>();
  57. wrapper.set(Scene::getUserId,userId)
  58. .in(Scene::getCameraId,cameraIds);
  59. this.update(wrapper);
  60. }
  61. }
  62. @Override
  63. public List<Scene> getListByNums(List<String> numList) {
  64. LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
  65. wrapper.in(Scene::getNum,numList);
  66. return this.list(wrapper);
  67. }
  68. @Override
  69. public JSONObject pageList(SceneParam param) {
  70. LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
  71. wrapper.eq(Scene::getUserId,param.getUserId());
  72. if(StringUtils.isNotBlank(param.getSceneName())){
  73. wrapper.like(Scene::getSceneName,param.getSceneName());
  74. }
  75. Page<Scene> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  76. Set<Long> cameraIds = page.getRecords().stream().map(Scene::getCameraId).collect(Collectors.toSet());
  77. HashMap<Long, Camera> cameraHashMap = cameraService.getByIds(new ArrayList<>(cameraIds));
  78. List<SceneVo> voList = new ArrayList<>();
  79. for (Scene record : page.getRecords()) {
  80. SceneVo vo = new SceneVo();
  81. BeanUtils.copyProperties(record,vo);
  82. vo.setChildName(cameraHashMap.get(record.getCameraId()).getChildName());
  83. vo.setSnCode(cameraHashMap.get(record.getCameraId()).getSnCode());
  84. voList.add(vo);
  85. }
  86. Page<SceneVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
  87. pageVo.setRecords(voList);
  88. pageVo.setTotal(page.getTotal());
  89. JSONObject jsonObject = new JSONObject();
  90. jsonObject.put("pageInfo", PageInfo.PageInfo(pageVo));
  91. jsonObject.put("sceneNum",page.getTotal() );
  92. return jsonObject;
  93. }
  94. @Override
  95. public Scene getByNum(String sceneNum) {
  96. LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
  97. wrapper.eq(Scene::getNum,sceneNum);
  98. List<Scene> list = this.list(wrapper);
  99. if(list != null && list.size() >0){
  100. return list.get(0);
  101. }
  102. return null;
  103. }
  104. @Override
  105. public Page<SceneVo> getSceneList(RequestScene param) {
  106. return this.getBaseMapper().getSceneList(new Page<>(param.getPageNum(),param.getPageSize()),param);
  107. }
  108. @Override
  109. public PageInfo getDecorateScenes( RequestScene param) {
  110. Page<SceneVo> page = this.getBaseMapper().getDecorateScenes(new Page<>(param.getPageNum(),param.getPageSize()),param);
  111. for (SceneVo record : page.getRecords()) {
  112. if(StringUtils.isNotBlank(record.getCreateTime())){
  113. record.setCreateTime(DateUserUtil.getDayTime(record.getCreateTime()));
  114. }
  115. }
  116. return PageInfo.PageInfo(page);
  117. }
  118. }