Browse Source

for project result

shjung 2 years ago
parent
commit
c2ece6426c

BIN
sig-api-server-2nd.zip


BIN
sig-api-server_3rd.zip


+ 40 - 59
src/main/java/com/sig/api/controller/sig/CrossRoadInfoController.java

@@ -372,40 +372,29 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
             this.service.saveServiceHistory(hist);
             return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
         }
-        // 여기서 파일 다운로드....
+
         String dataFileName = "".equals(srchCTId_) ? "crossInfo.zip" : srchCTId_ + "_crossInfo.xlsx";
-        String separator = System.getProperty("file.separator");
-        String fileFullName = System.getProperty("user.dir")+separator+"download"+separator+dataFileName;
-
-        try {
-            Path filePath = Paths.get(fileFullName);
-            File file = new File(fileFullName);
-            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);
-            }
+        Path filePath = Paths.get(System.getProperty("user.dir"), "download", dataFileName);
+        File file = filePath.toFile();
+        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);
         }
-        catch (Exception e) {
-            //sendErrorResponse(null, serviceName, headerVo, res);
-            hist.setSTATUS(9);
+        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.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
         }
     }
 
@@ -441,36 +430,28 @@ public class CrossRoadInfoController extends SigOpenApiCommonController {
             this.service.saveServiceHistory(hist);
             return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
         }
-        // 여기서 파일 다운로드....
+
         String dataFileName = "".equals(srchCTId_) ? "crossDetailInfo.zip" : srchCTId_ + "_crossDetailInfo.xlsx";
-        String separator = System.getProperty("file.separator");
-        String fileFullName = System.getProperty("user.dir")+separator+"download"+separator+dataFileName;
-        try {
-            Path filePath = Paths.get(fileFullName);
-            File file = new File(fileFullName);
-            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);
-            }
+        Path filePath = Paths.get(System.getProperty("user.dir"), "download", dataFileName);
+        File file = filePath.toFile();
+        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);
         }
-        catch (Exception e) {
-            //sendErrorResponse(null, serviceName, headerVo, res);
-            return new ResponseEntity<Object>(null, HttpStatus.INTERNAL_SERVER_ERROR);
+        else {
+            headerVo.setResultCode("10");
+            headerVo.setResultMsg("INVALID_REQUEST_PARAMETER_ERROR");
+            hist.setSTATUS(10);
+            this.service.saveServiceHistory(hist);
+            return new ResponseEntity<Object>(null, HttpStatus.CONFLICT);
         }
     }
 

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

@@ -45,7 +45,7 @@ public enum SigOpenApiErrorCode {
     }
 
     public static SigOpenApiErrorCode getValue(int code) {
-
-        return map.get(Integer.valueOf(code));
+        SigOpenApiErrorCode codeValue = map.get(Integer.valueOf(code));
+        return codeValue;
     }
 }

+ 0 - 3
src/main/java/com/sig/api/exception/ExceptionControllerAdvisor.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 @Slf4j
@@ -59,7 +58,6 @@ public class ExceptionControllerAdvisor {//} extends ResponseEntityExceptionHand
 
     @ExceptionHandler({RuntimeException.class})
     public ResponseEntity<SigOpenApiHeaderDto> exceptionHandler(HttpServletRequest request, final RuntimeException ex) {
-        List<String> errorList = new ArrayList<>(Collections.singletonList(ex.getMessage()));
         SigOpenApiHeaderDto response = SigOpenApiHeaderDto.builder()
                 .resultCode("1")
                 .resultMsg("APPLICATION_ERROR")
@@ -72,7 +70,6 @@ public class ExceptionControllerAdvisor {//} extends ResponseEntityExceptionHand
     }
     @ExceptionHandler({Exception.class})
     public ResponseEntity<SigOpenApiHeaderDto> exceptionHandler(HttpServletRequest request, final Exception ex) {
-        List<String> errorList = new ArrayList<>(Collections.singletonList(ex.getMessage()));
         SigOpenApiHeaderDto response = SigOpenApiHeaderDto.builder()
                 .resultCode("1")
                 .resultMsg("APPLICATION_ERROR")

+ 1 - 1
src/main/java/com/sig/api/service/sig/SigOpenApiCommonService.java

@@ -92,7 +92,7 @@ public class SigOpenApiCommonService {
                 return  new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
             }
         } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
+            log.error("FileName Encoding Error");
             return fileName;
         }
     }

+ 0 - 10
src/main/java/com/sig/utils/SysUtils.java

@@ -69,16 +69,6 @@ public final class SysUtils
 		}
 
 		Date startDateTime, endDateTime;
-/*
-		FastDateFormat fastDateFormat = FastDateFormat.getInstance("yyyyMMddHHmmss", new Locale("ko_KR")); //Locale.getDefault());
-		try {
-			startDateTime = fastDateFormat.parse(startTm);
-			endDateTime = fastDateFormat.parse(endTm);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return -1;
-		}
-*/
 		startDateTime = TimeUtils.stringToDate(startTm);
 		endDateTime = TimeUtils.stringToDate(endTm);
 		if (startDateTime == null || endDateTime == null) {

+ 27 - 93
src/main/resources/logback-spring.xml

@@ -2,18 +2,12 @@
 <configuration scan="true" scanPeriod="60 seconds">
     <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
 
-    <property resource="logback.properties"/>
-
-<!--    <springProfile name="dev">-->
-<!--        <property name="LOGS_PATH" value="./logs" />-->
-<!--    </springProfile>-->
-
-    <property name="PROJECT_NAME"    value="${log.name}"/>
-    <property name="ROOT_LOG_LEVEL"  value="${log.level.root}"/>
-    <property name="LOG_CHARSET"     value="${log.charset}" />
-    <property name="LOG_ENCODING"    value="${log.encoding}"/>
-    <property name="LOG_PATH"        value="${log.path}"/>
-    <property name="LOG_BACKUP_PATH" value="${log.backup.path}"/>
+    <property name="PROJECT_NAME"    value="sig-api-server"/>
+    <property name="ROOT_LOG_LEVEL"  value="INFO"/>
+    <property name="LOG_CHARSET"     value="UTF-8" />
+    <property name="LOG_ENCODING"    value="UTF-8"/>
+    <property name="LOG_PATH"        value="${user.dir}/logs/${PROJECT_NAME}/"/>
+    <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/${PROJECT_NAME}/backup/"/>
 
     <property name="LOG_FILE_NAME"             value="${PROJECT_NAME}.log"/>
     <property name="LOG_FILE_NAME_ERROR"       value="${PROJECT_NAME}.err.log"/>
@@ -24,36 +18,24 @@
     <property name="LOG_FILE_NAME_SCHEDULE"    value="${PROJECT_NAME}-schedule.log"/>
     <property name="LOG_FILE_NAME_STATISTICS"  value="${PROJECT_NAME}-statistics.log"/>
 
-    <property name="MAX_FILESIZE" value="${log.max.file-size}"/>
-    <property name="MAX_HISTORY"  value="${log.max.history}"/>
-
-    <property name="LOG_PATTERN_CONSOLE"     value="${log.pattern.console}"/>
-    <property name="LOG_PATTERN_FILE"        value="${log.pattern.file}"/>
-    <property name="LOG_PATTERN_ERROR"       value="${log.pattern.error}"/>
-    <property name="LOG_PATTERN_SESSION"     value="${log.pattern.session}"/>
-    <property name="LOG_PATTERN_CENTER_COMM" value="${log.pattern.center-comm}"/>
-    <property name="LOG_PATTERN_SQL"         value="${log.pattern.sql}"/>
-    <property name="LOG_PATTERN_SCHEDULE"    value="${log.pattern.schedule}"/>
-    <property name="LOG_PATTERN_STATISTICS"  value="${log.pattern.statistics}"/>
-
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <withJansi>true</withJansi>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_CONSOLE}</pattern>
+            <charset>UTF-8</charset>
+            <pattern>[%d{HH:mm:ss.SSS}] %highlight([%5level]) : %cyan(%msg) %n</pattern>
         </encoder>
     </appender>
 
     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME}</file>
+        <file>./logs/sig-api-server.log</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_FILE}</pattern>
+            <charset>UTF-8</charset>
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n</pattern>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
+            <fileNamePattern>./logs/backup/sig-api-server.%d{yyyy-MM-dd}_%i.log.gz</fileNamePattern>
+            <maxFileSize>500MB</maxFileSize>
+            <maxHistory>30</maxHistory>
         </rollingPolicy>
     </appender>
 
@@ -63,54 +45,28 @@
             <onMatch>ACCEPT</onMatch>
             <onMismatch>DENY</onMismatch>
         </filter>
-        <file>${LOG_PATH}${LOG_FILE_NAME_ERROR}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_ERROR}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <appender name="CENTER_COMM" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_CENTER_COMM}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_CENTER_COMM}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}CenterComm/${LOG_FILE_NAME_CENTER_COMM}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <appender name="FILE_SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SQL}</file>
+        <file>./logs/sig-api-server.err.log</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_SQL}</pattern>
+            <charset>UTF-8</charset>
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %logger{35}.%M.%L - %msg%n</pattern>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}SQL/${LOG_FILE_NAME_SQL}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
+            <fileNamePattern>./logs/backup/sig-api-server-error.%d{yyyy-MM-dd}_%i.log.gz</fileNamePattern>
+            <maxFileSize>500MB</maxFileSize>
+            <maxHistory>30</maxHistory>
         </rollingPolicy>
     </appender>
 
     <appender name="FILE_SCHEDULE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SCHEDULE}</file>
+        <file>./logs/sig-api-server-schedule.log</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_SCHEDULE}</pattern>
+            <charset>UTF-8</charset>
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n</pattern>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}Schedule/${LOG_FILE_NAME_SCHEDULE}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
+            <fileNamePattern>./logs/backup/sig-api-server-schedule.%d{yyyy-MM-dd}_%i.log.gz</fileNamePattern>
+            <maxFileSize>500MB</maxFileSize>
+            <maxHistory>30</maxHistory>
         </rollingPolicy>
     </appender>
 
@@ -120,32 +76,10 @@
         <appender-ref ref="ERROR"/>
     </root>
 
-    <logger name="com.its.op.scheduler" level="INFO" additivity="false">
+    <logger name="com.sig.api.scheduler" level="INFO" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="FILE_SCHEDULE"/>
         <appender-ref ref="ERROR"/>
     </logger>
 
-    <logger name="com.its.op.xnetwork.udp" level="INFO" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE"/>
-        <appender-ref ref="CENTER_COMM"/>
-    </logger>
-
-    <!--
-        <logger name="org.apache.ibatis" level="DEBUG" additivity="false">
-            <appender-ref ref="CONSOLE"/>
-            <appender-ref ref="FILE"/>
-            <appender-ref ref="ERROR"/>
-        </logger>
-    -->
-
-    <logger name="jdbc"                level="OFF"   additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-    <logger name="jdbc.sqlonly"        level="DEBUG"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/>  <appender-ref ref="CONSOLE"/> </logger>
-    <logger name="jdbc.sqltiming"      level="DEBUG" additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-    <logger name="jdbc.audit"          level="OFF"   additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-    <logger name="jdbc.resultset"      level="OFF"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-    <logger name="jdbc.resultsettable" level="OFF"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-    <logger name="jdbc.connection"     level="OFF"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="ERROR"/> </logger>
-
 </configuration>

+ 21 - 1
src/main/resources/mybatis/mapper/sig/SigOpenApiCommonMapper.xml

@@ -15,7 +15,27 @@
         <if test='srchCTId != ""'>AND TI.REGION_CD = #{srchCTId}</if>
         <if test='srchCRNm != ""'>AND TI.INT_NM    = #{srchCRNm}</if>
                ) AA
-        LEFT OUTER JOIN ${TABLE_NAME} A
+        <if test='TABLE_NAME eq "TB_INT"'>
+            LEFT OUTER JOIN TB_INT A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_PHASE"'>
+            LEFT OUTER JOIN TB_INT_PHASE A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_HOLYDD_PLAN"'>
+            LEFT OUTER JOIN TB_INT_HOLYDD_PLAN A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_DY_PLAN"'>
+            LEFT OUTER JOIN TB_INT_DY_PLAN A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_RESRV_PLAN"'>
+            LEFT OUTER JOIN TB_INT_RESRV_PLAN A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_OPER_PLAN"'>
+            LEFT OUTER JOIN TB_INT_OPER_PLAN A
+        </if>
+        <if test='TABLE_NAME eq "TB_INT_SIGNALMAP"'>
+            LEFT OUTER JOIN TB_INT_SIGNALMAP A
+        </if>
           ON AA.REGION_CD = A.REGION_CD
          AND AA.INT_NO_SE = A.INT_NO
     </select>

+ 21 - 3
src/test/java/com/sig/api/SigOpenApiServerApplicationTests.java

@@ -4,15 +4,33 @@ import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
 @Slf4j
 @SpringBootTest
 class SigOpenApiServerApplicationTests {
 
 	@Test
 	void ipCheck() {
-		String authIp = "2.168.9xxx.4";
-		authIp = authIp.substring(0, authIp.lastIndexOf('.'));
-		log.error("{}", authIp);
+//		String authIp = "2.168.9xxx.4";
+//		authIp = authIp.substring(0, authIp.lastIndexOf('.'));
+//		log.error("{}", authIp);
+		String dataFileName = "crossInfo.zip";
+		String separator = System.getProperty("file.separator");
+		String fileFullName = System.getProperty("user.dir")+separator+"download"+separator+dataFileName;
+//		if (fileFullName != null && !fileFullName.equals("")) {
+//			fileFullName = fileFullName.replaceAll("\\.", "").replaceAll("/", "").replaceAll("\\\\", "");
+//		}
+		log.error("{}", fileFullName);
+
+		Path filePath = Paths.get(fileFullName);
+		log.error("{}", filePath.toString());
+
+		Path path = Paths.get("download", dataFileName);
+		log.error("{}", path.toString());
+		path = Paths.get(System.getProperty("user.dir"), "download", dataFileName);
+		log.error("{}", path.toString());
 	}
 
 }