Kaynağa Gözat

Merge branch 'feature-rolelist-210726' of googol/YY_BE_2 into master

屈桐 4 yıl önce
ebeveyn
işleme
ce03361878

+ 74 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysRoleController.java

@@ -20,6 +20,7 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
@@ -35,7 +36,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author hnqz
@@ -138,13 +143,79 @@ public class SysRoleController {
 	/**
 	 * 获取角色列表(不包含admin管理员角色)
 	 *
+	 * 1.药企管理员:可见:
+	 * 药企管理员
+	 * CSO管理员
+	 * 全职学术信息沟通专员
+	 * 兼职学术信息沟通专员
+	 * 财务管理员
+	 *
+	 *
+	 * 2.CSO管理员:可见:
+	 * CSO管理员
+	 * 全职学术信息沟通专员
+	 * 兼职学术信息沟通专员
+	 * 财务管理员
+	 *
+	 *
+	 * 3.CRO管理员:可见:
+	 * CRO管理员
+	 * 兼职CRC
+	 * 财务管理员
+	 *
+	 *
+	 * 4.患教管理员:可见:
+	 * 患教管理员
+	 * HCP
+	 * 财务管理员
+	 *
+	 * 5.财务管理:可见:
+	 * 财务管理员
+	 *
+	 * 6.平台管理员都可以看到
 	 * @return 角色列表
 	 */
 	@GetMapping("/listRoleExcludeAdmin")
 	public R listRoleExcludeAdmin() {
-		Wrapper<SysRole> queryWrapper = Wrappers.<SysRole>lambdaQuery()
-				.ne(SysRole::getRoleId, 1)
-				.orderByAsc(SysRole::getRoleId);
+
+		// 获取当前登陆用户的角色列表
+		List<Integer> rolesIdList = SecurityUtils.getRoles();
+
+		// 平台管理员
+		LambdaQueryWrapper<SysRole> queryWrapper = Wrappers.<SysRole>lambdaQuery();
+		if (rolesIdList.contains(2)){
+			queryWrapper.ne(SysRole::getRoleId, 1).orderByAsc(SysRole::getRoleId);
+		} else {
+			List<Integer> drugEntAdmin = Stream.of(3,4,5,6,7).collect(Collectors.toList());
+			List<Integer> CSOAdmin = Stream.of(4,5,6,7).collect(Collectors.toList());
+			List<Integer> CROAdmin = Stream.of(7,9,10).collect(Collectors.toList());
+			List<Integer> HCPAdmin = Stream.of(7,11,13).collect(Collectors.toList());
+			List<Integer> CFOAdmin = Stream.of(7).collect(Collectors.toList());
+
+			Set<Integer> queryRoleIdSet = new HashSet<>();
+
+			rolesIdList.forEach(id ->{
+				switch (id){
+					case 3:
+						queryRoleIdSet.addAll(drugEntAdmin);
+						break;
+					case 4:
+						queryRoleIdSet.addAll(CSOAdmin);
+						break;
+					case 7:
+						queryRoleIdSet.addAll(CFOAdmin);
+						break;
+					case 9:
+						queryRoleIdSet.addAll(CROAdmin);
+						break;
+					case 11:
+						queryRoleIdSet.addAll(HCPAdmin);
+						break;
+				}
+			});
+			queryWrapper.in(SysRole::getRoleId, queryRoleIdSet).orderByAsc(SysRole::getRoleId);
+		}
+
 		List<SysRole> list = sysRoleService.list(queryWrapper);
 		return R.ok(list);
 	}