Browse Source

新增:【权限初始化器】做了针对opeName和brief的修改

dev_shibei_match
wxz 5 years ago
parent
commit
8d4b42aef0
  1. 47
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/config/PermissionInitializer.java
  2. 1
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/OperationService.java
  3. 6
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/OperationServiceImpl.java

47
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/config/PermissionInitializer.java

@ -4,13 +4,11 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.entity.OperationEntity;
import com.epmet.service.OperationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.util.*;
import java.util.stream.Collectors;
@Configuration
public class PermissionInitializer {
@ -23,38 +21,49 @@ public class PermissionInitializer {
*/
@PostConstruct
public void initOpePermissions() {
Set<String> operationKeys = getExistsOperationKeys();
final Map<String, OperationEntity> existsOpesMap = new HashMap<>();
List<OperationEntity> allExistsOpeEntities = operationService.listAllOperations();
allExistsOpeEntities.stream().forEach(ope -> existsOpesMap.put(ope.getOperationKey(), ope));
ArrayList<OperationEntity> operations2Create = new ArrayList<>();
ArrayList<OperationEntity> operations2Update = new ArrayList<>();
RequirePermissionEnum[] requirePermissionEnums = RequirePermissionEnum.values();
Arrays.stream(requirePermissionEnums).forEach(perm -> {
// 1.收集需要添加的
List<RequirePermissionEnum> permEnums = Arrays.asList(RequirePermissionEnum.values());
for (RequirePermissionEnum perm : permEnums) {
String key = perm.getKey();
if (!operationKeys.contains(key)) {
if (!existsOpesMap.containsKey(key)) {
OperationEntity operationEntity = new OperationEntity();
operationEntity.setOperationKey(key);
operationEntity.setBrief(perm.getBrief());
operationEntity.setOperationName(perm.getName());
operations2Create.add(operationEntity);
}
});
}
//2.收集需要修改的
for (RequirePermissionEnum perm : permEnums) {
String key = perm.getKey();
String name = perm.getName();
String brief = perm.getBrief();
if (existsOpesMap.containsKey(key)) {
OperationEntity ope = existsOpesMap.get(key);
if (!ope.getOperationName().equals(name) || !ope.getBrief().equals(brief)) {
// name或者brief发生过变化的,需要更新
ope.setBrief(brief);
ope.setOperationName(name);
operations2Update.add(ope);
}
}
}
//3.批量添加和修改
if (!CollectionUtils.isEmpty(operations2Create)) {
operationService.createBatch(operations2Create);
}
}
/**
* 获取现有的操作key列表
* @return
*/
public Set<String> getExistsOperationKeys() {
List<OperationEntity> operationEntities = operationService.listAllOperations();
if (!CollectionUtils.isEmpty(operationEntities)) {
return operationEntities.stream().map(ope -> ope.getOperationKey()).collect(Collectors.toSet());
if (!CollectionUtils.isEmpty(operations2Update)) {
operationService.updateBatch(operations2Update);
}
return new HashSet<>();
}
}

1
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/OperationService.java

@ -10,4 +10,5 @@ public interface OperationService {
List<OperationEntity> listAllOperations();
void createBatch(ArrayList<OperationEntity> operations2Create);
void updateBatch(ArrayList<OperationEntity> operations2Update);
}

6
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/OperationServiceImpl.java

@ -26,4 +26,10 @@ public class OperationServiceImpl implements OperationService {
public void createBatch(ArrayList<OperationEntity> operations2Create) {
operations2Create.forEach(ope -> operationDao.insert(ope));
}
@Transactional
@Override
public void updateBatch(ArrayList<OperationEntity> operations2Update) {
operations2Update.forEach(ope -> operationDao.updateById(ope));
}
}

Loading…
Cancel
Save