qgraphflow 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.qoder-plugin/plugin.json +1 -1
  6. package/README.md +119 -70
  7. package/docs/clients.de.md +15 -24
  8. package/docs/clients.es.md +15 -24
  9. package/docs/clients.ja.md +15 -24
  10. package/docs/clients.md +15 -24
  11. package/docs/clients.pt.md +15 -24
  12. package/docs/clients.ru.md +15 -24
  13. package/docs/clients.zh-CN.md +15 -24
  14. package/docs/readme/README.de.md +120 -71
  15. package/docs/readme/README.es.md +120 -71
  16. package/docs/readme/README.ja.md +120 -71
  17. package/docs/readme/README.pt.md +120 -71
  18. package/docs/readme/README.ru.md +120 -71
  19. package/docs/readme/README.zh-CN.md +106 -59
  20. package/examples/jeepay/README.md +23 -0
  21. package/examples/jeepay/capabilities.graph.json +270 -0
  22. package/examples/jeepay/class.graph.json +237 -0
  23. package/examples/jeepay/collection.graph.json +3057 -0
  24. package/examples/jeepay/dataflow.graph.json +212 -0
  25. package/examples/jeepay/deployment.graph.json +222 -0
  26. package/examples/jeepay/engineering.graph.json +277 -0
  27. package/examples/jeepay/er.graph.json +482 -0
  28. package/examples/jeepay/flowchart.graph.json +312 -0
  29. package/examples/jeepay/relations.graph.json +289 -0
  30. package/examples/jeepay/sequence.graph.json +355 -0
  31. package/examples/jeepay/source.json +95 -0
  32. package/examples/jeepay/state.graph.json +175 -0
  33. package/examples/jeepay/usecase.graph.json +222 -0
  34. package/package.json +14 -3
  35. package/skills/q-flow/SKILL.md +28 -20
  36. package/skills/q-flow/agents/openai.yaml +1 -1
  37. package/skills/q-flow/assets/viewer/package.json +1 -1
  38. package/skills/q-flow/assets/viewer/src/architecture-overview-theme.js +22 -0
  39. package/skills/q-flow/assets/viewer/src/architecture-overview.js +340 -0
  40. package/skills/q-flow/assets/viewer/src/diagrams/architecture.js +8 -5
  41. package/skills/q-flow/assets/viewer/src/diagrams/card.js +35 -17
  42. package/skills/q-flow/assets/viewer/src/diagrams/deployment.js +7 -5
  43. package/skills/q-flow/assets/viewer/src/diagrams/drawing.js +5 -2
  44. package/skills/q-flow/assets/viewer/src/diagrams/registry.js +10 -0
  45. package/skills/q-flow/assets/viewer/src/diagrams/sequence.js +13 -7
  46. package/skills/q-flow/assets/viewer/src/edge-routing.js +43 -22
  47. package/skills/q-flow/assets/viewer/src/export-svg.js +27 -5
  48. package/skills/q-flow/assets/viewer/src/graph-validation.js +72 -15
  49. package/skills/q-flow/assets/viewer/src/i18n-messages.json +184 -8
  50. package/skills/q-flow/assets/viewer/src/layout-compaction.js +123 -0
  51. package/skills/q-flow/assets/viewer/src/layout-measure.js +14 -8
  52. package/skills/q-flow/assets/viewer/src/layout-policy.js +6 -0
  53. package/skills/q-flow/assets/viewer/src/layout-quality.js +61 -15
  54. package/skills/q-flow/assets/viewer/src/layout-refinement.js +271 -0
  55. package/skills/q-flow/assets/viewer/src/layout-semantics.js +8 -0
  56. package/skills/q-flow/assets/viewer/src/layout-spacing.js +23 -4
  57. package/skills/q-flow/assets/viewer/src/layout-templates.js +298 -0
  58. package/skills/q-flow/assets/viewer/src/node-svg.js +1 -1
  59. package/skills/q-flow/assets/viewer/src/orthogonal-routing.js +475 -0
  60. package/skills/q-flow/assets/viewer/src/presentation-graph.js +31 -0
  61. package/skills/q-flow/assets/viewer/src/route-clearance.js +144 -0
  62. package/skills/q-flow/assets/viewer/src/sequence-executions.js +22 -0
  63. package/skills/q-flow/assets/viewer/src/sequence-fragments.js +20 -2
  64. package/skills/q-flow/assets/viewer/src/session-graph.js +46 -3
  65. package/skills/q-flow/assets/viewer/src/text-layout.js +33 -6
  66. package/skills/q-flow/assets/viewer/src/view-identity.js +26 -0
  67. package/skills/q-flow/assets/viewer/src/visual-style.js +13 -5
  68. package/skills/q-flow/assets/viewer-dist/index.html +30 -28
  69. package/skills/q-flow/references/evidence-sources.md +7 -5
  70. package/skills/q-flow/references/graph-common.md +34 -34
  71. package/skills/q-flow/references/graph-schema.md +28 -7
  72. package/skills/q-flow/references/guided-intake.md +51 -71
  73. package/skills/q-flow/references/layout-routing.md +47 -0
  74. package/skills/q-flow/references/types/architecture.md +42 -22
  75. package/skills/q-flow/references/types/class.md +9 -2
  76. package/skills/q-flow/references/types/dataflow.md +11 -4
  77. package/skills/q-flow/references/types/deployment.md +11 -3
  78. package/skills/q-flow/references/types/er.md +8 -1
  79. package/skills/q-flow/references/types/flowchart.md +12 -5
  80. package/skills/q-flow/references/types/sequence.md +20 -16
  81. package/skills/q-flow/references/types/state.md +10 -3
  82. package/skills/q-flow/references/types/usecase.md +6 -0
  83. package/skills/q-flow/references/viewer-development.md +37 -24
  84. package/skills/q-flow/references/visual-contract.md +12 -6
  85. package/skills/q-flow/scripts/compile-layout.mjs +85 -102
  86. package/skills/q-flow/scripts/compile-sequence.mjs +4 -21
  87. package/skills/q-flow/scripts/generate-viewer.mjs +18 -9
  88. package/skills/q-flow/scripts/validate-graph.mjs +38 -21
  89. package/examples/order-flow.graph.json +0 -94
@@ -0,0 +1,312 @@
1
+ {
2
+ "meta": {
3
+ "title": "统一下单流程图",
4
+ "subtitle": "Jeepay 源码与配置证据",
5
+ "sourceRef": "jeequan/jeepay@e1ac9086d679826bab593f20431b7ecd292eb685",
6
+ "scope": "普通新订单分支",
7
+ "diagramType": "flowchart",
8
+ "locale": "zh-CN",
9
+ "notes": [
10
+ "展示普通新订单主线;QR_CASHIER 会先创建订单并直接返回收银台地址。",
11
+ "渠道返回成功、失败、等待等状态由 processChannelMsg 分流;详见状态图。"
12
+ ],
13
+ "viewId": "jeepay-flowchart"
14
+ },
15
+ "nodes": [
16
+ {
17
+ "id": "start",
18
+ "label": "POST /api/pay/unifiedOrder",
19
+ "kind": "start",
20
+ "module": "payment",
21
+ "source": {
22
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
23
+ "lineStart": 52,
24
+ "lineEnd": 52,
25
+ "kind": "source"
26
+ }
27
+ },
28
+ {
29
+ "id": "verify",
30
+ "label": "getRQByWithMchSign",
31
+ "kind": "input",
32
+ "module": "payment",
33
+ "source": {
34
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
35
+ "lineStart": 56,
36
+ "lineEnd": 56,
37
+ "kind": "source"
38
+ }
39
+ },
40
+ {
41
+ "id": "way",
42
+ "label": "支付方式受支持?",
43
+ "kind": "decision",
44
+ "module": "payment",
45
+ "source": {
46
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
47
+ "lineStart": 100,
48
+ "lineEnd": 100,
49
+ "kind": "source"
50
+ }
51
+ },
52
+ {
53
+ "id": "config",
54
+ "label": "queryMchInfoAndAppInfo",
55
+ "kind": "process",
56
+ "module": "config",
57
+ "source": {
58
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
59
+ "lineStart": 129,
60
+ "lineEnd": 129,
61
+ "kind": "source"
62
+ }
63
+ },
64
+ {
65
+ "id": "appok",
66
+ "label": "商户应用可用?",
67
+ "kind": "decision",
68
+ "module": "payment",
69
+ "source": {
70
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
71
+ "lineStart": 137,
72
+ "lineEnd": 137,
73
+ "kind": "source"
74
+ }
75
+ },
76
+ {
77
+ "id": "passage",
78
+ "label": "findMchPayPassage",
79
+ "kind": "process",
80
+ "module": "channel",
81
+ "source": {
82
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
83
+ "lineStart": 167,
84
+ "lineEnd": 167,
85
+ "kind": "source"
86
+ }
87
+ },
88
+ {
89
+ "id": "save",
90
+ "label": "payOrderService.save",
91
+ "kind": "process",
92
+ "module": "payment",
93
+ "source": {
94
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
95
+ "lineStart": 201,
96
+ "lineEnd": 201,
97
+ "kind": "source"
98
+ },
99
+ "tags": [
100
+ "core"
101
+ ]
102
+ },
103
+ {
104
+ "id": "pay",
105
+ "label": "paymentService.pay",
106
+ "kind": "subprocess",
107
+ "module": "channel",
108
+ "source": {
109
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
110
+ "lineStart": 205,
111
+ "lineEnd": 205,
112
+ "kind": "source"
113
+ }
114
+ },
115
+ {
116
+ "id": "update",
117
+ "label": "processChannelMsg",
118
+ "kind": "process",
119
+ "module": "payment",
120
+ "source": {
121
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
122
+ "lineStart": 208,
123
+ "lineEnd": 208,
124
+ "kind": "source"
125
+ }
126
+ },
127
+ {
128
+ "id": "return",
129
+ "label": "ApiRes.okWithSign",
130
+ "kind": "end",
131
+ "module": "payment",
132
+ "source": {
133
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
134
+ "lineStart": 78,
135
+ "lineEnd": 78,
136
+ "kind": "source"
137
+ }
138
+ },
139
+ {
140
+ "id": "fail",
141
+ "label": "ApiRes.customFail / BizException",
142
+ "kind": "end",
143
+ "module": "payment",
144
+ "source": {
145
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
146
+ "lineStart": 213,
147
+ "lineEnd": 213,
148
+ "kind": "source"
149
+ }
150
+ }
151
+ ],
152
+ "edges": [
153
+ {
154
+ "id": "f1",
155
+ "source": "start",
156
+ "target": "verify",
157
+ "kind": "flow",
158
+ "label": "读取并验签",
159
+ "evidence": "source",
160
+ "site": {
161
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
162
+ "lineStart": 56,
163
+ "lineEnd": 56
164
+ }
165
+ },
166
+ {
167
+ "id": "f2",
168
+ "source": "verify",
169
+ "target": "way",
170
+ "kind": "flow",
171
+ "label": "构建业务请求",
172
+ "evidence": "source",
173
+ "site": {
174
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
175
+ "lineStart": 58,
176
+ "lineEnd": 58
177
+ }
178
+ },
179
+ {
180
+ "id": "f3",
181
+ "source": "way",
182
+ "target": "config",
183
+ "kind": "yes",
184
+ "label": "是",
185
+ "evidence": "source",
186
+ "site": {
187
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
188
+ "lineStart": 100,
189
+ "lineEnd": 100
190
+ }
191
+ },
192
+ {
193
+ "id": "f4",
194
+ "source": "way",
195
+ "target": "fail",
196
+ "kind": "no",
197
+ "label": "否",
198
+ "evidence": "source",
199
+ "site": {
200
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
201
+ "lineStart": 101,
202
+ "lineEnd": 101
203
+ }
204
+ },
205
+ {
206
+ "id": "f5",
207
+ "source": "config",
208
+ "target": "appok",
209
+ "kind": "flow",
210
+ "label": "读取应用状态",
211
+ "evidence": "source",
212
+ "site": {
213
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
214
+ "lineStart": 137,
215
+ "lineEnd": 137
216
+ }
217
+ },
218
+ {
219
+ "id": "f6",
220
+ "source": "appok",
221
+ "target": "passage",
222
+ "kind": "yes",
223
+ "label": "是",
224
+ "evidence": "source",
225
+ "site": {
226
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
227
+ "lineStart": 167,
228
+ "lineEnd": 167
229
+ }
230
+ },
231
+ {
232
+ "id": "f7",
233
+ "source": "appok",
234
+ "target": "fail",
235
+ "kind": "no",
236
+ "label": "否",
237
+ "evidence": "source",
238
+ "site": {
239
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
240
+ "lineStart": 138,
241
+ "lineEnd": 138
242
+ }
243
+ },
244
+ {
245
+ "id": "f8",
246
+ "source": "passage",
247
+ "target": "save",
248
+ "kind": "flow",
249
+ "label": "生成并保存订单",
250
+ "evidence": "source",
251
+ "site": {
252
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
253
+ "lineStart": 201,
254
+ "lineEnd": 201
255
+ }
256
+ },
257
+ {
258
+ "id": "f9",
259
+ "source": "save",
260
+ "target": "pay",
261
+ "kind": "flow",
262
+ "label": "调起渠道",
263
+ "evidence": "source",
264
+ "site": {
265
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
266
+ "lineStart": 205,
267
+ "lineEnd": 205
268
+ }
269
+ },
270
+ {
271
+ "id": "f10",
272
+ "source": "pay",
273
+ "target": "update",
274
+ "kind": "flow",
275
+ "label": "处理渠道返回",
276
+ "evidence": "source",
277
+ "site": {
278
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
279
+ "lineStart": 208,
280
+ "lineEnd": 208
281
+ }
282
+ },
283
+ {
284
+ "id": "f11",
285
+ "source": "update",
286
+ "target": "return",
287
+ "kind": "success",
288
+ "label": "封装签名响应",
289
+ "evidence": "source",
290
+ "site": {
291
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
292
+ "lineStart": 78,
293
+ "lineEnd": 78
294
+ }
295
+ }
296
+ ],
297
+ "layout": {
298
+ "primaryPath": [
299
+ "start",
300
+ "verify",
301
+ "way",
302
+ "config",
303
+ "appok",
304
+ "passage",
305
+ "save",
306
+ "pay",
307
+ "update",
308
+ "return"
309
+ ],
310
+ "direction": "down"
311
+ }
312
+ }
@@ -0,0 +1,289 @@
1
+ {
2
+ "meta": {
3
+ "title": "Jeepay 支付组件关系架构",
4
+ "subtitle": "Jeepay 源码与配置证据",
5
+ "sourceRef": "jeequan/jeepay@e1ac9086d679826bab593f20431b7ecd292eb685",
6
+ "scope": "统一下单与异步回调组件",
7
+ "diagramType": "architecture",
8
+ "locale": "zh-CN",
9
+ "notes": [
10
+ "渠道实现经 SpringBeansUtil 按 ifCode 动态获取;静态调用图不能穷举实际运行时 Bean。",
11
+ "回调只在订单为 STATE_ING 时执行成功/失败条件更新。"
12
+ ],
13
+ "architectureView": "relations",
14
+ "viewId": "jeepay-relations"
15
+ },
16
+ "nodes": [
17
+ {
18
+ "id": "unified",
19
+ "label": "UnifiedOrderController",
20
+ "kind": "service",
21
+ "module": "payment",
22
+ "source": {
23
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
24
+ "lineStart": 44,
25
+ "lineEnd": 44,
26
+ "kind": "source"
27
+ },
28
+ "tags": [
29
+ "core"
30
+ ]
31
+ },
32
+ {
33
+ "id": "abstract",
34
+ "label": "AbstractPayOrderController",
35
+ "kind": "business",
36
+ "module": "payment",
37
+ "source": {
38
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
39
+ "lineStart": 64,
40
+ "lineEnd": 64,
41
+ "kind": "source"
42
+ }
43
+ },
44
+ {
45
+ "id": "api",
46
+ "label": "ApiController",
47
+ "kind": "security",
48
+ "module": "payment",
49
+ "source": {
50
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/ApiController.java",
51
+ "lineStart": 39,
52
+ "lineEnd": 39,
53
+ "kind": "source"
54
+ }
55
+ },
56
+ {
57
+ "id": "config",
58
+ "label": "ConfigContextQueryService",
59
+ "kind": "component",
60
+ "module": "config",
61
+ "source": {
62
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ConfigContextQueryService.java",
63
+ "lineStart": 48,
64
+ "lineEnd": 48,
65
+ "kind": "source"
66
+ }
67
+ },
68
+ {
69
+ "id": "passage",
70
+ "label": "MchPayPassageService",
71
+ "kind": "component",
72
+ "module": "config",
73
+ "source": {
74
+ "file": "jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/MchPayPassageService.java",
75
+ "lineStart": 45,
76
+ "lineEnd": 45,
77
+ "kind": "source"
78
+ }
79
+ },
80
+ {
81
+ "id": "orders",
82
+ "label": "PayOrderService",
83
+ "kind": "data",
84
+ "module": "payment",
85
+ "source": {
86
+ "file": "jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/PayOrderService.java",
87
+ "lineStart": 49,
88
+ "lineEnd": 49,
89
+ "kind": "source"
90
+ }
91
+ },
92
+ {
93
+ "id": "channel",
94
+ "label": "IPaymentService",
95
+ "kind": "component",
96
+ "module": "channel",
97
+ "source": {
98
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/IPaymentService.java",
99
+ "lineStart": 30,
100
+ "lineEnd": 30,
101
+ "kind": "source"
102
+ }
103
+ },
104
+ {
105
+ "id": "process",
106
+ "label": "PayOrderProcessService",
107
+ "kind": "component",
108
+ "module": "payment",
109
+ "source": {
110
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/PayOrderProcessService.java",
111
+ "lineStart": 40,
112
+ "lineEnd": 40,
113
+ "kind": "source"
114
+ }
115
+ },
116
+ {
117
+ "id": "notify",
118
+ "label": "PayMchNotifyService",
119
+ "kind": "component",
120
+ "module": "notification",
121
+ "source": {
122
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/PayMchNotifyService.java",
123
+ "lineStart": 45,
124
+ "lineEnd": 45,
125
+ "kind": "source"
126
+ }
127
+ },
128
+ {
129
+ "id": "callback",
130
+ "label": "ChannelNoticeController",
131
+ "kind": "service",
132
+ "module": "payment",
133
+ "source": {
134
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/ChannelNoticeController.java",
135
+ "lineStart": 54,
136
+ "lineEnd": 54,
137
+ "kind": "source"
138
+ }
139
+ }
140
+ ],
141
+ "edges": [
142
+ {
143
+ "id": "r1",
144
+ "source": "unified",
145
+ "target": "abstract",
146
+ "kind": "inherits",
147
+ "label": "继承下单编排",
148
+ "evidence": "source",
149
+ "site": {
150
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
151
+ "lineStart": 44,
152
+ "lineEnd": 44
153
+ }
154
+ },
155
+ {
156
+ "id": "r2",
157
+ "source": "abstract",
158
+ "target": "api",
159
+ "kind": "inherits",
160
+ "label": "继承请求校验",
161
+ "evidence": "source",
162
+ "site": {
163
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
164
+ "lineStart": 64,
165
+ "lineEnd": 64
166
+ }
167
+ },
168
+ {
169
+ "id": "r3",
170
+ "source": "unified",
171
+ "target": "abstract",
172
+ "kind": "call",
173
+ "label": "统一下单",
174
+ "evidence": "source",
175
+ "site": {
176
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/UnifiedOrderController.java",
177
+ "lineStart": 61,
178
+ "lineEnd": 61
179
+ }
180
+ },
181
+ {
182
+ "id": "r4",
183
+ "source": "abstract",
184
+ "target": "config",
185
+ "kind": "call",
186
+ "label": "查询商户配置",
187
+ "evidence": "source",
188
+ "site": {
189
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
190
+ "lineStart": 129,
191
+ "lineEnd": 129
192
+ }
193
+ },
194
+ {
195
+ "id": "r5",
196
+ "source": "abstract",
197
+ "target": "passage",
198
+ "kind": "call",
199
+ "label": "选择通道",
200
+ "evidence": "source",
201
+ "site": {
202
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
203
+ "lineStart": 167,
204
+ "lineEnd": 167
205
+ }
206
+ },
207
+ {
208
+ "id": "r6",
209
+ "source": "abstract",
210
+ "target": "orders",
211
+ "kind": "data",
212
+ "label": "保存支付订单",
213
+ "evidence": "source",
214
+ "site": {
215
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
216
+ "lineStart": 201,
217
+ "lineEnd": 201
218
+ }
219
+ },
220
+ {
221
+ "id": "r7",
222
+ "source": "abstract",
223
+ "target": "channel",
224
+ "kind": "call",
225
+ "label": "调用 pay",
226
+ "evidence": "source",
227
+ "site": {
228
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
229
+ "lineStart": 205,
230
+ "lineEnd": 205
231
+ }
232
+ },
233
+ {
234
+ "id": "r8",
235
+ "source": "abstract",
236
+ "target": "process",
237
+ "kind": "call",
238
+ "label": "处理支付状态",
239
+ "evidence": "source",
240
+ "site": {
241
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java",
242
+ "lineStart": 383,
243
+ "lineEnd": 383
244
+ }
245
+ },
246
+ {
247
+ "id": "r9",
248
+ "source": "callback",
249
+ "target": "orders",
250
+ "kind": "data",
251
+ "label": "条件更新订单",
252
+ "evidence": "source",
253
+ "site": {
254
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/ChannelNoticeController.java",
255
+ "lineStart": 237,
256
+ "lineEnd": 237
257
+ }
258
+ },
259
+ {
260
+ "id": "r10",
261
+ "source": "callback",
262
+ "target": "process",
263
+ "kind": "call",
264
+ "label": "成功后处理",
265
+ "evidence": "source",
266
+ "site": {
267
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/ChannelNoticeController.java",
268
+ "lineStart": 254,
269
+ "lineEnd": 254
270
+ }
271
+ },
272
+ {
273
+ "id": "r11",
274
+ "source": "process",
275
+ "target": "notify",
276
+ "kind": "call",
277
+ "label": "发商户通知",
278
+ "evidence": "source",
279
+ "site": {
280
+ "file": "jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/PayOrderProcessService.java",
281
+ "lineStart": 60,
282
+ "lineEnd": 60
283
+ }
284
+ }
285
+ ],
286
+ "layout": {
287
+ "direction": "right"
288
+ }
289
+ }