AppCameraService.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.fdkankan.common.constant.AppConstant;
  3. import com.fdkankan.common.exception.BusinessException;
  4. import com.fdkankan.common.util.FileSizeUtil;
  5. import com.fdkankan.ucenter.constant.CameraConstant;
  6. import com.fdkankan.ucenter.constant.LoginConstant;
  7. import com.fdkankan.ucenter.entity.Camera;
  8. import com.fdkankan.ucenter.entity.CameraDetail;
  9. import com.fdkankan.ucenter.entity.User;
  10. import com.fdkankan.ucenter.entity.UserIncrement;
  11. import com.fdkankan.ucenter.service.*;
  12. import com.fdkankan.ucenter.vo.response.CameraAppVo;
  13. import com.fdkankan.ucenter.vo.response.GroupByCount;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.util.ObjectUtils;
  18. import java.math.BigInteger;
  19. import java.util.Collections;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. @Service
  24. public class AppCameraService {
  25. @Autowired
  26. IUserService userService;
  27. @Autowired
  28. ICameraDetailService cameraDetailService;
  29. @Autowired
  30. ICameraService cameraService;
  31. @Autowired
  32. ISceneProService sceneProService;
  33. @Autowired
  34. IScenePlusService scenePlusService;
  35. @Autowired
  36. IUserIncrementService userIncrementService;
  37. public List<CameraAppVo> getCameraForUser(String userName, Integer cameraType) {
  38. if(StringUtils.isEmpty(userName) || cameraType == null){
  39. throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
  40. }
  41. User user = userService.getByUserName(userName);
  42. if(user == null){
  43. throw new BusinessException(LoginConstant.FAILURE_CODE_3015, LoginConstant.FAILURE_MSG_3015);
  44. }
  45. List<CameraAppVo> cameraAppVoList = cameraDetailService.getListByUserAndType(user.getId(), cameraType);
  46. for (CameraAppVo cameraApp : cameraAppVoList) {
  47. UserIncrement userIncrementEntity = userIncrementService.getByCameraId(cameraApp.getId());
  48. if(userIncrementEntity != null){
  49. cameraApp.setUserIncrementId(userIncrementEntity.getId());
  50. cameraApp.setIsExpire(userIncrementEntity.getIsExpired());
  51. }
  52. }
  53. return cameraAppVoList;
  54. }
  55. public CameraAppVo bindCamera(String userName, String snCode) {
  56. User user = userService.getByUserName(userName);
  57. if(user == null){
  58. throw new BusinessException(AppConstant.FAILURE_CODE_4007, AppConstant.FAILURE_MSG_4007);
  59. }
  60. Camera camera = cameraService.getBySnCode(snCode);
  61. if(camera == null){
  62. throw new BusinessException(AppConstant.FAILURE_CODE_4010, AppConstant.FAILURE_MSG_4010);
  63. }
  64. CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
  65. if(cameraDetail == null){
  66. throw new BusinessException(AppConstant.FAILURE_CODE_4010, AppConstant.FAILURE_MSG_4010);
  67. }
  68. if (cameraDetail.getUserId() != null){
  69. throw new BusinessException(CameraConstant.FAILURE_CODE_6006, CameraConstant.FAILURE_MSG_6006);
  70. }
  71. List<Long> cameraIds = Collections.singletonList(camera.getId());
  72. cameraDetail.setUserId(user.getId());
  73. cameraDetailService.bindCamera(cameraIds,user.getId());
  74. sceneProService.bindOrUnCamera(cameraIds,user.getId());
  75. scenePlusService.bindOrUnCamera(cameraIds,user.getId());
  76. CameraAppVo responseCamera = new CameraAppVo();
  77. responseCamera.setChildName(camera.getChildName());
  78. responseCamera.setUsedSpace(BigInteger.valueOf(cameraDetail.getUsedSpace()));
  79. responseCamera.setTotalSpace(BigInteger.valueOf(cameraDetail.getTotalSpace()));
  80. responseCamera.setUsedSpaceStr(FileSizeUtil.formatFileSize(cameraDetail.getUsedSpace()));
  81. responseCamera.setTotalSpaceStr(FileSizeUtil.formatFileSize(cameraDetail.getTotalSpace()));
  82. return responseCamera;
  83. }
  84. public void unbindCamera(String userName, String childName) {
  85. User user = userService.getByUserName(userName);
  86. if(user == null){
  87. throw new BusinessException(AppConstant.FAILURE_CODE_4007, AppConstant.FAILURE_MSG_4007);
  88. }
  89. Camera camera = cameraService.getByChildName(childName);
  90. if(camera == null){
  91. throw new BusinessException(AppConstant.FAILURE_CODE_4010, AppConstant.FAILURE_MSG_4010);
  92. }
  93. CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
  94. if(cameraDetail == null){
  95. throw new BusinessException(AppConstant.FAILURE_CODE_4010, AppConstant.FAILURE_MSG_4010);
  96. }
  97. if(!user.getId().equals(cameraDetail.getUserId())){
  98. throw new BusinessException(CameraConstant.FAILURE_CODE_6005, CameraConstant.FAILURE_MSG_6005);
  99. }
  100. List<Long> cameraIds = Collections.singletonList(camera.getId());
  101. userIncrementService.unbindCamera(cameraIds); //取消关联用户权益
  102. cameraDetailService.unbindCamera(cameraIds); //取消相机用户关联
  103. sceneProService.bindOrUnCamera(cameraIds,null); //取消关联场景
  104. scenePlusService.bindOrUnCamera(cameraIds,null); //取消关联场景
  105. }
  106. public CameraAppVo getCameraInfo(String childName, String childPassword) {
  107. if(StringUtils.isEmpty(childName) || StringUtils.isEmpty(childPassword)){
  108. throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
  109. }
  110. List<CameraAppVo> cameraAppVos = cameraService.getCameraInfo(childName,childPassword);
  111. if(cameraAppVos.size()<=0){
  112. return null;
  113. }
  114. List<Long> cameraIdList = cameraAppVos.parallelStream().map(CameraAppVo::getId).collect(Collectors.toList());
  115. //场景数量,最后拍摄时间
  116. HashMap<Long, GroupByCount> sceneNumMap = sceneProService.findSceneNumByCameraIds(cameraIdList);
  117. for (CameraAppVo vo : cameraAppVos) {
  118. Long sceneCount = sceneNumMap.get(vo.getId()) == null ? 0L : sceneNumMap.get(vo.getId()).getCount();
  119. vo.setSceneCount(Math.toIntExact(sceneCount));
  120. UserIncrement userIncrementEntity = userIncrementService.getByCameraId(vo.getId());
  121. if(userIncrementEntity != null){
  122. vo.setUserIncrementId(userIncrementEntity.getId());
  123. vo.setIsExpire(userIncrementEntity.getIsExpired());
  124. }
  125. }
  126. return cameraAppVos.get(0);
  127. }
  128. public void uploadUserCameraInfo(String snCode, String cameraVersion, String appVersion) {
  129. Camera cameraEntity = cameraService.getBySnCode(snCode);
  130. if(ObjectUtils.isEmpty(cameraEntity)){
  131. return;
  132. }
  133. cameraDetailService.uploadUserCameraInfo(cameraEntity.getId(),cameraVersion,appVersion);
  134. }
  135. }