docs(归档): 归档代理自充支付方式与员工代收款路由前缀两个变更
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 53s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 53s
- add-agent-self-recharge-payment-methods 归档为 2026-09-11-add-agent-self-recharge-payment-methods,delta 应用后主规格 agent-funds-commission 完成 1 条 Requirement 改名并新增 4 条 Requirement - 在可达操作索引补充代理自充支付方式配置与付款凭证识别共 3 个端点 - 同步 requirement-evidence.json 与 entry-capability-requirement-matrix.json 证据链 - fix-employee-collection-route-prefix 归档为 2026-09-11-fix-employee-collection-route-prefix 并勾选任务 2.5 门禁:context-health 通过、openspec validate --all 40 passed / 0 failed、doctor healthy
This commit is contained in:
@@ -199,7 +199,8 @@
|
||||
"requirements": [
|
||||
"agent-funds-commission::充值边界",
|
||||
"identity-access::数据范围拒绝",
|
||||
"order-payment-wallet::金额单位"
|
||||
"order-payment-wallet::金额单位",
|
||||
"agent-funds-commission::线下预存款审批收款方式、其他凭证与交易流水号"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -211,7 +212,7 @@
|
||||
"agent-funds-commission::充值边界",
|
||||
"identity-access::数据范围拒绝",
|
||||
"order-payment-wallet::金额单位",
|
||||
"agent-funds-commission::代理在线充值可用支付方式按支付配置判定"
|
||||
"agent-funds-commission::代理在线充值可用支付方式按允许范围与可用商户池判定"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -222,7 +223,8 @@
|
||||
"requirements": [
|
||||
"agent-funds-commission::充值边界",
|
||||
"identity-access::数据范围拒绝",
|
||||
"order-payment-wallet::金额单位"
|
||||
"order-payment-wallet::金额单位",
|
||||
"agent-funds-commission::线下预存款审批收款方式、其他凭证与交易流水号"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -1770,7 +1772,8 @@
|
||||
"identity-access::数据范围拒绝",
|
||||
"order-payment-wallet::金额单位",
|
||||
"external-integration::富友主扫统一下单与订单查询",
|
||||
"merchant-payment-routing::新支付商户快照与历史兼容"
|
||||
"merchant-payment-routing::新支付商户快照与历史兼容",
|
||||
"agent-funds-commission::线下预存款审批收款方式、其他凭证与交易流水号"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -3797,7 +3800,8 @@
|
||||
"entry": "PUT /api/admin/employee-collection-payment-methods/{id}",
|
||||
"capability": "employee-collection-bill",
|
||||
"requirements": [
|
||||
"employee-collection-bill::收款方式字典、退款联动与可追溯性"
|
||||
"employee-collection-bill::收款方式字典、退款联动与可追溯性",
|
||||
"agent-funds-commission::线下收款方式字典对代理充值引用的可见性"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -3806,7 +3810,8 @@
|
||||
"entry": "DELETE /api/admin/employee-collection-payment-methods/{id}",
|
||||
"capability": "employee-collection-bill",
|
||||
"requirements": [
|
||||
"employee-collection-bill::收款方式字典、退款联动与可追溯性"
|
||||
"employee-collection-bill::收款方式字典、退款联动与可追溯性",
|
||||
"agent-funds-commission::线下收款方式字典对代理充值引用的可见性"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
@@ -3884,5 +3889,33 @@
|
||||
"employee-collection-bill::核销申请审批、重提与幂等"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
{
|
||||
"entry_type": "http",
|
||||
"entry": "GET /api/admin/agent-self-recharge-payment-methods",
|
||||
"capability": "agent-funds-commission",
|
||||
"requirements": [
|
||||
"agent-funds-commission::代理在线充值可用支付方式按允许范围与可用商户池判定",
|
||||
"agent-funds-commission::代理自充允许方式配置可审计"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
{
|
||||
"entry_type": "http",
|
||||
"entry": "PUT /api/admin/agent-self-recharge-payment-methods",
|
||||
"capability": "agent-funds-commission",
|
||||
"requirements": [
|
||||
"agent-funds-commission::代理自充允许方式配置可审计"
|
||||
],
|
||||
"classification": "behavior"
|
||||
},
|
||||
{
|
||||
"entry_type": "http",
|
||||
"entry": "POST /api/admin/agent-recharges/payment-voucher-ocr",
|
||||
"capability": "agent-funds-commission",
|
||||
"requirements": [
|
||||
"agent-funds-commission::付款凭证识别仅作交易流水号预填"
|
||||
],
|
||||
"classification": "behavior"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1611,16 +1611,19 @@
|
||||
},
|
||||
{
|
||||
"capability": "agent-funds-commission",
|
||||
"requirement": "代理在线充值可用支付方式按支付配置判定",
|
||||
"requirement": "代理在线充值可用支付方式按允许范围与可用商户池判定",
|
||||
"spec": "openspec/specs/agent-funds-commission/spec.md",
|
||||
"entries": [
|
||||
"GET /api/admin/agent-recharges/payment-methods"
|
||||
"GET /api/admin/agent-recharges/payment-methods",
|
||||
"GET /api/admin/agent-self-recharge-payment-methods",
|
||||
"POST /api/admin/agent-recharges"
|
||||
],
|
||||
"handler_consumer_job": [
|
||||
"internal/handler/admin/agent_recharge.go:AgentRechargeHandler.PaymentMethods"
|
||||
],
|
||||
"application_service_query": [
|
||||
"internal/application/agentrecharge/online_creation.go:OnlineCreationService.AvailablePaymentMethods"
|
||||
"internal/application/agentrecharge/online_creation.go:OnlineCreationService.AvailablePaymentMethods",
|
||||
"internal/application/agentrecharge/online_payment_policy.go:OnlinePaymentMethodPolicy.AllowedMethods"
|
||||
],
|
||||
"domain_state_amount": [
|
||||
"internal/model/agent_wallet.go:AgentRechargeRecord.PaymentMethod/PaymentChannel"
|
||||
@@ -1629,9 +1632,9 @@
|
||||
"internal/application/agentrecharge/online_creation.go:adapter.Available"
|
||||
],
|
||||
"verification": {
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[('\"'\"'internal/handler/admin/agent_recharge.go'\"'\"', '\"'\"'AvailablePaymentMethods'\"'\"'), ('\"'\"'internal/application/agentrecharge/online_creation.go'\"'\"', '\"'\"'adapter.Available(config)'\"'\"'), ('\"'\"'internal/model/agent_wallet.go'\"'\"', '\"'\"'PaymentChannel'\"'\"')]; negative=[]; missing=[f'\"'\"'{p}:{t}'\"'\"' for p,t in checks if t not in Path(p).read_text()]; present=[f'\"'\"'{p}:{t}'\"'\"' for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {'\"'\"'missing'\"'\"': missing, '\"'\"'present'\"'\"': present}; print('\"'\"'OK: agent-funds-commission::代理在线充值可用支付方式按支付配置判定'\"'\"')'",
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[(\"internal/application/agentrecharge/online_creation.go\", \"allowed, err := s.policy.AllowedMethods(ctx)\"), (\"internal/application/agentrecharge/online_creation.go\", \"adapter.Available(config)\"), (\"internal/application/agentrecharge/online_payment_policy.go\", \"func (p *OnlinePaymentMethodPolicy) AllowedMethods(\"), (\"internal/application/agentrecharge/online_payment_policy.go\", \"func (p *OnlinePaymentMethodPolicy) IsAllowed(\"), (\"internal/handler/admin/agent_recharge.go\", \"func (h *AgentRechargeHandler) SelfRechargePaymentMethods(\")]; negative=[]; missing=[f\"{p}:{t}\" for p,t in checks if t not in Path(p).read_text()]; present=[f\"{p}:{t}\" for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {\"missing\": missing, \"present\": present}; print(\"OK: agent-funds-commission::代理在线充值可用支付方式按允许范围与可用商户池判定\")'",
|
||||
"literal_output": [
|
||||
"OK: agent-funds-commission::代理在线充值可用支付方式按支付配置判定"
|
||||
"OK: agent-funds-commission::代理在线充值可用支付方式按允许范围与可用商户池判定"
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
@@ -2862,5 +2865,116 @@
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"capability": "agent-funds-commission",
|
||||
"requirement": "代理自充允许方式配置可审计",
|
||||
"spec": "openspec/specs/agent-funds-commission/spec.md",
|
||||
"entries": [
|
||||
"GET /api/admin/agent-self-recharge-payment-methods",
|
||||
"PUT /api/admin/agent-self-recharge-payment-methods"
|
||||
],
|
||||
"handler_consumer_job": [
|
||||
"internal/routes/agent_self_recharge_payment_method.go",
|
||||
"internal/handler/admin/agent_recharge.go"
|
||||
],
|
||||
"application_service_query": [
|
||||
"internal/application/agentrecharge/online_payment_policy.go"
|
||||
],
|
||||
"domain_state_amount": [
|
||||
"pkg/constants/system_config.go"
|
||||
],
|
||||
"store_migration_config": [
|
||||
"internal/bootstrap/payment_method_config.go"
|
||||
],
|
||||
"verification": {
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[(\"pkg/constants/system_config.go\", \"SystemConfigAgentSelfRechargeAllowedMethods\"), (\"pkg/constants/system_config.go\", \"AgentSelfRechargeAllowedBoth\"), (\"internal/bootstrap/payment_method_config.go\", \"DefaultValue: constants.AgentSelfRechargeAllowedBoth\"), (\"internal/bootstrap/payment_method_config.go\", \"EnumValues: []string{constants.AgentSelfRechargeAllowedWechatOnly\"), (\"internal/handler/admin/agent_recharge.go\", \"func (h *AgentRechargeHandler) UpdateSelfRechargePaymentMethods(\"), (\"internal/routes/agent_self_recharge_payment_method.go\", \"仅超级管理员可以修改代理自充允许范围\")]; negative=[]; missing=[f\"{p}:{t}\" for p,t in checks if t not in Path(p).read_text()]; present=[f\"{p}:{t}\" for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {\"missing\": missing, \"present\": present}; print(\"OK: agent-funds-commission::代理自充允许方式配置可审计\")'",
|
||||
"literal_output": [
|
||||
"OK: agent-funds-commission::代理自充允许方式配置可审计"
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"capability": "agent-funds-commission",
|
||||
"requirement": "线下预存款审批收款方式、其他凭证与交易流水号",
|
||||
"spec": "openspec/specs/agent-funds-commission/spec.md",
|
||||
"entries": [
|
||||
"POST /api/admin/agent-recharges"
|
||||
],
|
||||
"handler_consumer_job": [
|
||||
"internal/handler/admin/agent_recharge.go",
|
||||
"internal/application/agentrecharge/offline_creation.go"
|
||||
],
|
||||
"application_service_query": [
|
||||
"internal/application/agentrecharge/offline_creation.go"
|
||||
],
|
||||
"domain_state_amount": [
|
||||
"internal/model/agent_wallet.go"
|
||||
],
|
||||
"store_migration_config": [
|
||||
"migrations/000213_add_agent_recharge_offline_fields.up.sql"
|
||||
],
|
||||
"verification": {
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[(\"internal/application/agentrecharge/offline_creation.go\", \"func loadEnabledOfflinePaymentMethod(\"), (\"internal/application/agentrecharge/offline_creation.go\", \"func validateRechargeTransactionNo(\"), (\"internal/application/agentrecharge/offline_creation.go\", \"func validateVoucherKeys(\"), (\"migrations/000213_add_agent_recharge_offline_fields.up.sql\", \"external_transaction_no varchar(128)\"), (\"migrations/000213_add_agent_recharge_offline_fields.up.sql\", \"other_voucher_keys jsonb\"), (\"internal/model/agent_wallet.go\", \"column:external_transaction_no\"), (\"internal/model/agent_wallet.go\", \"column:offline_payment_method_code\"), (\"internal/application/wecom/scene.go\", \"constants.ApprovalFieldExternalTransactionNo\"), (\"internal/application/wecom/scene.go\", \"constants.ApprovalFieldOtherVoucherKey\")]; negative=[]; missing=[f\"{p}:{t}\" for p,t in checks if t not in Path(p).read_text()]; present=[f\"{p}:{t}\" for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {\"missing\": missing, \"present\": present}; print(\"OK: agent-funds-commission::线下预存款审批收款方式、其他凭证与交易流水号\")'",
|
||||
"literal_output": [
|
||||
"OK: agent-funds-commission::线下预存款审批收款方式、其他凭证与交易流水号"
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"capability": "agent-funds-commission",
|
||||
"requirement": "付款凭证识别仅作交易流水号预填",
|
||||
"spec": "openspec/specs/agent-funds-commission/spec.md",
|
||||
"entries": [
|
||||
"POST /api/admin/agent-recharges/payment-voucher-ocr"
|
||||
],
|
||||
"handler_consumer_job": [
|
||||
"internal/handler/admin/agent_recharge.go",
|
||||
"internal/routes/agent_recharge.go"
|
||||
],
|
||||
"application_service_query": [
|
||||
"internal/application/agentrecharge/payment_voucher_ocr.go"
|
||||
],
|
||||
"domain_state_amount": [],
|
||||
"store_migration_config": [
|
||||
"internal/gateway/payment_voucher.go"
|
||||
],
|
||||
"verification": {
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[(\"internal/gateway/payment_voucher.go\", \"func (c *Client) ExtractPaymentVoucherOrderNumber(\"), (\"internal/application/agentrecharge/payment_voucher_ocr.go\", \"func (s *PaymentVoucherOCRService) Recognize(\"), (\"internal/application/agentrecharge/payment_voucher_ocr.go\", \"ExternalTransactionNo string\"), (\"internal/handler/admin/agent_recharge.go\", \"func (h *AgentRechargeHandler) PaymentVoucherOCR(\"), (\"internal/routes/agent_recharge.go\", \"/payment-voucher-ocr\")]; negative=[(\"internal/application/agentrecharge/payment_voucher_ocr.go\", \"AmountCent\"), (\"internal/application/agentrecharge/payment_voucher_ocr.go\", \"Payee\"), (\"internal/application/agentrecharge/payment_voucher_ocr.go\", \"PaymentTime\")]; missing=[f\"{p}:{t}\" for p,t in checks if t not in Path(p).read_text()]; present=[f\"{p}:{t}\" for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {\"missing\": missing, \"present\": present}; print(\"OK: agent-funds-commission::付款凭证识别仅作交易流水号预填\")'",
|
||||
"literal_output": [
|
||||
"OK: agent-funds-commission::付款凭证识别仅作交易流水号预填"
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"capability": "agent-funds-commission",
|
||||
"requirement": "线下收款方式字典对代理充值引用的可见性",
|
||||
"spec": "openspec/specs/agent-funds-commission/spec.md",
|
||||
"entries": [
|
||||
"PUT /api/admin/employee-collection-payment-methods/{id}",
|
||||
"DELETE /api/admin/employee-collection-payment-methods/{id}"
|
||||
],
|
||||
"handler_consumer_job": [
|
||||
"internal/handler/admin/employee_collection.go"
|
||||
],
|
||||
"application_service_query": [
|
||||
"internal/application/employeecollection/payment_method.go"
|
||||
],
|
||||
"domain_state_amount": [
|
||||
"internal/domain/employeecollection/payment_method.go"
|
||||
],
|
||||
"store_migration_config": [
|
||||
"internal/model/agent_wallet.go"
|
||||
],
|
||||
"verification": {
|
||||
"command": "python3 -c 'from pathlib import Path; checks=[(\"internal/application/employeecollection/payment_method.go\", \"func countPaymentMethodReferences(\"), (\"internal/application/employeecollection/payment_method.go\", \"model.AgentRechargeRecord{}\"), (\"internal/application/employeecollection/payment_method.go\", \"offline_payment_method_id = ?\"), (\"internal/application/employeecollection/payment_method.go\", \"线下收款方式已被核销申请或代理充值申请引用,不能修改稳定编码\")]; negative=[]; missing=[f\"{p}:{t}\" for p,t in checks if t not in Path(p).read_text()]; present=[f\"{p}:{t}\" for p,t in negative if t in Path(p).read_text()]; assert not missing and not present, {\"missing\": missing, \"present\": present}; print(\"OK: agent-funds-commission::线下收款方式字典对代理充值引用的可见性\")'",
|
||||
"literal_output": [
|
||||
"OK: agent-funds-commission::线下收款方式字典对代理充值引用的可见性"
|
||||
],
|
||||
"exit_status": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user