| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- package com.huimv.admin.service.impl;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.RandomUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- 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.entity.CameraBase;
- import com.huimv.admin.entity.CameraBrand;
- 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;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author author
- * @since 2023-02-16
- */
- @Service
- public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraBase> implements ICameraBaseService {
- @Autowired
- private CameraBrandMapper cameraBrandMapper;
- @Autowired
- private CameraAreaMapper cameraAreaMapper;
- @Override
- public Result listPage(CameraListVo cameraListVo) {
- Integer current = cameraListVo.getCurrent();
- String strchStr = cameraListVo.getStrchStr();
- Integer size = cameraListVo.getSize();
- Integer areaId = cameraListVo.getAreaId();
- Integer brandId = cameraListVo.getBrandId();
- Integer sort = cameraListVo.getSort();
- Integer farmId = cameraListVo.getFarmId();
- Integer isOnline = cameraListVo.getIsOnline();
- QueryWrapper<CameraBase> wrapper = new QueryWrapper<>();
- if (farmId != null) {
- wrapper.eq("farm_id", farmId);
- }
- if (areaId != null) {
- wrapper.eq("area_id", areaId);
- }
- if (brandId != null) {
- wrapper.eq("brand_id", brandId);
- }
- if (isOnline != null) {
- wrapper.eq("is_online", isOnline);
- }
- if (StringUtils.isNotBlank(strchStr)) {
- wrapper.and(i -> i.like("camera_name", strchStr)
- .or().like("camera_ip", strchStr));
- }
- if (sort == null) {
- wrapper.orderByDesc("id");
- } else if (sort == 1) {
- wrapper.orderByDesc("sort");
- } else {
- wrapper.orderByAsc("sort");
- }
- wrapper.orderByDesc("id");
- return new Result(ResultCode.SUCCESS, page(new Page<>(current, size), wrapper));
- }
- @Override
- public List getCameraDetails(CameraListsVo cameraListsVo) {
- List<Integer> cameraIds = cameraListsVo.getCameraIds();
- CameraListVo cameraListVo = new CameraListsVo();
- cameraListVo.setCurrent(1);
- cameraListVo.setSize(10000);
- cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
- cameraListVo.setAreaId(cameraListsVo.getAreaId());
- cameraListVo.setBrandId(cameraListsVo.getBrandId());
- cameraListVo.setSort(cameraListsVo.getSort());
- if (cameraIds == null || cameraIds.size() == 0){
- return null;
- }
- List cameraDetailsList = new ArrayList();
- IPage<CameraBase> page = (IPage<CameraBase>)this.listPage(cameraListVo).getData();
- List<CameraBase> list = page.getRecords();
- int i = 0;
- final String farmAppPort = "8081";
- final String farmVideoApp = "/appleVideo/play?";
- final String hlsMediaPort= "85";
- for (CameraBase camera : list) {
- for (Integer cameraId : cameraIds) {
- if (cameraId.equals( camera.getId())){
- String cameraAccount = camera.getAccount();
- String cameraPassword = camera.getPassword();
- String camerIp = camera.getCameraIp();
- String cameraName = camera.getCameraName();
- Integer areaId = camera.getAreaId();
- String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
- String rtsp ;
- CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
- Integer type = cameraBrand.getStreamType();
- if (type == 0){
- rtsp = cameraBrand.getMainStream();
- }else {
- rtsp = cameraBrand.getAssistStream();
- }
- CameraVo cameraVo= new CameraVo();
- cameraVo.setId(camera.getId());
- cameraVo.setAreaId(areaId);
- cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- // cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
- //http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8
- // cameraVo.setRtspUrl("http://" + ip + ":" + port + "/mag/hls/" + sysKey +"/1/live.m3u8");
- cameraVo.setRtspUrl("http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8");
- cameraVo.setCameraName(cameraName);
- cameraVo.setHttpUrl(handleHlsHttpUrl(url,cameraAccount,cameraPassword,camerIp,farmAppPort,farmVideoApp,hlsMediaPort));
- if (i > 0){
- cameraVo.setLastId(list.get(i-1).getId());
- }
- if (i < list.size()-1 ){
- cameraVo.setNextId(list.get(i+1).getId());
- }
- cameraDetailsList.add(cameraVo);
- }
- }
- i++;
- }
- return cameraDetailsList;
- }
- //构造HlsHttp地址
- private String handleHlsHttpUrl(String url, String cameraAccount, String cameraPassword, String camerIp, String farmAppPort, String farmVideoApp, String hlsMediaPort) {
- url = url.substring(0,url.indexOf(":"));
- url="http://"+url;
- //return url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&name="+"&dt=3000&targetUrl="+url+":"+hlsMediaPort;
- return url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&dt=3000&targetUrl="+url+":"+hlsMediaPort;
- }
- // @Override
- public List getCameraDetails_yu(CameraListsVo cameraListsVo) {
- List<Integer> cameraIds = cameraListsVo.getCameraIds();
- CameraListVo cameraListVo = new CameraListsVo();
- cameraListVo.setCurrent(1);
- cameraListVo.setSize(10000);
- cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
- cameraListVo.setAreaId(cameraListsVo.getAreaId());
- cameraListVo.setBrandId(cameraListsVo.getBrandId());
- cameraListVo.setSort(cameraListsVo.getSort());
- if (cameraIds == null || cameraIds.size() == 0) {
- return null;
- }
- List cameraDetailsList = new ArrayList();
- IPage<CameraBase> page = (IPage<CameraBase>) this.listPage(cameraListVo).getData();
- List<CameraBase> list = page.getRecords();
- int i = 0;
- for (CameraBase camera : list) {
- for (Integer cameraId : cameraIds) {
- if (cameraId.equals(camera.getId())) {
- String cameraAccount = camera.getAccount();
- String cameraPassword = camera.getPassword();
- String camerIp = camera.getCameraIp();
- String cameraName = camera.getCameraName();
- Integer areaId = camera.getAreaId();
- String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
- String rtsp;
- CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
- Integer type = cameraBrand.getStreamType();
- if (type == 0) {
- rtsp = cameraBrand.getMainStream();
- } else {
- rtsp = cameraBrand.getAssistStream();
- }
- CameraVo cameraVo = new CameraVo();
- cameraVo.setAreaId(areaId);
- cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
- cameraVo.setCameraName(cameraName);
- if (i > 0) {
- cameraVo.setLastId(list.get(i - 1).getId());
- }
- if (i < list.size() - 1) {
- cameraVo.setNextId(list.get(i + 1).getId());
- }
- cameraDetailsList.add(cameraVo);
- }
- }
- i++;
- }
- return cameraDetailsList;
- }
- @Override
- public Result updateStatus(Integer id) {
- CameraBase byId = this.getById(id);
- if (byId.getRunStatus()) {
- byId.setRunStatus(false);
- this.updateById(byId);
- return new Result(10000, "已停用", true);
- } else {
- byId.setRunStatus(true);
- this.updateById(byId);
- return new Result(10000, "已启用", true);
- }
- }
- @Override
- public Result add(CameraBase camera) {
- Integer areaId = camera.getAreaId();
- Integer brandId = camera.getBrandId();
- int brandName = this.count(new QueryWrapper<CameraBase>().eq("camera_name", camera.getCameraName()).eq("farm_id", camera.getFarmId()));
- if (brandName > 0) {
- return new Result(10001, "摄像头名称重复", false);
- }
- if (areaId != null) {
- camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
- }
- if (brandId != null) {
- camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
- }
- this.save(camera);
- return new Result(10000, "添加成功", true);
- }
- @Override
- public Result updates(CameraBase camera) {
- Integer areaId = camera.getAreaId();
- Integer brandId = camera.getBrandId();
- this.updateById(camera);
- int brandName = this.count(new QueryWrapper<CameraBase>().eq("camera_name", camera.getCameraName()));
- if (brandName > 1) {
- return new Result(10001, "摄像头名称重复", false);
- }
- if (areaId != null) {
- camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
- }
- if (brandId != null) {
- camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
- }
- this.updateById(camera);
- return new Result(10000, "修改成功", true);
- }
- @Override
- public CameraVo getCameraDetailsByRoomId(Integer roomId) {
- CameraBase camera = this.getOne(new QueryWrapper<CameraBase>().eq("room_id", roomId));
- return getCameraVo(camera);
- }
- // @Override
- // public Result initCamera(Integer farmId, Integer userId) {
- // BaseScreenCameraAccount cameraAccount = cameraAccountMapper.selectOne(new QueryWrapper<BaseScreenCameraAccount>().eq("farm_id", farmId).eq("account_id", userId));
- // Integer cameraId;
- // if (ObjectUtil.isEmpty(cameraAccount)) {
- // cameraId = this.getOne(new QueryWrapper<Camera>().eq("run_status", 1).eq("farm_id", farmId).last("limit 1")).getId();
- // } else {
- // cameraId = cameraAccount.getCameraId();
- // }
- //
- //
- // Camera camera = this.getById(cameraId);
- // if (!camera.getRunStatus()) {
- // return new Result(10001, "该摄像头已经被禁用", false);
- // }
- //
- // return new Result(ResultCode.SUCCESS, getCameraVo(camera));
- // }
- @Override
- public Result listScreenCamera(Integer farmId) {
- List<CameraBase> cameras = this.list(new QueryWrapper<CameraBase>().eq("farm_id", farmId));
- List list = new ArrayList();
- for (int i = 0; i < 6; i++) {
- list.add(getCameraVo(cameras.get(RandomUtil.randomInt(0, cameras.size()))));
- }
- return new Result(ResultCode.SUCCESS, list);
- }
- // @Override
- // public Result screenCamera(Integer farmId) {
- //
- // BaseRoom baseRoom = baseRoomMapper.selectOne(new QueryWrapper<BaseRoom>().eq("farm_id", farmId).last("limit 1"));
- // Integer roomId;
- // if (ObjectUtil.isNotEmpty(baseRoom)) {
- //
- // roomId = baseRoom.getId();
- // } else {
- // return new Result(ResultCode.SUCCESS, null);
- // }
- // Camera room_id = this.getOne(new QueryWrapper<Camera>().eq("room_id", roomId));
- // CameraVo cameraVo = getCameraVo(room_id);
- //
- // return new Result(ResultCode.SUCCESS, cameraVo);
- // }
- @Override
- public List getCameraDetails2(CameraListsVo cameraListsVo) {
- List<Integer> cameraIds = cameraListsVo.getCameraIds();
- CameraListVo cameraListVo = new CameraListsVo();
- cameraListVo.setCurrent(1);
- cameraListVo.setSize(10000);
- cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
- cameraListVo.setAreaId(cameraListsVo.getAreaId());
- cameraListVo.setBrandId(cameraListsVo.getBrandId());
- cameraListVo.setSort(cameraListsVo.getSort());
- if (cameraIds == null || cameraIds.size() == 0){
- return null;
- }
- List cameraDetailsList = new ArrayList();
- IPage<CameraBase> page = (IPage<CameraBase>)this.listPage(cameraListVo).getData();
- List<CameraBase> list = page.getRecords();
- int i = 0;
- final String farmAppPort = "8081";
- final String farmVideoApp = "/appleVideo/play?";
- final String hlsMediaPort= "85";
- for (CameraBase camera : list) {
- for (Integer cameraId : cameraIds) {
- if (cameraId.equals( camera.getId())){
- String cameraAccount = camera.getAccount();
- String cameraPassword = camera.getPassword();
- String camerIp = camera.getCameraIp();
- String cameraName = camera.getCameraName();
- Integer areaId = camera.getAreaId();
- String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
- url = url.substring(0,url.indexOf(":"));
- url="http://"+url;
- CameraVo cameraVo= new CameraVo();
- cameraVo.setAreaId(areaId);
- // cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- // cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
- //示例
- // cameraVo.setHttpUrl("http://183.249.204.153:8081/appleVideo/play?url=admin:hmkj6688@192.168.1.108&name=101&dt=3000&targetUrl=http://183.249.204.153:85");
- cameraVo.setHttpUrl(url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&name="+"&dt=3000&targetUrl="+url+":"+hlsMediaPort);
- cameraVo.setCameraName(cameraName);
- if (i > 0){
- cameraVo.setLastId(list.get(i-1).getId());
- }
- if (i < list.size()-1 ){
- cameraVo.setNextId(list.get(i+1).getId());
- }
- cameraDetailsList.add(cameraVo);
- }
- }
- i++;
- }
- return cameraDetailsList;
- }
- @Override
- public List getByAreaId(Integer areaId) {
- return null;
- }
- public CameraVo getCameraVo(CameraBase camera) {
- String cameraAccount = camera.getAccount();
- String cameraPassword = camera.getPassword();
- String camerIp = camera.getCameraIp();
- String cameraName = camera.getCameraName();
- Integer areaId = camera.getAreaId();
- String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
- String rtsp;
- CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
- Integer type = cameraBrand.getStreamType();
- if (type == 0) {
- rtsp = cameraBrand.getMainStream();
- } else {
- rtsp = cameraBrand.getAssistStream();
- }
- CameraVo cameraVo = new CameraVo();
- cameraVo.setAreaId(areaId);
- if (camera.getId() == 767){
- cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + "/cam/realmonitor?channel=2&subtype=0");
- }else {
- cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
- }
- // cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
- // cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
- cameraVo.setCameraName(cameraName);
- return cameraVo;
- }
- }
|