package com.fdkankan.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fdkankan.common.util.DateUtil;
import com.fdkankan.manage.httpClient.service.LaserService;
import com.fdkankan.manage.entity.*;
import com.fdkankan.manage.mapper.IScenePlusMapper;
import com.fdkankan.manage.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.manage.vo.response.GroupByCount;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
*
* 场景主表 服务实现类
*
*
* @author
* @since 2022-08-02
*/
@Service
public class ScenePlusServiceImpl extends ServiceImpl implements IScenePlusService {
@Autowired
ISceneProService sceneProService;
@Autowired
LaserService laserService;
@Autowired
IScenePlusExtService scenePlusExtService;
@Override
public ScenePlus getByNum(String sceneNum) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScenePlus::getNum,sceneNum);
List list = this.list(wrapper);
if(list!=null && list.size() >0){
return list.get(0);
}
return null;
}
@Override
public void unbindCamera(Long cameraId) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.set(ScenePlus::getUserId,null)
.eq(ScenePlus::getCameraId,cameraId);
this.update(wrapper);
}
@Override
public HashMap getCountGroupByUserId(List userIdList,Integer isObj) {
HashMap map = new HashMap<>();
List result = this.getBaseMapper().getCountGroupByUserId(userIdList,isObj);
result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
return map;
}
@Override
public HashMap getCountGroupByCameraId(ArrayList cameraIds) {
HashMap map = new HashMap<>();
List result = this.getBaseMapper().getCountGroupByCameraId(cameraIds);
result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
return map;
}
@Override
public String getDataSourceByNum(String num) {
ScenePro scenePro = sceneProService.getByNum(num);
if(scenePro != null ){
return scenePro.getDataSource();
}
ScenePlus plus = this.getByNum(num);
if(plus != null){
ScenePlusExt plusExt = scenePlusExtService.getByPlusId(plus.getId());
if(plusExt.getDataSource() != null){
return plusExt.getDataSource();
}
}
return null;
}
}