feat(p3.0): bizUrl 发方收口——删 svchall.front.base-url、断言改裸相对路径 /apply-detail?id=
build / build-push (push) Successful in 48s

- 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
This commit is contained in:
chenxing
2026-10-19 23:23:48 +08:00
parent 88978ea701
commit fb4bef9d34
3 changed files with 9 additions and 8 deletions
@@ -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(),
+3 -3
View File
@@ -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
@@ -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<String> 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