package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.fusion.common.PageInfo;
import com.fdkankan.fusion.entity.ScenePlus;
import com.fdkankan.fusion.mapper.IScenePlusMapper;
import com.fdkankan.fusion.request.CaseParam;
import com.fdkankan.fusion.request.DataParam;
import com.fdkankan.fusion.response.DataGroupVo;
import com.fdkankan.fusion.service.IScenePlusService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.ISceneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 场景主表 服务实现类
*
*
* @author
* @since 2023-12-28
*/
@Service
public class ScenePlusServiceImpl extends ServiceImpl implements IScenePlusService {
@Autowired
ISceneService sceneService;
@Override
public ScenePlus getByNum(String sceneNum) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScenePlus::getNum,sceneNum);
return this.getOne(wrapper);
}
@Override
public List groupByCameraId(DataParam param, List cameraIds) {
return getBaseMapper().groupByCameraId(param.getStartTime(),param.getEndTime(),cameraIds);
}
@Override
public List groupByType(DataParam param, List cameraIds) {
return getBaseMapper().groupByType(param.getStartTime(),param.getEndTime(),cameraIds);
}
@Override
public List getByNumList(List numList) {
if(numList == null || numList.isEmpty()){
return new ArrayList<>();
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.in(ScenePlus::getNum,numList);
return this.list(wrapper);
}
@Override
public Page pageList(CaseParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScenePlus::getSceneStatus,1);
wrapper.orderByDesc(ScenePlus::getId);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()),wrapper);
List collect = page.getRecords().stream().map(ScenePlus::getNum).collect(Collectors.toList());
HashMap mappingMap = sceneService.getMappingMap(collect);
for (ScenePlus record : page.getRecords()) {
record.setMapping(mappingMap.get(record.getNum()));
}
return page;
}
}