123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- package com.fdkankan.manage_jp.service.impl;
- import cn.hutool.core.io.FileUtil;
- import cn.hutool.core.thread.ThreadUtil;
- import cn.hutool.core.util.StrUtil;
- import cn.hutool.json.JSONUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.fdkankan.common.constant.SceneVersionType;
- import com.fdkankan.common.util.FileUtils;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.manage_jp.common.OssPath;
- import com.fdkankan.manage_jp.common.ResultCode;
- import com.fdkankan.manage_jp.entity.*;
- import com.fdkankan.manage_jp.exception.BusinessException;
- import com.fdkankan.manage_jp.httpClient.service.LaserService;
- import com.fdkankan.manage_jp.mapper.IScenePlusMapper;
- import com.fdkankan.manage_jp.service.*;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.manage_jp.util.SceneResourcePath;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.bytedeco.javacpp.presets.opencv_core;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- import java.io.File;
- import java.util.List;
- import java.util.Objects;
- import java.util.concurrent.CompletableFuture;
- import java.util.concurrent.ExecutorService;
- /**
- * <p>
- * 场景主表 服务实现类
- * </p>
- *
- * @author
- * @since 2022-12-30
- */
- @Service
- @Slf4j
- public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
- @Autowired
- IScene3dNumService scene3dNumService;
- @Autowired
- IScenePlusExtService scenePlusExtService;
- @Autowired
- ISceneEditInfoService sceneEditInfoService;
- @Autowired
- ISceneEditInfoExtService sceneEditInfoExtService;
- @Autowired
- ISceneEditControlsService sceneEditControlsService;
- @Autowired
- FYunFileServiceInterface fYunFileServiceInterface;
- @Autowired
- SceneCommonService sceneCommonService;
- @Autowired
- ISurveillanceService surveillanceService;
- @Autowired
- LaserService laserService;
- @Autowired
- ISceneProService sceneProService;
- @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 unbind(Long cameraId,Long userId) {
- LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
- wrapper.eq(ScenePlus::getCameraId,cameraId);
- wrapper.set(ScenePlus::getUserId,userId);
- this.update(wrapper);
- }
- @Override
- public ScenePlus copyScene(ScenePlus scenePlus) {
- if(scenePlus.getSceneStatus() !=-2){
- throw new BusinessException(ResultCode.SCENE_ERROR);
- }
- String oldNum = scenePlus.getNum();
- String newNum = sceneCommonService.getNewNum(oldNum);
- Long plusId = scenePlus.getId();
- String oldSceneName = scenePlus.getTitle();
- ScenePlusExt plusExt = scenePlusExtService.getByPlusId(plusId);
- if(plusExt == null){
- throw new BusinessException(ResultCode.NOT_RECORD);
- }
- scenePlus.setNum(newNum);
- scenePlus.setTitle(scenePlus.getTitle() +"(copy)");
- scenePlus.setSceneStatus(0);
- scenePlus.setId(null);
- this.save(scenePlus);
- try {
- sceneCommonService.v4Async(plusExt,oldNum,newNum,scenePlus,plusId,oldSceneName);
- }catch (Exception e){
- log.error("复制场景失败-sceneNum:{},error:{}",oldNum,e);
- scenePlus.setSceneStatus(-1);
- this.updateById(scenePlus);
- throw new BusinessException(ResultCode.SCENE_DATA_ERROR);
- }
- return scenePlus;
- }
- @Override
- public void updatePayStatus(String num,String version,Integer sceneSource,Integer payStatus,CameraDetail cameraDetail) {
- if(version.equals("v3")){
- LambdaUpdateWrapper<ScenePro> wrapper2 = new LambdaUpdateWrapper<>();
- wrapper2.set(ScenePro::getPayStatus,payStatus);
- wrapper2.eq(ScenePro::getNum,num);
- if(cameraDetail != null){
- wrapper2.set(ScenePro::getCameraId,cameraDetail.getCameraId());
- }
- if(cameraDetail != null){
- wrapper2.set(ScenePro::getUserId,cameraDetail.getUserId());
- }
- sceneProService.update(wrapper2);
- updateOssPayStatus(String.format(OssPath.v3_statusPath,num),payStatus);
- }else if(version.equals("v4")){
- LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
- wrapper.set(ScenePlus::getPayStatus,payStatus);
- wrapper.eq(ScenePlus::getNum,num);
- if(cameraDetail != null){
- wrapper.set(ScenePlus::getCameraId,cameraDetail.getCameraId());
- }
- if(cameraDetail != null){
- wrapper.set(ScenePlus::getUserId,cameraDetail.getUserId());
- }
- this.update(wrapper);
- updateOssPayStatus(String.format(OssPath.v4_statusPath,num),payStatus);
- }
- if(sceneSource == 4 || sceneSource == 5){
- laserService.updateStatus(num,payStatus==1?2:3,cameraDetail);
- }
- }
- /**
- * 修改oss status.json中 payStatus
- */
- public void updateOssPayStatus(String path,Integer payStatus) {
- try {
- if(!fYunFileServiceInterface.fileExist(path)){
- return;
- }
- String data = fYunFileServiceInterface.getFileContent(path);
- if(StringUtils.isBlank(data)){
- return;
- }
- JSONObject jsonObject = JSONObject.parseObject(data);
- jsonObject.put("payStatus",payStatus);
- String json = JSONUtil.toJsonStr(jsonObject);
- FileUtils.writeFile(OssPath.localStatusPath ,json);
- log.info("updateOssStatus--localPath:{},ossPath:{},payStatus:{}",OssPath.localStatusPath,path,payStatus);
- fYunFileServiceInterface.uploadFile(OssPath.localStatusPath,path);
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- FileUtil.del(OssPath.localStatusPath);
- }
- }
- }
|