This commit is contained in:
2025-02-12 18:32:21 +09:00
commit aff0f4eeda
767 changed files with 285356 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
package com.caliverse.admin.Indicators.Indicatordomain;
public interface IndicatorsLog {
}

View File

@@ -0,0 +1,58 @@
package com.caliverse.admin.Indicators.Indicatordomain;
import java.time.LocalDate;
import java.util.List;
import com.caliverse.admin.domain.entity.Currencys;
import com.caliverse.admin.domain.entity.Distinct;
import com.caliverse.admin.domain.response.IndicatorsResponse.DailyGoods;
import com.caliverse.admin.domain.response.IndicatorsResponse.Dau;
import com.caliverse.admin.domain.response.IndicatorsResponse.MCU;
import com.caliverse.admin.domain.response.IndicatorsResponse.NRU;
import com.caliverse.admin.domain.response.IndicatorsResponse.PU;
import com.caliverse.admin.domain.response.IndicatorsResponse.Playtime;
import com.caliverse.admin.domain.response.IndicatorsResponse.Retention;
import com.caliverse.admin.domain.response.IndicatorsResponse.Segment;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class IndicatorsResult {
private String message;
//이용자 지표
private LocalDate date;
private Dau dau;
private NRU nru;
private PU pu;
private MCU mcu;
@JsonProperty("distinct")
private List<Distinct> list;
//Retention
@JsonProperty("retention")
private List<Retention> retentionList;
//Segment
@JsonProperty("start_dt")
private String startDt;
@JsonProperty("end_dt")
private String endDt;
@JsonProperty("segment")
private List<Segment> segmentList;
//플레이타임
@JsonProperty("playtime")
private List<Playtime> playtimeList;
//재화
@JsonProperty("currencys")
private List<Currencys> currencysList;
@JsonProperty("list")
private List<DailyGoods> dailyGoods;
//@JsonProperty("dau_list")
//private List<DailyActiveUser> dailyActiveUserList;
}

View File

@@ -0,0 +1,38 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import java.util.List;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
@Service
public class IndicatorsAuLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsAuLoadService( @Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate){
super(mongoTemplate);
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime);
List<AggregationOperation> operations = setDefaultOperation(criteria);
Aggregation aggregation = Aggregation.newAggregation(operations);
AggregationResults<T> results = mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_LOG, clazz);
List<T> mappedResult = results.getMappedResults();
return mappedResult;
}
}

View File

@@ -0,0 +1,68 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsCapacityLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsCapacityLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_CAPACITY_READ_TOTAL).then(0L))
.as(AdminConstants.MONGO_DB_KEY_CAPACITY_READ_TOTAL)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_CAPACITY_WRITE_TOTAL).then(0L))
.as(AdminConstants.MONGO_DB_KEY_CAPACITY_WRITE_TOTAL);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_CAPACITY, clazz)
.getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_CAPACITY_READ_TOTAL).then(0L))
.as(AdminConstants.MONGO_DB_KEY_CAPACITY_READ_TOTAL)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_CAPACITY_WRITE_TOTAL).then(0L))
.as(AdminConstants.MONGO_DB_KEY_CAPACITY_WRITE_TOTAL);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_CAPACITY, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,69 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsDauLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsDauLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_DAU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_DAU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_DAU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
List<T> results = mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DAU, clazz)
.getMappedResults();
return results.get(0);
// return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DAU, clazz)
// .getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_DAU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_DAU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_DAU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DAU, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,62 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsDglcLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsDglcLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_DGLC, AdminConstants.MONGO_DB_KEY_LOGDAY);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DGLC, clazz)
.getUniqueMappedResult();
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_DGLC, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_DGLC).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_DGLC);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DGLC, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,62 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsMauLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsMauLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_MAU, AdminConstants.MONGO_DB_KEY_LOGDAY);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_MAU, clazz)
.getUniqueMappedResult();
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_MAU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_MAU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_MAU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_MAU, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,69 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsMcuLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsMcuLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_MAX_COUNT_USER, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_MAX_COUNT_USER).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_MCU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
List<T> results = mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_MCU, clazz)
.getMappedResults();
return results.get(0);
// return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_MCU, clazz)
// .getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_MAX_COUNT_USER, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_MAX_COUNT_USER).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_MCU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_MCU, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,69 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsMetaverServerLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsMetaverServerLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_SERVER_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_SERVER_COUNT).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_METAVER_SERVER);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
List<T> results = mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_METAVER_SERVER, clazz)
.getMappedResults();
return results.get(0);
// return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_DAU, clazz)
// .getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_SERVER_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_SERVER_COUNT).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_METAVER_SERVER);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_METAVER_SERVER, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,69 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsNruLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsNruLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_NRU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_NRU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_NRU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
List<T> results = mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_NRU, clazz)
.getMappedResults();
return results.get(0);
// return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_NRU, clazz)
// .getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_NRU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_NRU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_NRU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_NRU, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,62 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsPlayTimeLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsPlayTimeLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_TOTAL_PLAY_TIME_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_PLAYTIME, clazz)
.getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_TOTAL_PLAY_TIME_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_TOTAL_PLAY_TIME_COUNT).then(0L))
.as(AdminConstants.MONGO_DB_COLLECTION_PLAYTIME);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_PLAYTIME, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,64 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsUgqCreateLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsUgqCreateLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_UGQ_CREATE_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_UGQ_CREATE_COUNT).then(0L))
.as(AdminConstants.MONGO_DB_COLLECTION_UGQ_CREATE);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_UGQ_CREATE, clazz)
.getUniqueMappedResult(); // 단일 결과만 반환
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_KEY_UGQ_CREATE_COUNT, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_KEY_UGQ_CREATE_COUNT).then(0L))
.as(AdminConstants.MONGO_DB_COLLECTION_UGQ_CREATE);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_UGQ_CREATE, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,62 @@
package com.caliverse.admin.Indicators.Indicatorsservice.aggregationservice;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import com.caliverse.admin.Indicators.Indicatorsservice.base.IndicatorsLogLoadServiceBase;
import com.caliverse.admin.global.common.constants.AdminConstants;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ConditionalOperators;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IndicatorsWauLoadService extends IndicatorsLogLoadServiceBase {
public IndicatorsWauLoadService(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
super(mongoTemplate);
}
public <T extends IndicatorsLog> T getDailyIndicatorLog(String date, Class<T> clazz) {
Criteria criteria = Criteria.where(AdminConstants.MONGO_DB_KEY_LOGDAY).is(date);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_WAU, AdminConstants.MONGO_DB_KEY_LOGDAY);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_WAU, clazz)
.getUniqueMappedResult();
}
@Override
public <T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz) {
Criteria criteria = makeCriteria(startTime, endTime, AdminConstants.MONGO_DB_KEY_LOGDAY);
ProjectionOperation projection = Aggregation.project()
.andInclude(AdminConstants.MONGO_DB_COLLECTION_WAU, AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(ConditionalOperators.ifNull("$" + AdminConstants.MONGO_DB_COLLECTION_WAU).then(0))
.as(AdminConstants.MONGO_DB_COLLECTION_WAU);
List<AggregationOperation> operations = List.of(
Aggregation.match(criteria),
projection,
Aggregation.sort(Sort.Direction.ASC, AdminConstants.MONGO_DB_KEY_LOGDAY)
);
Aggregation aggregation = Aggregation.newAggregation(operations);
return mongoTemplate.aggregate(aggregation, AdminConstants.MONGO_DB_COLLECTION_WAU, clazz).getMappedResults();
}
}

View File

@@ -0,0 +1,11 @@
package com.caliverse.admin.Indicators.Indicatorsservice.base;
import java.util.List;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
public interface IndicatorsLogLoadService {
<T extends IndicatorsLog> List<T> getIndicatorsLogData(String startTime, String endTime, Class<T> clazz);
}

View File

@@ -0,0 +1,67 @@
package com.caliverse.admin.Indicators.Indicatorsservice.base;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
import com.caliverse.admin.global.common.constants.AdminConstants;
@Service
public abstract class IndicatorsLogLoadServiceBase implements IndicatorsLogLoadService {
protected final MongoTemplate mongoTemplate;
public IndicatorsLogLoadServiceBase(
@Qualifier("mongoIndicatorTemplate") MongoTemplate mongoTemplate
) {
this.mongoTemplate = mongoTemplate;
}
protected Criteria makeCriteria(String startDate, String endDate, String dateFieldName) {
return new Criteria()
.andOperator(
Criteria.where(dateFieldName).gte(startDate),
Criteria.where(dateFieldName).lt(endDate)
);
}
public Criteria makeCriteria(String startDate, String endDate)
{
return makeCriteria(startDate, endDate, AdminConstants.MONGO_DB_KEY_LOGTIME);
}
// 24.12.13 현재 사용안함
private AggregationOperation getDefaultProjectOperationName(){
ProjectionOperation projectOperation = Aggregation.project()
.and(AdminConstants.MONGO_DB_KEY_LOGDAY).as(AdminConstants.MONGO_DB_KEY_LOGDAY)
.and(AdminConstants.INDICATORS_KEY_DAU_BY_LANG).as(AdminConstants.INDICATORS_KEY_DAU_BY_LANG)
;
return projectOperation;
}
// 24.12.13 현재 사용안함
protected List<AggregationOperation> setDefaultOperation(Criteria criteria){
List<AggregationOperation> operations = new ArrayList<>();
operations.add(Aggregation.match(criteria));
operations.add(getDefaultProjectOperationName());
return operations;
}
}

View File

@@ -0,0 +1,34 @@
package com.caliverse.admin.Indicators.entity;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Document(collection = "au")
public class AuPerMinLogInfo extends LogInfoBase {
@Id
private String logMinute;
private String languageType;
private List<String> userGuidList;
private int userGuidListCount;
public AuPerMinLogInfo(String logMinute, String languageType, List<String> userGuidList, int userGuidListCount) {
super(StatisticsType.AU_PER_MIN);
this.logMinute = logMinute;
this.languageType = languageType;
this.userGuidList = userGuidList;
this.userGuidListCount = userGuidListCount;
}
}

View File

@@ -0,0 +1,25 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "capacity")
public class DBCapacityInfo extends LogInfoBase{
private String logDay;
private String namespace;
private Long consumeReadTotal;
private Long consumeWriteTotal;
public DBCapacityInfo(String logDay, String namespace, Long consumeReadTotal, Long consumeWriteTotal) {
super(StatisticsType.CAPACITY);
this.logDay = logDay;
this.namespace = namespace;
this.consumeReadTotal = consumeReadTotal;
this.consumeWriteTotal = consumeWriteTotal;
}
}

View File

@@ -0,0 +1,25 @@
package com.caliverse.admin.Indicators.entity;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Document(collection = "dau")
public class DauLogInfo extends LogInfoBase {
private Integer dau;
private String logDay;
public DauLogInfo(String logDay, Integer dau) {
super(StatisticsType.DAU);
this.dau = dau;
this.logDay = logDay;
//this.dauByLang = dauByLang;
}
}

View File

@@ -0,0 +1,20 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "dglc")
public class DglcLogInfo extends LogInfoBase{
private String logDay;
private Integer dglc;
public DglcLogInfo(String logDay, Integer dglc) {
super(StatisticsType.DGLC);
this.logDay = logDay;
this.dglc = dglc;
}
}

View File

@@ -0,0 +1,17 @@
package com.caliverse.admin.Indicators.entity;
import com.caliverse.admin.Indicators.Indicatordomain.IndicatorsLog;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class LogInfoBase implements IndicatorsLog{
private StatisticsType statisticsType;
public LogInfoBase(StatisticsType statisticsType) {
this.statisticsType = statisticsType;
}
}

View File

@@ -0,0 +1,25 @@
package com.caliverse.admin.Indicators.entity;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Document(collection = "mau")
public class MauLogInfo extends LogInfoBase {
private Integer mau;
private String logDay;
public MauLogInfo(String logDay, Integer mau) {
super(StatisticsType.MAU);
this.mau = mau;
this.logDay = logDay;
}
}

View File

@@ -0,0 +1,25 @@
package com.caliverse.admin.Indicators.entity;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Document(collection = "mcu")
public class McuLogInfo extends LogInfoBase {
private String logDay;
private Integer maxCountUser;
public McuLogInfo(String logDay, Integer maxCountUser) {
super(StatisticsType.MCU);
this.logDay = logDay;
this.maxCountUser = maxCountUser;
}
}

View File

@@ -0,0 +1,21 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "metaverseserver")
public class MetaverseServerInfo extends LogInfoBase{
private String logDay;
private Integer serverCount;
public MetaverseServerInfo(String logDay, Integer serverCount) {
super(StatisticsType.SERVER_INFO);
this.logDay = logDay;
this.serverCount = serverCount;
}
}

View File

@@ -0,0 +1,32 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "money")
public class MoneyLogInfo extends LogInfoBase {
private String logDay;
private String guid;
private String nickname;
private Double gold;
private Double sapphire;
private Double calium;
private Double ruby;
public MoneyLogInfo(String logDay, String guid, String nickname, Double gold, Double sapphire, Double calium, Double ruby) {
super(StatisticsType.MONEY);
this.logDay = logDay;
this.guid = guid;
this.nickname = nickname;
this.gold = gold;
this.sapphire = sapphire;
this.calium = calium;
this.ruby = ruby;
}
}

View File

@@ -0,0 +1,20 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "nru")
public class NruLogInfo extends LogInfoBase{
private String logDay;
private Integer nru;
public NruLogInfo(String logDay, Integer nru) {
super(StatisticsType.NRU);
this.logDay = logDay;
this.nru = nru;
}
}

View File

@@ -0,0 +1,20 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "playtime")
public class PlayTimeLogInfo extends LogInfoBase{
private String logDay;
private Long totalPlayTimeCount;
public PlayTimeLogInfo(String logDay, Long totalPlayTimeCount) {
super(StatisticsType.PLAY_TIME);
this.logDay = logDay;
this.totalPlayTimeCount = totalPlayTimeCount;
}
}

View File

@@ -0,0 +1,28 @@
package com.caliverse.admin.Indicators.entity;
public enum StatisticsType {
AU_PER_MIN,
//AU_PER_HOUR,
DAU,
WAU,
MAU,
MCU,
NRU,
PLAY_TIME,
DGLC,
CAPACITY,
UGQ_CREATE,
SERVER_INFO,
MONEY
;
public static StatisticsType getStatisticsType(String type) {
for (StatisticsType statisticsType : StatisticsType.values()) {
if (statisticsType.name().equals(type)) {
return statisticsType;
}
}
return null;
}
}

View File

@@ -0,0 +1,20 @@
package com.caliverse.admin.Indicators.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "ugqcreate")
public class UgqCreateLogInfo extends LogInfoBase{
private String logDay;
private Integer ugqCrateCount;
public UgqCreateLogInfo(String logDay, Integer ugqCrateCount) {
super(StatisticsType.UGQ_CREATE);
this.logDay = logDay;
this.ugqCrateCount = ugqCrateCount;
}
}

View File

@@ -0,0 +1,24 @@
package com.caliverse.admin.Indicators.entity;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Document(collection = "wau")
public class WauLogInfo extends LogInfoBase {
private Integer wau;
private String logDay;
public WauLogInfo(String logDay, Integer wau) {
super(StatisticsType.WAU);
this.logDay = logDay;
this.wau = wau;
}
}

View File

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

View File

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

View File

@@ -0,0 +1,12 @@
package com.caliverse.admin.Indicators.indicatorrepository;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.caliverse.admin.Indicators.entity.DauLogInfo;
import org.springframework.data.mongodb.repository.Query;
import java.util.List;
public interface IndicatorDauRepository extends MongoRepository<DauLogInfo, String> {
List<DauLogInfo> findByLogDay(String logDay);
}

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
package com.caliverse.admin.Indicators.indicatorrepository;
import com.caliverse.admin.Indicators.entity.McuLogInfo;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
public interface IndicatorMcuRepository extends MongoRepository<McuLogInfo, String> {
List<McuLogInfo> findByLogDay(String logDay);
}

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
package com.caliverse.admin.Indicators.indicatorrepository;
import com.caliverse.admin.Indicators.entity.NruLogInfo;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
public interface IndicatorNruRepository extends MongoRepository<NruLogInfo, String> {
List<NruLogInfo> findByLogDay(String logDay);
}

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
package com.caliverse.admin.Indicators.indicatorrepository;
public interface MongoIndicatorRepository{
}
// public interface MongoStatRepository<T extends LogInfoBase> extends MongoRepository<T, String> {
// }