feat:(REQ-2720) 页面元素绑定关系更新后,触发更新产品、角色权限
This commit is contained in:
parent
9e85790cc7
commit
a023d39607
@ -2,10 +2,10 @@ package cn.axzo.tyr.server.event.inner;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.event.payload.ProductPermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
@ -39,7 +39,7 @@ import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CacheProductPermissionHandler implements EventHandler, InitializingBean {
|
||||
public class CacheProductPermissionHandler implements InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
@ -52,19 +52,7 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
@Autowired
|
||||
private SaasFeatureDao saasFeatureDao;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product permission handler rocketmq event: {}", event);
|
||||
ProductPermissionCreatedPayload payload = event.normalizedData(ProductPermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getProductModuleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.productModuleIds(payload.getProductModuleIds())
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
private void storeProductPermission(List<SaasProductModuleFeatureRelation> productFeatures) {
|
||||
|
||||
if (CollectionUtils.isEmpty(productFeatures)) {
|
||||
return;
|
||||
@ -80,13 +68,44 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
.productPermissions(productPermissions)
|
||||
.build();
|
||||
productPermissionCacheService.store(storeProductPermissionParam);
|
||||
}
|
||||
|
||||
public void onProductPermissionUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product permission handler rocketmq event: {}", event);
|
||||
ProductPermissionCreatedPayload payload = event.normalizedData(ProductPermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getProductModuleIds())) {
|
||||
return;
|
||||
}
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.productModuleIds(payload.getProductModuleIds())
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
|
||||
storeProductPermission(productFeatures);
|
||||
log.info("end cached product permission handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
public void onPageElementFeatureResourceUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product permission handler rocketmq event: {}", event);
|
||||
PageElementFeatureResourceUpsertPayload payload = event.normalizedData(PageElementFeatureResourceUpsertPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRelations())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
|
||||
storeProductPermission(productFeatures);
|
||||
log.info("end cached product permission handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
eventConsumer.registerHandler(EventTypeEnum.PRODUCT_PERMISSION_CREATED.getEventCode(), this);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PRODUCT_PERMISSION_CREATED.getEventCode(), this::onProductPermissionUpsert);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT.getEventCode(), this::onPageElementFeatureResourceUpsert);
|
||||
}
|
||||
|
||||
public List<ProductPermissionCacheService.ProductPermission> resolveProductPermissions(List<SaasProductModuleFeatureRelation> productPermissions) {
|
||||
@ -208,10 +227,10 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
|
||||
return parentFeatureCodes.stream()
|
||||
.map(featureCode -> ProductPermissionCacheService.PermissionDTO.builder()
|
||||
.featureId(featureResource.getId())
|
||||
.featureId(f.getId())
|
||||
.featureCode(featureCode)
|
||||
.featureType(featureResource.getFeatureType())
|
||||
.terminal(featureResource.getTerminal())
|
||||
.featureType(f.getFeatureType())
|
||||
.terminal(f.getTerminal())
|
||||
.cooperateType(relation.getDictCode())
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -7,6 +7,7 @@ import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.event.payload.ProductPermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
@ -35,7 +36,7 @@ import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CacheProductSaasFeatureResourceHandler implements EventHandler, InitializingBean {
|
||||
public class CacheProductSaasFeatureResourceHandler implements InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
@ -52,20 +53,7 @@ public class CacheProductSaasFeatureResourceHandler implements EventHandler, Ini
|
||||
FeatureResourceType.GROUP.getCode(),
|
||||
FeatureResourceType.APP_ENTRY.getCode());
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product featureResource handler rocketmq event: {}", event);
|
||||
ProductPermissionCreatedPayload payload = event.normalizedData(ProductPermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getProductModuleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.productModuleIds(payload.getProductModuleIds())
|
||||
.type(NEW_FEATURE)
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
private void storeProductFeatureResource(List<SaasProductModuleFeatureRelation> productFeatures) {
|
||||
|
||||
if (CollectionUtils.isEmpty(productFeatures)) {
|
||||
return;
|
||||
@ -82,12 +70,48 @@ public class CacheProductSaasFeatureResourceHandler implements EventHandler, Ini
|
||||
.build();
|
||||
productSaasFeatureResourceCacheService.store(storeProductFeatureResourceParam);
|
||||
|
||||
}
|
||||
|
||||
public void onProductPermissionUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product featureResource handler rocketmq event: {}", event);
|
||||
ProductPermissionCreatedPayload payload = event.normalizedData(ProductPermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getProductModuleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.productModuleIds(payload.getProductModuleIds())
|
||||
.type(NEW_FEATURE)
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
|
||||
storeProductFeatureResource(productFeatures);
|
||||
log.info("end cached product featureResource handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
public void onPageElementFeatureResourceUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached product featureResource handler rocketmq event: {}", event);
|
||||
PageElementFeatureResourceUpsertPayload payload = event.normalizedData(PageElementFeatureResourceUpsertPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRelations())) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageProductFeatureRelationReq pageProductFeatureRelationReq = PageProductFeatureRelationReq.builder()
|
||||
.type(NEW_FEATURE)
|
||||
.build();
|
||||
List<SaasProductModuleFeatureRelation> productFeatures = productFeatureRelationService.list(pageProductFeatureRelationReq);
|
||||
|
||||
storeProductFeatureResource(productFeatures);
|
||||
log.info("end cached product featureResource handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
eventConsumer.registerHandler(EventTypeEnum.PRODUCT_PERMISSION_CREATED.getEventCode(), this);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PRODUCT_PERMISSION_CREATED.getEventCode(), this::onProductPermissionUpsert);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT.getEventCode(), this::onPageElementFeatureResourceUpsert);
|
||||
|
||||
}
|
||||
|
||||
public List<ProductSaasFeatureResourceCacheService.ProductFeatureResource> resolveProductFeatureResources(List<SaasProductModuleFeatureRelation> productPermissions) {
|
||||
@ -134,10 +158,10 @@ public class CacheProductSaasFeatureResourceHandler implements EventHandler, Ini
|
||||
}
|
||||
|
||||
return ProductSaasFeatureResourceCacheService.FeatureResourceDTO.builder()
|
||||
.featureId(featureResource.getId())
|
||||
.featureType(featureResource.getFeatureType())
|
||||
.terminal(featureResource.getTerminal())
|
||||
.uniCode(featureResource.getUniCode())
|
||||
.featureId(f.getId())
|
||||
.featureType(f.getFeatureType())
|
||||
.terminal(f.getTerminal())
|
||||
.uniCode(f.getUniCode())
|
||||
.cooperateType(relation.getDictCode())
|
||||
.build();
|
||||
})
|
||||
|
||||
@ -3,13 +3,16 @@ package cn.axzo.tyr.server.event.inner;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasPermissionRelationRes;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.service.RolePermissionCacheService;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
@ -39,7 +42,7 @@ import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CacheRolePermissionHandler implements EventHandler, InitializingBean {
|
||||
public class CacheRolePermissionHandler implements InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
@ -52,20 +55,7 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
@Autowired
|
||||
private SaasFeatureDao saasFeatureDao;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached role permission handler rocketmq event: {}", event);
|
||||
RolePermissionCreatedPayload payload = event.normalizedData(RolePermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRoleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.roleIds(Lists.newArrayList(payload.getRoleIds()))
|
||||
.needPermissionRelation(true)
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
private void storeRolePermission(List<SaasRoleRes> roles) {
|
||||
|
||||
if (CollectionUtils.isEmpty(roles)) {
|
||||
return;
|
||||
@ -81,12 +71,45 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
.rolePermissions(rolePermissions)
|
||||
.build();
|
||||
rolePermissionCacheService.store(storeRolePermissionParam);
|
||||
}
|
||||
|
||||
public void onRolePermissionUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached role permission handler rocketmq event: {}", event);
|
||||
RolePermissionCreatedPayload payload = event.normalizedData(RolePermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRoleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.roleIds(Lists.newArrayList(payload.getRoleIds()))
|
||||
.needPermissionRelation(true)
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
|
||||
storeRolePermission(roles);
|
||||
log.info("end cached role permission handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
public void onPageElementFeatureResourceUpsert(Event event, EventConsumer.Context context) {
|
||||
PageElementFeatureResourceUpsertPayload payload = event.normalizedData(PageElementFeatureResourceUpsertPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRelations())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.needPermissionRelation(true)
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
|
||||
storeRolePermission(roles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
eventConsumer.registerHandler(EventTypeEnum.ROLE_PERMISSION_CREATED.getEventCode(), this);
|
||||
eventConsumer.registerHandler(EventTypeEnum.ROLE_PERMISSION_CREATED.getEventCode(), this::onRolePermissionUpsert);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT.getEventCode(), this::onPageElementFeatureResourceUpsert);
|
||||
}
|
||||
|
||||
public List<RolePermissionCacheService.RolePermission> resolveRolePermission(List<SaasRoleRes> roles) {
|
||||
@ -151,10 +174,10 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
.map(parentSaasFeatures::get)
|
||||
.filter(Objects::nonNull)
|
||||
.map(f -> RolePermissionCacheService.PermissionDTO.builder()
|
||||
.featureId(saasFeature.getId())
|
||||
.featureCode(saasFeature.getFeatureCode())
|
||||
.featureType(saasFeature.getFeatureType())
|
||||
.terminal(saasFeature.getTerminal())
|
||||
.featureId(f.getId())
|
||||
.featureCode(f.getFeatureCode())
|
||||
.featureType(f.getFeatureType())
|
||||
.terminal(f.getTerminal())
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -197,10 +220,10 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
|
||||
return parentFeatureCodes.stream()
|
||||
.map(featureCode -> RolePermissionCacheService.PermissionDTO.builder()
|
||||
.featureId(featureResource.getId())
|
||||
.featureId(f.getId())
|
||||
.featureCode(featureCode)
|
||||
.featureType(featureResource.getFeatureType())
|
||||
.terminal(featureResource.getTerminal())
|
||||
.featureType(f.getFeatureType())
|
||||
.terminal(f.getTerminal())
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
})
|
||||
|
||||
@ -2,12 +2,11 @@ package cn.axzo.tyr.server.event.inner;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasPermissionRelationRes;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.service.RoleSaasFeatureResourceCacheService;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
@ -37,7 +36,7 @@ import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CacheRoleSaasFeatureResourceHandler implements EventHandler, InitializingBean {
|
||||
public class CacheRoleSaasFeatureResourceHandler implements InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
@ -48,26 +47,7 @@ public class CacheRoleSaasFeatureResourceHandler implements EventHandler, Initia
|
||||
@Autowired
|
||||
private RoleSaasFeatureResourceCacheService roleSaasFeatureResourceCacheService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached role saasFeatureResource handler rocketmq event: {}", event);
|
||||
RolePermissionCreatedPayload payload = event.normalizedData(RolePermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRoleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.roleIds(Lists.newArrayList(payload.getRoleIds()))
|
||||
.needPermissionRelation(true)
|
||||
.type(NEW_FEATURE)
|
||||
.featureResourceTypes(Lists.newArrayList(FeatureResourceType.MENU,
|
||||
FeatureResourceType.PAGE,
|
||||
FeatureResourceType.MENU_PARTITION_GROUP,
|
||||
FeatureResourceType.GROUP,
|
||||
FeatureResourceType.APP_ENTRY))
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
private void storeRoleFeatureResource(List<SaasRoleRes> roles) {
|
||||
|
||||
if (CollectionUtils.isEmpty(roles)) {
|
||||
return;
|
||||
@ -83,12 +63,48 @@ public class CacheRoleSaasFeatureResourceHandler implements EventHandler, Initia
|
||||
.roleSaasFeatureResources(rolePermissions)
|
||||
.build();
|
||||
roleSaasFeatureResourceCacheService.store(storeRoleFeatureResourceParam);
|
||||
}
|
||||
public void onRolePermissionUpsert(Event event, EventConsumer.Context context) {
|
||||
log.info("begin cached role saasFeatureResource handler rocketmq event: {}", event);
|
||||
RolePermissionCreatedPayload payload = event.normalizedData(RolePermissionCreatedPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRoleIds())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.roleIds(Lists.newArrayList(payload.getRoleIds()))
|
||||
.needPermissionRelation(true)
|
||||
.type(NEW_FEATURE)
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
|
||||
storeRoleFeatureResource(roles);
|
||||
|
||||
log.info("end cached role saasFeatureResource handler rocketmq event: {}", event);
|
||||
}
|
||||
|
||||
public void onPageElementFeatureResourceUpsert(Event event, EventConsumer.Context context) {
|
||||
PageElementFeatureResourceUpsertPayload payload = event.normalizedData(PageElementFeatureResourceUpsertPayload.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(payload.getRelations())) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder()
|
||||
.needPermissionRelation(true)
|
||||
.type(NEW_FEATURE)
|
||||
.build();
|
||||
List<SaasRoleRes> roles = roleService.list(listSaasRoleParam);
|
||||
|
||||
storeRoleFeatureResource(roles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
eventConsumer.registerHandler(EventTypeEnum.ROLE_PERMISSION_CREATED.getEventCode(), this);
|
||||
eventConsumer.registerHandler(EventTypeEnum.ROLE_PERMISSION_CREATED.getEventCode(), this::onRolePermissionUpsert);
|
||||
eventConsumer.registerHandler(EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT.getEventCode(), this::onPageElementFeatureResourceUpsert);
|
||||
|
||||
}
|
||||
|
||||
public List<RoleSaasFeatureResourceCacheService.RoleFeatureResource> resolveRoleFeatureResource(List<SaasRoleRes> roles) {
|
||||
@ -127,10 +143,10 @@ public class CacheRoleSaasFeatureResourceHandler implements EventHandler, Initia
|
||||
}
|
||||
|
||||
return RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO.builder()
|
||||
.featureId(featureResource.getId())
|
||||
.featureType(featureResource.getFeatureType())
|
||||
.terminal(featureResource.getTerminal())
|
||||
.uniCode(featureResource.getUniCode())
|
||||
.featureId(f.getId())
|
||||
.featureType(f.getFeatureType())
|
||||
.terminal(f.getTerminal())
|
||||
.uniCode(f.getUniCode())
|
||||
.build();
|
||||
})
|
||||
.filter(Objects::nonNull)
|
||||
|
||||
@ -10,6 +10,7 @@ public enum EventTypeEnum {
|
||||
ROLE_PERMISSION_CREATED("role-permission", "role-permission-created", "角色权限添加"),
|
||||
SAAS_FEATURE_UPSERT("saas-feature", "saas-feature-upsert", "旧菜单树更新"),
|
||||
SAAS_FEATURE_RESOURCE_UPSERT("saas-feature-resource", "saas-feature-resource-upsert", "新菜单树更新"),
|
||||
PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT("page-element-feature-resource", "page-element-feature-resource-upsert", "菜单-页面元素绑定关系更新"),
|
||||
;
|
||||
|
||||
EventTypeEnum(String model, String name, String desc) {
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package cn.axzo.tyr.server.event.payload;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PageElementFeatureResourceUpsertPayload implements Serializable {
|
||||
|
||||
private List<SaasPageElementFeatureResourceRelation> relations;
|
||||
}
|
||||
@ -48,7 +48,7 @@ public class CacheProductFeatureResourceJob extends IJobHandler {
|
||||
Event event = Event.builder()
|
||||
.data(payload)
|
||||
.build();
|
||||
cacheProductSaasFeatureResourceHandler.onEvent(event, null);
|
||||
cacheProductSaasFeatureResourceHandler.onProductPermissionUpsert(event, null);
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class CacheProductPermissionJob extends IJobHandler {
|
||||
Event event = Event.builder()
|
||||
.data(payload)
|
||||
.build();
|
||||
cacheProductPermissionHandler.onEvent(event, null);
|
||||
cacheProductPermissionHandler.onProductPermissionUpsert(event, null);
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,22 +4,29 @@ import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.basics.common.util.StopWatchUtil;
|
||||
import cn.axzo.framework.domain.page.PageResp;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
import cn.axzo.tyr.client.model.req.*;
|
||||
import cn.axzo.tyr.client.model.req.GetPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetUserHasPermissionPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
||||
import cn.axzo.tyr.client.model.req.ModifyPageElementRelationDTO;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReportReq;
|
||||
import cn.axzo.tyr.client.model.req.PageQueryElementReq;
|
||||
import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.config.MqProducer;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementFeatureResourceRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementService;
|
||||
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
@ -38,12 +45,18 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.tyr.server.event.inner.EventTypeEnum.PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @version 1.0
|
||||
@ -59,6 +72,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
private final SaasPageElementFeatureResourceRelationDao saasPageElementFeatureResourceRelationDao;
|
||||
private final SaasFeatureResourceDao saasFeatureResourceDao;
|
||||
private final TyrSaasAuthService tyrSaasAuthService;
|
||||
private final MqProducer mqProducer;
|
||||
|
||||
@Qualifier("asyncExecutor")
|
||||
@Autowired
|
||||
@ -66,6 +80,8 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
@Value("${not.auth.featureCodes:}")
|
||||
private Set<String> notAuthFeatureCodes;
|
||||
|
||||
private static final String TARGET_TYPE = "pageElementFeatureResourceId";
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void report(PageElementReportReq request) {
|
||||
@ -153,16 +169,28 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
Lists.newArrayList(modifyPageElementRelation.getFeatureResourceUniCode()), Lists.newArrayList(modifyPageElementRelation.getRelationType()), modifyPageElementRelation.getOperatorId());
|
||||
|
||||
// 保存新的绑定关系
|
||||
if (CollectionUtils.isNotEmpty(modifyPageElementRelation.getPageElementCodes())) {
|
||||
List<SaasPageElementFeatureResourceRelation> relations = modifyPageElementRelation.getPageElementCodes().stream().map(e -> SaasPageElementFeatureResourceRelation.builder()
|
||||
.pageElementCode(e)
|
||||
.featureResourceUniCode(modifyPageElementRelation.getFeatureResourceUniCode())
|
||||
.terminal(modifyPageElementRelation.getTerminal())
|
||||
.type(modifyPageElementRelation.getRelationType())
|
||||
.createBy(modifyPageElementRelation.getOperatorId())
|
||||
.build()).collect(Collectors.toList());
|
||||
saasPageElementFeatureResourceRelationDao.saveBatch(relations);
|
||||
if (CollectionUtils.isEmpty(modifyPageElementRelation.getPageElementCodes())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 保存新的绑定关系
|
||||
List<SaasPageElementFeatureResourceRelation> relations = modifyPageElementRelation.getPageElementCodes().stream().map(e -> SaasPageElementFeatureResourceRelation.builder()
|
||||
.pageElementCode(e)
|
||||
.featureResourceUniCode(modifyPageElementRelation.getFeatureResourceUniCode())
|
||||
.terminal(modifyPageElementRelation.getTerminal())
|
||||
.type(modifyPageElementRelation.getRelationType())
|
||||
.createBy(modifyPageElementRelation.getOperatorId())
|
||||
.build()).collect(Collectors.toList());
|
||||
saasPageElementFeatureResourceRelationDao.saveBatch(relations);
|
||||
|
||||
Event event = Event.builder()
|
||||
.targetType(TARGET_TYPE)
|
||||
.eventCode(PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT.getEventCode())
|
||||
.data(PageElementFeatureResourceUpsertPayload.builder()
|
||||
.relations(relations)
|
||||
.build())
|
||||
.build();
|
||||
mqProducer.send(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user