package com.fdkankan.contro.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.common.constant.CommonStatus; import com.fdkankan.common.constant.PayStatus; import com.fdkankan.common.constant.SceneStatus; import com.fdkankan.common.constant.SpaceType; import com.fdkankan.contro.entity.ScenePro; import com.fdkankan.contro.mapper.ISceneProMapper; import com.fdkankan.contro.service.ISceneProService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; /** *

* pro场景表 服务实现类 *

* * @author dengsixing * @since 2021-12-23 */ @Slf4j @Service public class SceneProServiceImpl extends ServiceImpl implements ISceneProService { @Override public ScenePro getByNum(String num) { return this.getOne(new LambdaQueryWrapper().eq(ScenePro::getNum, num)); } @Override public Long sumUsedSpaceByCameraId(Long cameraId, String spaceTypeStr) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(ScenePro::getCameraId, cameraId) .in(ScenePro::getStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()) .eq(ScenePro::getIsUpgrade, CommonStatus.NO.code()); SpaceType spaceType = SpaceType.get(spaceTypeStr); switch (spaceType){ case GB: wrapper.select(ScenePro::getSpace); List list = this.list(wrapper); if(CollUtil.isEmpty(list)){ return 0L; } return list.stream().mapToLong(pro -> { Long space = pro.getSpace(); return Objects.isNull(space) ? 0L : space; }).sum(); case SP: wrapper.eq(ScenePro::getPayStatus, PayStatus.PAY.code()); return this.count(wrapper); } return 0L; } }