이용자 제재 스케줄 처리 수정
This commit is contained in:
@@ -98,7 +98,7 @@ public class BlackListService {
|
|||||||
BlackList blackList = new BlackList();
|
BlackList blackList = new BlackList();
|
||||||
blackList.setGuid(item);
|
blackList.setGuid(item);
|
||||||
//gameDB에서 닉네임, isWhiteUser, isBlackUser 조회
|
//gameDB에서 닉네임, isWhiteUser, isBlackUser 조회
|
||||||
String nickName = dynamoDBService.getGuidByName(item);
|
String nickName = dynamodbUserService.getGuidByName(item);
|
||||||
if(nickName != ""){
|
if(nickName != ""){
|
||||||
blackList.setNickname(nickName);
|
blackList.setNickname(nickName);
|
||||||
}
|
}
|
||||||
@@ -191,7 +191,7 @@ public class BlackListService {
|
|||||||
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_EXIT_ERROR.getMessage());
|
throw new RestApiException(CommonCode.ERROR.getHttpStatus(), ErrorCode.DYNAMODB_EXIT_ERROR.getMessage());
|
||||||
}
|
}
|
||||||
blackListRequest.setGuid(item.getGuid());
|
blackListRequest.setGuid(item.getGuid());
|
||||||
blackListRequest.setNickname(dynamoDBService.getGuidByName(item.getGuid()));
|
blackListRequest.setNickname(dynamodbUserService.getGuidByName(item.getGuid()));
|
||||||
blackListMapper.postBlackList(blackListRequest);
|
blackListMapper.postBlackList(blackListRequest);
|
||||||
logger.info("postBlackList insertBlackList: {}",blackListRequest);
|
logger.info("postBlackList insertBlackList: {}",blackListRequest);
|
||||||
}
|
}
|
||||||
@@ -226,14 +226,14 @@ public class BlackListService {
|
|||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("guid",blackList.getGuid());
|
jsonObject.put("guid",blackList.getGuid());
|
||||||
jsonObject.put("name","");
|
jsonObject.put("name","");
|
||||||
//todo 닉네임을 dynamoDB에서 조회해와야 됨
|
|
||||||
map.put("content",jsonObject.toString());
|
map.put("content",jsonObject.toString());
|
||||||
historyMapper.saveLog(map);
|
historyMapper.saveLog(map);
|
||||||
//dynamoDB char# 테이블에 isBlackUser : false 값을 insert
|
//dynamoDB char# 테이블에 isBlackUser : false 값을 insert
|
||||||
// dynamoDBService.insertUpdateData(blackList.getGuid(),"isBlackUser", false);
|
// dynamoDBService.insertUpdateData(blackList.getGuid(),"isBlackUser", false);
|
||||||
logger.info("deleteBlackList delete: {}",map);
|
logger.info("deleteBlackList delete: {}",map);
|
||||||
if(blackList.getStatus().equals(BlackList.STATUSTYPE.INPROGRESS))
|
if(blackList.getStatus().equals(BlackList.STATUSTYPE.INPROGRESS))
|
||||||
dynamoDBService.updateBlockUserEnd(blackList.getGuid());
|
dynamodbUserService.updateBlockUser(BlackList.STATUSTYPE.EXPIRATION, blackList);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -179,32 +179,56 @@ public class DynamicScheduler {
|
|||||||
List<BlackList> blackList = blackListService.getScheduleBlackList();
|
List<BlackList> blackList = blackListService.getScheduleBlackList();
|
||||||
|
|
||||||
try{
|
try{
|
||||||
|
LocalDateTime nowDate = LocalDateTime.now();
|
||||||
blackList.forEach(blockUser -> {
|
blackList.forEach(blockUser -> {
|
||||||
LocalDateTime nowDate = LocalDateTime.now();
|
BlackList.STATUSTYPE status = blockUser.getStatus();
|
||||||
LocalDateTime startTime = blockUser.getStartDt();
|
|
||||||
LocalDateTime endTime = blockUser.getEndDt();
|
|
||||||
|
|
||||||
// 이미 지난시간이면 fail 처리
|
// WAIT 상태 처리
|
||||||
if(nowDate.isAfter(endTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.WAIT)){
|
if(status == BlackList.STATUSTYPE.WAIT) {
|
||||||
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.FAIL);
|
if(nowDate.isAfter(blockUser.getEndDt())) {
|
||||||
log.error("blackListJob blackListSchedule timeOut : {}", blockUser);
|
// 만료시간 초과 - FAIL 처리
|
||||||
return;
|
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.FAIL);
|
||||||
|
log.error("blackListJob blackListSchedule timeOut : {}", blockUser);
|
||||||
|
} else if(!nowDate.isBefore(blockUser.getStartDt())) {
|
||||||
|
// 시작시간 도달 - INPROGRESS 처리
|
||||||
|
userGameSessionService.kickUserSession(blockUser.getGuid());
|
||||||
|
blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.INPROGRESS);
|
||||||
|
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.INPROGRESS);
|
||||||
|
log.info("blackListJob blackListSchedule block start : {}", blockUser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// INPROGRESS 상태 처리
|
||||||
// 시작시간 지났으면 정지 처리
|
else if(status == BlackList.STATUSTYPE.INPROGRESS && !nowDate.isBefore(blockUser.getEndDt())) {
|
||||||
if(!nowDate.isBefore(startTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.WAIT)){
|
// 만료시간 도달 - EXPIRATION 처리
|
||||||
// user kick 처리
|
|
||||||
userGameSessionService.kickUserSession(blockUser.getGuid());
|
|
||||||
blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.INPROGRESS);
|
|
||||||
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.INPROGRESS);
|
|
||||||
log.info("blackListJob blackListSchedule block start : {}", blockUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!nowDate.isBefore(endTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.INPROGRESS)){
|
|
||||||
blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.EXPIRATION);
|
blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.EXPIRATION);
|
||||||
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.EXPIRATION);
|
blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.EXPIRATION);
|
||||||
log.info("blackListJob blackListSchedule block end : {}", blockUser);
|
log.info("blackListJob blackListSchedule block end : {}", blockUser);
|
||||||
}
|
}
|
||||||
|
// LocalDateTime startTime = blockUser.getStartDt();
|
||||||
|
// LocalDateTime endTime = blockUser.getEndDt();
|
||||||
|
//
|
||||||
|
// // 상태가 대기중이고 만료시간이 지났으면 실패 처리
|
||||||
|
// if(nowDate.isAfter(endTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.WAIT)){
|
||||||
|
// blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.FAIL);
|
||||||
|
// log.error("blackListJob blackListSchedule timeOut : {}", blockUser);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 상태가 대기중이고 시작시간 지났으면 유저제재 처리
|
||||||
|
// if(!nowDate.isBefore(startTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.WAIT)){
|
||||||
|
// // user kick 처리
|
||||||
|
// userGameSessionService.kickUserSession(blockUser.getGuid());
|
||||||
|
// blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.INPROGRESS);
|
||||||
|
// blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.INPROGRESS);
|
||||||
|
// log.info("blackListJob blackListSchedule block start : {}", blockUser);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 상태가 제재중이고 만료시간 지났으면 상태 종료 처리
|
||||||
|
// if(!nowDate.isBefore(endTime) && blockUser.getStatus().equals(BlackList.STATUSTYPE.INPROGRESS)){
|
||||||
|
// blackListService.updateScheduleBlockUser(blockUser, BlackList.STATUSTYPE.EXPIRATION);
|
||||||
|
// blackListService.updateBlackListStatus(blockUser.getId(), BlackList.STATUSTYPE.EXPIRATION);
|
||||||
|
// log.info("blackListJob blackListSchedule block end : {}", blockUser);
|
||||||
|
// }
|
||||||
});
|
});
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("blackListSchedule Exception: {}", e.getMessage());
|
log.error("blackListSchedule Exception: {}", e.getMessage());
|
||||||
|
|||||||
@@ -157,7 +157,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getCountByGuid" parameterType="java.lang.String" resultType="java.lang.Integer">
|
<select id="getCountByGuid" parameterType="java.lang.String" resultType="java.lang.Integer">
|
||||||
SELECT COUNT(*) FROM black_list WHERE guid = #{guid} and STATUS <> 'EXPIRATION' AND deleted = 0
|
SELECT COUNT(*) FROM black_list WHERE guid = #{guid} and STATUS in ('INPROGRESS','WAIT') AND deleted = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="postBlackList" parameterType="com.caliverse.admin.domain.request.BlackListRequest">
|
<insert id="postBlackList" parameterType="com.caliverse.admin.domain.request.BlackListRequest">
|
||||||
|
|||||||
Reference in New Issue
Block a user