Compare commits
No commits in common. "v1" and "dev" have entirely different histories.
6 changed files with 0 additions and 209 deletions
|
|
@ -1,40 +1,14 @@
|
||||||
package ru.nbch.indicsearchservice.service;
|
package ru.nbch.indicsearchservice.service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto;
|
import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto;
|
||||||
import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto;
|
import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto;
|
||||||
import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto;
|
import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto;
|
||||||
import ru.nbch.indicsearchservice.service.tableloader.AbstractTableLoader;
|
|
||||||
import ru.nbch.indicsearchservice.service.tableloader.TableLoaderName;
|
|
||||||
import ru.nbch.indicsearchservice.util.TableData;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class IndicSearchService {
|
public class IndicSearchService {
|
||||||
private final List<AbstractTableLoader> tableLoaders;
|
|
||||||
|
|
||||||
public IndicSearchService(List<AbstractTableLoader> tableLoaders) {
|
|
||||||
this.tableLoaders = tableLoaders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
||||||
List<TableLoaderName> foundTableLoaderNames = TableLoaderName
|
|
||||||
.getTableLoaderNamesByDataTypeAndSearchParameter(request.getDataType(), request.getSearchParameter());
|
|
||||||
|
|
||||||
List<AbstractTableLoader> suitableTableLoaders = tableLoaders.stream()
|
|
||||||
.filter(tl -> foundTableLoaderNames.contains(tl.getTableLoaderName()) || foundTableLoaderNames.contains(tl.getChildLoaders()))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
List<TableData> result = new ArrayList<>();
|
|
||||||
for (AbstractTableLoader tableLoader : suitableTableLoaders) {
|
|
||||||
TableData tableData = tableLoader.fetchData(Map.of());
|
|
||||||
tableLoader.fetchChildLoaders(tableData);
|
|
||||||
result.add(tableData);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
package ru.nbch.indicsearchservice.service.tableloader;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import ru.nbch.indicsearchservice.util.TableData;
|
|
||||||
|
|
||||||
public abstract class AbstractTableLoader {
|
|
||||||
public abstract TableLoaderName getTableLoaderName();
|
|
||||||
|
|
||||||
public abstract List<TableLoaderName> getChildLoaders();
|
|
||||||
|
|
||||||
public abstract TableData fetchData(Map<String, Object> inputData);
|
|
||||||
|
|
||||||
public abstract void fetchChildLoaders(TableData tableData);
|
|
||||||
|
|
||||||
public abstract Long countData(Map<String, Object> inputData);
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
package ru.nbch.indicsearchservice.service.tableloader;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import ru.nbch.indicsearchservice.util.TableData;
|
|
||||||
|
|
||||||
public class RuTradeTableLoader extends AbstractTableLoader {
|
|
||||||
@Override
|
|
||||||
public TableLoaderName getTableLoaderName() {
|
|
||||||
return TableLoaderName.RU_TRADE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<TableLoaderName> getChildLoaders() {
|
|
||||||
return List.of();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableData fetchData(Map<String, Object> inputData) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long countData(Map<String, Object> inputData) {
|
|
||||||
return 0L;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
package ru.nbch.indicsearchservice.service.tableloader;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import ru.nbch.indicsearchservice.util.TableData;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class RuUidTableLoader extends AbstractTableLoader {
|
|
||||||
@Override
|
|
||||||
public TableLoaderName getTableLoaderName() {
|
|
||||||
return TableLoaderName.RU_UID;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<TableLoaderName> getChildLoaders() {
|
|
||||||
return List.of(TableLoaderName.RU_TRADE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableData fetchData(Map<String, Object> inputData) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fetchChildLoaders(TableData tableData) {
|
|
||||||
Object val = tableData.getFieldData().stream().anyMatch(fieldDataDto -> fieldDataDto.key().equals("serialNumber"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long countData(Map<String, Object> inputData) {
|
|
||||||
return 0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collector(List<Map<String, Object>> mapperQueryResult, Subject subject) {
|
|
||||||
subject.addResultByTable()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
package ru.nbch.indicsearchservice.service.tableloader;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
|
||||||
|
|
||||||
public enum TableLoaderName {
|
|
||||||
RU_UID( // 1st level table
|
|
||||||
List.of(DataType.GUTDF, DataType.RUTDF, DataType.TUTDF),
|
|
||||||
List.of(SearchParameter.FID)
|
|
||||||
),
|
|
||||||
RU_TRADE(List.of(), List.of()), // 2nd level table
|
|
||||||
;
|
|
||||||
|
|
||||||
private final List<DataType> suitableForDataType;
|
|
||||||
private final List<SearchParameter> suitableForSearchParameter;
|
|
||||||
|
|
||||||
TableLoaderName(List<DataType> suitableForDataType, List<SearchParameter> suitableForSearchParameter) {
|
|
||||||
this.suitableForDataType = suitableForDataType;
|
|
||||||
this.suitableForSearchParameter = suitableForSearchParameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DataType> getSuitableForDataType() {
|
|
||||||
return suitableForDataType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SearchParameter> getSuitableForSearchParameter() {
|
|
||||||
return suitableForSearchParameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<TableLoaderName> getTableLoaderNamesByDataTypeAndSearchParameter(DataType dataType, SearchParameter searchParameter) {
|
|
||||||
List<TableLoaderName> result = new ArrayList<>();
|
|
||||||
|
|
||||||
for (TableLoaderName tableLoaderName : TableLoaderName.values()) {
|
|
||||||
if (tableLoaderName.getSuitableForDataType().contains(dataType) &&
|
|
||||||
tableLoaderName.getSuitableForSearchParameter().contains(searchParameter)) {
|
|
||||||
result.add(tableLoaderName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
package ru.nbch.indicsearchservice.util;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class TableData {
|
|
||||||
private String tableName;
|
|
||||||
private List<FieldDataDto> fieldData = new ArrayList<>();
|
|
||||||
private List<TableData> relatedData = new ArrayList<>();
|
|
||||||
|
|
||||||
public TableData() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public TableData(String tableName, List<FieldDataDto> fieldData, List<TableData> relatedData) {
|
|
||||||
this.tableName = tableName;
|
|
||||||
this.fieldData = fieldData;
|
|
||||||
this.relatedData = relatedData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTableName() {
|
|
||||||
return tableName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<FieldDataDto> getFieldData() {
|
|
||||||
return fieldData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<TableData> getRelatedData() {
|
|
||||||
return relatedData;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
TableData tableData = (TableData) o;
|
|
||||||
return Objects.equals(tableName, tableData.tableName) && Objects.equals(fieldData, tableData.fieldData) && Objects.equals(relatedData, tableData.relatedData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(tableName, fieldData, relatedData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "TableData{" +
|
|
||||||
"tableName='" + tableName + '\'' +
|
|
||||||
", fieldData=" + fieldData +
|
|
||||||
", relatedData=" + relatedData +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
|
|
||||||
public record FieldDataDto(String key,
|
|
||||||
Object value) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue