diff --git a/pom.xml b/pom.xml
index 8a8d661..d2fd319 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,10 +27,6 @@
2.7.18
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
diff --git a/xs-api/src/main/java/com/xiang/xs/api/client/TokenApi.java b/xs-api/src/main/java/com/xiang/xs/api/client/TokenApi.java
deleted file mode 100644
index 3a7b5ea..0000000
--- a/xs-api/src/main/java/com/xiang/xs/api/client/TokenApi.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.xiang.xs.api.client;
-
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-
-@FeignClient(name = "xservice-auth-center", fallback = TokenApiFallback.class)
-public interface TokenApi {
-
- @GetMapping("/private/user/getUserId/{token}")
- Long getUserId(@PathVariable("token") String token);
-
- @GetMapping("/private/user/getTenantId/{token}")
- Long getTenantId(@PathVariable("token") String token);
-}
diff --git a/xs-api/src/main/java/com/xiang/xs/api/client/TokenApiFallback.java b/xs-api/src/main/java/com/xiang/xs/api/client/TokenApiFallback.java
deleted file mode 100644
index 9ea91b6..0000000
--- a/xs-api/src/main/java/com/xiang/xs/api/client/TokenApiFallback.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.xiang.xs.api.client;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class TokenApiFallback implements TokenApi {
- @Override
- public Long getUserId(String token) {
- log.warn("[rpc] 请求auth center 获取userId 异常, time:{}", System.currentTimeMillis());
- return null;
- }
-
- @Override
- public Long getTenantId(String token) {
- log.warn("[rpc] 请求auth center tenantId 异常, time:{}", System.currentTimeMillis());
- return null;
- }
-}
diff --git a/xs-api/src/main/java/com/xiang/xs/api/pojo/request/PermissionRegisterRequest.java b/xs-api/src/main/java/com/xiang/xs/api/pojo/request/PermissionRegisterRequest.java
new file mode 100644
index 0000000..cd7ae0c
--- /dev/null
+++ b/xs-api/src/main/java/com/xiang/xs/api/pojo/request/PermissionRegisterRequest.java
@@ -0,0 +1,34 @@
+package com.xiang.xs.api.pojo.request;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PermissionRegisterRequest {
+
+ private String serviceName;
+ /**
+ * 类名+方法名
+ */
+ private String name;
+ /**
+ * 服务名称+方法+接口地址
+ */
+ private String code;
+ /**
+ * 接口地址
+ */
+ private String apiPath;
+ /**
+ * 请求方式
+ */
+ private String method;
+ /**
+ * 类型 接口为3
+ */
+ private Integer type = 3; // 接口
+}
diff --git a/xs-server/src/main/java/com/xiang/xs/server/Application.java b/xs-server/src/main/java/com/xiang/xs/server/Application.java
index cb8e1a8..e2b79c1 100644
--- a/xs-server/src/main/java/com/xiang/xs/server/Application.java
+++ b/xs-server/src/main/java/com/xiang/xs/server/Application.java
@@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = "com.xiang.xs")
-@EnableFeignClients
+@EnableFeignClients(basePackages = "com.xiang.xs.api")
@MapperScan("com.xiang.xs.service.repository.mapper")
public class Application {
diff --git a/xs-server/src/main/java/com/xiang/xs/server/controller/SysDeptController.java b/xs-server/src/main/java/com/xiang/xs/server/controller/SysDeptController.java
index 6d163ee..e89dd13 100644
--- a/xs-server/src/main/java/com/xiang/xs/server/controller/SysDeptController.java
+++ b/xs-server/src/main/java/com/xiang/xs/server/controller/SysDeptController.java
@@ -55,8 +55,8 @@ public class SysDeptController {
*/
@GetMapping(value = "/{deptId}")
public Result getInfo(@PathVariable Long deptId, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- deptService.checkDeptDataScope(deptId, token);
+ String userId = request.getHeader("X-User-Id");
+ deptService.checkDeptDataScope(deptId, Long.parseLong(userId));
return Result.data(deptService.selectDeptById(deptId));
}
@@ -77,7 +77,8 @@ public class SysDeptController {
@PutMapping
public Result edit(@Validated @RequestBody SysDept dept, HttpServletRequest request) {
Long deptId = dept.getDeptId();
- deptService.checkDeptDataScope(deptId, getToken(request));
+ String userId = request.getHeader("X-User-Id");
+ deptService.checkDeptDataScope(deptId, Long.parseLong(userId));
if (!deptService.checkDeptNameUnique(dept)) {
return Result.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
} else if (dept.getParentId().equals(deptId)) {
@@ -100,7 +101,8 @@ public class SysDeptController {
if (deptService.checkDeptExistUser(deptId)) {
return Result.error("部门存在用户,不允许删除");
}
- deptService.checkDeptDataScope(deptId, token);
+ String userId = request.getHeader("X-User-Id");
+ deptService.checkDeptDataScope(deptId, Long.parseLong(userId));
return Result.data(deptService.deleteDeptById(deptId) > 0);
}
diff --git a/xs-server/src/main/java/com/xiang/xs/server/controller/SysMenuController.java b/xs-server/src/main/java/com/xiang/xs/server/controller/SysMenuController.java
index 0ca37b9..38689a2 100644
--- a/xs-server/src/main/java/com/xiang/xs/server/controller/SysMenuController.java
+++ b/xs-server/src/main/java/com/xiang/xs/server/controller/SysMenuController.java
@@ -1,6 +1,5 @@
package com.xiang.xs.server.controller;
-import com.xiang.xs.api.client.TokenApi;
import com.xiang.xs.service.biz.ISysMenuService;
import com.xiang.xs.service.contants.UserConstants;
import com.xiang.xs.service.entity.SysMenu;
@@ -8,7 +7,6 @@ import com.xiang.xs.service.entity.TreeSelect;
import com.xiang.xs.service.entity.vo.RoleTreeVo;
import com.xiang.xservice.basic.common.resp.Result;
import com.xiang.xservice.basic.utils.MyStringUtils;
-import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -33,16 +31,14 @@ import java.util.List;
public class SysMenuController {
@Autowired
private ISysMenuService menuService;
- @Autowired
- private TokenApi tokenApi;
/**
* 获取菜单列表
*/
@GetMapping("/list")
public Result> list(SysMenu menu, HttpServletRequest request) {
- Long userId = tokenApi.getUserId(request.getHeader("Authorization"));
- List menus = menuService.selectMenuList(menu, userId);
+ String userId = request.getHeader("X-User_id");
+ List menus = menuService.selectMenuList(menu, Long.parseLong(userId));
return Result.data(menus);
}
@@ -59,7 +55,8 @@ public class SysMenuController {
*/
@GetMapping("/treeselect")
public Result> treeselect(SysMenu menu, HttpServletRequest request) {
- List menus = menuService.selectMenuList(menu, tokenApi.getUserId(request.getHeader("Authorization")));
+ String userId = request.getHeader("X-User_id");
+ List menus = menuService.selectMenuList(menu, Long.parseLong(userId));
return Result.data(menuService.buildMenuTreeSelect(menus));
}
@@ -68,7 +65,8 @@ public class SysMenuController {
*/
@GetMapping(value = "/roleMenuTreeselect/{roleId}")
public Result roleMenuTreeselect(@PathVariable("roleId") Long roleId, HttpServletRequest request) {
- List menus = menuService.selectMenuList(tokenApi.getUserId(request.getHeader("Authorization")));
+ String userId = request.getHeader("X-User_id");
+ List menus = menuService.selectMenuList(Long.parseLong(userId));
return Result.data(new RoleTreeVo(menuService.selectMenuListByRoleId(roleId), menuService.buildMenuTreeSelect(menus)));
}
diff --git a/xs-server/src/main/java/com/xiang/xs/server/controller/SysRoleController.java b/xs-server/src/main/java/com/xiang/xs/server/controller/SysRoleController.java
index 301af10..87cf37c 100644
--- a/xs-server/src/main/java/com/xiang/xs/server/controller/SysRoleController.java
+++ b/xs-server/src/main/java/com/xiang/xs/server/controller/SysRoleController.java
@@ -51,8 +51,8 @@ public class SysRoleController {
*/
@GetMapping(value = "/{roleId}")
public Result getInfo(@PathVariable Long roleId, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- roleService.checkRoleDataScope(token, roleId);
+ String userId = request.getHeader("X-User-Id");
+ roleService.checkRoleDataScope(Long.parseLong(userId), roleId);
return Result.data(roleService.selectRoleById(roleId));
}
@@ -75,9 +75,9 @@ public class SysRoleController {
*/
@PutMapping
public Result edit(@Validated @RequestBody SysRole role, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
+ String userId = request.getHeader("X-User-Id");
roleService.checkRoleAllowed(role);
- roleService.checkRoleDataScope(token, role.getRoleId());
+ roleService.checkRoleDataScope(Long.parseLong(userId), role.getRoleId());
if (!roleService.checkRoleNameUnique(role)) {
return Result.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
} else if (!roleService.checkRoleKeyUnique(role)) {
@@ -92,9 +92,9 @@ public class SysRoleController {
*/
@PutMapping("/dataScope")
public Result dataScope(@RequestBody SysRole role, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
+ String userId = request.getHeader("X-User-Id");
roleService.checkRoleAllowed(role);
- roleService.checkRoleDataScope(token, role.getRoleId());
+ roleService.checkRoleDataScope(Long.parseLong(userId), role.getRoleId());
return Result.data(roleService.authDataScope(role) > 0);
}
@@ -103,9 +103,9 @@ public class SysRoleController {
*/
@PutMapping("/changeStatus")
public Result changeStatus(@RequestBody SysRole role, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
+ String userId = request.getHeader("X-User-Id");
roleService.checkRoleAllowed(role);
- roleService.checkRoleDataScope(token, role.getRoleId());
+ roleService.checkRoleDataScope(Long.parseLong(userId), role.getRoleId());
return Result.data(roleService.updateRoleStatus(role) > 0);
}
@@ -114,8 +114,8 @@ public class SysRoleController {
*/
@DeleteMapping("/{roleIds}")
public Result remove(@PathVariable Long[] roleIds, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- return Result.data(roleService.deleteRoleByIds(token, roleIds) > 0);
+ String userId = request.getHeader("X-User-Id");
+ return Result.data(roleService.deleteRoleByIds(Long.parseLong(userId), roleIds) > 0);
}
/**
@@ -165,8 +165,8 @@ public class SysRoleController {
*/
@PutMapping("/authUser/selectAll")
public Result selectAuthUserAll(Long roleId, Long[] userIds, HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- roleService.checkRoleDataScope(token, roleId);
+ String userId = request.getHeader("X-User-Id");
+ roleService.checkRoleDataScope(Long.parseLong(userId), roleId);
return Result.data(roleService.insertAuthUsers(roleId, userIds) > 0);
}
diff --git a/xs-server/src/main/java/com/xiang/xs/server/controller/SysUserController.java b/xs-server/src/main/java/com/xiang/xs/server/controller/SysUserController.java
new file mode 100644
index 0000000..27e3f02
--- /dev/null
+++ b/xs-server/src/main/java/com/xiang/xs/server/controller/SysUserController.java
@@ -0,0 +1,71 @@
+package com.xiang.xs.server.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.xiang.xs.service.biz.ISysDeptService;
+import com.xiang.xs.service.biz.ISysRoleService;
+import com.xiang.xs.service.biz.ISysUserService;
+import com.xiang.xs.service.entity.SysDept;
+import com.xiang.xs.service.entity.SysRole;
+import com.xiang.xs.service.entity.SysUser;
+import com.xiang.xs.service.entity.TreeSelect;
+import com.xiang.xservice.basic.common.resp.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户信息
+ *
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/user")
+public class SysUserController {
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private ISysRoleService roleService;
+
+ @Autowired
+ private ISysDeptService deptService;
+
+ /**
+ * 根据用户编号获取授权角色
+ */
+ @GetMapping("/authRole/{userId}")
+ public Result authRole(@PathVariable("userId") Long userId) {
+ JSONObject ajax = new JSONObject();
+ SysUser user = userService.selectUserById(userId);
+ List roles = roleService.selectRolesByUserId(userId);
+ ajax.put("user", user);
+ ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+ return Result.data(ajax);
+ }
+
+ /**
+ * 用户授权角色
+ */
+ @PutMapping("/authRole")
+ public Result insertAuthRole(Long userId, Long[] roleIds) {
+ userService.checkUserDataScope(userId);
+ roleService.checkRoleDataScope(userId, roleIds);
+ userService.insertUserAuth(userId, roleIds);
+ return Result.success();
+ }
+
+ /**
+ * 获取部门树列表
+ */
+ @GetMapping("/deptTree")
+ public Result> deptTree(SysDept dept) {
+ return Result.data(deptService.selectDeptTreeList(dept));
+ }
+}
diff --git a/xs-service/src/main/java/com/xiang/xs/service/biz/ISysDeptService.java b/xs-service/src/main/java/com/xiang/xs/service/biz/ISysDeptService.java
index 59458a0..85c63a7 100644
--- a/xs-service/src/main/java/com/xiang/xs/service/biz/ISysDeptService.java
+++ b/xs-service/src/main/java/com/xiang/xs/service/biz/ISysDeptService.java
@@ -107,7 +107,7 @@ public interface ISysDeptService {
*
* @param deptId 部门id
*/
- void checkDeptDataScope(Long deptId, String token);
+ void checkDeptDataScope(Long deptId, Long userId);
/**
* 新增保存部门信息
diff --git a/xs-service/src/main/java/com/xiang/xs/service/biz/ISysRoleService.java b/xs-service/src/main/java/com/xiang/xs/service/biz/ISysRoleService.java
index 676374a..2d3b81a 100644
--- a/xs-service/src/main/java/com/xiang/xs/service/biz/ISysRoleService.java
+++ b/xs-service/src/main/java/com/xiang/xs/service/biz/ISysRoleService.java
@@ -95,7 +95,7 @@ public interface ISysRoleService {
*
* @param roleIds 角色id
*/
- void checkRoleDataScope(String token, Long... roleIds);
+ void checkRoleDataScope(Long userId, Long... roleIds);
/**
* 通过角色ID查询角色使用数量
@@ -158,7 +158,7 @@ public interface ISysRoleService {
*
* @return 结果
*/
- int deleteRoleByIds(String token, Long[] roleIds);
+ int deleteRoleByIds(Long userId, Long[] roleIds);
/**
* 取消授权用户角色
diff --git a/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysDeptServiceImpl.java b/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysDeptServiceImpl.java
index 85f0344..69dded8 100644
--- a/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysDeptServiceImpl.java
+++ b/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysDeptServiceImpl.java
@@ -1,6 +1,5 @@
package com.xiang.xs.service.biz.impl;
-import com.xiang.xs.api.client.TokenApi;
import com.xiang.xs.service.biz.ISysDeptService;
import com.xiang.xs.service.contants.UserConstants;
import com.xiang.xs.service.entity.SysDept;
@@ -35,9 +34,6 @@ public class SysDeptServiceImpl implements ISysDeptService {
@Autowired
private SysRoleMapper roleMapper;
- @Autowired
- private TokenApi tokenApi;
-
/**
* 查询部门管理数据
*
@@ -186,8 +182,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
* @param deptId 部门id
*/
@Override
- public void checkDeptDataScope(Long deptId, String token) {
- if (!SysUser.isAdmin(tokenApi.getUserId(token)) && Objects.nonNull(deptId)) {
+ public void checkDeptDataScope(Long deptId, Long userId) {
+
+ if (!SysUser.isAdmin(userId) && Objects.nonNull(deptId)) {
SysDept dept = new SysDept();
dept.setDeptId(deptId);
List depts = selectDeptList(dept);
diff --git a/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysRoleServiceImpl.java b/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysRoleServiceImpl.java
index 00442ed..ca9ce3a 100644
--- a/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysRoleServiceImpl.java
+++ b/xs-service/src/main/java/com/xiang/xs/service/biz/impl/SysRoleServiceImpl.java
@@ -1,6 +1,5 @@
package com.xiang.xs.service.biz.impl;
-import com.xiang.xs.api.client.TokenApi;
import com.xiang.xs.service.biz.ISysRoleService;
import com.xiang.xs.service.contants.UserConstants;
import com.xiang.xs.service.entity.SysRole;
@@ -12,7 +11,6 @@ import com.xiang.xs.service.repository.mapper.SysRoleDeptMapper;
import com.xiang.xs.service.repository.mapper.SysRoleMapper;
import com.xiang.xs.service.repository.mapper.SysRoleMenuMapper;
import com.xiang.xs.service.repository.mapper.SysUserRoleMapper;
-import com.xiang.xservice.basic.exception.BusinessException;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -44,9 +42,6 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Autowired
private SysRoleDeptMapper roleDeptMapper;
- @Autowired
- private TokenApi tokenApi;
-
/**
* 根据条件分页查询角色数据
*
@@ -186,9 +181,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
* @param roleIds 角色id
*/
@Override
- public void checkRoleDataScope(String token, Long... roleIds) {
+ public void checkRoleDataScope(Long userId, Long... roleIds) {
- if (!SysUser.isAdmin(tokenApi.getUserId(token))) {
+ if (!SysUser.isAdmin(userId)) {
for (Long roleId : roleIds) {
SysRole role = new SysRole();
role.setRoleId(roleId);
@@ -342,10 +337,10 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
@Transactional
- public int deleteRoleByIds(String token, Long[] roleIds) {
+ public int deleteRoleByIds(Long userId, Long[] roleIds) {
for (Long roleId : roleIds) {
checkRoleAllowed(new SysRole(roleId));
- checkRoleDataScope(token, roleId);
+ checkRoleDataScope(userId, roleId);
SysRole role = selectRoleById(roleId);
if (countUserRoleByRoleId(roleId) > 0) {
throw new com.xiang.xservice.basic.exception.BusinessException(String.format("%1$s已分配,不能删除", role.getRoleName()));