diff --git a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentResponseConverter.java b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentResponseConverter.java index 3e18ccf..ce2c79c 100644 --- a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentResponseConverter.java +++ b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentResponseConverter.java @@ -41,19 +41,16 @@ public interface DocumentResponseConverter { List triggers); TableDocumentResponse.ColumnDocumentResponse of(TableColumnDocument pojo, - Integer discussionCount, String description); default List of( List columns, String tableName, - Map discussionCountMapByJoinName, Map descriptionMapByJoinName) { return columns.stream() .map(column -> { - Integer count = discussionCountMapByJoinName.get(tableName + "." + column.getName()); String description = descriptionMapByJoinName.get(tableName + "." + column.getName()); - return of(column, count, description); + return of(column, description); }) .collect(Collectors.toList()); } @@ -70,7 +67,7 @@ public interface DocumentResponseConverter { default TableDocumentResponse ofDiff(TableDocDiff table, Map discussionCountMap, Map descriptionMap) { - List cols = toColumns(table, discussionCountMap, descriptionMap); + List cols = toColumns(table, descriptionMap); return ofDiff(table, cols, discussionCountMap, descriptionMap); } @@ -83,30 +80,26 @@ public interface DocumentResponseConverter { Map descriptionMap); default List toColumns(TableDocDiff table, - Map discussionCountMap, Map descriptionMap) { return table.getColumns() .stream() - .map(col -> toColumn(table.getName(), col, discussionCountMap, descriptionMap)) + .map(col -> toColumn(table.getName(), col, descriptionMap)) .collect(Collectors.toList()); } @Mapping(target = "description", expression = "java(descriptionMap.get(tableName+\".\"+diff.getName()))") - @Mapping(target = "discussionCount", expression = "java(discussionCountMap.get(tableName+\".\"+diff.getName()))") @Mapping(target = "original", - expression = "java(toOriginalColumn(tableName, diff.getOriginal(), discussionCountMap, descriptionMap))") + expression = "java(toOriginalColumn(tableName, diff.getOriginal(), descriptionMap))") TableDocumentResponse.ColumnDocumentResponse toColumn(String tableName, ColumnDocDiff diff, - Map discussionCountMap, Map descriptionMap); default TableDocumentResponse.ColumnDocumentResponse toOriginalColumn(String tableName, ColumnDocDiff diff, - Map discussionCountMap, Map descriptionMap) { if (diff == null) { return null; } - return toColumn(tableName, diff, discussionCountMap, descriptionMap); + return toColumn(tableName, diff, descriptionMap); } } diff --git a/core/src/main/java/com/databasir/core/domain/document/data/TableDocumentResponse.java b/core/src/main/java/com/databasir/core/domain/document/data/TableDocumentResponse.java index fbce1e1..a84ce1a 100644 --- a/core/src/main/java/com/databasir/core/domain/document/data/TableDocumentResponse.java +++ b/core/src/main/java/com/databasir/core/domain/document/data/TableDocumentResponse.java @@ -74,8 +74,6 @@ public class TableDocumentResponse implements DiffAble { private String defaultValue; - private Integer discussionCount; - private LocalDateTime createAt; private DiffType diffType; diff --git a/core/src/main/java/com/databasir/core/domain/document/diff/DocumentDiffChecker.java b/core/src/main/java/com/databasir/core/domain/document/diff/DocumentDiffChecker.java index ee77827..ef68a33 100644 --- a/core/src/main/java/com/databasir/core/domain/document/diff/DocumentDiffChecker.java +++ b/core/src/main/java/com/databasir/core/domain/document/diff/DocumentDiffChecker.java @@ -5,10 +5,7 @@ import com.databasir.core.domain.document.data.diff.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; @@ -37,6 +34,7 @@ public class DocumentDiffChecker { .map(curr -> { List columnDiffs = doDiff(Collections.emptyList(), curr.getColumns(), ColumnDocDiff::getName); + columnDiffs.sort(Comparator.comparingInt(c -> c.getId())); List indexDiffs = doDiff(Collections.emptyList(), curr.getIndexes(), IndexDocDiff::getName); List triggerDiffs = @@ -65,6 +63,7 @@ public class DocumentDiffChecker { .map(old -> { List columnDiffs = doDiff(old.getColumns(), Collections.emptyList(), ColumnDocDiff::getName); + columnDiffs.sort(Comparator.comparingInt(c -> c.getId())); List indexDiffs = doDiff(old.getIndexes(), Collections.emptyList(), IndexDocDiff::getName); List triggerDiffs = @@ -98,6 +97,7 @@ public class DocumentDiffChecker { List columnDiffs = doDiff(originalTable.getColumns(), currentTable.getColumns(), ColumnDocDiff::getName); + columnDiffs.sort(Comparator.comparingInt(c -> c.getId())); List indexDiffs = doDiff(originalTable.getIndexes(), currentTable.getIndexes(), IndexDocDiff::getName); List triggerDiffs = diff --git a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java index 3debdba..0e3ff66 100644 --- a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java +++ b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java @@ -82,7 +82,7 @@ public class DocumentService { return documentOption.map(document -> { var discussionCountMapByTableName = - documentDiscussionDao.selectTableDiscussionCount(projectId) + documentDiscussionDao.selectAllDiscussionCount(projectId) .stream() .collect(Collectors.toMap(d -> d.getTableName(), d -> d.getCount(), (a, b) -> a)); var descriptionMapByTableName = @@ -218,9 +218,7 @@ public class DocumentService { var discussions = documentDiscussionDao.selectAllDiscussionCount(projectId); Map discussionCountMapByJoinName = discussions.stream() .collect(Collectors.toMap( - d -> String.join(".", - d.getTableName(), - StringUtils.defaultIfBlank(d.getColumnName(), "")), + d -> d.getTableName(), DocumentDiscussionCountPojo::getCount, (a, b) -> a)); @@ -246,7 +244,6 @@ public class DocumentService { var columnResponses = documentResponseConverter.of( subColumns, table.getName(), - discussionCountMapByJoinName, descriptionMapByJoinName); return documentResponseConverter.of( table, @@ -276,7 +273,7 @@ public class DocumentService { var discussions = documentDiscussionDao.selectAllDiscussionCount(projectId); Map discussionCountMapByJoinName = discussions.stream() .collect(Collectors.toMap( - d -> String.join(".", d.getTableName(), d.getColumnName()), + d -> d.getTableName(), DocumentDiscussionCountPojo::getCount, (a, b) -> a)); diff --git a/dao/src/main/java/com/databasir/dao/impl/DocumentDiscussionDao.java b/dao/src/main/java/com/databasir/dao/impl/DocumentDiscussionDao.java index a3f462e..650b572 100644 --- a/dao/src/main/java/com/databasir/dao/impl/DocumentDiscussionDao.java +++ b/dao/src/main/java/com/databasir/dao/impl/DocumentDiscussionDao.java @@ -32,21 +32,16 @@ public class DocumentDiscussionDao extends BaseDao { .fetchOptionalInto(DocumentDiscussion.class); } - public List selectTableDiscussionCount(Integer projectId) { - return this.selectDiscussionCount(DOCUMENT_DISCUSSION.PROJECT_ID.eq(projectId) - .and(DOCUMENT_DISCUSSION.COLUMN_NAME.isNull())); - } - public List selectAllDiscussionCount(Integer projectId) { return this.selectDiscussionCount(DOCUMENT_DISCUSSION.PROJECT_ID.eq(projectId)); } public List selectDiscussionCount(Condition condition) { return this.getDslContext() - .select(DSL.count(), DOCUMENT_DISCUSSION.TABLE_NAME, DOCUMENT_DISCUSSION.COLUMN_NAME) + .select(DSL.count(), DOCUMENT_DISCUSSION.TABLE_NAME) .from(DOCUMENT_DISCUSSION) .where(condition) - .groupBy(DOCUMENT_DISCUSSION.TABLE_NAME, DOCUMENT_DISCUSSION.COLUMN_NAME) + .groupBy(DOCUMENT_DISCUSSION.TABLE_NAME) .fetchInto(DocumentDiscussionCountPojo.class); } } diff --git a/dao/src/main/java/com/databasir/dao/value/DocumentDiscussionCountPojo.java b/dao/src/main/java/com/databasir/dao/value/DocumentDiscussionCountPojo.java index 3d77dba..d21b0b4 100644 --- a/dao/src/main/java/com/databasir/dao/value/DocumentDiscussionCountPojo.java +++ b/dao/src/main/java/com/databasir/dao/value/DocumentDiscussionCountPojo.java @@ -9,7 +9,5 @@ public class DocumentDiscussionCountPojo { private String tableName; - private String columnName; - private Integer count; }