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.entity.OperationEntity;
import com.epmet.service.OperationService; import com.epmet.service.OperationService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Configuration @Configuration
public class PermissionInitializer { public class PermissionInitializer {
@ -23,38 +21,49 @@ public class PermissionInitializer {
*/ */
@PostConstruct @PostConstruct
public void initOpePermissions() { 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> operations2Create = new ArrayList<>();
ArrayList<OperationEntity> operations2Update = new ArrayList<>();
RequirePermissionEnum[] requirePermissionEnums = RequirePermissionEnum.values(); // 1.收集需要添加的
Arrays.stream(requirePermissionEnums).forEach(perm -> { List<RequirePermissionEnum> permEnums = Arrays.asList(RequirePermissionEnum.values());
for (RequirePermissionEnum perm : permEnums) {
String key = perm.getKey(); String key = perm.getKey();
if (!operationKeys.contains(key)) { if (!existsOpesMap.containsKey(key)) {
OperationEntity operationEntity = new OperationEntity(); OperationEntity operationEntity = new OperationEntity();
operationEntity.setOperationKey(key); operationEntity.setOperationKey(key);
operationEntity.setBrief(perm.getBrief()); operationEntity.setBrief(perm.getBrief());
operationEntity.setOperationName(perm.getName()); operationEntity.setOperationName(perm.getName());
operations2Create.add(operationEntity); 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)) { if (!CollectionUtils.isEmpty(operations2Create)) {
operationService.createBatch(operations2Create); operationService.createBatch(operations2Create);
} }
}
/** if (!CollectionUtils.isEmpty(operations2Update)) {
* 获取现有的操作key列表 operationService.updateBatch(operations2Update);
* @return
*/
public Set<String> getExistsOperationKeys() {
List<OperationEntity> operationEntities = operationService.listAllOperations();
if (!CollectionUtils.isEmpty(operationEntities)) {
return operationEntities.stream().map(ope -> ope.getOperationKey()).collect(Collectors.toSet());
} }
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(); List<OperationEntity> listAllOperations();
void createBatch(ArrayList<OperationEntity> operations2Create); 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) { public void createBatch(ArrayList<OperationEntity> operations2Create) {
operations2Create.forEach(ope -> operationDao.insert(ope)); operations2Create.forEach(ope -> operationDao.insert(ope));
} }
@Transactional
@Override
public void updateBatch(ArrayList<OperationEntity> operations2Update) {
operations2Update.forEach(ope -> operationDao.updateById(ope));
}
} }

Loading…
Cancel
Save