Commit 61ed4469 by 陶光胜

Merge branch 'developer' of…

Merge branch 'developer' of http://115.159.76.241/base_platform_enterprise/gic-platform-enterprise into developer
parents 26a11b3d 7c689f6a
......@@ -2,6 +2,7 @@ package com.gic.enterprise.dto.rule;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 商户规则
......@@ -51,6 +52,11 @@ public class RuleEnterpriseDTO implements Serializable{
*/
private String ruleIds;
/**
* 运维登录用户所拥有的权限商户集合,如果是空的,表示全部商户
*/
private List<Integer> enterpriseIdList;
/***************************下面是前端展示字段*****************************/
/**
......@@ -193,4 +199,13 @@ public class RuleEnterpriseDTO implements Serializable{
this.logo = logo;
return this;
}
public List<Integer> getEnterpriseIdList() {
return enterpriseIdList;
}
public RuleEnterpriseDTO setEnterpriseIdList(List<Integer> enterpriseIdList) {
this.enterpriseIdList = enterpriseIdList;
return this;
}
}
......@@ -145,7 +145,7 @@ public interface ConfigRuleApiService {
* @param search
公司名称/商户名称
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.enterprise.dto.rule.EnterpriseListDTO>>


*/
ServiceResponse<List<EnterpriseListDTO>> getEnterpriseList(String search);
ServiceResponse<List<EnterpriseListDTO>> getEnterpriseList(String search, List<Integer> enterpriseIdList);
/**
* 获取应用列表字典数据
......
......@@ -7,10 +7,7 @@ import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.rule.*;
import com.gic.enterprise.entity.TabConfigRule;
import com.gic.enterprise.entity.TabConfigRuleEnterprise;
import com.gic.enterprise.entity.TabConfigRuleEnterpriseRel;
import com.gic.enterprise.entity.TabConfigRuleRel;
import com.gic.enterprise.entity.*;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.service.ConfigRuleApiService;
import com.gic.enterprise.service.ConfigRuleEnterpriseService;
......@@ -546,7 +543,7 @@ public class ConfigRuleApiServiceImpl implements ConfigRuleApiService {
}
@Override
public ServiceResponse<List<EnterpriseListDTO>> getEnterpriseList(String search) {
public ServiceResponse<List<EnterpriseListDTO>> getEnterpriseList(String search, List<Integer> enterpriseIdList) {
Map<String, TabConfigRuleEnterpriseRel> enterpriseMap = new HashMap<>(16);
Map<String, String> enterpriseRuleMap = new HashMap<>(16);
......@@ -565,7 +562,14 @@ public class ConfigRuleApiServiceImpl implements ConfigRuleApiService {
ruleEnterpriseDTO.getRuleName());
}
}
List<EnterpriseDTO> enterpriseDTOList = enterpriseService.listEnterprise();
//过滤运维后台登录用户的权限商户数据,如果是空,表示全部商户
List<EnterpriseDTO> enterpriseDTOList;
if (CollectionUtils.isNotEmpty(enterpriseIdList)) {
enterpriseDTOList = EntityUtil.changeEntityListNew(EnterpriseDTO.class, enterpriseService.listEnterpriseByIds(enterpriseIdList));
} else {
enterpriseDTOList =enterpriseService.listEnterprise();
}
if (CollectionUtils.isNotEmpty(enterpriseDTOList)) {
List<EnterpriseListDTO> resultList = new ArrayList<>(enterpriseDTOList.size());
......
......@@ -2,6 +2,7 @@ package com.gic.enterprise.service.outer.impl;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.rule.RuleEnterpriseDTO;
......@@ -162,7 +163,7 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
List<TabConfigRuleEnterpriseRel> rel = configRuleEnterpriseService.listEnterprise();
return ServiceResponse.success(Optional.ofNullable(rel).orElse(new ArrayList<>())
.stream()
.filter(e -> Optional.ofNullable(enterpriseRuleId).orElse(-111).intValue() != e.getEnterpriseId().intValue()
.filter(e -> Optional.ofNullable(enterpriseRuleId).orElse(-111).intValue() != e.getEnterpriseRuleId().intValue()
&& enterpriseIdList.contains(e.getEnterpriseId().toString()))
.map(e -> enterpriseIdMapName.get(e.getEnterpriseId().toString()))
.collect(Collectors.toList()));
......@@ -278,7 +279,17 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
List<Integer> enterpriseIdList = new ArrayList<>();
//已存在的商户ID
Set<String> enterpriseSet = new HashSet<>();
List<EnterpriseDTO> enterpriseDTOList = enterpriseService.listEnterprise();
List<EnterpriseDTO> enterpriseDTOList;
//运维登录用户商户权限过滤
List<Integer> operationAuthEnterprise = dto.getEnterpriseIdList();
if (CollectionUtils.isNotEmpty(operationAuthEnterprise)) {
enterpriseDTOList = EntityUtil.changeEntityListNew(EnterpriseDTO.class,
enterpriseService.listEnterpriseByIds(enterpriseIdList));
} else {
enterpriseDTOList = enterpriseService.listEnterprise();
}
if (CollectionUtils.isNotEmpty(enterpriseDTOList)) {
for (EnterpriseDTO enterpriseDTO : enterpriseDTOList) {
enterpriseSet.add(enterpriseDTO.getEnterpriseId().toString());
......@@ -299,7 +310,8 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
}
Integer id = Integer.parseInt(str);
if (!enterpriseSet.contains(id.toString())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "部分商户数据错误,不存在的商户");
//不存在的商户或者没有权限的商户
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "商户不存在或者没有权限");
}
enterpriseTempSet.add(str);
}
......
package com.gic.operation.web.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import com.gic.authcenter.security.core.constant.DataResourceEnum;
import com.gic.authcenter.security.core.dto.AuthcenterUserDetails;
import com.gic.authcenter.security.core.dto.EnterpriseTempDTO;
import com.gic.authcenter.security.core.dto.UserDetailsVO;
import com.gic.authcenter.security.core.util.UserUtils;
import com.gic.enterprise.error.ErrorCode;
import com.gic.operation.web.utils.OperationUserEnterpriseUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -159,6 +163,8 @@ public class ConfigRuleController {
if (dto.getEnterpriseRuleId() != null) {
return RestResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "规则ID有值");
}
//过滤运维登录用户商户权限
dto.setEnterpriseIdList(OperationUserEnterpriseUtils.getAuthEnterpriseIdList());
return ResultControllerUtils.commonResult(configRuleEnterpriseApiService.save(dto));
}
......@@ -178,6 +184,8 @@ public class ConfigRuleController {
if (dto.getEnterpriseRuleId() == null) {
return RestResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "规则ID不能为空");
}
//过滤运维登录用户商户权限
dto.setEnterpriseIdList(OperationUserEnterpriseUtils.getAuthEnterpriseIdList());
return ResultControllerUtils.commonResult(configRuleEnterpriseApiService.edit(dto));
}
......@@ -195,7 +203,8 @@ public class ConfigRuleController {

*/
@RequestMapping("/list-enterprise-select")
public RestResponse listEnterpriseSelect(String search) {
return ResultControllerUtils.commonResult(configRuleApiService.getEnterpriseList(search));
return ResultControllerUtils.commonResult(
configRuleApiService.getEnterpriseList(search, OperationUserEnterpriseUtils.getAuthEnterpriseIdList()));
}
@RequestMapping("/deleteEnterpriseRule")
......
package com.gic.operation.web.utils;
import com.gic.authcenter.security.core.constant.DataResourceEnum;
import com.gic.authcenter.security.core.dto.AuthcenterUserDetails;
import com.gic.authcenter.security.core.dto.EnterpriseTempDTO;
import com.gic.authcenter.security.core.dto.UserDetailsVO;
import com.gic.authcenter.security.core.util.UserUtils;
import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 运维登录用户的商户权限
* @ClassName: OperationUserEnterpriseUtils

* @Description: 

* @author guojuxing

* @date 2020/5/14 3:46 PM

*/
public class OperationUserEnterpriseUtils {
/**
* 运维登录用户的商户权限
* @return
*/
public static List<Integer> getAuthEnterpriseIdList() {
//过滤运维用户的权限商户
UserDetailsVO user = UserUtils.getUser();
//是否拥有全部商户
boolean permissionAll = user.getAuthorities().stream().anyMatch(
sga -> Objects.equals(sga.getAuthority(),
AuthcenterUserDetails.DATA_PREFIX + DataResourceEnum.all_enterprise.name()
)
);
List<Integer> enterpriseIdList = null;
if (!permissionAll) {
//运维拥有的权限商户ID集合
enterpriseIdList = new ArrayList<>();
List<EnterpriseTempDTO> enterpriseTemp = user.getEnterpriseList();
if (CollectionUtils.isNotEmpty(enterpriseTemp)) {
for (EnterpriseTempDTO enterpriseTempDTO : enterpriseTemp) {
enterpriseIdList.add(Integer.parseInt(enterpriseTempDTO.getEnterpriseId()));
}
}
}
return enterpriseIdList;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment