视频预览开发

This commit is contained in:
guanpeng 2025-02-21 19:19:20 +08:00
parent 4d0e7e899d
commit 61a08b8c51
1 changed files with 217 additions and 0 deletions

View File

@ -0,0 +1,217 @@
package com.dkl.large.controller;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dkl.common.core.controller.BaseController;
import com.dkl.large.domain.DklActivity;
import com.dkl.large.domain.DklCameraAnalysis;
import com.dkl.large.service.IDklCameraAnalysisService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.dkl.common.core.domain.AjaxResult;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.soap.Addressing;
import com.dkl.common.core.page.TableDataInfo;
import java.io.BufferedReader;
import java.io.IOException;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/large/cameraAnalysis")
public class DklCameraAnalysisController extends BaseController {
@Autowired
private IDklCameraAnalysisService iDklCameraAnalysisService;
private static final Logger log = LoggerFactory.getLogger(DklCameraAnalysisController.class);
@PostMapping("/eventRcv")
public AjaxResult export(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1. 获取JSON字符串
String jsonStr = getBodyJson(request);
// log.error(jsonStr);
// 解析主JSON
JSONObject root = JSONObject.parseObject(jsonStr);
//获取method 方法名用于标识报文用途
String method = root.getString("method");
JSONObject params = root.getJSONObject("params");
//获取sendTime 事件从接收者如设备接/入框架发出的时间
Date sendtime =convertISOToDateTime( params.getString("sendTime"));
//ability 事件类别
String ability = params.getString("ability");
// 解析事件数组
JSONArray events = params.getJSONArray("events");
for (int i = 0; i < events.size(); i++) {
JSONObject event = events.getJSONObject(i);
// 解析基本字段 事件 Id
String eventId = event.getString("eventId");
//事件源编号物理设备是资源编/
String srcIndex = event.getString("srcIndex");
//事件源类型
String srcType= event.getString("srcType");
//事件类型
String eventType= event.getString("eventType");
//事件状态
String status= event.getString("status");
//脉冲超时时间
String timeout= event.getString("timeout");
//事件发生时间
String happenTime = event.getString("happenTime");
// String happenTimeStr = event.getString("happenTime");
// LocalDateTime happenTime = LocalDateTime.parse(happenTimeStr,
// DateTimeFormatter.ISO_OFFSET_DATE_TIME);
//组件标识
String componentId = event.getString("componentId");
// dataInfo
String datas = event.getString("data");
JSONObject dataInfo = JSONObject.parseObject(datas);
// for (int j = 0; j < dataInfo.size(); j++) {
//点位纬度
String latitude = dataInfo.getString("latitude");
//点位经度
String longitude = dataInfo.getString("longitude");
//算法名称
String baseAlgorithmName = dataInfo.getString("baseAlgorithmName");
//行为分析算法人数统计字段
String regionPeopleNum = dataInfo.getString("regionPeopleNum");
//进区域人口
String enter = dataInfo.getString("enter");
//出区域人口
String exit = dataInfo.getString("exit");
// 输出解析结果
// }
DklCameraAnalysis dklCameraAnalysis = new DklCameraAnalysis();
dklCameraAnalysis.setMethod(method);
dklCameraAnalysis.setSendTime(sendtime);
dklCameraAnalysis.setAbility(ability);
dklCameraAnalysis.setEventId(eventId);
dklCameraAnalysis.setEventType(eventType);
dklCameraAnalysis.setSrcIndex(srcIndex);
dklCameraAnalysis.setSrcType(srcType);
dklCameraAnalysis.setStatus(status);
dklCameraAnalysis.setTimeout(timeout);
dklCameraAnalysis.setHappenTime(happenTime);
dklCameraAnalysis.setComponentId(componentId);
dklCameraAnalysis.setLatitude(latitude);
dklCameraAnalysis.setLongitude(longitude);
dklCameraAnalysis.setBaseAlgorithmName(baseAlgorithmName);
dklCameraAnalysis.setEnter(enter);
dklCameraAnalysis.setExit(exit);
dklCameraAnalysis.setRegionPeopleNum(regionPeopleNum);
iDklCameraAnalysisService.insertDklCameraAnalysis(dklCameraAnalysis);
}
return AjaxResult.error(root.toString());
}
private String getBodyJson(HttpServletRequest request) throws IOException {
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = request.getReader()) {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
}
return sb.toString();
}
public static Date convertISOToDateTime(String isoTime) {
DateTimeFormatter inputFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
OffsetDateTime offsetDateTime = OffsetDateTime.parse(isoTime, inputFormatter);
return Date.from(offsetDateTime.toInstant());
}
/**
* 查询算法推送列表
*/
@PostMapping("/cameraAnalysisCountOut")
public AjaxResult cameraAnalysisCountOut(@RequestBody DklCameraAnalysis dklCameraAnalysis)
{
return AjaxResult.success(iDklCameraAnalysisService.getAllklCameraAnalysisCount(dklCameraAnalysis));
}
@PostMapping("/cameraAnalysisListOut")
public AjaxResult cameraAnalysisListOut(@RequestBody DklCameraAnalysis dklCameraAnalysis)
{
return AjaxResult.success(iDklCameraAnalysisService.getCameraAnalysisListOut(dklCameraAnalysis));
}
/**
* 查询算法推送列表
*/
@PostMapping("/cameraAnalysisCountPeopleOut")
public AjaxResult cameraAnalysisCountPeopleOut(@RequestBody DklCameraAnalysis dklCameraAnalysis)
{
return AjaxResult.success(iDklCameraAnalysisService.getAllPeopleCount(dklCameraAnalysis));
}
@PostMapping("/cameraAnalysisListPeopleOut")
public AjaxResult getcameraAnalysisListPeopleOut(@RequestBody DklCameraAnalysis dklCameraAnalysis)
{
return AjaxResult.success(iDklCameraAnalysisService.getcameraAnalysisListPeopleOut(dklCameraAnalysis));
}
/**
* @Author :rq
* @Description :查询热力图
* @Date :2025/08/21 14:13
* @Param :[]
* @return :com.dkl.common.core.domain.AjaxResult
**/
@GetMapping("/thermodynamicDiagram")
public AjaxResult thermodynamicDiagram(DklCameraAnalysis dklCameraAnalysis)
{
List<DklCameraAnalysis> dklCameraAnalysisList = iDklCameraAnalysisService.selectDklCameraAnalysisList(dklCameraAnalysis);
return AjaxResult.success(dklCameraAnalysisList);
}
/**
* 查询算法推送列表
*/
@GetMapping("/list")
public TableDataInfo list(DklCameraAnalysis dklCameraAnalysis)
{
startPage();
List<DklCameraAnalysis> list = iDklCameraAnalysisService.selectDklCameraAnalysisList(dklCameraAnalysis);
return getDataTable(list);
}
/**
* 获取算法推送详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return success(iDklCameraAnalysisService.selectDklCameraAnalysisById(id));
}
}