diff --git a/src/main/java/com/inspect/simulator/controller/InfraredController.java b/src/main/java/com/inspect/simulator/controller/InfraredController.java index 30fe19d..592cfb9 100644 --- a/src/main/java/com/inspect/simulator/controller/InfraredController.java +++ b/src/main/java/com/inspect/simulator/controller/InfraredController.java @@ -5,6 +5,7 @@ import com.inspect.simulator.domain.Infrared.*; import com.inspect.simulator.hikVision.utils.StringUtils; import com.inspect.simulator.service.HikVisionService; import com.inspect.simulator.hikVision.utils.AjaxResult; +import com.inspect.simulator.service.ResultAnalysisService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -12,6 +13,7 @@ import org.springframework.core.io.InputStreamResource; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; @@ -27,6 +29,9 @@ public class InfraredController { @Autowired private HikVisionService hikVisionService; + @Resource + private ResultAnalysisService resultAnnalysisService; + /** * ----登录---- * nvrIp nvrIp @@ -146,5 +151,9 @@ public class InfraredController { response.put("close", 1); return response; } + @PostMapping("/ir/channelImg") + public String getChannelImg(@RequestParam("patrolPointId") String patrolPointId) { + return resultAnnalysisService.selectChannelImgByPatrolPointId(patrolPointId); + } } diff --git a/src/main/java/com/inspect/simulator/mapper/ResultAnalysisMapper.java b/src/main/java/com/inspect/simulator/mapper/ResultAnalysisMapper.java new file mode 100644 index 0000000..ddd1f69 --- /dev/null +++ b/src/main/java/com/inspect/simulator/mapper/ResultAnalysisMapper.java @@ -0,0 +1,8 @@ +package com.inspect.simulator.mapper; + +import org.apache.ibatis.annotations.Mapper; +@Mapper +public interface ResultAnalysisMapper { + String selectChannelImgByPatrolPointId(String patrolPointId); + +} diff --git a/src/main/java/com/inspect/simulator/service/ResultAnalysisService.java b/src/main/java/com/inspect/simulator/service/ResultAnalysisService.java new file mode 100644 index 0000000..476ca2a --- /dev/null +++ b/src/main/java/com/inspect/simulator/service/ResultAnalysisService.java @@ -0,0 +1,7 @@ +package com.inspect.simulator.service; + + +public interface ResultAnalysisService { + + String selectChannelImgByPatrolPointId(String patrolPointId); +} diff --git a/src/main/java/com/inspect/simulator/service/impl/ResultAnnalysisServiceImpl.java b/src/main/java/com/inspect/simulator/service/impl/ResultAnnalysisServiceImpl.java new file mode 100644 index 0000000..57f23cd --- /dev/null +++ b/src/main/java/com/inspect/simulator/service/impl/ResultAnnalysisServiceImpl.java @@ -0,0 +1,66 @@ +package com.inspect.simulator.service.impl; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.inspect.simulator.mapper.ResultAnalysisMapper; +import com.inspect.simulator.service.ResultAnalysisService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + + +@Service +public class ResultAnnalysisServiceImpl implements ResultAnalysisService { + + @Resource + private ResultAnalysisMapper resultAnalysisMapper; + + @Override + public String selectChannelImgByPatrolPointId(String patrolPointId) { + String resImageUrl=null; + String jsonStr = resultAnalysisMapper.selectChannelImgByPatrolPointId(patrolPointId); + resImageUrl = extractResImageUrl(jsonStr, patrolPointId); + if (resImageUrl==null){ + try { + JSONObject jsonObject = JSONObject.parseObject(jsonStr); + resImageUrl = jsonObject.getString("resImageUrl"); + } catch (Exception e) { + e.getMessage(); + } + } + return resImageUrl != null ? resImageUrl : "Image URL not found"; + } + + public String extractResImageUrl(String jsonStr, String objectId) { + if (jsonStr == null || jsonStr.isEmpty()) { + return null; + } + try { + JSONObject json = JSONObject.parseObject(jsonStr); + String[] listKeys = {"resultList"}; + for (String key : listKeys) { + if (json.containsKey(key)) { + JSONArray items = json.getJSONArray(key); + for (int i = 0; i < items.size(); i++) { + JSONObject item = items.getJSONObject(i); + if (objectId.equals(item.getString("objectId"))) { + JSONArray results = item.getJSONArray("results"); + if (results != null && !results.isEmpty()) { + JSONObject firstResult = results.getJSONObject(0); + if (firstResult.containsKey("resImageUrl")) { + return firstResult.getString("resImageUrl"); + } + } + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + +} diff --git a/src/main/resources/mapper/PatrolPresetPosMapper.xml b/src/main/resources/mapper/PatrolPresetPosMapper.xml index 15ff9ac..fd666b0 100644 --- a/src/main/resources/mapper/PatrolPresetPosMapper.xml +++ b/src/main/resources/mapper/PatrolPresetPosMapper.xml @@ -93,7 +93,5 @@ where a.patrol_point_id = #{patrolPointId} - + \ No newline at end of file diff --git a/src/main/resources/mapper/ResultAnalysisMapper.xml b/src/main/resources/mapper/ResultAnalysisMapper.xml new file mode 100644 index 0000000..1409935 --- /dev/null +++ b/src/main/resources/mapper/ResultAnalysisMapper.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file