shjung 2 years ago
parent
commit
165bdf3c16

+ 49 - 28
src/main/java/com/sig/api/controller/sig/CrossRoadInfoController.java

@@ -342,7 +342,7 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
 
     @SigOpenApiElapsed
     @ApiOperation(value = "3.교차로정보-다운로드")
-    @GetMapping(value = "/download/crossInfo", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
+    @GetMapping(value = "/download/crossInfo")
     public ResponseEntity<Object> getCrossRoadInfoListDownload(
             @ApiParam(name = "serviceKey", value = "인증키", example = "A515753C425C4B579BCC1F2E0ED50374", required = true)
             @RequestParam final String serviceKey,
@@ -367,7 +367,7 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
 
         SigOpenApiHeaderDto headerVo = this.service.checkServiceKey("/CrossRoadInfoService/download/crossInfo", remoteIP, serviceKey);
         if (!"0".equals(headerVo.getResultCode())) {
-            sendErrorResponse(null, serviceName, headerVo, res);
+            //sendErrorResponse("json", serviceName, headerVo, res);
             hist.setSTATUS("30".equals(headerVo.getResultCode()) ? 1 : 2);
             this.service.saveServiceHistory(hist);
             return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
@@ -380,26 +380,38 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
         try {
             Path filePath = Paths.get(fileFullName);
             File file = new File(fileFullName);
-            String fileName = file.getName();
-            Resource resource = new InputStreamResource(Files.newInputStream(filePath));
-            String header = req.getHeader("User-Agent");
-            String encodeFileName = service.fileNameEncoder(fileName, header);
-            HttpHeaders headers = new HttpHeaders();
-            // 다운로드 되거나 로컬에 저장되는 용도로 쓰이는지를 알려주는 헤더
-            headers.setContentDisposition(ContentDisposition.builder("attachment").filename(encodeFileName).build());
-
-            this.service.saveServiceHistory(hist);
-            return new ResponseEntity<Object>(resource, headers, HttpStatus.OK);
+            if (file.exists()) {
+                String fileName = file.getName();
+                Resource resource = new InputStreamResource(Files.newInputStream(filePath));
+                String header = req.getHeader("User-Agent");
+                String encodeFileName = service.fileNameEncoder(fileName, header);
+                HttpHeaders headers = new HttpHeaders();
+                // 다운로드 되거나 로컬에 저장되는 용도로 쓰이는지를 알려주는 헤더
+                headers.setContentDisposition(ContentDisposition.builder("attachment").filename(encodeFileName).build());
+
+                this.service.saveServiceHistory(hist);
+                return new ResponseEntity<Object>(resource, headers, HttpStatus.OK);
+            }
+            else {
+                //headerVo.setResultCode("10");
+                //headerVo.setResultMsg("INVALID_REQUEST_PARAMETER_ERROR");
+                //sendErrorResponse("json", serviceName, headerVo, res);
+                hist.setSTATUS(10);
+                this.service.saveServiceHistory(hist);
+                return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
+            }
         }
         catch (Exception e) {
-            sendErrorResponse(null, serviceName, headerVo, res);
-            return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
+            //sendErrorResponse(null, serviceName, headerVo, res);
+            hist.setSTATUS(9);
+            this.service.saveServiceHistory(hist);
+            return new ResponseEntity<Object>(null, HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 
     @SigOpenApiElapsed
     @ApiOperation(value = "4.교차로현시구성정보-다운로드")
-    @GetMapping(value = "/download/crossDetailInfo", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
+    @GetMapping(value = "/download/crossDetailInfo")
     public ResponseEntity<Object> getPlanCRWDInfoDownload(
             @ApiParam(name = "serviceKey", value = "인증키", example = "A515753C425C4B579BCC1F2E0ED50374", required = true)
             @RequestParam final String serviceKey,
@@ -424,7 +436,7 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
 
         SigOpenApiHeaderDto headerVo = this.service.checkServiceKey("/CrossRoadInfoService/download/crossDetailInfo", remoteIP, serviceKey);
         if (!"0".equals(headerVo.getResultCode())) {
-            sendErrorResponse(null, serviceName, headerVo, res);
+            //sendErrorResponse("json", serviceName, headerVo, res);
             hist.setSTATUS("30".equals(headerVo.getResultCode()) ? 1 : 2);
             this.service.saveServiceHistory(hist);
             return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
@@ -436,20 +448,29 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
         try {
             Path filePath = Paths.get(fileFullName);
             File file = new File(fileFullName);
-            String fileName = file.getName();
-            Resource resource = new InputStreamResource(Files.newInputStream(filePath));
-            String header = req.getHeader("User-Agent");
-            String encodeFileName = this.service.fileNameEncoder(fileName, header);
-            HttpHeaders headers = new HttpHeaders();
-            // 다운로드 되거나 로컬에 저장되는 용도로 쓰이는지를 알려주는 헤더
-            headers.setContentDisposition(ContentDisposition.builder("attachment").filename(encodeFileName).build());
-
-            this.service.saveServiceHistory(hist);
-            return new ResponseEntity<Object>(resource, headers, HttpStatus.OK);
+            if (file.exists()) {
+                String fileName = file.getName();
+                Resource resource = new InputStreamResource(Files.newInputStream(filePath));
+                String header = req.getHeader("User-Agent");
+                String encodeFileName = this.service.fileNameEncoder(fileName, header);
+                HttpHeaders headers = new HttpHeaders();
+                // 다운로드 되거나 로컬에 저장되는 용도로 쓰이는지를 알려주는 헤더
+                headers.setContentDisposition(ContentDisposition.builder("attachment").filename(encodeFileName).build());
+
+                this.service.saveServiceHistory(hist);
+                return new ResponseEntity<Object>(resource, headers, HttpStatus.OK);
+            }
+            else {
+                headerVo.setResultCode("10");
+                headerVo.setResultMsg("INVALID_REQUEST_PARAMETER_ERROR");
+                hist.setSTATUS(10);
+                this.service.saveServiceHistory(hist);
+                return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
+            }
         }
         catch (Exception e) {
-            sendErrorResponse(null, serviceName, headerVo, res);
-            return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
+            //sendErrorResponse(null, serviceName, headerVo, res);
+            return new ResponseEntity<Object>(null, HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 

+ 2 - 2
src/main/java/com/sig/api/controller/sig/PlanCrossRoadInfoController.java

@@ -92,7 +92,7 @@ public class PlanCrossRoadInfoController extends SigOpenApiCommonController {
 
         SigOpenApiHeaderDto headerVo = this.service.checkServiceKey("/PlanCrossRoadInfoService/getPlanCRHDInfo", remoteIP, serviceKey);
         if (!"0".equalsIgnoreCase(headerVo.getResultCode())) {
-            sendErrorResponse(type_, "PlanCrossRoadInfoService", headerVo, res);
+            sendErrorResponse(type_, serviceName, headerVo, res);
             hist.setSTATUS("30".equals(headerVo.getResultCode()) ? 1 : 2);
             this.service.saveServiceHistory(hist);
             return;
@@ -219,7 +219,7 @@ public class PlanCrossRoadInfoController extends SigOpenApiCommonController {
 
         SigOpenApiHeaderDto headerVo = this.service.checkServiceKey("/PlanCrossRoadInfoService/getPlanCRWDInfo", remoteIP, serviceKey);
         if (!"0".equalsIgnoreCase(headerVo.getResultCode())) {
-            sendErrorResponse(type_, "PlanCrossRoadInfoService", headerVo, res);
+            sendErrorResponse(type_, serviceName, headerVo, res);
             hist.setSTATUS("30".equals(headerVo.getResultCode()) ? 1 : 2);
             this.service.saveServiceHistory(hist);
             return;

+ 1 - 0
src/main/java/com/sig/api/error/SigOpenApiErrorCode.java

@@ -19,6 +19,7 @@ public enum SigOpenApiErrorCode {
 //        99  UNKNOWN_ERROR                                       기타에러
     NORMAL_SERVICE                                  (0,"NORMAL_SERVICE"),
     APPLICATION_ERROR                               (1,"APPLICATION_ERROR"),
+    SYSTEM_INTERNAL_ERROR                           (9,"SYSTEM_INTERNAL_ERROR"),
     INVALID_REQUEST_PARAMETER_ERROR                 (10,"INVALID_REQUEST_PARAMETER_ERROR"),
     NO_OPENAPI_SERVICE_ERROR                        (12,"NO_OPENAPI_SERVICE_ERROR"),
     SERVICE_ACCESS_DENIED_ERROR                     (20,"SERVICE_ACCESS_DENIED_ERROR"),