package com.fdkankan.ucenter.service.impl; import com.alibaba.fastjson.JSONObject; 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.fdkankan.ucenter.common.PageInfo; import com.fdkankan.ucenter.entity.Camera; import com.fdkankan.ucenter.entity.Scene; import com.fdkankan.ucenter.mapper.ISceneMapper; import com.fdkankan.ucenter.service.ICameraService; import com.fdkankan.ucenter.service.ISceneService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.ucenter.service.IUserService; import com.fdkankan.ucenter.vo.request.RequestScene; import com.fdkankan.ucenter.vo.request.SceneParam; import com.fdkankan.ucenter.vo.response.SceneVo; 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.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** *

* 场景表 服务实现类 *

* * @author * @since 2022-07-04 */ @Service public class SceneServiceImpl extends ServiceImpl implements ISceneService { @Autowired IUserService userService; @Autowired ICameraService cameraService; @Override public Integer getCountByUserId(Long userId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Scene::getUserId,userId); return Math.toIntExact(this.count(wrapper)); } @Override public void bindOrUnCamera(List cameraIds, Long userId) { if(cameraIds.size() >0){ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.set(Scene::getUserId,userId) .in(Scene::getCameraId,cameraIds); this.update(wrapper); } } @Override public List getListByNums(List numList) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(Scene::getNum,numList); return this.list(wrapper); } @Override public JSONObject pageList(SceneParam param) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Scene::getUserId,param.getUserId()); if(StringUtils.isNotBlank(param.getSceneName())){ wrapper.like(Scene::getSceneName,param.getSceneName()); } Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); Set cameraIds = page.getRecords().stream().map(Scene::getCameraId).collect(Collectors.toSet()); HashMap cameraHashMap = cameraService.getByIds(new ArrayList<>(cameraIds)); List voList = new ArrayList<>(); for (Scene record : page.getRecords()) { SceneVo vo = new SceneVo(); BeanUtils.copyProperties(record,vo); vo.setChildName(cameraHashMap.get(record.getCameraId()).getChildName()); vo.setSnCode(cameraHashMap.get(record.getCameraId()).getSnCode()); voList.add(vo); } Page pageVo = new Page<>(param.getPageNum(),param.getPageSize()); pageVo.setRecords(voList); pageVo.setTotal(page.getTotal()); JSONObject jsonObject = new JSONObject(); jsonObject.put("pageInfo", PageInfo.PageInfo(pageVo)); jsonObject.put("sceneNum",page.getTotal() ); return jsonObject; } @Override public Scene getByNum(String sceneNum) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Scene::getNum,sceneNum); List list = this.list(wrapper); if(list != null && list.size() >0){ return list.get(0); } return null; } @Override public Page getSceneList(RequestScene param) { return this.getBaseMapper().getSceneList(new Page<>(param.getPageNum(),param.getPageSize()),param); } }