ViewController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.its.web.controller.view;
  2. import com.its.web.service.common.CommonService;
  3. import com.its.web.service.notice.NoticeService;
  4. import com.its.web.service.statistics.StatisticsService;
  5. import com.its.web.service.traffic.TrafficService;
  6. import io.swagger.annotations.Api;
  7. import io.swagger.annotations.ApiOperation;
  8. import lombok.RequiredArgsConstructor;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.ibatis.annotations.Param;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.ui.Model;
  13. import org.springframework.web.bind.annotation.GetMapping;
  14. import org.springframework.web.bind.annotation.PathVariable;
  15. import javax.annotation.Nullable;
  16. @Slf4j
  17. @RequiredArgsConstructor
  18. @Controller
  19. @Api(tags = "99.화면 이동")
  20. public class ViewController {
  21. private final TrafficService trafficService;
  22. private final StatisticsService statisticsService;
  23. private final CommonService commonService;
  24. private final NoticeService noticeService;
  25. @ApiOperation(value = "01.메인화면")
  26. @GetMapping("/")
  27. public String main(Model model) {
  28. model.addAttribute("selected", "");
  29. model.addAttribute("incident", this.trafficService.findMainIncident());
  30. model.addAttribute("notice", this.noticeService.findMainNotice());
  31. return "main/main";
  32. }
  33. @ApiOperation(value = "02.교통정보 - 01.CCTV")
  34. @GetMapping("/trafficMap/cctvMap")
  35. public String trafficCctv(Model model) {
  36. model.addAttribute("selected", "traffic");
  37. model.addAttribute("mobile", "cctv");
  38. model.addAttribute("listTitle", "CCTV 목록");
  39. return "traffic/cctv";
  40. }
  41. @ApiOperation(value = "02.교통정보 - 02.스마트교차로")
  42. @GetMapping("/trafficMap/intersections")
  43. public String trafficIntersection(Model model) {
  44. model.addAttribute("selected", "traffic");
  45. model.addAttribute("mobile", "intersection");
  46. model.addAttribute("listTitle", "스마트교차로 목록");
  47. return "traffic/intersection";
  48. }
  49. @ApiOperation(value = "02.교통정보 - 03.VMS")
  50. @GetMapping("/trafficMap/vms")
  51. public String trafficVms(Model model) {
  52. model.addAttribute("selected", "traffic");
  53. model.addAttribute("mobile", "vms");
  54. model.addAttribute("listTitle", "도로전광판 목록");
  55. return "traffic/vms";
  56. }
  57. @ApiOperation(value = "02.교통정보 - 04.돌발")
  58. @GetMapping(value= {"/trafficMap/incidents/{incidentId}", "/trafficMap/incidents"})
  59. public String trafficIncident(Model model, @Nullable @PathVariable ("incidentId") String incidentId) {
  60. model.addAttribute("selected", "traffic");
  61. model.addAttribute("mobile", "incident");
  62. model.addAttribute("listTitle", "돌발 목록");
  63. model.addAttribute("incidentId", incidentId);
  64. return "traffic/incident";
  65. }
  66. @ApiOperation(value = "02.교통정보 - 05.실시간 교통정보")
  67. @GetMapping("/trafficMap/realtimetraffic")
  68. public String trafficRealTimeTraffic(Model model) {
  69. model.addAttribute("selected", "traffic");
  70. model.addAttribute("mobile", "traffic");
  71. model.addAttribute("listTitle", "도로 목록");
  72. return "traffic/realtimetraffic";
  73. }
  74. @ApiOperation(value = "03.교통통계 - 01.교통량 통계")
  75. @GetMapping("/statistics/traffic01")
  76. public String trafficStatisticsAmount(Model model) {
  77. model.addAttribute("selected", "statistics");
  78. model.addAttribute("active", "traffic01");
  79. model.addAttribute("road", statisticsService.findIntersectionAtrdName());
  80. return "statistics/tfvl-stat-amount";
  81. }
  82. @ApiOperation(value = "03.교통통계 - 02.소통 통계")
  83. @GetMapping("/statistics/traffic02")
  84. public String trafficStatisticsSpeed(Model model) {
  85. model.addAttribute("selected", "statistics");
  86. model.addAttribute("active", "traffic02");
  87. model.addAttribute("road", trafficService.findAtrdNameList());
  88. return "statistics/tfvl-stat-speed";
  89. }
  90. @ApiOperation(value = "03.교통통계 - 03.정체 통계")
  91. @GetMapping("/statistics/congestion")
  92. public String trafficCongestStatistics(Model model) {
  93. model.addAttribute("selected", "statistics");
  94. model.addAttribute("active", "congest");
  95. model.addAttribute("list", commonService.findDayList());
  96. return "statistics/congest-stat";
  97. }
  98. @ApiOperation(value = "04.교통정보센터 - 01.센터 소개")
  99. @GetMapping("/center/center")
  100. public String center(Model model) {
  101. model.addAttribute("selected", "center");
  102. model.addAttribute("active", "center");
  103. return "center/center";
  104. }
  105. @ApiOperation(value = "04.교통정보센터 - 02.오시는 길")
  106. @GetMapping("/center/way")
  107. public String way(Model model) {
  108. model.addAttribute("selected", "center");
  109. model.addAttribute("active", "way");
  110. return "center/way";
  111. }
  112. @ApiOperation(value = "05.공지사항 - 01.공지사항 목록")
  113. @GetMapping("/notice/list")
  114. public String noticeList(Model model, @Nullable @Param("page") String page,
  115. @Nullable @Param("searchType") String searchType,
  116. @Nullable @Param("searchText")String searchText) {
  117. model.addAttribute("list", this.noticeService.findAllList(page, searchType, searchText));
  118. return "notice/list";
  119. }
  120. @ApiOperation(value = "05.공지사항 - 02.공지사항 상세보기")
  121. @GetMapping("/notice/view/{boardNo}" )
  122. public String noticeView(Model model, @PathVariable("boardNo")String boardNo) {
  123. model.addAttribute("notice", this.noticeService.findNotice(boardNo));
  124. return "notice/view";
  125. }
  126. @ApiOperation(value = "06.운영자 - 01.로그인")
  127. @GetMapping("/phits")
  128. public String login(Model model, @Nullable @Param("LoginFail") String loginFail) {
  129. model.addAttribute("loginFail", loginFail);
  130. return "admin/login";
  131. }
  132. }