전투 진행시간 수정

This commit is contained in:
2025-07-01 17:04:13 +09:00
parent 57970d0f44
commit 8c4cdbf659
6 changed files with 11 additions and 26 deletions

View File

@@ -31,8 +31,6 @@ public class BattleEvent {
// 시작 일자
@JsonProperty("event_start_dt")
private LocalDateTime eventStartDt;
@JsonProperty("event_end_time")
private LocalDateTime eventEndTime;
// 종료 일자
@JsonProperty("event_end_dt")
private LocalDateTime eventEndDt;

View File

@@ -31,8 +31,6 @@ public class BattleEventRequest {
// 시작 일자
@JsonProperty("event_start_dt")
private LocalDateTime eventStartDt;
@JsonProperty("event_end_time")
private LocalDateTime eventEndTime;
// 종료 일자
@JsonProperty("event_end_dt")
private LocalDateTime eventEndDt;

View File

@@ -155,18 +155,12 @@ public class BattleEventService {
}
// int operation_time = ffACalcEndTime(battleEventRequest);
LocalTime startTime = battleEventRequest.getEventStartDt().toLocalTime();
LocalTime endTime = battleEventRequest.getEventEndTime().toLocalTime();
long duration = Duration.between(startTime, endTime).getSeconds();
int operation_time = (int) duration;
battleEventRequest.setEventOperationTime(operation_time);
List<BattleEvent> existingList = battleMapper.getCheckBattleEventList(battleEventRequest);
boolean isTime = isTimeOverlapping(existingList, battleEventRequest);
if(isTime){
log.warn("battle Schedule duplication start_dt: {}, end_dt: {}, operation_time: {}", battleEventRequest.getEventStartDt(), battleEventRequest.getEventEndDt(), operation_time);
log.warn("battle Schedule duplication start_dt: {}, end_dt: {}, operation_time: {}",
battleEventRequest.getEventStartDt(), battleEventRequest.getEventEndDt(), battleEventRequest.getEventOperationTime());
return BattleEventResponse.builder()
.status(CommonCode.ERROR.getHttpStatus())
.result(ErrorCode.ERROR_BATTLE_EVENT_TIME_OVER.toString())
@@ -230,8 +224,8 @@ public class BattleEventService {
.build();
}
int operation_time = ffACalcEndTime(battleEventRequest);
battleEventRequest.setEventOperationTime(operation_time);
// int operation_time = ffACalcEndTime(battleEventRequest);
// battleEventRequest.setEventOperationTime(operation_time);
// 일자만 필요해서 UTC시간으로 변경되다보니 한국시간(+9)을 더해서 마지막시간으로 설정
LocalDateTime end_dt_kst = battleEventRequest.getEventEndDt()
@@ -407,7 +401,7 @@ public class BattleEventService {
LocalDate newStartDate = newStartDt.toLocalDate();
LocalDate newEndDate = newEndDt.toLocalDate();
LocalTime newStartTime = newStartDt.toLocalTime();
LocalTime newEndTime = newStartTime.plusSeconds(battleEventRequest.getEventOperationTime());
LocalTime newEndTime = newStartTime.plusSeconds(battleEventRequest.getEventOperationTime() + CommonConstants.BATTLE_SERVER_WAIT_TIME);
BattleEvent.BATTLE_REPEAT_TYPE newRepeatType = battleEventRequest.getRepeatType();
return existingList.stream().anyMatch(existingEvent -> {
@@ -420,7 +414,7 @@ public class BattleEventService {
LocalDate existingStartDate = existingStartDt.toLocalDate();
LocalDate existingEndDate = existingEndDt.toLocalDate();
LocalTime existingStartTime = existingStartDt.toLocalTime();
LocalTime existingEndTime = existingStartTime.plusSeconds(existingEvent.getEventOperationTime());
LocalTime existingEndTime = existingStartTime.plusSeconds(existingEvent.getEventOperationTime() + CommonConstants.BATTLE_SERVER_WAIT_TIME);
BattleEvent.BATTLE_REPEAT_TYPE existingRepeatType = existingEvent.getRepeatType();
// 1. 두 이벤트가 모두 NONE 타입인 경우

View File

@@ -31,7 +31,6 @@ import java.util.zip.ZipOutputStream;
@RequiredArgsConstructor
public class ExcelService {
private final ExcelProgressTracker progressTracker;
private final DiagnosisService diagnosisService;
// CSV 구분자
private static final String CSV_DELIMITER = ",";

View File

@@ -5,7 +5,7 @@ public class CommonConstants {
public static final String FALSE = "False";
public static final String NONE = "None";
public static final String SCHEDULE = "Schedule";
public static final int BATTLE_SERVER_WAIT_TIME = 300; // (seconds) 이벤트 홍보시간 300초인데 여유있게 처리하게 하기위해 600으로 준다.
public static final int BATTLE_SERVER_WAIT_TIME = 300; // (se) 여유시간 3
public static final int BATTLE_INSTANCE_ID = 1017007;
public static final String CALIUM_ITEM_CODE = "19010003";
public static final String CALIVERSE_CODE = "CALIVERSE";

View File

@@ -11,7 +11,6 @@
<result property="eventOperationTime" column="event_operation_time"/>
<result property="status" column="status"/>
<result property="eventStartDt" column="event_start_dt"/>
<result property="eventEndTime" column="event_end_time"/>
<result property="eventEndDt" column="event_end_dt"/>
<result property="roundTime" column="round_time"/>
<result property="roundCount" column="round_count"/>
@@ -41,7 +40,6 @@
, a.event_operation_time
, a.status
, a.event_start_dt
, a.event_end_time
, a.event_end_dt
, a.round_time
, a.round_count
@@ -207,6 +205,7 @@
, event_end_dt
FROM battle_event
WHERE status NOT IN ('END', 'FAIL', 'CANCEL', 'STOP')
AND game_mode_id = #{gameModeId}
<if test="id != null and id != ''">
AND id &lt;&gt; #{id}
</if>
@@ -287,10 +286,9 @@
, a.event_id
, a.event_name
, a.repeat_type
, a.event_operation_time
, (a.event_operation_time / 60) as event_operation_time
, a.status
, a.event_start_dt
, a.event_end_time
, a.event_end_dt
, a.round_time
, a.round_count
@@ -308,8 +306,8 @@
<!--저장-->
<insert id="postBattleEvent" parameterType="com.caliverse.admin.domain.request.BattleEventRequest" useGeneratedKeys="true" keyProperty="id">
INSERT INTO battle_event (group_id, event_name, repeat_type, event_operation_time, event_start_dt, event_end_time, event_end_dt, config_id, reward_group_id, round_time, round_count, hot_time, instance_id, game_mode_id, create_by, update_by)
VALUES (#{groupId}, #{eventName}, #{repeatType}, #{eventOperationTime}, #{eventStartDt}, #{eventEndTime}, #{eventEndDt}, #{configId}, #{rewardGroupId}, #{roundTime}, #{roundCount}, #{hotTime}, #{instanceId}, #{gameModeId}, #{createBy}, #{updateBy})
INSERT INTO battle_event (group_id, event_name, repeat_type, event_operation_time, event_start_dt, event_end_dt, config_id, reward_group_id, round_time, round_count, hot_time, instance_id, game_mode_id, create_by, update_by)
VALUES (#{groupId}, #{eventName}, #{repeatType}, #{eventOperationTime}, #{eventStartDt}, #{eventEndDt}, #{configId}, #{rewardGroupId}, #{roundTime}, #{roundCount}, #{hotTime}, #{instanceId}, #{gameModeId}, #{createBy}, #{updateBy})
</insert>
<!--수정-->
@@ -319,7 +317,6 @@
, event_operation_time = #{eventOperationTime}
, config_id = #{configId}
, event_start_dt = #{eventStartDt}
, event_end_time = #{eventEndTime}
, event_end_dt = #{eventEndDt}
, reward_group_id = #{rewardGroupId}
, round_time = #{roundTime}
@@ -361,7 +358,6 @@
, event_operation_time
, status
, event_start_dt
, event_end_time
, event_end_dt
, round_time
, round_count