|
@@ -1,8 +1,20 @@
|
|
package com.simuwang.manage.service;
|
|
package com.simuwang.manage.service;
|
|
|
|
|
|
|
|
+import com.simuwang.base.pojo.dos.SysMenuDO;
|
|
|
|
+import com.simuwang.base.pojo.dos.SysRoleDO;
|
|
|
|
+import com.simuwang.base.pojo.dos.SysUserDO;
|
|
|
|
+import com.simuwang.base.service.UserAuthService;
|
|
|
|
+import com.simuwang.base.utils.TreeUtil;
|
|
import com.simuwang.manage.dto.UserInfoVO;
|
|
import com.simuwang.manage.dto.UserInfoVO;
|
|
|
|
+import com.simuwang.manage.dto.UserMenuTreeDTO;
|
|
|
|
+import com.simuwang.manage.dto.UserRoleDTO;
|
|
|
|
+import com.simuwang.shiro.core.ShiroUser;
|
|
|
|
+import org.apache.shiro.SecurityUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @author wangzaijun
|
|
* @author wangzaijun
|
|
* @date 2024/9/12 20:28
|
|
* @date 2024/9/12 20:28
|
|
@@ -10,7 +22,47 @@ import org.springframework.stereotype.Service;
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
public class SystemService {
|
|
public class SystemService {
|
|
|
|
+ private final UserAuthService userAuthService;
|
|
|
|
+
|
|
|
|
+ public SystemService(UserAuthService userAuthService) {
|
|
|
|
+ this.userAuthService = userAuthService;
|
|
|
|
+ }
|
|
|
|
+
|
|
public UserInfoVO getUserInfo() {
|
|
public UserInfoVO getUserInfo() {
|
|
- return null;
|
|
|
|
|
|
+ ShiroUser shiroUser = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
|
+ Integer userId = shiroUser.getUserId();
|
|
|
|
+ String username = shiroUser.getUsername();
|
|
|
|
+ List<SysRoleDO> roleList = this.userAuthService.listUserRoleByUserId(userId);
|
|
|
|
+ List<UserRoleDTO> roles = roleList.stream()
|
|
|
|
+ .map(e -> new UserRoleDTO(e.getRoleId(), e.getRoleName(), e.getRoleKey()))
|
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
|
+ List<SysMenuDO> menuList = this.userAuthService.listUserMenuByUserId(userId);
|
|
|
|
+ List<UserMenuTreeDTO> tempList = menuList.stream().map(e -> {
|
|
|
|
+ UserMenuTreeDTO dto = new UserMenuTreeDTO();
|
|
|
|
+ dto.setId(e.getMenuId());
|
|
|
|
+ dto.setPid(e.getParentId());
|
|
|
|
+ dto.setSort(e.getOrderNum());
|
|
|
|
+ dto.setName(e.getMenuName());
|
|
|
|
+ dto.setCode(e.getPerms());
|
|
|
|
+ dto.setMenuType(e.getMenuType());
|
|
|
|
+ dto.setIcon(e.getIcon());
|
|
|
|
+ dto.setPath(e.getPath());
|
|
|
|
+ dto.setComponent(e.getComponent());
|
|
|
|
+ dto.setVisible(e.getVisible());
|
|
|
|
+ return dto;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ List<UserMenuTreeDTO> trees = TreeUtil.list2Tree(tempList, UserMenuTreeDTO::getId, UserMenuTreeDTO::getPid,
|
|
|
|
+ UserMenuTreeDTO::getChildren, UserMenuTreeDTO::setChildren, 0);
|
|
|
|
+ UserMenuTreeDTO root = new UserMenuTreeDTO();
|
|
|
|
+ root.setId(0);
|
|
|
|
+ root.setName("全部菜单");
|
|
|
|
+ root.setChildren(trees);
|
|
|
|
+
|
|
|
|
+ UserInfoVO vo = new UserInfoVO();
|
|
|
|
+ vo.setUserId(userId);
|
|
|
|
+ vo.setUsername(username);
|
|
|
|
+ vo.setRoles(roles);
|
|
|
|
+ vo.setMenuTree(root);
|
|
|
|
+ return vo;
|
|
}
|
|
}
|
|
}
|
|
}
|