SceneResourceCameraServiceImpl.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.fdkankan.manage.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.manage.common.RedisKeyUtil;
  4. import com.fdkankan.manage.entity.CameraDetail;
  5. import com.fdkankan.manage.entity.SceneCooperation;
  6. import com.fdkankan.manage.entity.SceneResourceCamera;
  7. import com.fdkankan.manage.entity.SceneResourceCooperation;
  8. import com.fdkankan.manage.httpClient.service.LaserService;
  9. import com.fdkankan.manage.mapper.ISceneResourceCameraMapper;
  10. import com.fdkankan.manage.service.ISceneCooperationService;
  11. import com.fdkankan.manage.service.ISceneResourceCameraService;
  12. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  13. import com.fdkankan.manage.service.ISceneResourceCooperationService;
  14. import com.fdkankan.manage.util.Dateutils;
  15. import com.fdkankan.redis.util.RedisUtil;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.ArrayList;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.WeakHashMap;
  22. import java.util.stream.Collectors;
  23. /**
  24. * <p>
  25. * 场景资源和相机关联表 服务实现类
  26. * </p>
  27. *
  28. * @author
  29. * @since 2022-06-17
  30. */
  31. @Service
  32. public class SceneResourceCameraServiceImpl extends ServiceImpl<ISceneResourceCameraMapper, SceneResourceCamera> implements ISceneResourceCameraService {
  33. @Autowired
  34. ISceneCooperationService sceneCooperationService;
  35. @Autowired
  36. ISceneResourceCooperationService sceneResourceCooperationService;
  37. @Autowired
  38. RedisUtil redisUtil;
  39. @Autowired
  40. LaserService laserService;
  41. @Override
  42. public void unbindCamera(Long cameraId) {
  43. LambdaQueryWrapper<SceneResourceCamera> wrapper = new LambdaQueryWrapper<>();
  44. wrapper.eq(SceneResourceCamera::getCameraId,cameraId);
  45. this.remove(wrapper);
  46. }
  47. @Override
  48. public void setCooperationUser(CameraDetail cameraDetail, String num) {
  49. sceneCooperationService.delByNum(num);
  50. if(cameraDetail.getCooperationUser() == null){
  51. return;
  52. }
  53. List<SceneResourceCamera> list = this.getByCameraId(cameraDetail.getCameraId());
  54. if(list.size() >0){
  55. List<Long> resourceIdList = list.stream().map(SceneResourceCamera::getSceneResourceId).collect(Collectors.toList());
  56. if(resourceIdList.size() >0){
  57. SceneCooperation sceneCooperationEntity = new SceneCooperation();
  58. sceneCooperationEntity.setUserId(cameraDetail.getCooperationUser());
  59. sceneCooperationEntity.setSceneNum(num);
  60. sceneCooperationEntity.setRecStatus("A");
  61. sceneCooperationEntity.setCreateTime(Dateutils.getDate(new Date()));
  62. sceneCooperationEntity.setUpdateTime(Dateutils.getDate(new Date()));
  63. sceneCooperationService.save(sceneCooperationEntity);
  64. redisUtil.hset(RedisKeyUtil.SCENE_COOPERATION_NUM_USERID, sceneCooperationEntity.getSceneNum(), sceneCooperationEntity.getUserId() + "");
  65. List<SceneResourceCooperation> resourceCooperationList = new ArrayList<>();
  66. for (Long resourceId : resourceIdList) {
  67. SceneResourceCooperation sceneResourceCooperation = new SceneResourceCooperation();
  68. sceneResourceCooperation.setSceneResourceId(resourceId);
  69. sceneResourceCooperation.setSceneCooperationId(sceneCooperationEntity.getId());
  70. sceneResourceCooperation.setRecStatus("A");
  71. sceneResourceCooperation.setCreateTime(Dateutils.getDate(new Date()));
  72. sceneResourceCooperation.setUpdateTime(Dateutils.getDate(new Date()));
  73. resourceCooperationList.add(sceneResourceCooperation);
  74. }
  75. if(resourceCooperationList.size() >0){
  76. sceneResourceCooperationService.saveBatch(resourceCooperationList,10000);
  77. }
  78. }
  79. }
  80. }
  81. private List<SceneResourceCamera> getByCameraId(Long cameraId) {
  82. LambdaQueryWrapper<SceneResourceCamera> wrapper = new LambdaQueryWrapper<>();
  83. wrapper.eq(SceneResourceCamera::getCameraId,cameraId);
  84. return this.list(wrapper);
  85. }
  86. }