|
@@ -32,6 +32,7 @@ import com.fdkankan.ucenter.constant.CameraConstant;
|
|
|
import com.fdkankan.ucenter.constant.LoginConstant;
|
|
|
import com.fdkankan.ucenter.entity.*;
|
|
|
import com.fdkankan.ucenter.httpClient.service.LaserService;
|
|
|
+import com.fdkankan.ucenter.httpClient.service.PayService;
|
|
|
import com.fdkankan.ucenter.mapper.ISceneProMapper;
|
|
|
import com.fdkankan.ucenter.mapper.ISceneUpgradeMapper;
|
|
|
import com.fdkankan.ucenter.service.*;
|
|
@@ -264,8 +265,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
List<SimpleSceneVo> sceneVos = voList.stream().sorted(Comparator.comparing(SimpleSceneVo::getCreateTime).reversed()).collect(Collectors.toList());
|
|
|
|
|
|
if(totalSpace == -1){ // 无限容量 全部解封
|
|
|
- List<Long> sceneIds = sceneVos.stream().filter(entity -> entity.getPayStatus() !=1).map(SimpleSceneVo::getId).collect(Collectors.toList());
|
|
|
- lockOrUnLockScenes(sceneIds,1);
|
|
|
+ lockOrUnLockScenes(sceneVos,1,cameraType);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -277,7 +277,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
sceneVos = sceneVos.stream().filter(entity -> entity.getPayStatus() ==1).collect(Collectors.toList());
|
|
|
Long space = getSceneLockedIds(lockedIds, sceneVos, usedSpace - totalSpace,cameraDetail.getUnit());
|
|
|
log.info("lockOrUnLockBySpace---cameraId:{},totalSpace:{},useSpace{},space:{},payStatus:{}", cameraId,totalSpace,usedSpace,space,-2);
|
|
|
- lockOrUnLockScenes(lockedIds,-2,cameraType.getIsLaser());
|
|
|
+ lockOrUnLockScenes(lockedIds,-2,cameraType);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -286,10 +286,16 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
CollectionUtil.reverse(sceneVos);
|
|
|
Long space = getSceneUnLockedIds(lockedIds, sceneVos, totalSpace - usedSpace,cameraDetail.getUnit());
|
|
|
log.info("lockOrUnLockBySpace---cameraId:{},totalSpace:{},useSpace{},space:{},payStatus:{}", cameraId,totalSpace,usedSpace,space,1);
|
|
|
- lockOrUnLockScenes(lockedIds,1,cameraType.getIsLaser());
|
|
|
+ lockOrUnLockScenes(lockedIds,1,cameraType);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void lockOrUnLockScenes(List<SimpleSceneVo> sceneVos, Integer payStatus,CameraType cameraType){
|
|
|
+ List<String> v3NumList = sceneVos.stream().filter(e ->"v3".equals(e.getVersion())).map(SimpleSceneVo::getNum).collect(Collectors.toList());
|
|
|
+ List<String> v4NumList = sceneVos.stream().filter(e ->"v4".equals(e.getVersion())).map(SimpleSceneVo::getNum).collect(Collectors.toList());
|
|
|
+ lockOrUnLockScenes(v3NumList,v4NumList,payStatus,cameraType.getIsLaser());
|
|
|
+ }
|
|
|
+
|
|
|
private Long getSceneUnLockedIds(List<SimpleSceneVo> lockedIds ,List<SimpleSceneVo> list,Long beyondSpace,String unit){
|
|
|
Long space = 0L;
|
|
|
if (list != null && list.size() > 0){
|
|
@@ -328,23 +334,20 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
|
|
|
|
|
|
// payStatus 为 -2 封存,为 1 解封
|
|
|
- public void lockOrUnLockScenes(List<SimpleSceneVo> lockedIds,Integer payStatus,Integer isLaser) {
|
|
|
- if (lockedIds == null || lockedIds.size() == 0){
|
|
|
- return;
|
|
|
- }
|
|
|
- List<String> v3NumList = lockedIds.stream().filter(e ->"v3".equals(e.getVersion())).map(SimpleSceneVo::getNum).collect(Collectors.toList());
|
|
|
- List<String> v4NumList = lockedIds.stream().filter(e ->"v4".equals(e.getVersion())).map(SimpleSceneVo::getNum).collect(Collectors.toList());
|
|
|
+ @Override
|
|
|
+ public void lockOrUnLockScenes( List<String> v3NumList,List<String> v4NumList,Integer payStatus,Integer isLaser) {
|
|
|
+
|
|
|
if(!v3NumList.isEmpty()){
|
|
|
LambdaUpdateWrapper<ScenePro> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
updateWrapper.set(ScenePro::getPayStatus,payStatus)
|
|
|
.eq(ScenePro::getIsUpgrade,0)
|
|
|
- .in(ScenePro::getNum,lockedIds);
|
|
|
+ .in(ScenePro::getNum,v3NumList);
|
|
|
this.update(updateWrapper);
|
|
|
}
|
|
|
if(!v4NumList.isEmpty()){
|
|
|
LambdaUpdateWrapper<ScenePlus> updatePlusWrapper = new LambdaUpdateWrapper<>();
|
|
|
updatePlusWrapper.set(ScenePlus::getPayStatus,payStatus)
|
|
|
- .in(ScenePlus::getNum,lockedIds);
|
|
|
+ .in(ScenePlus::getNum,v4NumList);
|
|
|
scenePlusService.update(updatePlusWrapper);
|
|
|
}
|
|
|
|
|
@@ -352,9 +355,13 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
|
|
|
if(isLaser == 1){
|
|
|
//激光系统相机
|
|
|
- //1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4重算中
|
|
|
- v3NumList.addAll(v4NumList);
|
|
|
- laserService.updateStatus(v3NumList,payStatus== 1 ?2:3);
|
|
|
+ //1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4重算中'
|
|
|
+ List<String> numList = new ArrayList<>();
|
|
|
+ numList.addAll(v3NumList);
|
|
|
+ numList.addAll(v4NumList);
|
|
|
+ if(!numList.isEmpty()){
|
|
|
+ laserService.updateStatus(numList,payStatus== 1 ?2:3);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -751,6 +758,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
scenePro.setStatus(0);
|
|
|
this.save(scenePro);
|
|
|
|
|
|
+ CameraType cameraType = cameraTypeService.getByCameraType(cameraDetail.getType());
|
|
|
+
|
|
|
ExecutorService executor = ThreadUtil.newSingleExecutor();
|
|
|
try {
|
|
|
|
|
@@ -809,7 +818,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
String targetVoice = String.format(SceneResourcePath.voicePath, scenePro.getNum());
|
|
|
this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVoice,targetVoice);
|
|
|
|
|
|
- if(scenePro.getSceneSource() == 4 || scenePro.getSceneSource() == 5){ //深时复制
|
|
|
+ if(cameraType.getIsLaser() == 1){ //深时复制
|
|
|
String laserPath = laserService.copyDataSource(oldDataSource,scenePro.getDataSource());
|
|
|
laserService.copy(oldNum,scenePro.getCameraId(),scenePro.getCreateTime(),newNum,2,laserPath,
|
|
|
oldEditScene.getSceneKey(),null,scenePro.getUserId(),"V3",scenePro.getIsObj(),scenePro.getSceneSource(),scenePro.getCreateTime(),scenePro.getShootCount());
|
|
@@ -819,9 +828,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
|
|
|
sceneCopyLogService.saveByNum(oldNum,newNum,scenePro.getUserId());
|
|
|
|
|
|
- Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail.getCameraId(), scenePro.getSpace());
|
|
|
+ Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail, scenePro.getSpace(),cameraType);
|
|
|
if(!checkSpace){
|
|
|
- this.lockOrUnLockScenes(Arrays.asList(scenePro.getId()),-2);
|
|
|
+ this.lockOrUnLockScenes(Arrays.asList(scenePro.getNum()),new ArrayList<>(),-2,cameraType.getIsLaser());
|
|
|
}
|
|
|
cameraDetailService.addUsedSpace(cameraDetail,scenePro.getSpace());
|
|
|
|