EventController.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.xjrsoft.module.hikvision.util;
  2. import cn.hutool.db.Db;
  3. import cn.hutool.jwt.JWTUtil;
  4. import com.google.gson.JsonArray;
  5. import com.google.gson.JsonObject;
  6. import com.xjrsoft.common.constant.GlobalConstant;
  7. import com.xjrsoft.common.model.result.RT;
  8. import com.xjrsoft.common.utils.DatasourceUtil;
  9. import com.xjrsoft.module.system.controller.AuthorizeController;
  10. import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import lombok.AllArgsConstructor;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.http.ResponseEntity;
  16. import org.springframework.web.bind.annotation.PostMapping;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import javax.sql.DataSource;
  21. import java.sql.SQLException;
  22. import java.text.ParseException;
  23. @RestController
  24. @RequestMapping("/event")
  25. @Api(value = "/event", tags = "事件接收")
  26. @AllArgsConstructor
  27. @Slf4j
  28. public class EventController {
  29. private final Out_In_RecordUtil outInRecordUtil = new Out_In_RecordUtil();
  30. private final AuthorizeController authorizeController;
  31. DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
  32. private final Db use = Db.use(datasource);
  33. private final FaceImportMapper faceImportMapper;
  34. @PostMapping("/receiveCar")
  35. @ApiOperation(value = "接收车辆事件")
  36. public ResponseEntity<Void> receiveCarEvent(@RequestBody(required = false) String eventData) {
  37. log.info("Received event data: {}", eventData);
  38. new Thread(() -> {
  39. try {
  40. outInRecordUtil.GetVehicleRecordTest(use, faceImportMapper, eventData);
  41. } catch (SQLException | ParseException e) {
  42. log.error("Error processing event data", e);
  43. }
  44. }).start();
  45. // 立即返回HTTP 200 OK响应
  46. return ResponseEntity.ok().build();
  47. }
  48. @PostMapping("/receivePeople")
  49. @ApiOperation(value = "接收人员事件")
  50. public ResponseEntity<Void> receivePeopleEvent(@RequestBody(required = false) String eventData) {
  51. log.info("Received event data: {}", eventData);
  52. new Thread(() -> {
  53. try {
  54. outInRecordUtil.GetTeacherAndStudentRecordsTest(use, faceImportMapper, eventData);
  55. } catch (SQLException | ParseException e) {
  56. log.error("Error processing event data", e);
  57. }
  58. }).start();
  59. return ResponseEntity.ok().build();
  60. }
  61. @PostMapping("/subscribe")
  62. @ApiOperation(value = "订阅事件")
  63. public RT<Boolean> subscribeEvent() {
  64. ApiUtil apiUtil = new ApiUtil();
  65. JsonArray eventList = new JsonArray();
  66. String apiPath = "/api/eventService/v1/eventSubscriptionByEventTypes";
  67. JsonObject paramJson = new JsonObject();
  68. //*******手动更改****************************************************
  69. eventList.add(196893); //人脸匹配
  70. // eventList.add(771760131); //正常过车
  71. // eventList.add(771760134);
  72. paramJson.addProperty("eventDest", "http://ff.cf.yingcaibx.com/event/receivePeople");
  73. //******************************************************************
  74. paramJson.add("eventTypes", eventList);
  75. String response = apiUtil.doPost(apiPath, paramJson.toString(), null);
  76. log.info("Subscribe response: {}", response);
  77. return RT.ok(true);
  78. }
  79. @PostMapping("/query")
  80. @ApiOperation(value = "查询已订阅事件")
  81. public String queryEvent() {
  82. ApiUtil apiUtil = new ApiUtil();
  83. String apiPath = "/api/eventService/v1/eventSubscriptionView";
  84. String response = apiUtil.doPost(apiPath, null, null);
  85. System.out.println("output: " + response);
  86. return response;
  87. }
  88. @PostMapping("/cancel")
  89. @ApiOperation(value = "取消已订阅事件")
  90. public String cancelEvent() {
  91. ApiUtil apiUtil = new ApiUtil();
  92. JsonArray eventList = new JsonArray();
  93. //*******手动更改****************************************************
  94. eventList.add(196893);
  95. eventList.add(771760131); //正常过车
  96. eventList.add(771760134);
  97. //******************************************************************
  98. JsonObject paramJson = new JsonObject();
  99. paramJson.add("eventTypes", eventList);
  100. String apiPath = "/api/eventService/v1/eventUnSubscriptionByEventTypes";
  101. String response = apiUtil.doPost(apiPath, paramJson.toString(), null);
  102. System.out.println("output: " + response);
  103. return response;
  104. }
  105. }