From fb4bef9d3465956cde068a91957e943a15d3a589 Mon Sep 17 00:00:00 2001 From: chenxing Date: Mon, 19 Oct 2026 23:23:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(p3.0):=20bizUrl=20=E5=8F=91=E6=96=B9?= =?UTF-8?q?=E6=94=B6=E5=8F=A3=E2=80=94=E2=80=94=E5=88=A0=20svchall.front.b?= =?UTF-8?q?ase-url=E3=80=81=E6=96=AD=E8=A8=80=E6=94=B9=E8=A3=B8=E7=9B=B8?= =?UTF-8?q?=E5=AF=B9=E8=B7=AF=E5=BE=84=20/apply-detail=3Fid=3D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - application.yml 删 front.base-url(自指地址优化 Phase 2 收尾),主代码已无消费点 - ServiceApplyFlowSubmitTest 断言从 http://localhost:8087/#/apply-detail?id=42 改为 /apply-detail?id=42(16/16 绿) - 顺手修正两处 jumpApp 错误注释(yml:109 与 doFlowApply):绝对化解析键实为 flw_instance.apply_app_code(apply 时由验签身份 appKey 按注册表换得的 app_code 快照), 与 bizType 是两个字段互不影响(P3.0 审计勘误) - 配对收方 flow-center BizUrlResolver 已在 52c27d8 上 160 --- .../yunhai/svchall/service/impl/ServiceApplyService.java | 3 ++- src/main/resources/application.yml | 6 +++--- .../svchall/service/impl/ServiceApplyFlowSubmitTest.java | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yunhai/svchall/service/impl/ServiceApplyService.java b/src/main/java/com/yunhai/svchall/service/impl/ServiceApplyService.java index 4409f3c..1451378 100644 --- a/src/main/java/com/yunhai/svchall/service/impl/ServiceApplyService.java +++ b/src/main/java/com/yunhai/svchall/service/impl/ServiceApplyService.java @@ -454,7 +454,8 @@ public class ServiceApplyService { String.valueOf(apply.getId()), apply.getSubmitterName() + "的" + apply.getItemTitle(), // 办件落地页传裸相对路径(2026-09-26 自指地址优化 Phase 2):绝对化由接收方 - // 按页面归属(flow-center 代发时 jumpApp=本 bizType)查基址承担,本应用零地址配置。 + // 按页面归属查基址承担——解析键=flw_instance.apply_app_code(apply 时由验签身份 + // appKey 按注册表换得的 app_code 快照),与 bizType 是两个字段、互不影响。 // 路径形态仍须 hash 路由 + query 传参(routes.ts path="/apply-detail"、 // Apply.vue router.replace("/apply-detail?id=")):路径参数形态会 no-match 空白页 "/apply-detail?id=" + apply.getId(), diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2398235..d7b27ea 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -105,9 +105,9 @@ yh: svchall: # (public-base-url 已删 2026-10-05:唯一消费方是回调注册 callback-url 拼接,回调地址改由 # yh.flow-callback 三段推导(见上方该段),本应用地址类配置进一步清零;file.public-base-url 是另一键不受影响) - # 办事大厅前端地址(办件 bizUrl 落地页用) - front: - base-url: http://localhost:8087 + # 前端地址 front.base-url 已删(2026-09-26):办件 bizUrl 改传裸相对路径,绝对化由接收方按 + # 页面归属查基址承担——解析键=flw_instance.apply_app_code(apply 时由验签身份 appKey 按注册表 + # 换得的 app_code 快照,与 bizType 是两个字段互不影响)——本应用地址类配置清零(自指地址优化 Phase 2) item: # 服务部门"容器组"类型(UserBase GroupTypeEnum,默认 7=教师组;口径承袭 CMS cms.svc.item.dept-group-type) dept-group-type: 7 diff --git a/src/test/java/com/yunhai/svchall/service/impl/ServiceApplyFlowSubmitTest.java b/src/test/java/com/yunhai/svchall/service/impl/ServiceApplyFlowSubmitTest.java index 4a6c053..927da1a 100644 --- a/src/test/java/com/yunhai/svchall/service/impl/ServiceApplyFlowSubmitTest.java +++ b/src/test/java/com/yunhai/svchall/service/impl/ServiceApplyFlowSubmitTest.java @@ -70,7 +70,6 @@ class ServiceApplyFlowSubmitTest { new com.yunhai.svchall.service.ApplyViewGuard(flowClient), new ObjectMapper(), new org.springframework.transaction.support.TransactionTemplate( org.mockito.Mockito.mock(org.springframework.transaction.PlatformTransactionManager.class))); - ReflectionTestUtils.setField(service, "frontBaseUrl", "http://localhost:8087"); apply = new ServiceApply(); ReflectionTestUtils.setField(apply, "id", 42); @@ -144,13 +143,14 @@ class ServiceApplyFlowSubmitTest { @Test void submitPassesBizUrlInFrontendHashQueryForm() { - // bizUrl 落地页是 svc-hall 前端的 hash 路由 /apply-detail?id=(routes.ts path + Apply.vue - // router.replace 同形);拼成路径参数 /apply-detail/{id} 会 no-match 空白页(走查 BP-R3-2) + // bizUrl 是裸相对路径(2026-09-26 起不拼本应用前端基址,绝对化由接收方按页面归属承担), + // 形态须是 hash 路由 + query 传参(routes.ts path="/apply-detail"、Apply.vue + // router.replace 同形);路径参数 /apply-detail/{id} 会 no-match 空白页(走查 BP-R3-2) service.submit(user(9, 1), request()); ArgumentCaptor bizUrl = ArgumentCaptor.forClass(String.class); verify(flowClient).apply(eq(1L), eq("fg-1"), eq("svc_item"), eq("42"), anyString(), bizUrl.capture(), any(), eq(9), eq("张三"), any()); - assertEquals("http://localhost:8087/#/apply-detail?id=42", bizUrl.getValue()); + assertEquals("/apply-detail?id=42", bizUrl.getValue()); } @Test