전투 진행시간 수정

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") @JsonProperty("event_start_dt")
private LocalDateTime eventStartDt; private LocalDateTime eventStartDt;
@JsonProperty("event_end_time")
private LocalDateTime eventEndTime;
// 종료 일자 // 종료 일자
@JsonProperty("event_end_dt") @JsonProperty("event_end_dt")
private LocalDateTime eventEndDt; private LocalDateTime eventEndDt;

View File

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

View File

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

View File

@@ -31,7 +31,6 @@ import java.util.zip.ZipOutputStream;
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExcelService { public class ExcelService {
private final ExcelProgressTracker progressTracker; private final ExcelProgressTracker progressTracker;
private final DiagnosisService diagnosisService;
// CSV 구분자 // CSV 구분자
private static final String CSV_DELIMITER = ","; 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 FALSE = "False";
public static final String NONE = "None"; public static final String NONE = "None";
public static final String SCHEDULE = "Schedule"; 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 int BATTLE_INSTANCE_ID = 1017007;
public static final String CALIUM_ITEM_CODE = "19010003"; public static final String CALIUM_ITEM_CODE = "19010003";
public static final String CALIVERSE_CODE = "CALIVERSE"; public static final String CALIVERSE_CODE = "CALIVERSE";

View File

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