SceneServiceImpl.java 4.1 KB

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