|
@@ -8,11 +8,13 @@ import com.imed.costaccount.common.constants.Constant;
|
|
import com.imed.costaccount.common.exception.CostException;
|
|
import com.imed.costaccount.common.exception.CostException;
|
|
import com.imed.costaccount.common.util.PageUtils;
|
|
import com.imed.costaccount.common.util.PageUtils;
|
|
import com.imed.costaccount.mapper.MenuMapper;
|
|
import com.imed.costaccount.mapper.MenuMapper;
|
|
|
|
+import com.imed.costaccount.mapper.RoleMapper;
|
|
import com.imed.costaccount.model.Menu;
|
|
import com.imed.costaccount.model.Menu;
|
|
import com.imed.costaccount.model.User;
|
|
import com.imed.costaccount.model.User;
|
|
import com.imed.costaccount.model.dto.MenuEditDTO;
|
|
import com.imed.costaccount.model.dto.MenuEditDTO;
|
|
import com.imed.costaccount.model.dto.MenuSaveDTO;
|
|
import com.imed.costaccount.model.dto.MenuSaveDTO;
|
|
import com.imed.costaccount.model.vo.MenuVO;
|
|
import com.imed.costaccount.model.vo.MenuVO;
|
|
|
|
+import com.imed.costaccount.model.vo.NavVO;
|
|
import com.imed.costaccount.service.MenuService;
|
|
import com.imed.costaccount.service.MenuService;
|
|
import com.imed.costaccount.service.UserService;
|
|
import com.imed.costaccount.service.UserService;
|
|
import com.imed.costaccount.utils.BeanUtil;
|
|
import com.imed.costaccount.utils.BeanUtil;
|
|
@@ -21,9 +23,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -163,4 +163,46 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取当前登录人的菜单列表
|
|
|
|
+ *
|
|
|
|
+ * @param user {@link User}
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<NavVO> getNav(User user) {
|
|
|
|
+ Long id = user.getId();
|
|
|
|
+ Long hospId = user.getHospId();
|
|
|
|
+ // TODO: 2021/8/5 超级管理员(切换人员操作)
|
|
|
|
+ List<Menu> list = baseMapper.getNav(id, hospId);
|
|
|
|
+ List<NavVO> navVOS = BeanUtil.convertList(list, NavVO.class);
|
|
|
|
+ log.info("拷贝后的list:{}", navVOS);
|
|
|
|
+ List<NavVO> parentNavVOs = navVOS.stream().filter(i -> i.getParentId() == 0L).collect(Collectors.toList());
|
|
|
|
+ List<NavVO> navVOList = new ArrayList<>();
|
|
|
|
+ for (NavVO parentNavVO : parentNavVOs) {
|
|
|
|
+ List<NavVO> navs = this.getSon(parentNavVO, navVOS);
|
|
|
|
+ navVOList.addAll(navs);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return navVOList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<NavVO> getSon(NavVO parentNavVO, List<NavVO> list) {
|
|
|
|
+ List<NavVO> navVOs = new ArrayList<>();
|
|
|
|
+ navVOs.add(parentNavVO);
|
|
|
|
+ for (NavVO nav : list) {
|
|
|
|
+ if (parentNavVO.getMenuId().equals(nav.getParentId())) {
|
|
|
|
+ List<NavVO> children = parentNavVO.getChildren();
|
|
|
|
+ if (CollUtil.isEmpty(children)) {
|
|
|
|
+ children = new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ children.add(nav);
|
|
|
|
+ parentNavVO.setChildren(children);
|
|
|
|
+ this.getSon(nav, list);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return navVOs;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|