|
|
@ -10,7 +10,6 @@ import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.util.Comparator; |
|
|
import java.util.Comparator; |
|
|
import java.util.HashSet; |
|
|
|
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Set; |
|
|
import java.util.Set; |
|
|
@ -76,21 +75,35 @@ public class GridTableUserServiceImpl extends ServiceImpl<GridTableUserDao, Grid |
|
|
public List<GridTableUser> getTableUserListLanguage(GridTableUserQuery gridTableUserQuery) { |
|
|
public List<GridTableUser> getTableUserListLanguage(GridTableUserQuery gridTableUserQuery) { |
|
|
List<GridTableUser> result = gridTableUserDao.getTableUserListLanguage(gridTableUserQuery); |
|
|
List<GridTableUser> result = gridTableUserDao.getTableUserListLanguage(gridTableUserQuery); |
|
|
List<GridTableUser> defaultColumns = gridTableUserDao.getTableUserListLanguageDefault(gridTableUserQuery); |
|
|
List<GridTableUser> defaultColumns = gridTableUserDao.getTableUserListLanguageDefault(gridTableUserQuery); |
|
|
if(result.size()==0){ |
|
|
|
|
|
if(defaultColumns.size()>0){ |
|
|
|
|
|
|
|
|
if(result.isEmpty()){ |
|
|
|
|
|
long userConfigCount = lambdaQuery() |
|
|
|
|
|
.eq(GridTableUser::getUserId, gridTableUserQuery.getUserId()) |
|
|
|
|
|
.eq(GridTableUser::getFunctionId, gridTableUserQuery.getFunctionId()) |
|
|
|
|
|
.eq(GridTableUser::getTableId, gridTableUserQuery.getTableId()) |
|
|
|
|
|
.count(); |
|
|
|
|
|
// 仅在“用户完全没有配置”时才初始化默认列,避免覆盖“全部隐藏”场景 |
|
|
|
|
|
if(!defaultColumns.isEmpty() && userConfigCount == 0){ |
|
|
saveGridTableUserList(defaultColumns); |
|
|
saveGridTableUserList(defaultColumns); |
|
|
|
|
|
return defaultColumns; |
|
|
} |
|
|
} |
|
|
return defaultColumns; |
|
|
|
|
|
|
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (defaultColumns.size() == 0) { |
|
|
|
|
|
|
|
|
if (defaultColumns.isEmpty()) { |
|
|
return result; |
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Set<String> existingColumnProps = new HashSet<>(); |
|
|
|
|
|
Integer maxSortLv = 0; |
|
|
|
|
|
|
|
|
Set<String> allExistingColumnProps = lambdaQuery() |
|
|
|
|
|
.eq(GridTableUser::getUserId, gridTableUserQuery.getUserId()) |
|
|
|
|
|
.eq(GridTableUser::getFunctionId, gridTableUserQuery.getFunctionId()) |
|
|
|
|
|
.eq(GridTableUser::getTableId, gridTableUserQuery.getTableId()) |
|
|
|
|
|
.list() |
|
|
|
|
|
.stream() |
|
|
|
|
|
.map(GridTableUser::getColumnProp) |
|
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
|
|
|
int maxSortLv = 0; |
|
|
for (GridTableUser gridTableUser : result) { |
|
|
for (GridTableUser gridTableUser : result) { |
|
|
existingColumnProps.add(gridTableUser.getColumnProp()); |
|
|
|
|
|
if (gridTableUser.getSortLv() != null && gridTableUser.getSortLv() > maxSortLv) { |
|
|
if (gridTableUser.getSortLv() != null && gridTableUser.getSortLv() > maxSortLv) { |
|
|
maxSortLv = gridTableUser.getSortLv(); |
|
|
maxSortLv = gridTableUser.getSortLv(); |
|
|
} |
|
|
} |
|
|
@ -99,7 +112,8 @@ public class GridTableUserServiceImpl extends ServiceImpl<GridTableUserDao, Grid |
|
|
int appendSortLv = maxSortLv; |
|
|
int appendSortLv = maxSortLv; |
|
|
List<GridTableUser> appendColumns = new ArrayList<>(); |
|
|
List<GridTableUser> appendColumns = new ArrayList<>(); |
|
|
for (GridTableUser defaultColumn : defaultColumns) { |
|
|
for (GridTableUser defaultColumn : defaultColumns) { |
|
|
if (existingColumnProps.contains(defaultColumn.getColumnProp())) { |
|
|
|
|
|
|
|
|
// 已有用户配置(无论显示/隐藏)都不再补回,防止隐藏列被误展示 |
|
|
|
|
|
if (allExistingColumnProps.contains(defaultColumn.getColumnProp())) { |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
GridTableUser appendColumn = new GridTableUser(); |
|
|
GridTableUser appendColumn = new GridTableUser(); |
|
|
@ -109,8 +123,8 @@ public class GridTableUserServiceImpl extends ServiceImpl<GridTableUserDao, Grid |
|
|
appendColumn.setTableName(defaultColumn.getTableName()); |
|
|
appendColumn.setTableName(defaultColumn.getTableName()); |
|
|
appendColumn.setColumnProp(defaultColumn.getColumnProp()); |
|
|
appendColumn.setColumnProp(defaultColumn.getColumnProp()); |
|
|
appendColumn.setColumnLabel(defaultColumn.getColumnLabel()); |
|
|
appendColumn.setColumnLabel(defaultColumn.getColumnLabel()); |
|
|
// 新增补丁列默认可被展示控制(不锁死为隐藏) |
|
|
|
|
|
appendColumn.setColumnHidden(false); |
|
|
|
|
|
|
|
|
// 继承默认列隐藏配置,避免覆盖页面预设隐藏列规则 |
|
|
|
|
|
appendColumn.setColumnHidden(defaultColumn.getColumnHidden()); |
|
|
appendColumn.setColumnImage(defaultColumn.getColumnImage()); |
|
|
appendColumn.setColumnImage(defaultColumn.getColumnImage()); |
|
|
appendColumn.setColumnSortable(defaultColumn.getColumnSortable()); |
|
|
appendColumn.setColumnSortable(defaultColumn.getColumnSortable()); |
|
|
appendColumn.setColumnWidth(defaultColumn.getColumnWidth()); |
|
|
appendColumn.setColumnWidth(defaultColumn.getColumnWidth()); |
|
|
@ -126,7 +140,7 @@ public class GridTableUserServiceImpl extends ServiceImpl<GridTableUserDao, Grid |
|
|
appendColumn.setHeaderAlign(defaultColumn.getHeaderAlign()); |
|
|
appendColumn.setHeaderAlign(defaultColumn.getHeaderAlign()); |
|
|
result.add(appendColumn); |
|
|
result.add(appendColumn); |
|
|
appendColumns.add(appendColumn); |
|
|
appendColumns.add(appendColumn); |
|
|
existingColumnProps.add(defaultColumn.getColumnProp()); |
|
|
|
|
|
|
|
|
allExistingColumnProps.add(defaultColumn.getColumnProp()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!appendColumns.isEmpty()) { |
|
|
if (!appendColumns.isEmpty()) { |
|
|
|