diff --git a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java index 5b7d821..3f81170 100644 --- a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java +++ b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java @@ -10,8 +10,18 @@ import com.palnet.server.collection.ChannelCollection; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.HashMap; +import java.util.Map; + @Component @Slf4j public class MessageConsumer { @@ -20,10 +30,12 @@ public class MessageConsumer { private final ObjectMapper objectMapper; private final CtrHistoryShareContext gpHistoryShareModel; + private final Environment env; - public MessageConsumer(CtrHistoryShareContext gpHistoryShareModel) { + public MessageConsumer(CtrHistoryShareContext gpHistoryShareModel, Environment env) { this.objectMapper = JsonUtils.getObjectMapper(); this.gpHistoryShareModel = gpHistoryShareModel; + this.env = env; } @RabbitHandler @@ -32,15 +44,18 @@ public class MessageConsumer { log.info("websocket message : {}", message); GPModel model = objectMapper.readValue(message, GPModel.class); - CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환 + /** + * 비정상 Check + */ + boolean controlWarnCd = this.checkControlWarring(model); + model.setControlWarnCd(controlWarnCd); -// boolean noty = this.checkWarnNoty(history, model.getObjectId()); // 비정상 상황 알림 여부 -// history.setControlWarnNotyCd(noty); + CtrCntrlModel history = this.convertModel(model); // 웹 표출 model로 변환 gpHistoryShareModel.putHistory(model.getObjectId(), history); } - public CtrCntrlModel modelConvert(final GPModel dataInfo) { + public CtrCntrlModel convertModel(final GPModel dataInfo) { CtrCntrlModel model = new CtrCntrlModel(); CtrCntrlModel prevModel = gpHistoryShareModel.getHistory(dataInfo.getObjectId()); @@ -93,4 +108,35 @@ public class MessageConsumer { return model; } + + public boolean checkControlWarring(GPModel model) { + try { + HttpRequest request = HttpRequest.newBuilder() + .uri(new URI( +// "http://211.253.38.218:8080/api/ctr/cntrl/id/" + model.getObjectId() + env.getProperty("app.host") + "api/ctr/cntrl/warn/" + model.getObjectId() + + "/" + model.getLat() + + "/" + model.getLng() + + )) + .version(HttpClient.Version.HTTP_2) + .GET() + .build(); + + HttpResponse response = HttpClient + .newHttpClient() + .send(request, HttpResponse.BodyHandlers.ofString()); + + Map body = JsonUtils.fromJson(response.body(), HashMap.class); + Map data = (Map) body.get("data"); + + return "Y".equals(data.get("controlWarnCd")) ? true : false; + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 421b163..74a3f13 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -28,6 +28,9 @@ message: exchange-name: websocket.drone.exchange routing-key: websocket.drone.routing.# +app: + host: http://127.0.0.1:8080/ + --- spring: @@ -68,6 +71,8 @@ logging: level: com.palnet: debug +app: + host: http://211.253.38.218:8080/ --- @@ -107,4 +112,7 @@ logging: file: name: /data/logs/data.log level: - com.palnet: debug \ No newline at end of file + com.palnet: debug + +app: + host: http://211.253.38.218:8080/ \ No newline at end of file