Przeglądaj źródła

[task-906] 事务代理中增加按角色代理功能

Li Yuan 2 lat temu
rodzic
commit
116c81cfb5

+ 3 - 1
ibps-provider-base-root/modules/provider-bpmn-api/src/main/java/com/lc/ibps/bpmn/api/IBpmAgentService.java

@@ -23,6 +23,8 @@ import com.lc.ibps.cloud.entity.APIPageList;
 import com.lc.ibps.cloud.entity.APIRequest;
 import com.lc.ibps.cloud.entity.APIRequest;
 import com.lc.ibps.cloud.entity.APIResult;
 import com.lc.ibps.cloud.entity.APIResult;
 
 
+import java.util.List;
+
 
 
 /** 流程代理 控制类
 /** 流程代理 控制类
  *
  *
@@ -61,7 +63,7 @@ public interface IBpmAgentService {
 			@RequestParam(name="id", required = false)  String id) ;
 			@RequestParam(name="id", required = false)  String id) ;
 
 
 	@RequestMapping(value = "/roles",method = {RequestMethod.GET})
 	@RequestMapping(value = "/roles",method = {RequestMethod.GET})
-	public APIResult<String> roles();
+	public APIResult<List<String>> roles();
 
 
 	/**
 	/**
 	 * 批量删除【流程代理】记录
 	 * 批量删除【流程代理】记录

+ 1 - 2
ibps-provider-base-root/modules/provider-platform-api/src/main/java/com/lc/ibps/common/api/IResourcesService.java

@@ -98,8 +98,7 @@ public interface IResourcesService {
 	@RequestMapping(value = "/getMenuData", method = { RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@RequestMapping(value = "/getMenuData", method = { RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public APIResult<List<ResourcesPo>> getMenuData(
 	public APIResult<List<ResourcesPo>> getMenuData(
 			@NotBlank(message = "{com.lc.ibps.org.auth.systemId}") 
 			@NotBlank(message = "{com.lc.ibps.org.auth.systemId}") 
-			@RequestParam(name = "systemId", required = true) String systemId,
-			@RequestParam(name = "roles", required = false) String roles);
+			@RequestParam(name = "systemId", required = true) String systemId);
 	
 	
 	/**
 	/**
 	 * 
 	 * 

+ 3 - 4
ibps-provider-root/modules/provider-bpmn/src/main/java/com/lc/ibps/bpmn/provider/BpmAgentProvider.java

@@ -109,11 +109,10 @@ public class BpmAgentProvider extends GenericProvider implements IBpmAgentServic
 
 
 	@ApiOperation(value = "代理角色列表", notes = "根据当前用户查询代理角色列表")
 	@ApiOperation(value = "代理角色列表", notes = "根据当前用户查询代理角色列表")
 	@Override
 	@Override
-	public APIResult<String> roles() {
-		APIResult<String> result = new APIResult<>();
+	public APIResult<List<String>> roles() {
+		APIResult<List<String>> result = new APIResult<>();
 		User user = ContextUtil.getCurrentUser();
 		User user = ContextUtil.getCurrentUser();
-		List<String> roles = bpmAgentRepository.findRolesByAgentId(user.getUserId());
-		result.setData(StringUtils.join(roles,","));
+		result.setData(bpmAgentRepository.findRolesByAgentId(user.getUserId()));
 		return result;
 		return result;
 	}
 	}
 
 

+ 7 - 10
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/common/provider/ResourcesProvider.java

@@ -5,6 +5,8 @@ import java.util.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
+import com.lc.ibps.base.core.util.*;
+import com.lc.ibps.bpmn.api.IBpmAgentService;
 import com.lc.ibps.bpmn.persistence.entity.BpmAgentPo;
 import com.lc.ibps.bpmn.persistence.entity.BpmAgentPo;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.dom4j.Document;
 import org.dom4j.Document;
@@ -22,11 +24,6 @@ import com.lc.ibps.api.org.exception.OrgException;
 import com.lc.ibps.auth.repository.AuthAppApiRepository;
 import com.lc.ibps.auth.repository.AuthAppApiRepository;
 import com.lc.ibps.base.core.constants.StringPool;
 import com.lc.ibps.base.core.constants.StringPool;
 import com.lc.ibps.base.core.exception.BaseException;
 import com.lc.ibps.base.core.exception.BaseException;
-import com.lc.ibps.base.core.util.ArrayUtil;
-import com.lc.ibps.base.core.util.BeanUtils;
-import com.lc.ibps.base.core.util.Dom4jUtil;
-import com.lc.ibps.base.core.util.I18nUtil;
-import com.lc.ibps.base.core.util.JacksonUtil;
 import com.lc.ibps.base.core.util.string.StringUtil;
 import com.lc.ibps.base.core.util.string.StringUtil;
 import com.lc.ibps.base.datasource.dynamic.DbContextHolder;
 import com.lc.ibps.base.datasource.dynamic.DbContextHolder;
 import com.lc.ibps.base.datasource.util.DbUtil;
 import com.lc.ibps.base.datasource.util.DbUtil;
@@ -171,17 +168,17 @@ public class ResourcesProvider extends GenericProvider implements IResourcesServ
 	@Override
 	@Override
 	public APIResult<List<ResourcesPo>> getMenuData(
 	public APIResult<List<ResourcesPo>> getMenuData(
 			@ApiParam(name = "systemId", value = "所属子系统Id", required = true)
 			@ApiParam(name = "systemId", value = "所属子系统Id", required = true)
-			@RequestParam(name = "systemId", required = true) String systemId,
-			@ApiParam(name = "roles", value = "代理角色", required = false)
-			@RequestParam(name = "roles", required = false) String roles) {
+			@RequestParam(name = "systemId", required = true) String systemId) {
 		APIResult<List<ResourcesPo>> result = new APIResult<>();
 		APIResult<List<ResourcesPo>> result = new APIResult<>();
 		try {
 		try {
 			logger.debug("com.lc.ibps.common.provider.ResourcesProvider.findByParentIdAndSystemId()--->systemId={} ",
 			logger.debug("com.lc.ibps.common.provider.ResourcesProvider.findByParentIdAndSystemId()--->systemId={} ",
 					 systemId);
 					 systemId);
 			User user = ContextUtil.getCurrentUser();
 			User user = ContextUtil.getCurrentUser();
 			List<String> agentRoles = null;
 			List<String> agentRoles = null;
-			if(StringUtils.isNotBlank(roles)){
-				agentRoles = Arrays.asList(roles.split(","));
+			IBpmAgentService bpmAgentService = AppUtil.getBean(IBpmAgentService.class);
+			APIResult<List<String>> rolesResult = bpmAgentService.roles();
+			if(rolesResult.isSuccess()){
+				agentRoles = rolesResult.getData();
 			}
 			}
 			List<ResourcesPo> list = resourcesRepository.getByUserIdSystemId(user.getUserId(), user.isSuper(),
 			List<ResourcesPo> list = resourcesRepository.getByUserIdSystemId(user.getUserId(), user.isSuper(),
 					systemId,agentRoles);
 					systemId,agentRoles);

+ 18 - 1
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/common/provider/RightsProvider.java

@@ -7,6 +7,8 @@ import java.util.Map;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
 
 
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.bpmn.api.IBpmAgentService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -128,7 +130,7 @@ public class RightsProvider extends GenericProvider implements IRightsService, I
 	@ApiOperation(value = "权限过滤", notes = "权限过滤", hidden = true)
 	@ApiOperation(value = "权限过滤", notes = "权限过滤", hidden = true)
 	@Override
 	@Override
 	public APIResult<FilterRightsVo> filterRights(
 	public APIResult<FilterRightsVo> filterRights(
-			@ApiParam(name = "rightsVo", value = "权限请求对象", required = true) 
+			@ApiParam(name = "rightsVo", value = "权限请求对象", required = true)
 			@RequestBody(required = true) @Valid FilterRightsVo rightsVo) {
 			@RequestBody(required = true) @Valid FilterRightsVo rightsVo) {
 		APIResult<FilterRightsVo> result = new APIResult<>();
 		APIResult<FilterRightsVo> result = new APIResult<>();
 		try {
 		try {
@@ -137,6 +139,21 @@ public class RightsProvider extends GenericProvider implements IRightsService, I
 			APIResult<Map<RightsType, List<String>>> ret = this.getPermissionsMap(rightsVo.getUserId());
 			APIResult<Map<RightsType, List<String>>> ret = this.getPermissionsMap(rightsVo.getUserId());
 			if(ret.isSuccess()) {
 			if(ret.isSuccess()) {
 				permissionsMap = ret.getData();
 				permissionsMap = ret.getData();
+
+				// 获取代理角色
+				IBpmAgentService bpmAgentService = AppUtil.getBean(IBpmAgentService.class);
+				APIResult<List<String>> rolesResult = bpmAgentService.roles();
+				if(rolesResult.isSuccess()){
+					List<String> agentRoles = rolesResult.getData();
+					if(permissionsMap.containsKey(RightsType.ROLE)){
+						permissionsMap.get(RightsType.ROLE).addAll(agentRoles);
+					}else{
+						permissionsMap.put(RightsType.ROLE,agentRoles);
+					}
+
+
+				}
+
 			}
 			}
 			retVo.setPermissionsMap(permissionsMap);
 			retVo.setPermissionsMap(permissionsMap);