|
|
@@ -41,10 +41,12 @@ import org.springblade.system.enums.DictEnum;
|
|
|
import org.springblade.system.service.IDeptService;
|
|
|
import org.springblade.system.vo.DeptVO;
|
|
|
import org.springblade.system.wrapper.DeptWrapper;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -105,7 +107,27 @@ public class DeptController extends BladeController {
|
|
|
@PreAuth(AuthConstant.PERMIT_ALL)
|
|
|
public R<List<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
|
|
|
List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
|
|
|
- return R.data(DeptWrapper.build().listNodeLazyVO(list));
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return R.data(list);
|
|
|
+ }
|
|
|
+ String deptIds = AuthUtil.getDeptId();
|
|
|
+ List<Long> deptIdList = Func.toLongList(deptIds);
|
|
|
+ List<DeptVO> mergeList = DeptWrapper.build().listNodeLazyVO(list);
|
|
|
+ mergeList.sort((o1, o2) -> {
|
|
|
+ boolean o1InB = deptIdList.contains(o1.getId());
|
|
|
+ boolean o2InB = deptIdList.contains(o2.getId());
|
|
|
+ if (o1InB && !o2InB) {
|
|
|
+ // o1在集合B中,但o2不在,o1排前面
|
|
|
+ return -1;
|
|
|
+ } else if (!o1InB && o2InB) {
|
|
|
+ // o2在集合B中,但o1不在,o2排前面
|
|
|
+ return 1;
|
|
|
+ } else {
|
|
|
+ // 都在或都不在,保持原顺序
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return R.data(mergeList);
|
|
|
}
|
|
|
|
|
|
/**
|