1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package com.fdkankan.ucenter.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.common.response.PageInfo;
- import com.fdkankan.ucenter.constant.LoginConstant;
- import com.fdkankan.ucenter.entity.*;
- import com.fdkankan.ucenter.service.*;
- import com.fdkankan.ucenter.vo.request.SceneParam;
- import com.fdkankan.ucenter.vo.response.ScenePlusVo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.*;
- import java.util.stream.Collectors;
- @Service
- public class FusionService implements IFusionService {
- @Autowired
- IScenePlusService scenePlusService;
- @Autowired
- IScenePlusExtService scenePlusExtService;
- @Autowired
- IUserService userService;
- @Autowired
- ICameraService cameraService;
- @Autowired
- IScenePlusVoidService scenePlusVoidService;
- @Override
- public PageInfo scenePageList(SceneParam param, String token) {
- User user = userService.getByToken(token);
- if(user == null){
- throw new BusinessException(LoginConstant.FAILURE_CODE_3015,LoginConstant.FAILURE_MSG_3015);
- }
- List<Integer> resourceList = new ArrayList<>();
- if(param.getType()!= null && param.getType() == 0){ //看看
- resourceList = Arrays.asList(1,2,12,13,14);
- }else if(param.getType()!= null && param.getType() == 1){ //看见
- resourceList = Collections.singletonList(3);
- }
- LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlus::getUserId,user.getId());
- if(param.getStatus() !=null && param.getStatus() == 2){
- wrapper.eq(ScenePlus::getSceneStatus,-2); //计算成功
- }
- if(resourceList.size() >0){
- wrapper.in(ScenePlus::getSceneSource,resourceList);
- }
- if(StringUtils.isNotBlank(param.getSceneName())){
- wrapper.like(ScenePlus::getTitle,param.getSceneName());
- }
- if(param.getHaveVoid() !=null && param.getHaveVoid() == 0 && param.getNumList()!= null && param.getNumList().size() >0){
- wrapper.in(ScenePlus::getNum, param.getNumList());
- }
- if(param.getHaveVoid() !=null && param.getHaveVoid() == 1 && param.getNumList()!= null && param.getNumList().size() >0){
- wrapper.notIn(ScenePlus::getNum, param.getNumList());
- }
- wrapper.orderByDesc(ScenePlus::getCreateTime);
- Page<ScenePlus> page = scenePlusService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
- if(page.getTotal() <=0){
- return PageInfo.PageInfo(page);
- }
- List<Long> plusIds = page.getRecords().parallelStream().map(ScenePlus::getId).collect(Collectors.toList());
- List<Long> cameraIds = page.getRecords().parallelStream().map(ScenePlus::getCameraId).collect(Collectors.toList());
- List<ScenePlusVo> list = new ArrayList<>();
- HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
- HashMap<Long, ScenePlusVoid> voidMap = scenePlusVoidService.getByPlusIds(plusIds);
- HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
- for (ScenePlus record : page.getRecords()) {
- ScenePlusVo scenePlusVo = new ScenePlusVo();
- BeanUtils.copyProperties(record,scenePlusVo);
- String snCode = cameraMap.get(scenePlusVo.getCameraId()) == null ? "" :cameraMap.get(scenePlusVo.getCameraId()).getSnCode();
- scenePlusVo.setPlusExt(extMap.get(record.getId()));
- scenePlusVo.setSnCode(snCode);
- scenePlusVo.setSceneType(param.getType());
- scenePlusVo.setPlusVoid(voidMap.get(record.getId()));
- list.add(scenePlusVo);
- }
- Page<ScenePlusVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
- pageVo.setRecords(list);
- pageVo.setTotal(page.getTotal());
- return PageInfo.PageInfo(pageVo);
- }
- }
|