123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- package com.fdkankan.ucenter.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.fdkankan.common.constant.UploadFilePath;
- import com.fdkankan.common.util.FileUtils;
- import com.fdkankan.fyun.oss.UploadToOssUtil;
- import com.fdkankan.ucenter.entity.*;
- import com.fdkankan.ucenter.mapper.IScenePlusMapper;
- import com.fdkankan.ucenter.service.*;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.List;
- /**
- * <p>
- * 场景主表 服务实现类
- * </p>
- *
- * @author
- * @since 2022-07-04
- */
- @Service
- public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
- @Autowired
- private IScenePlusExtService scenePlusExtService;
- @Autowired
- private ISceneEditInfoService sceneEditInfoService;
- @Autowired
- private ISceneEditInfoExtService sceneEditInfoExtService;
- @Autowired
- private ISceneEditControlsService sceneEditControlsService;
- @Autowired
- private ICameraDetailService cameraDetailService;
- @Autowired
- private ISceneCopyLogService sceneCopyLogService;
- @Autowired
- UploadToOssUtil uploadToOssUtil;
- @Autowired
- ISceneProService sceneProService;
- @Override
- public Long getCountByUserId(Long userId, List<Integer> sceneSourceList) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlus::getUserId, userId);
- wrapper.in(ScenePlus::getSceneSource, sceneSourceList);
- return this.count(wrapper);
- }
- @Override
- public Long getCountByUserId(Long userId, Integer cameraType) {
- return this.getBaseMapper().getCountByUserId(userId,cameraType);
- }
- @Override
- public List<ScenePlus> getListByCameraId(Long cameraId) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlus::getCameraId,cameraId);
- return this.list(wrapper);
- }
- @Override
- public void bindOrUnCamera(List<Long> cameraIds, Long userId) {
- LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
- wrapper.set(ScenePlus::getUserId,userId)
- .in(ScenePlus::getCameraId,cameraIds);
- this.update(wrapper);
- }
- @Override
- public List<ScenePlus> getListByCameraIds(List<Long> cameraIds) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(ScenePlus::getCameraId,cameraIds);
- return this.list(wrapper);
- }
- @Override
- public List<ScenePlus> getListByNums(List<String> numList) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(ScenePlus::getNum,numList);
- return this.list(wrapper);
- }
- @Override
- public HashMap<Long, ScenePlus> getMapByIds(List<Long> sceneIds) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(ScenePlus::getId,sceneIds);
- List<ScenePlus> list = this.list(wrapper);
- HashMap<Long,ScenePlus> map = new HashMap<>();
- list.forEach(entity -> map.put(entity.getId(),entity));
- return map;
- }
- @Override
- public ScenePlus getByNum(String sceneNum) {
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlus::getNum,sceneNum);
- List<ScenePlus> list = this.list(wrapper);
- if(list!=null && list.size() >0){
- return list.get(0);
- }
- return null;
- }
- @Override
- public void copyV4Scene(ScenePlus scenePlus,String newNum, CameraDetail cameraDetail) throws Exception {
- String num = scenePlus.getNum();
- Long plusId = scenePlus.getId();
- scenePlus.setSceneStatus(0);
- scenePlus.setNum(newNum);
- scenePlus.setId(null);
- scenePlus.setTitle(scenePlus.getTitle().concat("(copy)"));
- this.save(scenePlus);
- ScenePlusExt plusExt = scenePlusExtService.getByPlusId(plusId);
- String videos ;
- if(plusExt.getVideos().contains("scene_view_data")){
- videos = plusExt.getVideos().replace(num,newNum);
- }else {
- videos = plusExt.getVideos().replaceAll("https://4dkk.4dage.com/data/data"+num, "https://4dkk.4dage.com/scene_view_data/"+newNum+"/data");
- }
- plusExt.setId(null);
- plusExt.setPlusId(scenePlus.getId());
- plusExt.setWebSite(plusExt.getWebSite().replace(num,newNum));
- plusExt.setThumb(plusExt.getThumb().replace(num,newNum));
- plusExt.setVideos(videos);
- plusExt.setViewCount(0);
- String newDataSource = sceneProService.setDataSource(plusExt.getDataSource(), scenePlus.getSceneSource());
- plusExt.setDataSource(newDataSource);
- scenePlusExtService.save(plusExt);
- //保存复制日志
- sceneCopyLogService.saveByNum(num,newNum,scenePlus.getUserId());
- //复制完成更新相机容量
- cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + plusExt.getSpace());
- cameraDetailService.updateById(cameraDetail);
- SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(plusId);
- Long sceneEditInfoId = sceneEditInfo.getId();
- sceneEditInfo.setId(null);
- sceneEditInfo.setScenePlusId(scenePlus.getId());
- sceneEditInfo.setTitle(scenePlus.getTitle());
- sceneEditInfoService.save(sceneEditInfo);
- SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);
- sceneEditInfoExt.setId(null);
- sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
- sceneEditInfoExt.setScenePlusId(scenePlus.getId());
- sceneEditInfoExtService.save(sceneEditInfoExt);
- SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfoId);
- sceneEditControls.setId(null);
- sceneEditControls.setEditInfoId(sceneEditInfo.getId());
- sceneEditControlsService.save(sceneEditControls);
- sceneProService.setQrCode("V3",newNum);
- sceneProService.copyOssSource("v4",num,newNum);
- sceneProService.copyLocalSource(num,newNum);
- sceneProService.updateSceneJson("v4",plusExt.getVideos(),newNum,scenePlus.getTitle(),plusExt.getWebSite(),plusExt.getThumb(),scenePlus.getId());
- scenePlus.setSceneStatus(-2);
- this.updateById(scenePlus);
- }
- }
|