Browse Source

socket server 구조 수정 작업

feature/auth
노승철 2 years ago
parent
commit
e058e744ee
  1. 12
      src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java
  2. 56
      src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java
  3. 1
      src/main/java/com/palnet/biz/config/WebSecurityConfig.java
  4. 2
      src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java
  5. 4
      src/main/resources/application.yml

12
src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

@ -199,4 +199,16 @@ public class CtrCntrlController {
return ResponseEntity.ok().body(new SuccessResponse(rs));
}
@GetMapping("/id/{id}")
public ResponseEntity<? extends BasicResponse> getId(@PathVariable String id) {
Map<String, String> result;
try {
result = service.getId(id);
} catch (Exception e) {
log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse(result));
}
}

56
src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java

@ -7,11 +7,13 @@ import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel;
import com.palnet.biz.api.bas.flight.service.BasFlightMapper;
import com.palnet.biz.api.comn.model.ControlGpsDataContext;
import com.palnet.biz.api.ctr.cntrl.model.*;
import com.palnet.biz.jpa.entity.*;
import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository;
import com.palnet.biz.jpa.repository.com.ComIdntBasRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlWarnLogRepository;
import com.palnet.biz.jpa.repository.flt.*;
import com.palnet.comn.utils.AreaUtils;
@ -31,9 +33,11 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Log4j2
@Transactional(readOnly = true)
public class CtrCntrlService {
private final CtrCntrlQueryRepository query;
private final CtrCntrlBasRepository cntrlBasRepository;
private final CtrCntrlHstryRepository cntrlHstryRepository;
private final CtrCntrlWarnLogRepository warnLogRepository;
private final ComIdntBasRepository idntfRepository;
private final ComArcrftBasRepository arcrftRepository;
@ -43,10 +47,12 @@ public class CtrCntrlService {
private final FltPlanAreaRepository planAreaRepository;
private final FltPlanAreaCoordRepository planCoordRepository;
private final AreaUtils areaUtils;
private final ControlGpsDataContext shareContext;
public CtrCntrlService(CtrCntrlQueryRepository query,
CtrCntrlBasRepository cntrlBasRepository,
CtrCntrlHstryRepository cntrlHstryRepository,
CtrCntrlWarnLogRepository warnLogRepository,
ComIdntBasRepository idntfRepository,
ComArcrftBasRepository arcrftRepository,
@ -55,9 +61,11 @@ public class CtrCntrlService {
FltPlanPilotRepository planPilotRepository,
FltPlanAreaRepository planAreaRepository,
FltPlanAreaCoordRepository planCoordRepository,
AreaUtils areaUtils) {
AreaUtils areaUtils,
ControlGpsDataContext shareContext) {
this.query = query;
this.cntrlBasRepository = cntrlBasRepository;
this.cntrlHstryRepository = cntrlHstryRepository;
this.warnLogRepository = warnLogRepository;
this.idntfRepository = idntfRepository;
this.arcrftRepository = arcrftRepository;
@ -67,6 +75,7 @@ public class CtrCntrlService {
this.planAreaRepository = planAreaRepository;
this.planCoordRepository = planCoordRepository;
this.areaUtils = areaUtils;
this.shareContext = shareContext;
}
private Logger logger = LoggerFactory.getLogger(getClass());
@ -184,6 +193,7 @@ public class CtrCntrlService {
return warnLog;
}
public List<CtrCntrlArcrftWarnModel> getArcrftWarnList(String id) {
Map<String, CtrCntrlArcrftWarnModel> map = new HashMap<>();
List<CtrCntrlArcrftWarnModel> result = new ArrayList<>();
@ -225,7 +235,7 @@ public class CtrCntrlService {
* @param idntfNum
* @return
*/
@Transactional(readOnly = true)
public List<BasFlightPlanModel> getFlightPlan(String idntfNum) {
List<BasFlightPlanModel> rs = new ArrayList<>();
@ -368,4 +378,46 @@ public class CtrCntrlService {
return rs;
}
public Map<String, String> getId(String id) {
Map<String, String> result = new HashMap<>();
/* 식별번호의 가장 최근 이력 불러오기 */
CtrCntrlBas latestControl = cntrlBasRepository.findFirstByIdntfNumOrderByCreateDtDesc(id).orElse(null);
boolean isControl = false;
if(latestControl != null) {
CtrCntrlHstry latestHistory = cntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(latestControl.getCntrlId());
long diffMinute = DateUtils.diffMinute(latestHistory.getSrvrRcvDt(), new Date());
log.info("DIFF MINUTE : {}", diffMinute);
if("01".equals(latestControl.getEndTypeCd()) || diffMinute > 5) {
isControl = false;
}
if(!"01".equals(latestControl.getEndTypeCd()) && diffMinute < 5) {
isControl = true;
}
} else {
isControl = false;
}
if(isControl) {
result.put("controlId", latestControl.getCntrlId());
result.put("typeCd", "02");
result.put("areaTrnsYn", "E");
} else {
String controlID = UUID.randomUUID().toString();
result.put("controlId", controlID);
result.put("typeCd", "01");
result.put("areaTrnsYn", "N");
// model.setControlStartDt(DateUtils.getCurrentTime());
// 기체 식별번호의 관제 ID 저장 (single ton)
shareContext.putIdntfKey(id, controlID);
}
return result;
}
}

1
src/main/java/com/palnet/biz/config/WebSecurityConfig.java

@ -37,6 +37,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final String[] PERMITTED_URL = {
"/api/acnt/**",
"/api/ctr/cntrl/id/**",
/* swagger v2 */
"/v2/api-docs",
"/swagger-resources",

2
src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java

@ -41,7 +41,7 @@ public class MessageConsumer {
messageService.insert(mapper); // GPS 정보 DB 동기화 처리
/* Websocket Model 메세지 서버로 위임 */
messageService.sendToMessage(mapper);
// messageService.sendToMessage(mapper);
}
}

4
src/main/resources/application.yml

@ -47,8 +47,8 @@ spring:
hibernate:
# use_sql_comments: true
# use_sql_comments: false
# show_sql: true
# format_sql: true
show_sql: true
format_sql: true
rabbitmq:
host: 192.168.0.24
port: 5672

Loading…
Cancel
Save