From ef7d88ec18b2b8a575ebf574c254c952a32bd4f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Thu, 23 Nov 2023 14:07:55 +0900 Subject: [PATCH] =?UTF-8?q?=ED=86=B5=EA=B3=84=20serviceType=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MainStatisticsService.java | 85 +++++++++++++++---- 1 file changed, 69 insertions(+), 16 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java b/pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java index 256a32a0..9ed2fc78 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java @@ -146,7 +146,15 @@ public class MainStatisticsService { public List getFlightStaticStcs(String serviceType){ // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + boolean authCheck = "USER".equals(jwtTokenUtil.getUserAuthByToken()); + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } FlightStcsValueModel time = cntrlQueryRepository.getFlightTimeStcs(authCheck, serviceType); FlightStcsValueModel distance = cntrlQueryRepository.getFlightDistanceStcs(authCheck, serviceType); @@ -167,21 +175,30 @@ public class MainStatisticsService { public List fltStatics(FlightStcsRQ rq, String[] formatParam){ // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String serviceType = rq.getServiceType(); + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } List resultList = new ArrayList<>(); switch (rq.getCate()) { case "TIME": - resultList = cntrlQueryRepository.fltTimeStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = cntrlQueryRepository.fltTimeStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "DISTANCE": - resultList = cntrlQueryRepository.fltDistanceStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = cntrlQueryRepository.fltDistanceStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "FLT_COUNT": - resultList = cntrlQueryRepository.fltCountStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = cntrlQueryRepository.fltCountStcs(rq.getDate(), serviceType, authCheck, formatParam); break; default : @@ -242,7 +259,15 @@ public class MainStatisticsService { public List getWarnStaticStcs(String serviceType){ // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } // TODO:: 비행경로이탈, 고도이탈, 충돌위험 임시코드 String[] cate = {"PLAN" ,"ALTITUDE", "CRASH"}; @@ -307,7 +332,15 @@ public class MainStatisticsService { public List getFltResultStaticStcs(String serviceType){ // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } FlightStcsValueModel fltResult = fltPlanQueryRepository.getFltResultStaticStcs(authCheck, serviceType); FlightStcsValueModel fltPlan = fltPlanQueryRepository.getFltPlanStaticStcs(authCheck, serviceType); @@ -329,19 +362,29 @@ public class MainStatisticsService { List resultList = null; // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); - + boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String serviceType = rq.getServiceType(); + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } + switch (rq.getCate()) { case "FLT_RESULT": - resultList = fltPlanQueryRepository.fltResultStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltResultStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "FLT_PLAN": - resultList = fltPlanQueryRepository.fltPlanStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltPlanStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "FLT_PLAN_APRVN": - resultList = fltPlanQueryRepository.fltPlanAprvnStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltPlanAprvnStcs(rq.getDate(), serviceType, authCheck, formatParam); break; default : @@ -361,19 +404,29 @@ public class MainStatisticsService { List resultList = null; // 권한이 유저권한이 user면 true, user가 아닐 경우 false; - boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + boolean authCheck = jwtTokenUtil.getUserAuthByToken().equals("USER"); + + + // SUPER 권한일 경우와 KAC의 기관코드일 경우 전체적으로 모니터링 가능해야한다. 그외는 자신의 기관에 해당하는 데이터 볼 수 있어야 한다. + String serviceType = rq.getServiceType(); + String userAuthByToken = jwtTokenUtil.getUserAuthByToken(); + String cptAuthCodeByToken = jwtTokenUtil.getCptAuthCodeByToken(); + if(!"SUPER".equals(userAuthByToken) && !"KAC".equals(cptAuthCodeByToken)){ + serviceType = cptAuthCodeByToken; + authCheck = false; + } switch (rq.getCate()) { case "FLT_RESULT": - resultList = fltPlanQueryRepository.fltTopResultStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltTopResultStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "FLT_PLAN": - resultList = fltPlanQueryRepository.fltTopPlanStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltTopPlanStcs(rq.getDate(), serviceType, authCheck, formatParam); break; case "FLT_PLAN_APRVN": - resultList = fltPlanQueryRepository.fltTopPlanAprvnStcs(rq.getDate(), rq.getServiceType(), authCheck, formatParam); + resultList = fltPlanQueryRepository.fltTopPlanAprvnStcs(rq.getDate(), serviceType, authCheck, formatParam); break; default :