유저생성 정보

로그인 정보 batch 추가
This commit is contained in:
2025-04-03 10:51:49 +09:00
parent 88c061fa65
commit 160df69374
7 changed files with 118 additions and 5 deletions

View File

@@ -14,7 +14,9 @@ public enum StatisticsType {
CAPACITY,
UGQ_CREATE,
SERVER_INFO,
MONEY
MONEY,
USER_CREATE,
USER_LOGIN
;
public static StatisticsType getStatisticsType(String type) {

View File

@@ -0,0 +1,26 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "userCreate")
public class UserCreateLogInfo extends LogInfoBase{
private String logDay;
private String accountId;
private String userGuid;
private String userNickname;
private String createdTime;
public UserCreateLogInfo(String logDay, String accountId, String userGuid, String userNickname, String createdTime) {
super(StatisticsType.USER_CREATE);
this.logDay = logDay;
this.accountId = accountId;
this.userGuid = userGuid;
this.userNickname = userNickname;
this.createdTime = createdTime;
}
}

View File

@@ -0,0 +1,46 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
import java.util.Map;
@Getter
@Setter
@Document(collection = "userLogin")
public class UserLoginLogInfo extends LogInfoBase{
private String logDay;
private String accountId;
private String userGuid;
private String userNickname;
private List<Map<String, Object>> sessions;
private String firstLoginTime;
private String lastLogoutTime;
private Integer loginCount;
private Double totalPlayTime;
public UserLoginLogInfo(String logDay,
String accountId,
String userGuid,
String userNickname,
List<Map<String, Object>> sessions,
String firstLoginTime,
String lastLogoutTime,
Integer loginCount,
Double totalPlayTime)
{
super(StatisticsType.USER_LOGIN);
this.logDay = logDay;
this.accountId = accountId;
this.userGuid = userGuid;
this.userNickname = userNickname;
this.sessions = sessions;
this.firstLoginTime = firstLoginTime;
this.lastLogoutTime = lastLogoutTime;
this.loginCount = loginCount;
this.totalPlayTime = totalPlayTime;
}
}

View File

@@ -0,0 +1,7 @@
package com.caliverse.admin.Indicators.indicatorrepository;
import com.caliverse.admin.Indicators.entity.UserCreateLogInfo;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface IndicatorUserCreateRepository extends MongoRepository<UserCreateLogInfo, String> {
}

View File

@@ -0,0 +1,7 @@
package com.caliverse.admin.Indicators.indicatorrepository;
import com.caliverse.admin.Indicators.entity.UserLoginLogInfo;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface IndicatorUserLoginRepository extends MongoRepository<UserLoginLogInfo, String> {
}

View File

@@ -195,8 +195,8 @@ public class ScheduleSetter {
}
//log
@Scheduled(cron = "00 00 00 1 * ?") // 매월 1일에 실행
public void logJob(){
logService.compressLastMonthLogs();
}
// @Scheduled(cron = "00 00 00 1 * ?") // 매월 1일에 실행
// public void logJob(){
// logService.compressLastMonthLogs();
// }
}

View File

@@ -5,11 +5,15 @@ import com.caliverse.admin.domain.service.BlackListService;
import com.caliverse.admin.domain.service.EventService;
import com.caliverse.admin.domain.service.MailService;
import com.caliverse.admin.domain.service.NoticeService;
import com.caliverse.admin.global.common.constants.AdminConstants;
import com.caliverse.admin.global.common.utils.ExcelUtils;
import com.caliverse.admin.logs.Indicatordomain.StartEndTime;
import com.caliverse.admin.logs.logservice.LogServiceHelper;
import com.caliverse.admin.logs.logservice.indicators.*;
import com.caliverse.admin.redis.service.RedisUserInfoService;
import com.caliverse.admin.scheduler.DynamicScheduler;
import com.caliverse.admin.scheduler.SchedulerManager;
import com.caliverse.admin.scheduler.batch.service.LogCompressService;
import com.caliverse.admin.scheduler.entity.SchedulerType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -26,6 +30,27 @@ public class ScheduleRunnerBatch {
private final SchedulerManager schedulerManager;
@Autowired private LogCompressService logService;
@Autowired private IndicatorsUserCreateService userCreateService;
@Autowired private IndicatorsUserLoginService userLoginService;
//log backup
@Scheduled(cron = "00 00 00 1 * ?") // 매월 1일에 실행
public void logJob(){
logService.compressLastMonthLogs();
}
@Scheduled(cron = "00 30 0 * * *") // 매일 UTC 기준 00시 30분 00초에 실행
public void userCreateScheduler() {
StartEndTime startEndTime = LogServiceHelper.getCurrentLogSearchEndTime(AdminConstants.STAT_DAY_NUM);
userCreateService.collectUserCreate(startEndTime.getStartTime(), startEndTime.getEndTime());
}
@Scheduled(cron = "30 30 0 * * *") // 매일 UTC 기준 00시 30분 30초에 실행
public void userLoginScheduler() {
StartEndTime startEndTime = LogServiceHelper.getCurrentLogSearchEndTime(AdminConstants.STAT_DAY_NUM);
userLoginService.collectUserLogin(startEndTime.getStartTime(), startEndTime.getEndTime());
}
}