CameraDetailServiceImpl.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.fdkankan.common.constant.Constant;
  6. import com.fdkankan.ucenter.entity.*;
  7. import com.fdkankan.ucenter.mapper.ICameraDetailMapper;
  8. import com.fdkankan.ucenter.service.*;
  9. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10. import com.fdkankan.ucenter.vo.response.CameraAppVo;
  11. import com.fdkankan.ucenter.vo.response.CameraSpaceVo;
  12. import org.joda.time.DateTime;
  13. import org.joda.time.Days;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Set;
  20. /**
  21. * <p>
  22. * 相机子表 服务实现类
  23. * </p>
  24. *
  25. * @author
  26. * @since 2022-07-04
  27. */
  28. @Service
  29. public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, CameraDetail> implements ICameraDetailService {
  30. @Autowired
  31. IUserService userService;
  32. @Autowired
  33. ICameraSpaceService cameraSpaceService;
  34. @Autowired
  35. FdkkLaserService fdkkLaserService;
  36. @Autowired
  37. ICameraService cameraService;
  38. @Autowired
  39. ISceneCooperationService sceneCooperationService;
  40. @Autowired
  41. ISceneProService sceneProService;
  42. @Autowired
  43. IScenePlusService scenePlusService;
  44. @Override
  45. public CameraDetail getByCameraId(Long cameraId) {
  46. LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
  47. wrapper.eq(CameraDetail::getCameraId,cameraId);
  48. List<CameraDetail> list = this.list(wrapper);
  49. if(list!=null && list.size() >0){
  50. return list.get(0);
  51. }
  52. return null;
  53. }
  54. @Override
  55. public HashMap<Long, CameraDetail> getByCameraIds(List<Long> cameraIds) {
  56. LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
  57. wrapper.in(CameraDetail::getCameraId,cameraIds);
  58. List<CameraDetail> list = this.list(wrapper);
  59. HashMap<Long, CameraDetail> map = new HashMap<>();
  60. list.forEach(entity -> map.put(entity.getCameraId(),entity));
  61. return map;
  62. }
  63. @Override
  64. public Long getCountByUserId(Long userId) {
  65. LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
  66. wrapper.eq(CameraDetail::getUserId,userId);
  67. return this.count(wrapper);
  68. }
  69. @Override
  70. public Integer deadlineNumber(String username) {
  71. User user = userService.getByUserName(username);
  72. QueryWrapper<CameraDetail> queryWrapper = new QueryWrapper<>();
  73. queryWrapper.lambda().eq(CameraDetail::getUserId,user.getId());
  74. List<CameraDetail> list = this.list(queryWrapper);
  75. Integer number = 0;
  76. List<CameraSpaceVo> cameraList = null;
  77. for (CameraDetail cameraDetailEntity : list) {
  78. cameraList = cameraSpaceService.getVoListByCameraId(cameraDetailEntity.getCameraId());
  79. if(cameraList != null && cameraList.size() > 0){
  80. if(Days.daysBetween(new DateTime(), new DateTime(cameraList.get(0).getSpaceEndTime())).getDays() < 30){
  81. number++;
  82. }
  83. }
  84. }
  85. return number;
  86. }
  87. @Override
  88. public void unbindCamera(List<Long> cameraIds) {
  89. HashMap<Long, CameraDetail> detailMap = this.getByCameraIds(cameraIds);
  90. HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
  91. for (Long cameraId : detailMap.keySet()) {
  92. CameraDetail cameraDetail = detailMap.get(cameraId);
  93. LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
  94. wrapper.eq(CameraDetail::getId,cameraDetail.getId());
  95. wrapper.set(CameraDetail::getUserId,null);
  96. wrapper.set(CameraDetail::getCooperationUser,null);
  97. wrapper.set(CameraDetail::getTotalSpace,Long.parseLong(Constant.EXPANSION_SPACE_VALUE_1G ) * 10L);
  98. this.update(wrapper);
  99. sceneProService.lockOrUnLockBySpace(cameraDetail,cameraId,-2); //封存场景
  100. }
  101. //恢复10G基本容量
  102. //删除场景协作信息
  103. List<ScenePro> sceneProList = sceneProService.getListByCameraIds(cameraIds);
  104. List<ScenePlus> scenePlusList = scenePlusService.getListByCameraIds(cameraIds);
  105. sceneCooperationService.deleteCooperationList(sceneProList,scenePlusList);
  106. fdkkLaserService.disableCooperation(detailMap, cameraMap);
  107. }
  108. @Override
  109. public void bindCamera(List<Long> cameraIds,Long userId) {
  110. LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
  111. wrapper.in(CameraDetail::getCameraId,cameraIds)
  112. .set(CameraDetail::getUserId,userId);
  113. this.update(wrapper);
  114. }
  115. @Override
  116. public void updateCooperationByIds(List<Long> cameraIds, Long userId) {
  117. LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
  118. wrapper.in(CameraDetail::getCameraId,cameraIds)
  119. .set(CameraDetail::getCooperationUser,userId);
  120. this.update(wrapper);
  121. }
  122. @Override
  123. public void addUsedSpace(HashMap<Long, Long> cameraMap) {
  124. Set<Long> cameraIds = cameraMap.keySet();
  125. LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
  126. wrapper.in(CameraDetail::getCameraId,cameraIds);
  127. List<CameraDetail> list = this.list(wrapper);
  128. for (CameraDetail cameraDetail : list) {
  129. long subSpace = cameraMap.get(cameraDetail.getCameraId()) == null ? 0L : cameraMap.get(cameraDetail.getCameraId());
  130. long usedSpace = cameraDetail.getUsedSpace() - subSpace ;
  131. cameraDetail.setUsedSpace(usedSpace < 0 ? 0L :usedSpace);
  132. //解封封存场景
  133. sceneProService.lockOrUnLockBySpace(cameraDetail,cameraDetail.getCameraId(),1);
  134. }
  135. this.updateBatchById(list);
  136. }
  137. @Override
  138. public List<CameraAppVo> getListByUserAndType(Long userId, Integer cameraType) {
  139. return this.getBaseMapper().getListByUserAndType(userId,cameraType);
  140. }
  141. }