Browse Source

1.新增:创建客户时,初始化客户的角色 的默认操作权限

dev_shibei_match
wxz 5 years ago
parent
commit
5152a95d44
  1. 23
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/GovAccessFeignClient.java
  2. 22
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/fallback/GovAccessFeignClientFallBack.java
  3. 20
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/InitDefaultOperationsFormDTO.java
  4. 2
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/RoleOperationDefaultResultDTO.java
  5. 19
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/RoleController.java
  6. 17
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/RoleOperationDefaultDao.java
  7. 3
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/RoleOperationService.java
  8. 39
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java
  9. 18
      epmet-module/gov-access/gov-access-server/src/main/resources/mapper/RoleOperationDefaultDao.xml
  10. 6
      epmet-user/epmet-user-server/pom.xml
  11. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java

23
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/GovAccessFeignClient.java

@ -0,0 +1,23 @@
package com.epmet.dto.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.fallback.GovAccessFeignClientFallBack;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovAccessFeignClientFallBack.class)
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovAccessFeignClientFallBack.class, url = "localhost:8099")
public interface GovAccessFeignClient {
/**
* 批量为角色ID初始化操作权限列表
* @param formDTO
* @return
*/
@PostMapping("/gov/access/role/initdefaultoperationsforroles")
Result initDefaultOperationsForRoles(@RequestBody InitDefaultOperationsFormDTO formDTO);
}

22
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/fallback/GovAccessFeignClientFallBack.java

@ -0,0 +1,22 @@
package com.epmet.dto.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.GovAccessFeignClient;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import org.springframework.stereotype.Component;
/**
* @Description
* @Author sun
*/
@Component
public class GovAccessFeignClientFallBack implements GovAccessFeignClient {
@Override
public Result initDefaultOperationsForRoles(InitDefaultOperationsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "initDefaultOperationsForRoles", formDTO);
}
}

20
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/InitDefaultOperationsFormDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.form;
import lombok.Data;
import java.util.List;
@Data
public class InitDefaultOperationsFormDTO {
private List<InitDefaultOpesRoleDTO> roles;
@Data
public static class InitDefaultOpesRoleDTO {
public InitDefaultOpesRoleDTO() {
}
private String roleId;
private String roleKey;
}
}

2
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/RoleOperationDefaultDTO.java → epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/RoleOperationDefaultResultDTO.java

@ -29,7 +29,7 @@ import lombok.Data;
* @since v1.0.0 2020-05-21
*/
@Data
public class RoleOperationDefaultDTO implements Serializable {
public class RoleOperationDefaultResultDTO implements Serializable {
private static final long serialVersionUID = 1L;

19
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/RoleController.java

@ -1,14 +1,11 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.result.RoleOperationResultDTO;
import com.epmet.service.RoleOperationService;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -29,4 +26,16 @@ public class RoleController {
List<RoleOperationResultDTO> roleOperationResultDTOS = roleOperationService.listOperationsByRoleId(roleId);
return new Result<List<RoleOperationResultDTO>>().ok(roleOperationResultDTOS);
}
/**
* 批量为角色ID初始化操作权限列表
* @param formDTO
* @return
*/
@PostMapping("initdefaultoperationsforroles")
public Result initDefaultOperationsForRoles(@RequestBody InitDefaultOperationsFormDTO formDTO) {
List<InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO> roles = formDTO.getRoles();
roleOperationService.initDefaultOperationsForRoles(roles);
return new Result();
}
}

17
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/RoleOperationDefaultDao.java

@ -18,8 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.RoleOperationDefaultResultDTO;
import com.epmet.entity.RoleOperationDefaultEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/**
* 角色默认的可操作功能列表
@ -30,4 +35,16 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RoleOperationDefaultDao extends BaseDao<RoleOperationDefaultEntity> {
/**
* 查询可用
* @return
*/
List<RoleOperationDefaultResultDTO> listAllValid();
/**
* 查询某个roleKey的所有默认操作权限
* @param roleKey
* @return
*/
List<RoleOperationDefaultResultDTO> listByRoleKey(@Param("roleKey") String roleKey);
}

3
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/RoleOperationService.java

@ -20,6 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.RoleOperationDTO;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.result.RoleOperationResultDTO;
import com.epmet.entity.RoleOperationEntity;
@ -100,4 +101,6 @@ public interface RoleOperationService extends BaseService<RoleOperationEntity> {
* @return
*/
List<RoleOperationResultDTO> listOperationsByRoleId(String roleId);
void initDefaultOperationsForRoles(List<InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO> roles);
}

39
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java

@ -24,7 +24,10 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.RoleOperationDao;
import com.epmet.dao.RoleOperationDefaultDao;
import com.epmet.dto.RoleOperationDTO;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.result.RoleOperationDefaultResultDTO;
import com.epmet.dto.result.RoleOperationResultDTO;
import com.epmet.entity.RoleOperationEntity;
import com.epmet.service.RoleOperationService;
@ -32,6 +35,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@ -46,6 +50,12 @@ import java.util.Map;
@Service
public class RoleOperationServiceImpl extends BaseServiceImpl<RoleOperationDao, RoleOperationEntity> implements RoleOperationService {
@Autowired
private RoleOperationDefaultDao roleOperationDefaultDao;
@Autowired
private RoleOperationDao roleOperationDao;
@Override
public PageData<RoleOperationDTO> page(Map<String, Object> params) {
IPage<RoleOperationEntity> page = baseDao.selectPage(
@ -103,4 +113,33 @@ public class RoleOperationServiceImpl extends BaseServiceImpl<RoleOperationDao,
return baseDao.listOperationsByRoleId(roleId);
}
@Override
@Transactional
public void initDefaultOperationsForRoles(List<InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO> roles) {
//roleOperationDefaultDao.listAllValid();
for (InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO role : roles) {
String roleId = role.getRoleId();
String roleKey = role.getRoleKey();
List<RoleOperationDefaultResultDTO> defaultOperations = roleOperationDefaultDao.listByRoleKey(roleKey);
if (!CollectionUtils.isEmpty(defaultOperations)) {
// 有的角色并没有配置默认的操作权限,应该忽略
initDefaultOperationsForRole(roleId, defaultOperations);
}
}
}
/**
* 为某一个角色初始化默认操作权限
* @param roleId
* @param operations
*/
public void initDefaultOperationsForRole(String roleId, List<RoleOperationDefaultResultDTO> operations) {
for (RoleOperationDefaultResultDTO operation : operations) {
RoleOperationEntity entity = new RoleOperationEntity();
entity.setOperationKey(operation.getOperationKey());
entity.setRoleId(roleId);
roleOperationDao.insert(entity);
}
}
}

18
epmet-module/gov-access/gov-access-server/src/main/resources/mapper/RoleOperationDefaultDao.xml

@ -15,5 +15,23 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="listAllValid" resultType="com.epmet.dto.result.RoleOperationDefaultResultDTO">
SELECT o.ID, d.ROLE_KEY, o.OPERATION_KEY
FROM role_operation_default d
INNER JOIN operation o ON (d.OPERATION_KEY = o.OPERATION_KEY OR d.OPERATION_KEY = '*')
WHERE
d.DEL_FLAG = 0
AND o.DEL_FLAG = 0
</select>
<select id="listByRoleKey" resultType="com.epmet.dto.result.RoleOperationDefaultResultDTO">
SELECT o.ID, d.ROLE_KEY, o.OPERATION_KEY
FROM role_operation_default d
INNER JOIN operation o ON (d.OPERATION_KEY = o.OPERATION_KEY OR d.OPERATION_KEY = '*')
WHERE d.ROLE_KEY = #{roleKey}
AND d.DEL_FLAG = 0
AND o.DEL_FLAG = 0
</select>
</mapper>

6
epmet-user/epmet-user-server/pom.xml

@ -76,6 +76,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>gov-access-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

25
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java

@ -20,12 +20,16 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.GovStaffRoleDao;
import com.epmet.dao.GovStaffRoleTemplateDao;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.feign.GovAccessFeignClient;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.entity.GovStaffRoleEntity;
import com.epmet.redis.GovStaffRoleRedis;
@ -35,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -57,6 +62,9 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
@Autowired
private GovStaffRoleDao govStaffRoleDao;
@Autowired
private GovAccessFeignClient govAccessFeignClient;
@Override
public PageData<GovStaffRoleDTO> page(Map<String, Object> params) {
IPage<GovStaffRoleEntity> page = baseDao.selectPage(
@ -127,12 +135,29 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
@Override
@Transactional
public void initGovStaffRolesForCustomer(String customerId) {
// 增加角色列表
List<GovStaffRoleTemplateDTO> validRoles = govStaffRoleTemplateDao.listValidateRoles();
ArrayList<InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO> roles = new ArrayList<>();
for (GovStaffRoleTemplateDTO validRole : validRoles) {
GovStaffRoleEntity entity = ConvertUtils.sourceToTarget(validRole, GovStaffRoleEntity.class);
entity.setCustomerId(customerId);
entity.setId(null);
baseDao.insert(entity);
InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO role = new InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO();
role.setRoleId(entity.getId());
role.setRoleKey(entity.getRoleKey());
roles.add(role);
}
// 调用access给角色列表分配操作权限
InitDefaultOperationsFormDTO formDTO = new InitDefaultOperationsFormDTO();
formDTO.setRoles(roles);
Result result = govAccessFeignClient.initDefaultOperationsForRoles(formDTO);
if (!result.success()) {
throw new RenException("为客户的角色初始化操作权限列表失败:".concat(result.getInternalMsg()));
}
}

Loading…
Cancel
Save