public void moveColumnOrder(Long columnId, int newColumnNumber) {
Columns column = columnsRepository.findById(columnId)
.orElseThrow(() -> new IllegalArgumentException("Column not found"));
int oldColumnNumber = column.getColumnNumber();
if (oldColumnNumber != newColumnNumber) {
List<Columns> allColumns = columnsRepository.findAll();
for (Columns c : allColumns) {
if (c.getColumnNumber() == newColumnNumber) {
c.setColumnNumber(oldColumnNumber);
break;
}
}
column.setColumnNumber(newColumnNumber);
columnsRepository.saveAll(Arrays.asList(column, allColumns));
}
}
- 저장소에서 columnId로 컬럼 검색
- 이전 열 번호와 새 열 번호를 비교하여 순서를 변경해야 하는지 결정
- 순서를 변경해야 하는 경우 저장소에서 모든 열 검색
- 열을 반복하여 새 열 번호가 있는 열을 찾고 해당 열 번호를 이전 열 번호로 업데이트
- 선택된 컬럼의 컬럼 번호를 새로운 컬럼 번호로 업데이트
- 선택한 열과 전체 열 목록을 모두 저장소에 다시 저장
글 잘 봤습니다.