Compare commits

..

No commits in common. "v1" and "dev" have entirely different histories.
v1 ... dev

6 changed files with 0 additions and 209 deletions

View file

@ -1,40 +1,14 @@
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.stereotype.Service;
import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto;
import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto;
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
public class IndicSearchService {
private final List<AbstractTableLoader> tableLoaders;
public IndicSearchService(List<AbstractTableLoader> tableLoaders) {
this.tableLoaders = tableLoaders;
}
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;
}

View file

@ -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);
}

View file

@ -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;
}
}

View file

@ -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()
}
}

View file

@ -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;
}
}

View file

@ -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) {
}
}