package com.fdkankan.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.manage.common.PageInfo;
import com.fdkankan.manage.entity.Scene;
import com.fdkankan.manage.mapper.ISceneMapper;
import com.fdkankan.manage.service.ISceneService;
import com.fdkankan.manage.util.SceneStatusUtil;
import com.fdkankan.manage.vo.request.SceneParam;
import com.fdkankan.manage.vo.response.GroupByCount;
import com.fdkankan.manage.vo.response.SceneVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
/**
*
* 场景表 服务实现类
*
*
* @author
* @since 2022-06-16
*/
@Service
public class SceneServiceImpl extends ServiceImpl implements ISceneService {
@Override
public void unbindCamera(Long cameraId) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.set(Scene::getUserId,null)
.eq(Scene::getCameraId,cameraId);
this.update(wrapper);
}
@Override
public HashMap getCountGroupByUserId(List userIdList) {
HashMap map = new HashMap<>();
List result = this.getBaseMapper().getCountGroupByUserId(userIdList);
result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
return map;
}
@Override
public HashMap getCountGroupByCameraId(List cameraIds) {
HashMap map = new HashMap<>();
List result = this.getBaseMapper().getCountGroupByCameraId(cameraIds);
result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
return map;
}
@Override
public PageInfo pageList(SceneParam param) {
Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(), param.getPageSize()), param);
for (SceneVo record : page.getRecords()) {
record.setStatusString(SceneStatusUtil.getStatusString(record));
if(StringUtils.isNotBlank(record.getCopyTime())){
record.setIsCopy(true);
}
}
return PageInfo.PageInfo(page);
}
@Override
public Scene getByNum(String num) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Scene::getNum,num);
List list = this.list(wrapper);
if(list!=null && list.size() >0){
return list.get(0);
}
return null;
}
}