diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/integration/IntegrationCatalogController.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/integration/IntegrationCatalogController.java index 8495207..7a06a1c 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/integration/IntegrationCatalogController.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/integration/IntegrationCatalogController.java @@ -150,6 +150,12 @@ public class IntegrationCatalogController { return ResponseEntity.ok().build(); } + @GetMapping("/feature-mappings") + public ResponseEntity> listFeatureMappings( + @RequestParam(required = false) Long productLineId) { + return ResponseEntity.ok(integrationCatalogService.listFeatureMappings(productLineId)); + } + @GetMapping("/sku-mappings") public ResponseEntity> listSkuMappings( @RequestParam(required = false) Long contractLineId) { diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/IntegrationCatalogService.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/IntegrationCatalogService.java index 1dcda6e..aef2b72 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/IntegrationCatalogService.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/IntegrationCatalogService.java @@ -155,6 +155,14 @@ public class IntegrationCatalogService { environmentMapper.deleteById(id); } + public List listFeatureMappings(Long productLineId) { + var qw = new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .isNotNull(PlatformBitanswerIdMapping::getFeatureKey); + if (productLineId != null) qw.eq(PlatformBitanswerIdMapping::getProductLineId, productLineId); + qw.orderByDesc(PlatformBitanswerIdMapping::getCreatedAt); + return idMappingMapper.selectList(qw); + } + public List listIdMappings(Long productLineId, Long environmentId) { var qw = new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper(); if (productLineId != null) qw.eq(PlatformBitanswerIdMapping::getProductLineId, productLineId); diff --git a/web/delivery-platform-ui/src/api/platform.js b/web/delivery-platform-ui/src/api/platform.js index 2341913..4908446 100644 --- a/web/delivery-platform-ui/src/api/platform.js +++ b/web/delivery-platform-ui/src/api/platform.js @@ -438,6 +438,11 @@ export function deleteJsonTemplate(id) { return axios.delete(`/api/v1/integration/json-templates/${id}`); } +// —— I16-T3 M6-F04 特征映射 —————————————————————————— +export function listFeatureMappings(params) { + return axios.get('/api/v1/integration/feature-mappings', { params }); +} + // —— I15-T2 M2-F08 SKU 映射 —————————————————————————— export function listSkuMappings(params) { return axios.get('/api/v1/integration/sku-mappings', { params }); } export function createSkuMapping(contractLineId, body) { return axios.post(`/api/v1/integration/sku-mappings?contractLineId=${contractLineId}`, body); } diff --git a/web/delivery-platform-ui/src/router/index.js b/web/delivery-platform-ui/src/router/index.js index a968f2c..c6f718e 100644 --- a/web/delivery-platform-ui/src/router/index.js +++ b/web/delivery-platform-ui/src/router/index.js @@ -92,6 +92,12 @@ const routes = [ component: () => import("../views/IntegrationSkuMappingView.vue"), meta: { roles: ["SYS_ADMIN"], title: "SKU 映射" }, }, + { + path: "integration/feature-mappings", + name: "integration-feature-mappings", + component: () => import("../views/IntegrationFeatureMappingView.vue"), + meta: { roles: ["SYS_ADMIN"], title: "特征映射" }, + }, { path: "integration/json-templates", name: "integration-json-templates", diff --git a/web/delivery-platform-ui/src/views/IntegrationFeatureMappingView.vue b/web/delivery-platform-ui/src/views/IntegrationFeatureMappingView.vue new file mode 100644 index 0000000..2b0e766 --- /dev/null +++ b/web/delivery-platform-ui/src/views/IntegrationFeatureMappingView.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/web/delivery-platform-ui/src/views/NotificationSettingsView.vue b/web/delivery-platform-ui/src/views/NotificationSettingsView.vue index bdbdb02..5c52bf4 100644 --- a/web/delivery-platform-ui/src/views/NotificationSettingsView.vue +++ b/web/delivery-platform-ui/src/views/NotificationSettingsView.vue @@ -13,18 +13,8 @@ 通知通道 站内待办 - - 邮件 - - - - - - 企业微信 - - - - + 邮件 + 企业微信 事件订阅 @@ -46,14 +36,44 @@ + +

通知模板

+ + + + + + + + + + + + + + + + + + + + + + +