From bafb45f3b1824e9af35d0455bd9ec09b9cc4b18e Mon Sep 17 00:00:00 2001 From: jbai Date: Thu, 21 Jul 2016 16:21:46 -0700 Subject: [PATCH] update the get relations code since info stored by version instead of dataset --- web/app/controllers/api/v1/Dataset.java | 4 +- web/app/dao/DatasetsDAO.java | 56 ++++++++++++++++++++----- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/web/app/controllers/api/v1/Dataset.java b/web/app/controllers/api/v1/Dataset.java index 68fc0427e6..3899a4dfc9 100644 --- a/web/app/controllers/api/v1/Dataset.java +++ b/web/app/controllers/api/v1/Dataset.java @@ -755,7 +755,7 @@ public class Dataset extends Controller { ObjectNode result = Json.newObject(); List depends = new ArrayList(); - DatasetsDAO.getDatasetDependencies(datasetId, 1, 0, depends); + DatasetsDAO.getDependencies(datasetId, depends); result.put("status", "ok"); result.put("depends", Json.toJson(depends)); return ok(result); @@ -765,7 +765,7 @@ public class Dataset extends Controller { ObjectNode result = Json.newObject(); List references = new ArrayList(); - DatasetsDAO.getDatasetReferences(datasetId, 1, 0, references); + DatasetsDAO.getReferences(datasetId, references); result.put("status", "ok"); result.put("references", Json.toJson(references)); return ok(result); diff --git a/web/app/dao/DatasetsDAO.java b/web/app/dao/DatasetsDAO.java index 294baf545c..2367af043c 100644 --- a/web/app/dao/DatasetsDAO.java +++ b/web/app/dao/DatasetsDAO.java @@ -320,12 +320,12 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO private final static String GET_DATASET_DEPENDS_VIEW = "SELECT object_type, object_sub_type, " + "object_name, map_phrase, is_identical_map, mapped_object_dataset_id, " + "mapped_object_type, mapped_object_sub_type, mapped_object_name " + - "FROM cfg_object_name_map WHERE object_dataset_id = ?"; + "FROM cfg_object_name_map WHERE object_name = ?"; private final static String GET_DATASET_REFERENCES = "SELECT object_type, object_sub_type, " + "object_name, object_dataset_id, map_phrase, is_identical_map, mapped_object_dataset_id, " + "mapped_object_type, mapped_object_sub_type, mapped_object_name " + - "FROM cfg_object_name_map WHERE mapped_object_dataset_id = ?"; + "FROM cfg_object_name_map WHERE mapped_object_name = ?"; private final static String GET_DATASET_LISTVIEW_TOP_LEVEL_NODES = "SELECT DISTINCT " + "SUBSTRING_INDEX(urn, ':///', 1) as name, 0 as id, " + @@ -338,8 +338,11 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO "ON s.urn = concat(?, SUBSTRING_INDEX(SUBSTRING_INDEX(d.urn, ?, -1), '/', 1)) " + "WHERE d.urn LIKE ? ORDER BY d.name"; - private final static String GET_DATASET_VERSIONS = "SELECT version " + - "FROM dict_dataset_instance WHERE dataset_id = ? and version != '0' ORDER BY version_sort_id"; + private final static String GET_DATASET_VERSIONS = "SELECT DISTINCT version " + + "FROM dict_dataset_instance WHERE dataset_id = ? and version != '0' ORDER BY version_sort_id DESC"; + + private final static String GET_DATASET_NATIVE_NAME = "SELECT native_name " + + "FROM dict_dataset_instance WHERE dataset_id = ? ORDER BY version_sort_id DESC limit 1"; public static List getDatasetOwnerTypes() { @@ -1751,8 +1754,41 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO return result; } - public static void getDatasetDependencies( + public static void getDependencies( Long datasetId, + List depends) + { + String nativeName = getJdbcTemplate().queryForObject( + GET_DATASET_NATIVE_NAME, + String.class, + datasetId); + + if (StringUtils.isNotBlank(nativeName)) + { + getDatasetDependencies("/" + nativeName.replace(".", "/"), 1, 0, depends); + } + + } + + public static void getReferences( + Long datasetId, + List references) + { + String nativeName = getJdbcTemplate().queryForObject( + GET_DATASET_NATIVE_NAME, + String.class, + datasetId); + + if (StringUtils.isNotBlank(nativeName)) + { + getDatasetReferences("/" + nativeName.replace(".", "/"), 1, 0, references); + } + + } + + + public static void getDatasetDependencies( + String objectName, int level, int parent, List depends) @@ -1765,7 +1801,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO List> rows = null; rows = getJdbcTemplate().queryForList( GET_DATASET_DEPENDS_VIEW, - datasetId); + objectName); if (rows != null) { @@ -1792,13 +1828,13 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO dd.treeGridClass += " treegrid-parent-" + Integer.toString(parent); } depends.add(dd); - getDatasetDependencies(dd.datasetId, level + 1, dd.sortId, depends); + getDatasetDependencies(dd.objectName, level + 1, dd.sortId, depends); } } } public static void getDatasetReferences( - Long datasetId, + String objectName, int level, int parent, List references) @@ -1811,7 +1847,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO List> rows = null; rows = getJdbcTemplate().queryForList( GET_DATASET_REFERENCES, - datasetId); + objectName); if (rows != null) { @@ -1838,7 +1874,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO dd.treeGridClass += " treegrid-parent-" + Integer.toString(parent); } references.add(dd); - getDatasetReferences(dd.datasetId, level + 1, dd.sortId, references); + getDatasetReferences(dd.objectName, level + 1, dd.sortId, references); } } }