ソースを参照

feat(user): 添加商户管理员角色权限控制功能

- 在BaseLoginController中注入HttpServletRequest用于获取请求信息
- 扩展IbInfoEntity实体类,新增merchantId和isMerchantAdmin字段
- 扩展UserInfoTable数据表对象,新增merchantId和isMerchantAdmin字段
- 继承BaseLoginController基类到UserRoleController,获取基础登录功能
- 注入MerchantRoleService服务处理商户角色相关业务
- 实现商户管理员权限判断逻辑,根据merchantId和isMerchantAdmin状态返回不同数据
- 添加商户详情列表查询接口,支持商户管理员获取特定商户的用户节点信息
孔向阳 5 ヶ月 前
コミット
cc1626dfcf

+ 13 - 2
uacrd-manager-server/src/main/java/com/crm/manager/controller/UserRoleController.java

@@ -1,5 +1,7 @@
 package com.crm.manager.controller;
 
+import com.crm.login.rely.backend.controller.BaseLoginController;
+import com.crm.manager.service.MerchantRoleService;
 import com.crm.manager.service.UserRoleService;
 import com.crm.rely.backend.core.constant.Constants;
 import com.crm.rely.backend.core.constant.ManagerConstant;
@@ -16,6 +18,8 @@ import com.crm.rely.backend.core.entity.user.role.UserRoleSearchEntity;
 import com.crm.rely.backend.core.entity.user.role.UserRoleUpdateEntity;
 import com.crm.rely.backend.exception.ControllerException;
 import com.crm.rely.backend.util.DateUtil;
+import com.crm.rely.backend.util.HttpServletRequestUtil;
+import org.apache.catalina.servlet4preview.http.HttpServletRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -30,11 +34,14 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/user/role")
-public class UserRoleController {
+public class UserRoleController extends BaseLoginController {
 
     @Autowired
     private UserRoleService roleInfoService;
 
+    @Autowired
+    private MerchantRoleService merchantRoleService;
+
     /**
      * 添加角色
      *
@@ -58,7 +65,11 @@ public class UserRoleController {
 
     @PostMapping("/add/detail/list")
     public BaseResultDto<List<UserNodeDisplayDto>> getDetailList() throws Exception {
-
+        InfoEntity infoEntity = HttpServletRequestUtil.getLoginInfo(InfoEntity.class, httpServletRequest, redisService
+                , true);
+        if(infoEntity.getIbInfo().getMerchantId() != null && infoEntity.getIbInfo().getIsMerchantAdmin().equals(1)){
+            return BaseResultDto.success(merchantRoleService.merchantDetailList(infoEntity.getIbInfo().getMerchantId()));
+        }
         List<UserNodeDisplayDto> userNodeDisplayEntities = roleInfoService.getUserNodeDisplay(-1L);
 
         return BaseResultDto.success(userNodeDisplayEntities);

+ 5 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/entity/custom/info/IbInfoEntity.java

@@ -172,4 +172,9 @@ public class IbInfoEntity {
      * 是否是商户 0 是 ; 1:不是
      */
     private Integer isMerchant;
+
+    private Long merchantId;
+
+    // 是否是商户管理员 0:否 1:是
+    private Integer isMerchantAdmin;
 }

+ 5 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/pojo/table/UserInfoTable.java

@@ -237,4 +237,9 @@ public class UserInfoTable extends BaseTable {
      */
     private Integer isMerchant;
 
+    private Long merchantId;
+
+    // 是否是商户管理员 0:否 1:是
+    private Integer isMerchantAdmin;
+
 }

+ 2 - 0
ucard-login-backend/src/main/java/com/crm/login/rely/backend/controller/BaseLoginController.java

@@ -22,6 +22,8 @@ public class BaseLoginController {
 
     @Autowired
     protected RedisService redisService;
+    @Autowired
+    protected HttpServletRequest httpServletRequest;
 
     protected <T extends InfoEntity> String login(T entity) throws Exception {