CctvControlController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.its.cctv.api.controller;
  2. import com.its.cctv.api.dto.*;
  3. import com.its.cctv.api.service.CctvControlService;
  4. import io.swagger.annotations.Api;
  5. import io.swagger.annotations.ApiOperation;
  6. import io.swagger.annotations.ApiParam;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.validation.annotation.Validated;
  10. import org.springframework.web.bind.annotation.*;
  11. import javax.validation.Valid;
  12. @Slf4j
  13. @Api(tags = "1.CCTV-0.제어")
  14. @Validated
  15. @RestController
  16. @RequiredArgsConstructor
  17. @RequestMapping("/api/cctv/control")
  18. public class CctvControlController {
  19. private final CctvControlService service;
  20. // @ApiOperation(value = "TEST", response = CctvStatusDto.CctvStatusNotifyDtoRes.class)
  21. // @GetMapping(value = "/status/notify/{id}", produces = {"application/json; charset=utf8"})
  22. // public CctvStatusDto.CctvStatusNotifyDtoRes notifyStatus(
  23. // @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  24. // @PathVariable("id") Long id) {
  25. // return this.service.notifyStatus(id);
  26. // }
  27. @ApiOperation(value = "CCTV 환경 파라미터 조회", response = CctvParamControlDto.CctvParamValueRes.class)
  28. @GetMapping(value = "/param-qry/{id}", produces = {"application/json; charset=utf8"})
  29. public CctvParamControlDto.CctvParamValueRes requestParam(
  30. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  31. @PathVariable("id") Long id) {
  32. return this.service.requestParam(id);
  33. }
  34. @ApiOperation(value = "CCTV 환경 파라미터 설정", response = CctvParamControlDto.CctvParamControlRes.class)
  35. @PostMapping(value = "/param-set/{id}", produces = {"application/json; charset=utf8"})
  36. public CctvParamControlDto.CctvParamControlRes controlParam(
  37. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  38. @PathVariable("id") Long id,
  39. @ApiParam(name = "req", value = "CCTV PARAMETER 설정 정보", example = "[ADMIN]", required = true)
  40. @RequestBody @Valid final CctvParamControlDto.CctvParamControlReq req) {
  41. return this.service.controlParam(id, req);
  42. }
  43. @ApiOperation(value = "CCTV 상태 조회", response = CctvStatusDto.CctvStatusDtoRes.class)
  44. @GetMapping(value = "/status/{id}", produces = {"application/json; charset=utf8"})
  45. public CctvStatusDto.CctvStatusDtoRes requestStatus(
  46. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  47. @PathVariable("id") Long id) {
  48. return this.service.requestStatus(id);
  49. }
  50. @ApiOperation(value = "CCTV 현재위치정보 조회", response = CctvPresetControlDto.CctvPresetValueRes.class)
  51. @GetMapping(value = "/preset-value/{id}", produces = {"application/json; charset=utf8"})
  52. public CctvPresetControlDto.CctvPresetValueRes requestPresetValue(
  53. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  54. @PathVariable("id") Long id) {
  55. return this.service.requestPresetValue(id);
  56. }
  57. @ApiOperation(value = "CCTV PTZ 제어", response = CctvPtzControlDto.CctvPtzControlRes.class)
  58. @PostMapping(value = "/ptz/{id}", produces = {"application/json; charset=utf8"})
  59. public CctvPtzControlDto.CctvPtzControlRes controlPtz(
  60. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  61. @PathVariable("id") Long id,
  62. @ApiParam(name = "req", value = "CCTV PTZ 제어 정보", example = "[tilt-up, start, 20, ADMIN]", required = true)
  63. @RequestBody @Valid final CctvPtzControlDto.CctvControlPtzReq req) {
  64. return this.service.controlPtz(id, req);
  65. }
  66. @ApiOperation(value = "CCTV Preset 제어", response = CctvPresetControlDto.CctvPresetControlRes.class)
  67. @PostMapping(value = "/preset/{id}", produces = {"application/json; charset=utf8"})
  68. public CctvPresetControlDto.CctvPresetControlRes controlPreset(
  69. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  70. @PathVariable("id") Long id,
  71. @ApiParam(name = "req", value = "CCTV Preset 제어 정보", example = "[preset, call, 1, 0, 0, ADMIN]", required = true)
  72. @RequestBody @Valid final CctvPresetControlDto.CctvPresetControlReq req) {
  73. return this.service.controlPreset(id, req);
  74. }
  75. @ApiOperation(value = "CCTV 가변 문자 설정", response = CctvVarCharControlDto.CctvVarCharControlRes.class)
  76. @PostMapping(value = "/var-char-set/{id}", produces = {"application/json; charset=utf8"})
  77. public CctvVarCharControlDto.CctvVarCharControlRes controlVarCharSet(
  78. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  79. @PathVariable("id") Long id,
  80. @ApiParam(name = "req", value = "CCTV 가변문자 설정 정보", example = "[preset, call, 1, 0, 0, ADMIN]", required = true)
  81. @RequestBody @Valid final CctvVarCharControlDto.CctvVarCharControlSetReq req) {
  82. return this.service.controlVarCharSet(id, req);
  83. }
  84. @ApiOperation(value = "CCTV 가변 문자 삭제", response = CctvVarCharControlDto.CctvVarCharControlRes.class)
  85. @PostMapping(value = "/var-char-del/{id}", produces = {"application/json; charset=utf8"})
  86. public CctvVarCharControlDto.CctvVarCharControlRes controlVarCharDel(
  87. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  88. @PathVariable("id") Long id,
  89. @ApiParam(name = "req", value = "CCTV 가변문자 삭제 정보", example = "[preset, call, 1, 0, 0, ADMIN]", required = true)
  90. @RequestBody @Valid final CctvVarCharControlDto.CctvVarCharControlDelReq req) {
  91. return this.service.controlVarCharDel(id, req);
  92. }
  93. @ApiOperation(value = "CCTV RESET", response = CctvControlDto.CctvControlResetRes.class)
  94. @PostMapping(value = "/reset/{id}", produces = {"application/json; charset=utf8"})
  95. public CctvControlDto.CctvControlResetRes controlReset(
  96. @ApiParam(name = "id", value = "제어기번호", example = "1001", required = true)
  97. @PathVariable("id") Long id,
  98. @ApiParam(name = "req", value = "CCTV 제어기 리셋", example = "[0/1, ADMIN]", required = true)
  99. @RequestBody @Valid final CctvControlDto.CctvControlResetReq req) {
  100. return this.service.controlReset(id, req);
  101. }
  102. }