SceneProServiceImpl.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.fdkankan.contro.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.fdkankan.common.constant.CommonStatus;
  6. import com.fdkankan.common.constant.PayStatus;
  7. import com.fdkankan.common.constant.SceneStatus;
  8. import com.fdkankan.common.constant.SpaceType;
  9. import com.fdkankan.contro.entity.ScenePro;
  10. import com.fdkankan.contro.mapper.ISceneProMapper;
  11. import com.fdkankan.contro.service.ISceneProService;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.stereotype.Service;
  14. import java.util.List;
  15. import java.util.Objects;
  16. /**
  17. * <p>
  18. * pro场景表 服务实现类
  19. * </p>
  20. *
  21. * @author dengsixing
  22. * @since 2021-12-23
  23. */
  24. @Slf4j
  25. @Service
  26. public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
  27. @Override
  28. public ScenePro getByNum(String num) {
  29. return this.getOne(new LambdaQueryWrapper<ScenePro>().eq(ScenePro::getNum, num));
  30. }
  31. @Override
  32. public Long sumUsedSpaceByCameraId(Long cameraId, String spaceTypeStr) {
  33. LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<ScenePro>()
  34. .eq(ScenePro::getCameraId, cameraId)
  35. .in(ScenePro::getStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
  36. .eq(ScenePro::getIsUpgrade, CommonStatus.NO.code());
  37. SpaceType spaceType = SpaceType.get(spaceTypeStr);
  38. switch (spaceType){
  39. case GB:
  40. wrapper.select(ScenePro::getSpace);
  41. List<ScenePro> list = this.list(wrapper);
  42. if(CollUtil.isEmpty(list)){
  43. return 0L;
  44. }
  45. return list.stream().mapToLong(pro -> {
  46. Long space = pro.getSpace();
  47. return Objects.isNull(space) ? 0L : space;
  48. }).sum();
  49. case SP:
  50. wrapper.eq(ScenePro::getPayStatus, PayStatus.PAY.code());
  51. return this.count(wrapper);
  52. }
  53. return 0L;
  54. }
  55. }