diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java index a733f756..9dae9962 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java @@ -1,9 +1,6 @@ package cn.axzo.tyr.client.model.product; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -39,6 +36,11 @@ public class ProductAddReq { @NotNull(message = "工作台类型不能为空") private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型 + */ + private String dictWorkspaceTypeCode; + /** * 上下架状态 1:上架, 0:下架 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java index 0e09042e..73d9b7ea 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java @@ -40,6 +40,11 @@ public class ProductUpdateReq { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型 Code + */ + private String dictWorkspaceTypeCode; + /** * 上下架状态 1:上架, 0:下架 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java index 129f1309..0b8e3447 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java @@ -38,6 +38,11 @@ public class ProductVO { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型code + */ + private String dictWorkspaceTypeCode; + /** * 产品所属工作类型名称 */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java new file mode 100644 index 00000000..44dfeabc --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java @@ -0,0 +1,76 @@ +package cn.axzo.tyr.server.config; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * xxl-job config + * + * @author xuxueli 2017-04-28 + */ +@Configuration +public class XxlJobConfig { + + Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); + + /** + * //@Value("http://dev-xxl-job.axzo.cn/xxl-job-admin") + */ + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appname}") + private String appName; + + @Value("") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + + /** + * // @Value("${xxl.job.accessToken}") + */ + @Value("") + private String accessToken; + + @Value("") + private String logPath; + + @Value("-1") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + + return xxlJobSpringExecutor; + } + + @Bean("jobParamResolver") + public JobParamResolver jobParamResolver(){ + return new JobParamResolver(); + } + + @Bean("jobLoggerTemplate") + public JobLoggerTemplate jobLoggerTemplate(){ + return new JobLoggerTemplate(); + } + +} + diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java index caa174a1..68a5b235 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java @@ -37,6 +37,11 @@ public class ProductModule extends BaseEntity { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台字典 Code + */ + private String dictWorkspaceTypeCode; + /** * 产品状态 */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java index 6d1423af..a4f76b6f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java @@ -123,11 +123,15 @@ public class PermissionGroupImpl implements PermissionGroupService { .in(SaasPgroupPermissionRelation::getGroupId, groupIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list(); - List feature = new ArrayList<>(); + List features = new ArrayList<>(); if (CollectionUtils.isNotEmpty(permissionList)) { - // 查询featureCode - feature = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); + // 查询全部featureCode + features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); } + Map featureMap = features.stream().collect(Collectors.toMap(PermissionPointTreeNode::getPermissionPointId, Function.identity(), (e1, e2) -> e2)); + Map> pgroupPermissionMap = permissionList.stream() + .collect(Collectors.groupingBy(SaasPgroupPermissionRelation::getGroupId, + Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toList()))); List saasPermissionGroupScopesSource = saasPermissionGroupScopeDao.lambdaQuery() .in(SaasPermissionGroupScope::getPgroupId, groupIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) @@ -149,24 +153,26 @@ public class PermissionGroupImpl implements PermissionGroupService { } return true; }).collect(Collectors.toList()); + Map> permissionGroupScopeMap = saasPermissionGroupScopes.stream().collect(Collectors.groupingBy(SaasPermissionGroupScope::getPgroupId, Collectors.mapping(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class), Collectors.toList()))); // 组装填充字段 - List finalFeature = feature; - List pageList = groupList.stream().map(group -> - SaasPermissionGroupVO.builder() - .id(group.getId()) - .name(group.getName()) - .feature(finalFeature) - .scopes(saasPermissionGroupScopes.stream().filter(e -> e.getPgroupId().equals(group.getId())).map(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class)).collect(Collectors.toList())) - .createBy(group.getCreateBy()) - .creatorName(group.getCreatorName()) - .updateBy(group.getUpdateBy()) - .updatorName(group.getUpdatorName()) - .roleId(Optional.ofNullable(pgrrMap.get(group.getId())).map(SaasPgroupRoleRelation::getRoleId).orElse(null)) - .type(group.getType()) - .isCommon(group.getIsCommon()) - .createAt(group.getCreateAt()) - .updateAt(group.getUpdateAt()) - .build() + List pageList = groupList.stream().map(group -> { + SaasPermissionGroupVO pgroupResult = SaasPermissionGroupVO.builder() + .id(group.getId()) + .name(group.getName()) + .scopes(Optional.ofNullable(permissionGroupScopeMap.get(group.getId())).orElse(new ArrayList<>())) + .feature(Optional.ofNullable(pgroupPermissionMap.get(group.getId())).orElse(new ArrayList<>())) + .createBy(group.getCreateBy()) + .creatorName(group.getCreatorName()) + .updateBy(group.getUpdateBy()) + .updatorName(group.getUpdatorName()) + .roleId(Optional.ofNullable(pgrrMap.get(group.getId())).map(SaasPgroupRoleRelation::getRoleId).orElse(null)) + .type(group.getType()) + .isCommon(group.getIsCommon()) + .createAt(group.getCreateAt()) + .updateAt(group.getUpdateAt()) + .build(); + return pgroupResult; + } ).collect(Collectors.toList()); return PageResp.list(iPage.getCurrent(), iPage.getSize(), iPage.getTotal(), pageList); }