diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/WorkspaceProductResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/WorkspaceProductResp.java index bb0c7074..630fac9c 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/WorkspaceProductResp.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/WorkspaceProductResp.java @@ -70,6 +70,11 @@ public class WorkspaceProductResp { */ private Integer maxWorkspaceCount; + /** + * 版本升级序列(数字越小,版本越低,不能降级,只能升级) <企业、项目产品> + */ + private Integer version; + /** * SKU列表 */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java index 5a81c75c..502e4511 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java @@ -252,7 +252,11 @@ public class ProductServiceImpl implements ProductService { .build()).collect(Collectors.toList())); } else { if (ProductModuleCategoryEnum.PRODUCT_VERSION.getCode().equals(k)) { - resp.getProductVersions().addAll(v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList())); + List products = v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList()); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(products)) { + products.sort(Comparator.comparing(p -> Objects.isNull(p.getVersion()) ? 0 : p.getVersion())); + } + resp.getProductVersions().addAll(products); } if (ProductModuleCategoryEnum.ADD_VALUE_SERVICE.getCode().equals(k)) { resp.getAddValueServices().addAll(v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList())); @@ -372,6 +376,7 @@ public class ProductServiceImpl implements ProductService { .productName(e.getProductName()) .maxPersonCount(e.getMaxPersonCount()) .maxWorkspaceCount(e.getMaxWorkspaceCount()) + .version(e.getVersion()) .skus(CollectionUtil.isNotEmpty(e.getSkus()) ? e.getSkus().stream().map(s -> WorkspaceProductResp.Sku .builder() .skuName(s.getSkuName())