package com.huimv.admin.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huimv.admin.common.utils.Result; import com.huimv.admin.common.utils.ResultCode; import com.huimv.admin.common.utils.ResultUtil; import com.huimv.admin.entity.CameraArea; import com.huimv.admin.entity.CameraBase; import com.huimv.admin.entity.CameraBrand; import com.huimv.admin.entity.hkwsdto.CameraDto1; import com.huimv.admin.entity.vo.CameraListVo; import com.huimv.admin.entity.vo.CameraListsVo; import com.huimv.admin.entity.vo.CameraVo; import com.huimv.admin.mapper.CameraAreaMapper; import com.huimv.admin.mapper.CameraBaseMapper; import com.huimv.admin.mapper.CameraBrandMapper; import com.huimv.admin.service.ICameraBaseService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author author * @since 2023-02-16 */ @Service public class CameraBaseServiceImpl extends ServiceImpl implements ICameraBaseService { @Autowired private CameraAreaMapper cameraAreaMapper; @Autowired private CameraBrandMapper cameraBrandMapper; @Override public Result listPage(CameraListVo cameraListVo) { Integer current = cameraListVo.getCurrent(); String strchStr = cameraListVo.getStrchStr(); Integer size = cameraListVo.getSize(); Integer areaId = cameraListVo.getAreaId(); Integer sort = cameraListVo.getSort(); Integer farmId = cameraListVo.getFarmId(); Integer onLineStatus = cameraListVo.getOnLineStatus(); QueryWrapper wrapper = new QueryWrapper<>(); if (null == current ) { current =1; } if (null ==size) { size =10; } if (farmId != null) { wrapper.eq("farm_id", farmId); } if (areaId != null) { wrapper.eq("area_id", areaId); } if (onLineStatus != null) { wrapper.eq("is_online", onLineStatus); } if (StringUtils.isNotBlank(strchStr)) { wrapper.and(i -> i.like("camera_name", strchStr)); } if (sort == null) { wrapper.orderByDesc("id"); } else if (sort == 1) { wrapper.orderByDesc("sort"); } else { wrapper.orderByAsc("sort"); } wrapper.orderByDesc("id"); Page page = page(new Page(current, size), wrapper); return new Result(ResultCode.SUCCESS, page); } @Override public Result getCameraDetails(CameraListsVo cameraListsVo) { List cameraIds = cameraListsVo.getCameraIds(); CameraBrand cameraBrand = cameraBrandMapper.selectById(18); List list = new ArrayList(); for (Integer cameraId : cameraIds) { CameraBase cameraBase = this.getById(cameraId); String regionUuid = cameraBase.getRegionUuid(); CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper().eq("region_uuid", regionUuid)); // http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8 String hls ="http://"+cameraArea.getPublicUrl()+cameraBrand.getStreamType()+cameraBase.getCameraUuid()+"/"+ cameraBrand.getMainStream()+"/"+"live.m3u8"; CameraVo cameraVo = new CameraVo(); cameraVo.setHlsUrl(hls); cameraVo.setId(cameraBase.getId()); cameraVo.setCameraName(cameraBase.getCameraName()); list.add(cameraVo); } return ResultUtil.list(list); } @Override public void sync(Map params, List list) { Integer farmId = params.get("farmId"); //先删除 this.remove(new QueryWrapper().eq("farm_id",farmId)); System.out.println(list.size()); // for (CameraDto1 cameraDto1 : list) { CameraBase cameraBase = new CameraBase(); BeanUtil.copyProperties(cameraDto1,cameraBase); CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper().eq("region_uuid", cameraDto1.getRegionUuid())); if (ObjectUtil.isNotEmpty(cameraArea)){ cameraBase.setAreaName(cameraArea.getAreaName()); } cameraBase.setBrandName("海康威视"); cameraBase.setFarmId(farmId); this.save(cameraBase); } } //更新摄像头状态 @Override public void updateCameraOnlin(List list) { for (CameraDto1 cameraDto1 : list) { String cameraUuid = cameraDto1.getCameraUuid(); CameraBase one = this.getOne(new QueryWrapper().eq("camera_uuid", cameraUuid)); one.setOnLineStatus(1 ==cameraDto1.getOnLineStatus()); } } }