|
@@ -1,14 +1,17 @@
|
|
|
package com.fdkankan.contro.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
|
+import com.fdkankan.common.constant.PayStatus;
|
|
|
import com.fdkankan.common.constant.SceneStatus;
|
|
|
import com.fdkankan.common.constant.SpaceType;
|
|
|
import com.fdkankan.contro.entity.CameraDetail;
|
|
|
import com.fdkankan.contro.entity.ScenePlus;
|
|
|
import com.fdkankan.contro.entity.ScenePlusExt;
|
|
|
+import com.fdkankan.contro.entity.ScenePro;
|
|
|
import com.fdkankan.contro.mapper.IScenePlusMapper;
|
|
|
import com.fdkankan.contro.service.ICameraDetailService;
|
|
|
import com.fdkankan.contro.service.IScenePlusExtService;
|
|
@@ -22,6 +25,7 @@ import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -109,4 +113,29 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Long sumUsedSpaceByCameraId(Long cameraId, String spaceTypeStr) {
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<ScenePlus>()
|
|
|
+ .in(ScenePlus::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
|
|
|
+ .eq(ScenePlus::getPayStatus, PayStatus.PAY.code());
|
|
|
+
|
|
|
+ SpaceType spaceType = SpaceType.get(spaceTypeStr);
|
|
|
+ switch (spaceType){
|
|
|
+ case GB:
|
|
|
+ List<ScenePlus> list = this.list(wrapper);
|
|
|
+ if(CollUtil.isEmpty(list)){
|
|
|
+ return 0L;
|
|
|
+ }
|
|
|
+ List<Long> plusIdList = list.stream().map(scenePlus -> scenePlus.getId()).collect(Collectors.toList());
|
|
|
+ List<ScenePlusExt> scenePlusExtList = scenePlusExtService.list(new LambdaQueryWrapper<ScenePlusExt>().in(ScenePlusExt::getPlusId, plusIdList));
|
|
|
+ return scenePlusExtList.stream().mapToLong(pro -> {
|
|
|
+ Long space = pro.getSpace();
|
|
|
+ return Objects.isNull(space) ? 0L : space;
|
|
|
+ }).sum();
|
|
|
+ case SP:
|
|
|
+ return this.count(wrapper);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|