This commit is contained in:
tanyp 2023-05-08 11:47:18 +08:00
parent 4b99b44d08
commit 5e266677c6
6 changed files with 317 additions and 68 deletions

File diff suppressed because one or more lines are too long

View File

@ -60,6 +60,7 @@
router.push({path: 'index'});
}
}).catch(()=>{
onCode()
state.loading = false;
})
}

View File

@ -35,7 +35,6 @@ public class SysDictController {
@ApiOperation(value = "列表树", notes = "列表树")
@Log(modul = "字典管理", type = Constants.SELECT, desc = "列表树")
@GetMapping("/tree")
@SaCheckPermission("dict:list")
public Wrapper<List<SysDict>> tree(SysDict dict) {
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.tree(dict));
}
@ -43,7 +42,6 @@ public class SysDictController {
@ApiOperation(value = "列表", notes = "列表")
@Log(modul = "字典管理", type = Constants.SELECT, desc = "列表")
@GetMapping("/list")
@SaCheckPermission("dict:list")
public Wrapper<List<SysDict>> list(SysDict dict) {
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.list(dict));
}

View File

@ -4,9 +4,11 @@ import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.tansci.common.constant.Constants;
import com.tansci.common.constant.Enums;
import com.tansci.domain.SysMenu;
import com.tansci.domain.SysRoleMenu;
import com.tansci.domain.SysUserRole;
import com.tansci.domain.vo.SysUserSessionVo;
import com.tansci.service.SysMenuService;
import com.tansci.service.SysRoleMenuService;
import com.tansci.service.SysUserRoleService;
@ -43,25 +45,40 @@ public class StpInterfaceHandler implements StpInterface {
* @return java.util.List<java.lang.String>
**/
@Override
public List<String> getPermissionList(Object o, String s) {
if (Objects.nonNull(StpUtil.getSession().get(Constants.PERMISSION_KEY))) {
return (List<String>) StpUtil.getSession().get(Constants.PERMISSION_KEY);
} else {
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
if (Objects.nonNull(roles) && roles.size() > 0) {
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
List<SysRoleMenu> roleMenus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().in(SysRoleMenu::getRoleId, roleIds));
if (Objects.nonNull(roleMenus) && roleMenus.size() > 0) {
List<SysMenu> menus = sysMenuService.list(
Wrappers.<SysMenu>lambdaQuery()
.in(SysMenu::getId, roleMenus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()))
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
.ne(SysMenu::getPermission, "")
.isNotNull(SysMenu::getPermission)
);
List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
StpUtil.getSession().set(Constants.ROLE_KEY, permissions);
return permissions;
public List<String> getPermissionList(Object loginId, String loginType) {
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
if (Objects.nonNull(userSession)) {
if (Objects.nonNull(StpUtil.getSession().get(Constants.PERMISSION_KEY))) {
return (List<String>) StpUtil.getSession().get(Constants.PERMISSION_KEY);
}
if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
List<SysMenu> menus = sysMenuService.list(
Wrappers.<SysMenu>lambdaQuery()
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
.ne(SysMenu::getPermission, "")
.isNotNull(SysMenu::getPermission)
);
List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
return permissions;
} else {
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
if (Objects.nonNull(roles) && roles.size() > 0) {
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
List<SysRoleMenu> roleMenus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().in(SysRoleMenu::getRoleId, roleIds));
if (Objects.nonNull(roleMenus) && roleMenus.size() > 0) {
List<SysMenu> menus = sysMenuService.list(
Wrappers.<SysMenu>lambdaQuery()
.in(SysMenu::getId, roleMenus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()))
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
.ne(SysMenu::getPermission, "")
.isNotNull(SysMenu::getPermission)
);
List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
return permissions;
}
}
}
}
@ -77,15 +94,24 @@ public class StpInterfaceHandler implements StpInterface {
* @return java.util.List<java.lang.String>
**/
@Override
public List<String> getRoleList(Object o, String s) {
if (Objects.nonNull(StpUtil.getSession().get(Constants.ROLE_KEY))) {
return (List<String>) StpUtil.getSession().get(Constants.ROLE_KEY);
} else {
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
if (Objects.nonNull(roles) && roles.size() > 0) {
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
public List<String> getRoleList(Object loginId, String loginType) {
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
if (Objects.nonNull(userSession)) {
if (Objects.nonNull(StpUtil.getSession().get(Constants.ROLE_KEY))) {
return (List<String>) StpUtil.getSession().get(Constants.ROLE_KEY);
}
if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
List<String> roleIds = sysUserRoleService.list().stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
return roleIds;
} else {
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
if (Objects.nonNull(roles) && roles.size() > 0) {
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
return roleIds;
}
}
}
return null;

View File

@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.tansci.common.constant.Constants;
import com.tansci.common.constant.Enums;
import com.tansci.domain.SysMenu;
import com.tansci.domain.SysRoleMenu;
import com.tansci.domain.vo.SysMenuVo;
import com.tansci.domain.vo.SysUserSessionVo;
import com.tansci.mapper.SysMenuMapper;
import com.tansci.service.SysMenuService;
import com.tansci.service.SysRoleMenuService;
@ -35,20 +37,33 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
@Override
public List<SysMenu> tree(SysMenu menu) {
List<String> menuIds = Lists.newArrayList();
if (Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0) {
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, StpUtil.getRoleList()));
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
menuIds.addAll(this.list().stream().map(SysMenu::getId).collect(Collectors.toList()));
} else {
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleMenu::getRoleId, StpUtil.getRoleList())
);
menuIds.addAll(menus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()));
}
if (Objects.isNull(menuIds) || menuIds.size() == 0) {
return Lists.newArrayList();
}
List<SysMenu> list = this.baseMapper.selectList(
Wrappers.<SysMenu>lambdaQuery()
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
.eq(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
.in(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
.eq(Objects.nonNull(menu.getParentId()), SysMenu::getParentId, menu.getParentId())
.like(Objects.nonNull(menu.getName()), SysMenu::getName, menu.getName())
.like(Objects.nonNull(menu.getChineseName()), SysMenu::getChineseName, menu.getChineseName())
.orderByDesc(SysMenu::getUpdateTime)
);
if (Objects.isNull(list) || list.size() == 0) {
return Lists.newArrayList();
}
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysMenu::getId))), ArrayList::new));
Map<String, List<SysMenu>> map = list.stream().collect(Collectors.groupingBy(SysMenu::getParentId, Collectors.toList()));
list.stream().forEach(item -> item.setChildren(map.get(item.getId())));
@ -60,19 +75,31 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
@Override
public List<SysMenuVo> menus() {
List<String> menuIds = Lists.newArrayList();
if (Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0) {
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, StpUtil.getRoleList()));
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
menuIds.addAll(this.list().stream().map(SysMenu::getId).collect(Collectors.toList()));
} else {
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleMenu::getRoleId, StpUtil.getRoleList())
);
menuIds.addAll(menus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()));
}
if (Objects.isNull(menuIds) || menuIds.size() == 0) {
return Lists.newArrayList();
}
List<SysMenu> list = this.baseMapper.selectList(
Wrappers.<SysMenu>lambdaQuery()
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
.eq(SysMenu::getIsShow, 1)
.eq(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
.in(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
.orderByAsc(SysMenu::getSort)
);
if (Objects.isNull(list) || list.size() == 0) {
return Lists.newArrayList();
}
List<SysMenuVo> newList = new ArrayList<>();
for (SysMenu menu : list) {
Map<String, Object> meta = new HashMap<>();

View File

@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.tansci.common.constant.Constants;
import com.tansci.common.constant.Enums;
import com.tansci.domain.SysOrg;
import com.tansci.domain.SysRoleOrg;
import com.tansci.domain.vo.SysUserSessionVo;
import com.tansci.mapper.SysOrgMapper;
import com.tansci.service.SysOrgService;
import com.tansci.service.SysRoleOrgService;
@ -34,15 +36,23 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
@Override
public List<SysOrg> list(SysOrg org) {
List<String> orgIds = Lists.newArrayList();
if (Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0) {
List<SysRoleOrg> menus = sysRoleOrgService.list(Wrappers.<SysRoleOrg>lambdaQuery().eq(SysRoleOrg::getRoleId, StpUtil.getRoleList()));
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
orgIds.addAll(this.baseMapper.selectList(Wrappers.lambdaQuery()).stream().map(SysOrg::getId).collect(Collectors.toList()));
} else {
List<SysRoleOrg> menus = sysRoleOrgService.list(Wrappers.<SysRoleOrg>lambdaQuery().
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleOrg::getRoleId, StpUtil.getRoleList())
);
orgIds.addAll(menus.stream().map(SysRoleOrg::getOrgId).collect(Collectors.toList()));
}
if (Objects.isNull(orgIds) || orgIds.size() == 0) {
return Lists.newArrayList();
}
List<SysOrg> list = this.baseMapper.selectList(
Wrappers.<SysOrg>lambdaQuery()
.eq(SysOrg::getIsDel, Constants.NOT_DEL_FALG)
.eq(Objects.nonNull(orgIds) && orgIds.size() > 0, SysOrg::getId, orgIds)
.in(Objects.nonNull(orgIds) && orgIds.size() > 0, SysOrg::getId, orgIds)
.eq(Objects.nonNull(org.getParentId()), SysOrg::getParentId, org.getParentId())
.eq(Objects.nonNull(org.getCode()), SysOrg::getCode, org.getCode())
.like(Objects.nonNull(org.getName()), SysOrg::getName, org.getName())