ScenePlusServiceImpl.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  4. import com.fdkankan.common.constant.UploadFilePath;
  5. import com.fdkankan.common.util.FileUtils;
  6. import com.fdkankan.fyun.oss.UploadToOssUtil;
  7. import com.fdkankan.ucenter.entity.*;
  8. import com.fdkankan.ucenter.mapper.IScenePlusMapper;
  9. import com.fdkankan.ucenter.service.*;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Qualifier;
  13. import org.springframework.stereotype.Service;
  14. import java.io.IOException;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. /**
  18. * <p>
  19. * 场景主表 服务实现类
  20. * </p>
  21. *
  22. * @author
  23. * @since 2022-07-04
  24. */
  25. @Service
  26. public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
  27. @Autowired
  28. private IScenePlusExtService scenePlusExtService;
  29. @Autowired
  30. private ISceneEditInfoService sceneEditInfoService;
  31. @Autowired
  32. private ISceneEditInfoExtService sceneEditInfoExtService;
  33. @Autowired
  34. private ISceneEditControlsService sceneEditControlsService;
  35. @Autowired
  36. private ICameraDetailService cameraDetailService;
  37. @Autowired
  38. private ISceneCopyLogService sceneCopyLogService;
  39. @Autowired
  40. UploadToOssUtil uploadToOssUtil;
  41. @Autowired
  42. ISceneProService sceneProService;
  43. @Override
  44. public Long getCountByUserId(Long userId, List<Integer> sceneSourceList) {
  45. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  46. wrapper.eq(ScenePlus::getUserId, userId);
  47. wrapper.in(ScenePlus::getSceneSource, sceneSourceList);
  48. return this.count(wrapper);
  49. }
  50. @Override
  51. public Long getCountByUserId(Long userId, Integer cameraType) {
  52. return this.getBaseMapper().getCountByUserId(userId,cameraType);
  53. }
  54. @Override
  55. public List<ScenePlus> getListByCameraId(Long cameraId) {
  56. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  57. wrapper.eq(ScenePlus::getCameraId,cameraId);
  58. return this.list(wrapper);
  59. }
  60. @Override
  61. public void bindOrUnCamera(List<Long> cameraIds, Long userId) {
  62. LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
  63. wrapper.set(ScenePlus::getUserId,userId)
  64. .in(ScenePlus::getCameraId,cameraIds);
  65. this.update(wrapper);
  66. }
  67. @Override
  68. public List<ScenePlus> getListByCameraIds(List<Long> cameraIds) {
  69. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  70. wrapper.in(ScenePlus::getCameraId,cameraIds);
  71. return this.list(wrapper);
  72. }
  73. @Override
  74. public List<ScenePlus> getListByNums(List<String> numList) {
  75. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  76. wrapper.in(ScenePlus::getNum,numList);
  77. return this.list(wrapper);
  78. }
  79. @Override
  80. public HashMap<Long, ScenePlus> getMapByIds(List<Long> sceneIds) {
  81. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  82. wrapper.in(ScenePlus::getId,sceneIds);
  83. List<ScenePlus> list = this.list(wrapper);
  84. HashMap<Long,ScenePlus> map = new HashMap<>();
  85. list.forEach(entity -> map.put(entity.getId(),entity));
  86. return map;
  87. }
  88. @Override
  89. public ScenePlus getByNum(String sceneNum) {
  90. LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
  91. wrapper.eq(ScenePlus::getNum,sceneNum);
  92. List<ScenePlus> list = this.list(wrapper);
  93. if(list!=null && list.size() >0){
  94. return list.get(0);
  95. }
  96. return null;
  97. }
  98. @Override
  99. public void copyV4Scene(ScenePlus scenePlus,String newNum, CameraDetail cameraDetail) throws Exception {
  100. String num = scenePlus.getNum();
  101. Long plusId = scenePlus.getId();
  102. scenePlus.setSceneStatus(0);
  103. scenePlus.setNum(newNum);
  104. scenePlus.setId(null);
  105. scenePlus.setTitle(scenePlus.getTitle().concat("(copy)"));
  106. this.save(scenePlus);
  107. ScenePlusExt plusExt = scenePlusExtService.getByPlusId(plusId);
  108. String videos ;
  109. if(plusExt.getVideos().contains("scene_view_data")){
  110. videos = plusExt.getVideos().replace(num,newNum);
  111. }else {
  112. videos = plusExt.getVideos().replaceAll("https://4dkk.4dage.com/data/data"+num, "https://4dkk.4dage.com/scene_view_data/"+newNum+"/data");
  113. }
  114. plusExt.setId(null);
  115. plusExt.setPlusId(scenePlus.getId());
  116. plusExt.setWebSite(plusExt.getWebSite().replace(num,newNum));
  117. plusExt.setThumb(plusExt.getThumb().replace(num,newNum));
  118. plusExt.setVideos(videos);
  119. plusExt.setViewCount(0);
  120. String newDataSource = sceneProService.setDataSource(plusExt.getDataSource(), scenePlus.getSceneSource());
  121. plusExt.setDataSource(newDataSource);
  122. scenePlusExtService.save(plusExt);
  123. //保存复制日志
  124. sceneCopyLogService.saveByNum(num,newNum,scenePlus.getUserId());
  125. //复制完成更新相机容量
  126. cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + plusExt.getSpace());
  127. cameraDetailService.updateById(cameraDetail);
  128. SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(plusId);
  129. Long sceneEditInfoId = sceneEditInfo.getId();
  130. sceneEditInfo.setId(null);
  131. sceneEditInfo.setScenePlusId(scenePlus.getId());
  132. sceneEditInfo.setTitle(scenePlus.getTitle());
  133. sceneEditInfoService.save(sceneEditInfo);
  134. SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);
  135. sceneEditInfoExt.setId(null);
  136. sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
  137. sceneEditInfoExt.setScenePlusId(scenePlus.getId());
  138. sceneEditInfoExtService.save(sceneEditInfoExt);
  139. SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfoId);
  140. sceneEditControls.setId(null);
  141. sceneEditControls.setEditInfoId(sceneEditInfo.getId());
  142. sceneEditControlsService.save(sceneEditControls);
  143. sceneProService.setQrCode("V3",newNum);
  144. sceneProService.copyOssSource("v4",num,newNum);
  145. sceneProService.copyLocalSource(num,newNum);
  146. sceneProService.updateSceneJson("v4",plusExt.getVideos(),newNum,scenePlus.getTitle(),plusExt.getWebSite(),plusExt.getThumb(),scenePlus.getId());
  147. scenePlus.setSceneStatus(-2);
  148. this.updateById(scenePlus);
  149. }
  150. }