Skip to content

Commit f1c171a

Browse files
committed
bugfix and refactoring
1 parent f08f295 commit f1c171a

File tree

6 files changed

+26
-8
lines changed

6 files changed

+26
-8
lines changed

telegram-bot/src/main/java/project/vilsoncake/telegrambot/bot/ScheduleSender.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ public void sendNewAn124Flights() {
212212
flightEntity.setDistance(flight.getDistance());
213213
flightService.addFlightToUser(flightEntity);
214214

215-
if (flight.getDistance() < FLIGHT_IN_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_IN_AIRPORT_ALTITUDE_IN_M) {
215+
if (flight.getAltitude() == ON_GROUND_ALTITUDE && flight.getDistance() < FLIGHT_IN_AIRPORT_DISTANCE_IN_KM) {
216216
SendMessage message = new SendMessage();
217217
message.setChatId(user.getChatId());
218218
message.setParseMode(MARKDOWN_PARSE_MODE);
@@ -224,7 +224,7 @@ public void sendNewAn124Flights() {
224224
flight.getCallsign(), flight.getId()
225225
));
226226
botSender.sendMessage(message);
227-
} else if (flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M) {
227+
} else if (flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M && flight.getVerticalSpeed() < APPROACHING_VERTICAL_SPEED_IN_FPM) {
228228
SendMessage message = new SendMessage();
229229
message.setChatId(user.getChatId());
230230
message.setParseMode(MARKDOWN_PARSE_MODE);
@@ -237,6 +237,8 @@ public void sendNewAn124Flights() {
237237
));
238238
botSender.sendMessage(message);
239239
} else if (flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() > FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M) {
240+
flightService.changeFlightFlyingNear(flightEntity, true);
241+
240242
SendMessage message = new SendMessage();
241243
message.setChatId(user.getChatId());
242244
message.setParseMode(MARKDOWN_PARSE_MODE);
@@ -336,7 +338,8 @@ public void sendNewAn124Flights() {
336338

337339
} else {
338340
FlightEntity flightEntity = flightService.findByUserAndFlightId(user, flight.getId());
339-
if (flight.getDistance() < flightEntity.getDistance() && flight.getDistance() < FLIGHT_IN_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_IN_AIRPORT_ALTITUDE_IN_M && flightEntity.isActive()) {
341+
342+
if (flight.getAltitude() == ON_GROUND_ALTITUDE && flight.getDistance() < FLIGHT_IN_AIRPORT_DISTANCE_IN_KM) {
340343
flightService.changeFlightDistance(flightEntity, flight.getDistance());
341344
SendMessage message = new SendMessage();
342345
message.setChatId(user.getChatId());
@@ -363,7 +366,7 @@ public void sendNewAn124Flights() {
363366
);
364367
}
365368

366-
} else if (flight.getDistance() < flightEntity.getDistance() && flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M && !flightEntity.isActive()) {
369+
} else if (flight.getDistance() < flightEntity.getDistance() && flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() < FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M && !flightEntity.isActive() && flight.getVerticalSpeed() < APPROACHING_VERTICAL_SPEED_IN_FPM) {
367370
flightService.changeFlightActive(flightEntity, true);
368371
flightService.changeFlightDistance(flightEntity, flight.getDistance());
369372
SendMessage message = new SendMessage();
@@ -377,8 +380,9 @@ public void sendNewAn124Flights() {
377380
flight.getCallsign(), flight.getId()
378381
));
379382
botSender.sendMessage(message);
380-
} else if (flight.getDistance() < flightEntity.getDistance() && flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() > FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M) {
381-
flightService.changeFlightDistance(flightEntity, flight.getDistance());
383+
} else if (!flightEntity.isFlyingNear() && flight.getDistance() < FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM && flight.getAltitude() > FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M) {
384+
flightService.changeFlightFlyingNear(flightEntity, true);
385+
382386
SendMessage message = new SendMessage();
383387
message.setChatId(user.getChatId());
384388
message.setParseMode(MARKDOWN_PARSE_MODE);

telegram-bot/src/main/java/project/vilsoncake/telegrambot/constant/NumberConst.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ public class NumberConst {
55
public static final int LANDING_FLIGHTS_CHECK_DELAY_IN_MINUTES = 7;
66
public static final int AN_124_FLIGHTS_CHECK_DELAY_IN_MINUTES = 1;
77
public static final int FLIGHT_CLOSE_TO_AIRPORT_DISTANCE_IN_KM = 175;
8-
public static final int FLIGHT_IN_AIRPORT_DISTANCE_IN_KM = 15;
8+
public static final int FLIGHT_IN_AIRPORT_DISTANCE_IN_KM = 3;
99
public static final int FLIGHT_MAYBE_IN_AIRPORT_ALTITUDE_IN_M = 6000;
1010
public static final int ON_GROUND_ALTITUDE = 0;
11-
public static final int FLIGHT_IN_AIRPORT_ALTITUDE_IN_M = 2000;
1211
public static final int APPROACHING_VERTICAL_SPEED_IN_FPM = -500;
1312
public static final int LOW_ALTITUDE_IN_M = 5500;
1413
public static final int CLOSE_TO_AIRPORT_RANGE_IN_KM = 65;

telegram-bot/src/main/java/project/vilsoncake/telegrambot/entity/FlightEntity.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public class FlightEntity {
4646
@Column(name = "on_ground")
4747
private boolean onGround = false;
4848

49+
@Column(name = "flying_near")
50+
private boolean flyingNear = false;
51+
4952
@Setter(AccessLevel.NONE)
5053
@Column(name = "created_at", updatable = false)
5154
private Date createdAt = new Date();

telegram-bot/src/main/java/project/vilsoncake/telegrambot/service/FlightService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public interface FlightService {
1515
boolean changeFlightLanding(FlightEntity flight, boolean landing);
1616
boolean changeFlightOnGround(FlightEntity flight, boolean onGround);
1717
boolean changeFlightDistance(FlightEntity flight, Integer distance);
18+
boolean changeFlightFlyingNear(FlightEntity flight, boolean flyingNear);
1819
boolean changeFlightDepartureAirport(FlightEntity flight, String departureAirport);
1920
boolean existsByUserAndFlightId(UserEntity user, String flightId);
2021
}

telegram-bot/src/main/java/project/vilsoncake/telegrambot/service/impl/FlightServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ public boolean changeFlightDistance(FlightEntity flight, Integer distance) {
8787
return true;
8888
}
8989

90+
@Override
91+
public boolean changeFlightFlyingNear(FlightEntity flight, boolean flyingNear) {
92+
flight.setFlyingNear(flyingNear);
93+
flightRepository.save(flight);
94+
95+
return true;
96+
}
97+
9098
@Override
9199
public boolean changeFlightDepartureAirport(FlightEntity flight, String departureAirport) {
92100
flight.setDepartureAirport(departureAirport);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ALTER TABLE flight ADD flying_near BOOLEAN DEFAULT FALSE;
2+
3+
UPDATE flight SET flying_near = false;

0 commit comments

Comments
 (0)