Ver código fonte

投资效益系统-菜单角色添加系统类型

LHB 4 meses atrás
pai
commit
af6352ae10

+ 9 - 3
src/main/java/org/springblade/modules/system/controller/MenuController.java

@@ -25,6 +25,7 @@
  */
 package org.springblade.modules.system.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.v3.oas.annotations.Operation;
@@ -49,6 +50,7 @@ import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.system.pojo.entity.Menu;
 import org.springblade.modules.system.pojo.entity.TopMenu;
+import org.springblade.modules.system.pojo.entity.User;
 import org.springblade.modules.system.service.IMenuService;
 import org.springblade.modules.system.service.ITopMenuService;
 import org.springblade.modules.system.pojo.vo.CheckedTreeVO;
@@ -100,7 +102,11 @@ public class MenuController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@Operation(summary = "列表", description = "传入menu")
 	public R<List<MenuVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> menu) {
-		List<Menu> list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort));
+		LambdaQueryWrapper<Menu> menuLambdaQueryWrapper = Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort);
+		if (menu.get("systemType") == null) {
+			menuLambdaQueryWrapper.isNull(Menu::getSystemType);
+		}
+		List<Menu> list = menuService.list(menuLambdaQueryWrapper);
 		return R.data(MenuWrapper.build().listNodeVO(list));
 	}
 
@@ -225,8 +231,8 @@ public class MenuController extends BladeController {
 	@GetMapping("/tree")
 	@ApiOperationSupport(order = 11)
 	@Operation(summary = "树形结构", description = "树形结构")
-	public R<List<TreeNode>> tree(BladeUser bladeUser) {
-		List<TreeNode> tree = menuService.tree(bladeUser.getClientId());
+	public R<List<TreeNode>> tree(BladeUser bladeUser, Integer systemType) {
+		List<TreeNode> tree = menuService.tree(bladeUser.getClientId(),systemType);
 		return R.data(tree);
 	}
 

+ 113 - 105
src/main/java/org/springblade/modules/system/controller/RoleController.java

@@ -77,119 +77,127 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 public class RoleController extends BladeController {
 
-	private final IRoleService roleService;
+    private final IRoleService roleService;
 
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@Operation(summary = "详情", description = "传入role")
-	public R<RoleVO> detail(Role role) {
-		Role detail = roleService.getOne(Condition.getQueryWrapper(role));
-		return R.data(RoleWrapper.build().entityVO(detail));
-	}
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @Operation(summary = "详情", description = "传入role")
+    public R<RoleVO> detail(Role role) {
+        Role detail = roleService.getOne(Condition.getQueryWrapper(role));
+        return R.data(RoleWrapper.build().entityVO(detail));
+    }
 
-	/**
-	 * 列表
-	 */
-	@GetMapping("/list")
-	@Parameters({
-		@Parameter(name = "roleName", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
-		@Parameter(name = "roleAlias", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
-	})
-	@ApiOperationSupport(order = 2)
-	@Operation(summary = "列表", description = "传入role")
-	public R<List<RoleVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> role, BladeUser bladeUser) {
-		QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class);
-		List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(RoleWrapper.build().listNodeVO(list));
-	}
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    @Parameters({
+            @Parameter(name = "roleName", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
+            @Parameter(name = "roleAlias", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
+    })
+    @ApiOperationSupport(order = 2)
+    @Operation(summary = "列表", description = "传入role")
+    public R<List<RoleVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> role, BladeUser bladeUser) {
+        QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class);
+        if (role.get("systemType") == null) {
+            queryWrapper.lambda().isNull(Role::getSystemType);
+        } else {
+            queryWrapper.lambda().or().eq(Role::getRoleAlias, "admin");
+        }
+        List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+        return R.data(RoleWrapper.build().listNodeVO(list));
+    }
 
-	/**
-	 * 获取角色树形结构
-	 */
-	@GetMapping("/tree")
-	@ApiOperationSupport(order = 3)
-	@Operation(summary = "树形结构", description = "树形结构")
-	public R<List<RoleVO>> tree(String tenantId, BladeUser bladeUser) {
-		List<RoleVO> tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
-		return R.data(tree);
-	}
+    /**
+     * 获取角色树形结构
+     */
+    @GetMapping("/tree")
+    @ApiOperationSupport(order = 3)
+    @Operation(summary = "树形结构", description = "树形结构")
+    public R<List<RoleVO>> tree(String tenantId, BladeUser bladeUser) {
+        List<RoleVO> tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+        return R.data(tree);
+    }
 
-	/**
-	 * 获取指定角色树形结构
-	 */
-	@GetMapping("/tree-by-id")
-	@ApiOperationSupport(order = 4)
-	@Operation(summary = "树形结构", description = "树形结构")
-	public R<List<RoleVO>> treeById(Long roleId, BladeUser bladeUser) {
-		Role role = SysCache.getRole(roleId);
-		List<RoleVO> tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
-		return R.data(tree);
-	}
+    /**
+     * 获取指定角色树形结构
+     */
+    @GetMapping("/tree-by-id")
+    @ApiOperationSupport(order = 4)
+    @Operation(summary = "树形结构", description = "树形结构")
+    public R<List<RoleVO>> treeById(Long roleId, BladeUser bladeUser) {
+        Role role = SysCache.getRole(roleId);
+        List<RoleVO> tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
+        return R.data(tree);
+    }
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 5)
-	@Operation(summary = "新增或修改", description = "传入role")
-	public R submit(@Valid @RequestBody Role role) {
-		CacheUtil.clear(SYS_CACHE);
-		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 5)
+    @Operation(summary = "新增或修改", description = "传入role")
+    public R submit(@Valid @RequestBody Role role) {
+        CacheUtil.clear(SYS_CACHE);
+        CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
 
-		return R.status(roleService.submit(role));
-	}
+        return R.status(roleService.submit(role));
+    }
 
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 6)
-	@Operation(summary = "删除", description = "传入ids")
-	public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) {
-		CacheUtil.clear(SYS_CACHE);
-		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
-		return R.status(roleService.removeRole(ids));
-	}
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 6)
+    @Operation(summary = "删除", description = "传入ids")
+    public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) {
+        CacheUtil.clear(SYS_CACHE);
+        CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+        return R.status(roleService.removeRole(ids));
+    }
 
-	/**
-	 * 设置角色权限
-	 */
-	@PostMapping("/grant")
-	@ApiOperationSupport(order = 7)
-	@Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合")
-	public R grant(@RequestBody GrantVO grantVO) {
-		CacheUtil.clear(SYS_CACHE);
-		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
-		List<Long> roleIds = grantVO.getRoleIds();
-		if(roleIds!=null && Func.isNull(roleIds.get(0))){
-			Role role = new Role();
-			role.setParentId(0L);
-			role.setRoleName(grantVO.getRoleName());
-			roleService.submit(role);
-			roleIds = new ArrayList<>();
-			roleIds.add(role.getId());
-		}
-		boolean temp = roleService.grant(roleIds, grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds());
-		return R.status(temp);
-	}
+    /**
+     * 设置角色权限
+     */
+    @PostMapping("/grant")
+    @ApiOperationSupport(order = 7)
+    @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合")
+    public R grant(@RequestBody GrantVO grantVO) {
+        CacheUtil.clear(SYS_CACHE);
+        CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+        List<Long> roleIds = grantVO.getRoleIds();
+        if (roleIds != null && Func.isNull(roleIds.get(0))) {
+            Role role = new Role();
+            role.setParentId(0L);
+            role.setRoleName(grantVO.getRoleName());
+            if (grantVO.getSystemType() != null) {
+                role.setSystemType(grantVO.getSystemType());
+            }
+            roleService.submit(role);
+            roleIds = new ArrayList<>();
+            roleIds.add(role.getId());
+        }
+        boolean temp = roleService.grant(roleIds, grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds());
+        return R.status(temp);
+    }
 
-	/**
-	 * 下拉数据源
-	 */
-	@PreAuth(AuthConstant.PERMIT_ALL)
-	@GetMapping("/select")
-	@ApiOperationSupport(order = 8)
-	@Operation(summary = "下拉数据源", description = "传入id集合")
-	public R<List<Role>> select(Long userId, String roleId) {
-		if (Func.isNotEmpty(userId)) {
-			User user = UserCache.getUser(userId);
-			roleId = user.getRoleId();
-		}
-		List<Role> list = roleService.list(Wrappers.<Role>lambdaQuery().in(Role::getId, Func.toLongList(roleId)));
-		return R.data(list);
-	}
+    /**
+     * 下拉数据源
+     */
+    @PreAuth(AuthConstant.PERMIT_ALL)
+    @GetMapping("/select")
+    @ApiOperationSupport(order = 8)
+    @Operation(summary = "下拉数据源", description = "传入id集合")
+    public R<List<Role>> select(Long userId, String roleId) {
+        if (Func.isNotEmpty(userId)) {
+            User user = UserCache.getUser(userId);
+            roleId = user.getRoleId();
+        }
+        List<Role> list = roleService.list(Wrappers.<Role>lambdaQuery().in(Role::getId, Func.toLongList(roleId)));
+        return R.data(list);
+    }
 
 }

+ 226 - 223
src/main/java/org/springblade/modules/system/controller/UserController.java

@@ -84,248 +84,251 @@ import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
 @Tag(name = "用户", description = "用户")
 public class UserController {
 
-	private final IUserService userService;
-	private final BladeRedis bladeRedis;
+    private final IUserService userService;
+    private final BladeRedis bladeRedis;
 
-	/**
-	 * 查询单条
-	 */
-	@ApiOperationSupport(order = 1)
-	@Operation(summary = "查看详情", description = "传入id")
-	@GetMapping("/detail")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<UserVO> detail(User user) {
-		User detail = userService.getOne(Condition.getQueryWrapper(user));
-		return R.data(UserWrapper.build().entityVO(detail));
-	}
+    /**
+     * 查询单条
+     */
+    @ApiOperationSupport(order = 1)
+    @Operation(summary = "查看详情", description = "传入id")
+    @GetMapping("/detail")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<UserVO> detail(User user) {
+        User detail = userService.getOne(Condition.getQueryWrapper(user));
+        return R.data(UserWrapper.build().entityVO(detail));
+    }
 
-	/**
-	 * 查询单条
-	 */
-	@ApiOperationSupport(order = 2)
-	@Operation(summary = "查看详情", description = "传入id")
-	@GetMapping("/info")
-	public R<UserVO> info(BladeUser user) {
-		User detail = userService.getById(user.getUserId());
-		return R.data(UserWrapper.build().entityVO(detail));
-	}
+    /**
+     * 查询单条
+     */
+    @ApiOperationSupport(order = 2)
+    @Operation(summary = "查看详情", description = "传入id")
+    @GetMapping("/info")
+    public R<UserVO> info(BladeUser user) {
+        User detail = userService.getById(user.getUserId());
+        return R.data(UserWrapper.build().entityVO(detail));
+    }
 
-	/**
-	 * 用户列表
-	 */
-	@GetMapping("/list")
-	@Parameters({
-		@Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
-		@Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
-	})
-	@ApiOperationSupport(order = 3)
-	@Operation(summary = "列表", description = "传入account和realName")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<IPage<UserVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> user, Query query, BladeUser bladeUser) {
-		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
-		IPage<User> pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(UserWrapper.build().pageVO(pages));
-	}
+    /**
+     * 用户列表
+     */
+    @GetMapping("/list")
+    @Parameters({
+            @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
+            @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
+    })
+    @ApiOperationSupport(order = 3)
+    @Operation(summary = "列表", description = "传入account和realName")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<IPage<UserVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> user, Query query, BladeUser bladeUser) {
+        QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
+        if (user.get("systemType") == null) {
+			queryWrapper.lambda().isNull(User::getSystemType);
+        }
+        IPage<User> pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+        return R.data(UserWrapper.build().pageVO(pages));
+    }
 
-	/**
-	 * 自定义用户列表
-	 */
-	@GetMapping("/page")
-	@Parameters({
-		@Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
-		@Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
-	})
-	@ApiOperationSupport(order = 3)
-	@Operation(summary = "列表", description = "传入account和realName")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<IPage<UserVO>> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) {
-		IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
-		return R.data(UserWrapper.build().pageVO(pages));
-	}
+    /**
+     * 自定义用户列表
+     */
+    @GetMapping("/page")
+    @Parameters({
+            @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
+            @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
+    })
+    @ApiOperationSupport(order = 3)
+    @Operation(summary = "列表", description = "传入account和realName")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<IPage<UserVO>> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) {
+        IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
+        return R.data(UserWrapper.build().pageVO(pages));
+    }
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 4)
-	@Operation(summary = "新增或修改", description = "传入User")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R submit(@Valid @RequestBody User user) {
-		CacheUtil.clear(USER_CACHE);
-		return R.status(userService.submit(user));
-	}
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 4)
+    @Operation(summary = "新增或修改", description = "传入User")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R submit(@Valid @RequestBody User user) {
+        CacheUtil.clear(USER_CACHE);
+        return R.status(userService.submit(user));
+    }
 
-	/**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@Operation(summary = "修改", description = "传入User")
-	public R update(@Valid @RequestBody User user) {
-		CacheUtil.clear(USER_CACHE);
-		return R.status(userService.updateUser(user));
-	}
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @Operation(summary = "修改", description = "传入User")
+    public R update(@Valid @RequestBody User user) {
+        CacheUtil.clear(USER_CACHE);
+        return R.status(userService.updateUser(user));
+    }
 
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 6)
-	@Operation(summary = "删除", description = "传入id集合")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R remove(@RequestParam String ids) {
-		CacheUtil.clear(USER_CACHE);
-		return R.status(userService.removeUser(ids));
-	}
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 6)
+    @Operation(summary = "删除", description = "传入id集合")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R remove(@RequestParam String ids) {
+        CacheUtil.clear(USER_CACHE);
+        return R.status(userService.removeUser(ids));
+    }
 
-	/**
-	 * 设置菜单权限
-	 */
-	@PostMapping("/grant")
-	@ApiOperationSupport(order = 7)
-	@Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R grant(@Parameter(name = "userId集合", required = true) @RequestParam String userIds,
-				   @Parameter(name = "roleId集合", required = true) @RequestParam String roleIds) {
-		boolean temp = userService.grant(userIds, roleIds);
-		return R.status(temp);
-	}
+    /**
+     * 设置菜单权限
+     */
+    @PostMapping("/grant")
+    @ApiOperationSupport(order = 7)
+    @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R grant(@Parameter(name = "userId集合", required = true) @RequestParam String userIds,
+                   @Parameter(name = "roleId集合", required = true) @RequestParam String roleIds) {
+        boolean temp = userService.grant(userIds, roleIds);
+        return R.status(temp);
+    }
 
-	/**
-	 * 重置密码
-	 */
-	@PostMapping("/reset-password")
-	@ApiOperationSupport(order = 8)
-	@Operation(summary = "初始化密码", description = "传入userId集合")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R resetPassword(@Parameter(name = "userId集合", required = true) @RequestParam String userIds) {
-		boolean temp = userService.resetPassword(userIds);
-		return R.status(temp);
-	}
+    /**
+     * 重置密码
+     */
+    @PostMapping("/reset-password")
+    @ApiOperationSupport(order = 8)
+    @Operation(summary = "初始化密码", description = "传入userId集合")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R resetPassword(@Parameter(name = "userId集合", required = true) @RequestParam String userIds) {
+        boolean temp = userService.resetPassword(userIds);
+        return R.status(temp);
+    }
 
-	/**
-	 * 修改密码
-	 */
-	@PostMapping("/update-password")
-	@ApiOperationSupport(order = 9)
-	@Operation(summary = "修改密码", description = "传入密码")
-	public R updatePassword(BladeUser user, @Parameter(name = "旧密码", required = true) @RequestParam String oldPassword,
-							@Parameter(name = "新密码", required = true) @RequestParam String newPassword,
-							@Parameter(name = "新密码", required = true) @RequestParam String newPassword1) {
-		boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1);
-		return R.status(temp);
-	}
+    /**
+     * 修改密码
+     */
+    @PostMapping("/update-password")
+    @ApiOperationSupport(order = 9)
+    @Operation(summary = "修改密码", description = "传入密码")
+    public R updatePassword(BladeUser user, @Parameter(name = "旧密码", required = true) @RequestParam String oldPassword,
+                            @Parameter(name = "新密码", required = true) @RequestParam String newPassword,
+                            @Parameter(name = "新密码", required = true) @RequestParam String newPassword1) {
+        boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1);
+        return R.status(temp);
+    }
 
-	/**
-	 * 修改基本信息
-	 */
-	@PostMapping("/update-info")
-	@ApiOperationSupport(order = 10)
-	@Operation(summary = "修改基本信息", description = "传入User")
-	public R updateInfo(@Valid @RequestBody User user) {
-		CacheUtil.clear(USER_CACHE);
-		return R.status(userService.updateUserInfo(user));
-	}
+    /**
+     * 修改基本信息
+     */
+    @PostMapping("/update-info")
+    @ApiOperationSupport(order = 10)
+    @Operation(summary = "修改基本信息", description = "传入User")
+    public R updateInfo(@Valid @RequestBody User user) {
+        CacheUtil.clear(USER_CACHE);
+        return R.status(userService.updateUserInfo(user));
+    }
 
-	/**
-	 * 用户列表
-	 */
-	@GetMapping("/user-list")
-	@ApiOperationSupport(order = 11)
-	@Operation(summary = "用户列表", description = "传入user")
-	public R<List<User>> userList(User user, BladeUser bladeUser) {
-		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
-		List<User> list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(list);
-	}
+    /**
+     * 用户列表
+     */
+    @GetMapping("/user-list")
+    @ApiOperationSupport(order = 11)
+    @Operation(summary = "用户列表", description = "传入user")
+    public R<List<User>> userList(User user, BladeUser bladeUser) {
+        QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
+        List<User> list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+        return R.data(list);
+    }
 
-	/**
-	 * 导入用户
-	 */
-	@PostMapping("import-user")
-	@ApiOperationSupport(order = 12)
-	@Operation(summary = "导入用户", description = "传入excel")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R importUser(MultipartFile file, Integer isCovered) {
-		UserImporter userImporter = new UserImporter(userService, isCovered == 1);
-		ExcelUtil.save(file, userImporter, UserExcel.class);
-		return R.success("操作成功");
-	}
+    /**
+     * 导入用户
+     */
+    @PostMapping("import-user")
+    @ApiOperationSupport(order = 12)
+    @Operation(summary = "导入用户", description = "传入excel")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R importUser(MultipartFile file, Integer isCovered) {
+        UserImporter userImporter = new UserImporter(userService, isCovered == 1);
+        ExcelUtil.save(file, userImporter, UserExcel.class);
+        return R.success("操作成功");
+    }
 
-	/**
-	 * 导出用户
-	 */
-	@GetMapping("export-user")
-	@ApiOperationSupport(order = 13)
-	@Operation(summary = "导出用户", description = "传入user")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public void exportUser(@Parameter(hidden = true) @RequestParam Map<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
-		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
-		if (!AuthUtil.isAdministrator()) {
-			queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId());
-		}
-		queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED);
-		List<UserExcel> list = userService.exportUser(queryWrapper);
-		ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class);
-	}
+    /**
+     * 导出用户
+     */
+    @GetMapping("export-user")
+    @ApiOperationSupport(order = 13)
+    @Operation(summary = "导出用户", description = "传入user")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public void exportUser(@Parameter(hidden = true) @RequestParam Map<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
+        QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
+        if (!AuthUtil.isAdministrator()) {
+            queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId());
+        }
+        queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+        List<UserExcel> list = userService.exportUser(queryWrapper);
+        ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class);
+    }
 
-	/**
-	 * 导出模板
-	 */
-	@GetMapping("export-template")
-	@ApiOperationSupport(order = 14)
-	@Operation(summary = "导出模板")
-	public void exportUser(HttpServletResponse response) {
-		List<UserExcel> list = new ArrayList<>();
-		ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class);
-	}
+    /**
+     * 导出模板
+     */
+    @GetMapping("export-template")
+    @ApiOperationSupport(order = 14)
+    @Operation(summary = "导出模板")
+    public void exportUser(HttpServletResponse response) {
+        List<UserExcel> list = new ArrayList<>();
+        ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class);
+    }
 
 
-	/**
-	 * 第三方注册用户
-	 */
-	@PostMapping("/register-guest")
-	@ApiOperationSupport(order = 15)
-	@Operation(summary = "第三方注册用户", description = "传入user")
-	public R registerGuest(User user, Long oauthId) {
-		return R.status(userService.registerGuest(user, oauthId));
-	}
+    /**
+     * 第三方注册用户
+     */
+    @PostMapping("/register-guest")
+    @ApiOperationSupport(order = 15)
+    @Operation(summary = "第三方注册用户", description = "传入user")
+    public R registerGuest(User user, Long oauthId) {
+        return R.status(userService.registerGuest(user, oauthId));
+    }
 
-	/**
-	 * 配置用户平台信息
-	 */
-	@PostMapping("/update-platform")
-	@ApiOperationSupport(order = 16)
-	@Operation(summary = "配置用户平台信息", description = "传入user")
-	public R updatePlatform(Long userId, Integer userType, String userExt) {
-		return R.status(userService.updatePlatform(userId, userType, userExt));
-	}
+    /**
+     * 配置用户平台信息
+     */
+    @PostMapping("/update-platform")
+    @ApiOperationSupport(order = 16)
+    @Operation(summary = "配置用户平台信息", description = "传入user")
+    public R updatePlatform(Long userId, Integer userType, String userExt) {
+        return R.status(userService.updatePlatform(userId, userType, userExt));
+    }
 
-	/**
-	 * 查看平台详情
-	 */
-	@ApiOperationSupport(order = 17)
-	@Operation(summary = "查看平台详情", description = "传入id")
-	@GetMapping("/platform-detail")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<UserVO> platformDetail(User user) {
-		return R.data(userService.platformDetail(user));
-	}
+    /**
+     * 查看平台详情
+     */
+    @ApiOperationSupport(order = 17)
+    @Operation(summary = "查看平台详情", description = "传入id")
+    @GetMapping("/platform-detail")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<UserVO> platformDetail(User user) {
+        return R.data(userService.platformDetail(user));
+    }
 
-	/**
-	 * 用户解锁
-	 */
-	@PostMapping("/unlock")
-	@ApiOperationSupport(order = 18)
-	@Operation(summary = "账号解锁", description = "传入id")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R unlock(String userIds) {
-		if (StringUtil.isBlank(userIds)) {
-			return R.fail("请至少选择一个用户");
-		}
-		List<User> userList = userService.list(Wrappers.<User>lambdaQuery().in(User::getId, Func.toLongList(userIds)));
-		userList.forEach(user -> bladeRedis.del(CacheNames.tenantKey(user.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount())));
-		return R.success("操作成功");
-	}
+    /**
+     * 用户解锁
+     */
+    @PostMapping("/unlock")
+    @ApiOperationSupport(order = 18)
+    @Operation(summary = "账号解锁", description = "传入id")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R unlock(String userIds) {
+        if (StringUtil.isBlank(userIds)) {
+            return R.fail("请至少选择一个用户");
+        }
+        List<User> userList = userService.list(Wrappers.<User>lambdaQuery().in(User::getId, Func.toLongList(userIds)));
+        userList.forEach(user -> bladeRedis.del(CacheNames.tenantKey(user.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount())));
+        return R.success("操作成功");
+    }
 
 }

+ 1 - 1
src/main/java/org/springblade/modules/system/mapper/MenuMapper.java

@@ -65,7 +65,7 @@ public interface MenuMapper extends BaseMapper<Menu> {
 	 *
 	 * @return
 	 */
-	List<TreeNode> tree(String clientId);
+	List<TreeNode> tree(String clientId,Integer systemType);
 
 	/**
 	 * 授权树形结构

+ 8 - 0
src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml

@@ -121,6 +121,14 @@
         <if test="param1!=null">
            and sys_type = #{param1}
         </if>
+        <choose>
+            <when test="param2!=null and param2!=''">
+                AND system_type = #{param2}
+            </when>
+            <otherwise>
+                AND (system_type = null or system_type = 1)
+            </otherwise>
+        </choose>
     </select>
 
     <select id="allMenu" resultMap="menuResultMap">

+ 8 - 4
src/main/java/org/springblade/modules/system/pojo/entity/Role.java

@@ -25,10 +25,7 @@
  */
 package org.springblade.modules.system.pojo.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -36,6 +33,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 实体类
@@ -96,5 +94,11 @@ public class Role implements Serializable {
 	@Schema(description = "是否已删除")
 	private Integer isDeleted;
 
+	/**
+	 * 是否已删除
+	 */
+	@Schema(description = "是否已删除")
+	private Integer systemType;
+
 
 }

+ 3 - 0
src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java

@@ -60,5 +60,8 @@ public class GrantVO implements Serializable {
 	@Schema(description = "角色名称")
 	private String roleName;
 
+	@Schema(description = "系统类型")
+	private Integer systemType;
+
 
 }

+ 1 - 1
src/main/java/org/springblade/modules/system/service/IMenuService.java

@@ -91,7 +91,7 @@ public interface IMenuService extends IService<Menu> {
 	 *
 	 * @return
 	 */
-	List<TreeNode> tree(String clientId);
+	List<TreeNode> tree(String clientId,Integer systemType);
 
 	/**
 	 * 授权树形结构

+ 2 - 2
src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java

@@ -156,8 +156,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 	}
 
 	@Override
-	public List<TreeNode> tree(String clientId) {
-		return ForestNodeMerger.merge(baseMapper.tree(clientId));
+	public List<TreeNode> tree(String clientId,Integer systemType) {
+		return ForestNodeMerger.merge(baseMapper.tree(clientId,systemType));
 	}
 
 	@Override