Browse Source

新加字段也可以显示

master
han\hanst 4 days ago
parent
commit
f652e52141
  1. 38
      src/main/java/com/xujie/sys/modules/grid/service/impl/GridTableUserServiceImpl.java

38
src/main/java/com/xujie/sys/modules/grid/service/impl/GridTableUserServiceImpl.java

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

Loading…
Cancel
Save