|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+# 提现汇总 — 技术方案
|
|
|
2
|
+
|
|
|
3
|
+> **依据:** 《提现汇总功能需求.md》v1.0
|
|
|
4
|
+> **关联:** 平台《账务管理.md》v1.0、《提现审核功能需求》v1.0、《提现审核技术方案》v1.0、《资金概览功能需求》v1.0、《资金概览技术方案》v1.0;商家《提现管理功能需求》v1.0、《提现管理技术方案》v1.0、《账户管理功能需求》v1.0;《关联需求分析.md》v1.6
|
|
|
5
|
+> **范围:** 平台端 **财务管理 · 提现汇总** — **按店汇总列表**、**单店提现明细**(只读);**不含** 提现审核、商家提交、账户维护。
|
|
|
6
|
+> **原则:** **全平台** 可见;**纯查询**;汇总/明细与 **提现审核、商家提现记录** **同源同口径**。
|
|
|
7
|
+
|
|
|
8
|
+---
|
|
|
9
|
+
|
|
|
10
|
+## 1. 技术架构
|
|
|
11
|
+
|
|
|
12
|
+| 项 | 选型 |
|
|
|
13
|
+|----|------|
|
|
|
14
|
+| 基础框架 | RuoYi **v3.9.2**(`springboot2` 分支) |
|
|
|
15
|
+| 数据库 | **MySQL 5.7.39**;读 **`biz_shop_withdraw`**、**`biz_shop`** |
|
|
|
16
|
+| ORM / 权限 / 响应 | MyBatis;`@PreAuthorize`;`AjaxResult` / `TableDataInfo` |
|
|
|
17
|
+| 店铺上下文 | **无** `X-Shop-Id`(平台端全平台) |
|
|
|
18
|
+| 金额 | `BigDecimal`;两位小数 |
|
|
|
19
|
+
|
|
|
20
|
+### 1.1 与兄弟模块边界
|
|
|
21
|
+
|
|
|
22
|
+| 维度 | **本模块 · 提现汇总** | 平台 · 提现审核 | 商家 · 提现管理 | 平台 · 资金概览 |
|
|
|
23
|
+|------|----------------------|-----------------|-----------------|-----------------|
|
|
|
24
|
+| 路径 | `/agri/finance/withdrawSummary` | `/withdrawAudit` | `/agri/seller/finance/withdraw` | `/fundOverview` |
|
|
|
25
|
+| 写操作 | **无** | approve/reject | submit | **无** |
|
|
|
26
|
+| 列表形态 | **按店汇总** + 单店明细 | **全平台逐单** | **单店逐单** | 余额/冻结排行 |
|
|
|
27
|
+| 汇总列 | 已提现 / 待审核 | **无** | **无** | **无** |
|
|
|
28
|
+| 数据源 | `biz_shop_withdraw` | 同左 | 同左 | wallet / order / log |
|
|
|
29
|
+
|
|
|
30
|
+### 1.2 数据流(只读展示)
|
|
|
31
|
+
|
|
|
32
|
+```text
|
|
|
33
|
+【上游写入 · 非本模块】
|
|
|
34
|
+ 商家 POST /withdraw/submit → biz_shop_withdraw(status=1 待审核)
|
|
|
35
|
+ 平台 PUT /withdrawAudit/approve|reject → status=3|2
|
|
|
36
|
+
|
|
|
37
|
+【本模块 · 只读】
|
|
|
38
|
+ GET /shops → biz_shop LEFT JOIN 按店 SUM(withdraw)
|
|
|
39
|
+ GET /details → biz_shop_withdraw WHERE shop_id = ?(分页+检索)
|
|
|
40
|
+```
|
|
|
41
|
+
|
|
|
42
|
+> 汇总 **不缓存**;随 **提现审核** 结果 **实时** 变化。详见《账务管理.md》:**已提现** = 完成态单据;**待审核** = 待审态单据。
|
|
|
43
|
+
|
|
|
44
|
+### 1.3 模块落位
|
|
|
45
|
+
|
|
|
46
|
+**文档目录:** `doc/平台后台/财务管理/提现汇总/`
|
|
|
47
|
+**菜单:** 财务管理 → 提现汇总(建议 `menu_id=7630`,`parent_id=7600`)
|
|
|
48
|
+**后端包:** `com.ruoyi.web.modules.finance`
|
|
|
49
|
+
|
|
|
50
|
+```text
|
|
|
51
|
+finance/
|
|
|
52
|
+├── controller/PlatformWithdrawSummaryController.java # 本模块入口
|
|
|
53
|
+├── service/IShopFundService.java # 扩展汇总/明细方法
|
|
|
54
|
+├── service/impl/ShopFundServiceImpl.java
|
|
|
55
|
+├── dto/PlatformWithdrawSummaryQuery.java
|
|
|
56
|
+├── dto/PlatformWithdrawSummaryDetailQuery.java
|
|
|
57
|
+├── vo/PlatformWithdrawSummaryRowVO.java
|
|
|
58
|
+├── vo/PlatformWithdrawSummaryDetailRowVO.java
|
|
|
59
|
+├── mapper/BizShopWithdrawMapper.java # 扩展汇总/明细 SQL
|
|
|
60
|
+├── support/FinanceSupport.java # 状态/账号文案
|
|
|
61
|
+resources/mapper/finance/BizShopWithdrawMapper.xml
|
|
|
62
|
+
|
|
|
63
|
+sql/biz_shop_finance.sql # 已有,本模块不增表
|
|
|
64
|
+sql/biz_platform_withdraw_summary_menu.sql # 7630 菜单与权限
|
|
|
65
|
+```
|
|
|
66
|
+
|
|
|
67
|
+**前端(建议):**
|
|
|
68
|
+
|
|
|
69
|
+| 项 | 值 |
|
|
|
70
|
+|----|-----|
|
|
|
71
|
+| 页面 | `ruoyi-ui/src/views/agri/finance/withdrawSummary/index.vue` |
|
|
|
72
|
+| API | `ruoyi-ui/src/api/agri/finance/withdrawSummary.js` |
|
|
|
73
|
+| 明细弹窗 | 汇总行「查看提现明细」→ 抽屉调 `/details?shopId=` |
|
|
|
74
|
+
|
|
|
75
|
+---
|
|
|
76
|
+
|
|
|
77
|
+## 2. 数据库设计
|
|
|
78
|
+
|
|
|
79
|
+**权威 DDL:** [`sql/biz_shop_finance.sql`](../../../../sql/biz_shop_finance.sql)
|
|
|
80
|
+
|
|
|
81
|
+本模块 **不建表**;**只读** 下列表。
|
|
|
82
|
+
|
|
|
83
|
+### 2.1 提现单 `biz_shop_withdraw`(汇总 + 明细)
|
|
|
84
|
+
|
|
|
85
|
+| 字段 | 用途 |
|
|
|
86
|
+|------|------|
|
|
|
87
|
+| shop_id | 按店汇总、明细过滤 |
|
|
|
88
|
+| shop_name | 明细 **店铺名称** 列(申请快照;汇总列表 **优先** 读 `biz_shop` 当前名) |
|
|
|
89
|
+| withdraw_amount | 汇总 **求和**、明细 **展示** |
|
|
|
90
|
+| withdraw_status | `1`待审核 `2`审核不通过 `3`提现完成 |
|
|
|
91
|
+| apply_time | 明细 **申请时间**;检索、排序 |
|
|
|
92
|
+| account_type / account_real_name / account_no_mask | 明细 **提现账号** 摘要 |
|
|
|
93
|
+| remark | 商家备注 |
|
|
|
94
|
+| process_remark | **提现处理说明** |
|
|
|
95
|
+
|
|
|
96
|
+**状态常量(`FinanceConstants`):**
|
|
|
97
|
+
|
|
|
98
|
+| withdraw_status | 文案 | 计入已提现 | 计入待审核 |
|
|
|
99
|
+|-----------------|------|------------|------------|
|
|
|
100
|
+| `1` | 待审核 | 否 | **是** |
|
|
|
101
|
+| `2` | 审核不通过 | 否 | 否 |
|
|
|
102
|
+| `3` | 提现完成 | **是** | 否 |
|
|
|
103
|
+
|
|
|
104
|
+**索引(已有):** `idx_shop_status_time (shop_id, withdraw_status, apply_time)`、`idx_status_time (withdraw_status, apply_time)` — 满足按店聚合与明细检索。
|
|
|
105
|
+
|
|
|
106
|
+### 2.2 店铺 `biz_shop`(汇总 · 展示)
|
|
|
107
|
+
|
|
|
108
|
+| 字段 | 用途 |
|
|
|
109
|
+|------|------|
|
|
|
110
|
+| shop_id | 主键 |
|
|
|
111
|
+| shop_name | 汇总 **店铺名称**;明细检索 **店名** 过滤(汇总列表) |
|
|
|
112
|
+| shop_avatar | 汇总 **店铺 LOGO** |
|
|
|
113
|
+| shop_status | `0` 开业 / `1` 停业 |
|
|
|
114
|
+| del_flag | `0` 正常;`2` 逻辑删除 |
|
|
|
115
|
+
|
|
|
116
|
+**汇总数据范围:**
|
|
|
117
|
+
|
|
|
118
|
+```sql
|
|
|
119
|
+-- 纳入:未删店(含从未提现,金额展示 0)
|
|
|
120
|
+-- 追加:已逻辑删除 且 存在提现单
|
|
|
121
|
+WHERE s.del_flag = '0'
|
|
|
122
|
+ OR EXISTS (SELECT 1 FROM biz_shop_withdraw wd WHERE wd.shop_id = s.shop_id LIMIT 1)
|
|
|
123
|
+```
|
|
|
124
|
+
|
|
|
125
|
+### 2.3 按店汇总 SQL 骨架
|
|
|
126
|
+
|
|
|
127
|
+```sql
|
|
|
128
|
+SELECT s.shop_id,
|
|
|
129
|
+ s.shop_name,
|
|
|
130
|
+ s.shop_avatar,
|
|
|
131
|
+ s.shop_status,
|
|
|
132
|
+ s.del_flag,
|
|
|
133
|
+ IFNULL(wd.withdrawn_amount, 0) AS withdrawnAmount,
|
|
|
134
|
+ IFNULL(wd.pending_audit_amount, 0) AS pendingAuditAmount
|
|
|
135
|
+FROM biz_shop s
|
|
|
136
|
+LEFT JOIN (
|
|
|
137
|
+ SELECT shop_id,
|
|
|
138
|
+ SUM(CASE WHEN withdraw_status = '3' THEN withdraw_amount ELSE 0 END) AS withdrawn_amount,
|
|
|
139
|
+ SUM(CASE WHEN withdraw_status = '1' THEN withdraw_amount ELSE 0 END) AS pending_audit_amount
|
|
|
140
|
+ FROM biz_shop_withdraw
|
|
|
141
|
+ GROUP BY shop_id
|
|
|
142
|
+) wd ON wd.shop_id = s.shop_id
|
|
|
143
|
+WHERE (s.del_flag = '0' OR wd.shop_id IS NOT NULL)
|
|
|
144
|
+ /* 可选:AND s.shop_name LIKE ... */
|
|
|
145
|
+ORDER BY pending_audit_amount DESC, s.shop_id DESC
|
|
|
146
|
+```
|
|
|
147
|
+
|
|
|
148
|
+> **验收(WS-A3/A4):** 单店 `withdrawnAmount` = 该店 `withdraw_status='3'` 的 `SUM(withdraw_amount)`;`pendingAuditAmount` 同理 `status='1'`。
|
|
|
149
|
+
|
|
|
150
|
+### 2.4 单店明细 SQL 骨架
|
|
|
151
|
+
|
|
|
152
|
+```sql
|
|
|
153
|
+SELECT apply_time,
|
|
|
154
|
+ shop_name,
|
|
|
155
|
+ account_type, account_real_name, account_no_mask,
|
|
|
156
|
+ withdraw_amount, remark, withdraw_status, process_remark
|
|
|
157
|
+FROM biz_shop_withdraw
|
|
|
158
|
+WHERE shop_id = #{shopId}
|
|
|
159
|
+ /* 可选:withdraw_status、apply_time 区间 */
|
|
|
160
|
+ORDER BY apply_time DESC, withdraw_id DESC
|
|
|
161
|
+```
|
|
|
162
|
+
|
|
|
163
|
+> 与 **`selectSellerList`**(商家提现记录)、**`selectPlatformList`**(提现审核)**同一数据源**;本接口 **固定** `shop_id`。
|
|
|
164
|
+
|
|
|
165
|
+---
|
|
|
166
|
+
|
|
|
167
|
+## 3. 接口设计
|
|
|
168
|
+
|
|
|
169
|
+**基路径:** `/agri/finance/withdrawSummary`
|
|
|
170
|
+**上下文:** **无** 店铺请求头
|
|
|
171
|
+**写接口:** **无**
|
|
|
172
|
+
|
|
|
173
|
+### 3.1 接口一览
|
|
|
174
|
+
|
|
|
175
|
+| 方法 | 路径 | 权限 | 说明 |
|
|
|
176
|
+|------|------|------|------|
|
|
|
177
|
+| GET | `/shops` | `agri:finance:withdrawSummary:summary` | 店铺提现汇总(分页) |
|
|
|
178
|
+| GET | `/details` | `agri:finance:withdrawSummary:detail` | 单店提现明细(分页) |
|
|
|
179
|
+
|
|
|
180
|
+> v1 可合并为 `agri:finance:withdrawSummary:query`;需求允许 **分权**(§8)。
|
|
|
181
|
+
|
|
|
182
|
+### 3.2 店铺提现汇总 `GET /shops`
|
|
|
183
|
+
|
|
|
184
|
+**Query(PlatformWithdrawSummaryQuery):**
|
|
|
185
|
+
|
|
|
186
|
+| 参数 | 类型 | 必填 | 说明 |
|
|
|
187
|
+|------|------|------|------|
|
|
|
188
|
+| pageNum | int | 是 | 页码 |
|
|
|
189
|
+| pageSize | int | 是 | 每页条数 |
|
|
|
190
|
+| shopName | string | 否 | 店铺名称 **模糊** |
|
|
|
191
|
+
|
|
|
192
|
+**定稿默认排序:** `pendingAuditAmount DESC, shopId DESC`(待审核金额降序,便于运营优先关注)。
|
|
|
193
|
+
|
|
|
194
|
+**行 VO(PlatformWithdrawSummaryRowVO):**
|
|
|
195
|
+
|
|
|
196
|
+| 字段 | 来源 | 说明 |
|
|
|
197
|
+|------|------|------|
|
|
|
198
|
+| shopId | `biz_shop` | 下钻明细时传入 |
|
|
|
199
|
+| shopName | `biz_shop.shop_name` | 当前店名 |
|
|
|
200
|
+| shopAvatar | `biz_shop.shop_avatar` | LOGO |
|
|
|
201
|
+| shopStatus | `biz_shop.shop_status` | `0`/`1` |
|
|
|
202
|
+| shopStatusText | 服务层 | 开业/停业/已删除 |
|
|
|
203
|
+| deleted | 服务层 | `del_flag='2'` |
|
|
|
204
|
+| withdrawnAmount | SUM withdraw `status=3` | **已提现金额** |
|
|
|
205
|
+| pendingAuditAmount | SUM withdraw `status=1` | **待审核金额** |
|
|
|
206
|
+
|
|
|
207
|
+**无提现记录店:** 两金额返回 `0.00`(WS-A11)。
|
|
|
208
|
+
|
|
|
209
|
+### 3.3 提现明细 `GET /details`
|
|
|
210
|
+
|
|
|
211
|
+**Query(PlatformWithdrawSummaryDetailQuery):**
|
|
|
212
|
+
|
|
|
213
|
+| 参数 | 类型 | 必填 | 说明 |
|
|
|
214
|
+|------|------|------|------|
|
|
|
215
|
+| pageNum | int | 是 | 页码 |
|
|
|
216
|
+| pageSize | int | 是 | 每页条数 |
|
|
|
217
|
+| shopId | long | **是** | 汇总行传入;**固定单店** |
|
|
|
218
|
+| withdrawStatus | string | 否 | `1`/`2`/`3`;空=全部 |
|
|
|
219
|
+| beginApplyTime | date | 否 | 申请时间起(含 `00:00:00`) |
|
|
|
220
|
+| endApplyTime | date | 否 | 申请时间止(含 `23:59:59`) |
|
|
|
221
|
+
|
|
|
222
|
+**固定排序:** `apply_time DESC, withdraw_id DESC`。
|
|
|
223
|
+
|
|
|
224
|
+**行 VO(PlatformWithdrawSummaryDetailRowVO):**
|
|
|
225
|
+
|
|
|
226
|
+| 字段 | 说明 |
|
|
|
227
|
+|------|------|
|
|
|
228
|
+| applyTime | 申请时间 |
|
|
|
229
|
+| shopName | 店铺名称(快照) |
|
|
|
230
|
+| accountSummary | 提现账号摘要(`FinanceSupport.buildAccountSummary`) |
|
|
|
231
|
+| withdrawAmount | 提现金额 |
|
|
|
232
|
+| remark | 商家备注 |
|
|
|
233
|
+| withdrawStatus / withdrawStatusText | 状态码 + 文案 |
|
|
|
234
|
+| processRemark | 提现处理说明;待审核为 **null** 或 **—**(前端) |
|
|
|
235
|
+
|
|
|
236
|
+**与提现审核列表差异:**
|
|
|
237
|
+
|
|
|
238
|
+| 字段 | 提现审核 `/withdrawAudit/list` | 本模块 `/details` |
|
|
|
239
|
+|------|----------------------------------|-------------------|
|
|
|
240
|
+| withdrawNo | **有** | **非本期**(需求 §10) |
|
|
|
241
|
+| withdrawId / 操作 | **有** | **无** |
|
|
|
242
|
+| shopId 过滤 | 全平台 | **必填** |
|
|
|
243
|
+
|
|
|
244
|
+**与商家 `/withdraw/list` 对账:** 同一 `shopId` + 相同筛选条件下,**申请时间、金额、状态、处理说明、账号摘要** **须一致**(WS-A6)。
|
|
|
245
|
+
|
|
|
246
|
+### 3.4 与兄弟接口对照
|
|
|
247
|
+
|
|
|
248
|
+| 能力 | 本模块 | 提现审核 | 商家提现管理 |
|
|
|
249
|
+|------|--------|----------|--------------|
|
|
|
250
|
+| 按店已提现/待审 | `/shops` | — | — |
|
|
|
251
|
+| 全平台逐单 | — | `/list` | — |
|
|
|
252
|
+| 单店逐单 | `/details` | — | `/list` |
|
|
|
253
|
+| 审核 | — | `/approve` `/reject` | — |
|
|
|
254
|
+| 提交 | — | — | `/submit` |
|
|
|
255
|
+
|
|
|
256
|
+---
|
|
|
257
|
+
|
|
|
258
|
+## 4. 业务规则(实现)
|
|
|
259
|
+
|
|
|
260
|
+| 编号 | 需求规则 | 实现要点 |
|
|
|
261
|
+|------|----------|----------|
|
|
|
262
|
+| WS-A1 | 只读 | Controller **仅 GET** |
|
|
|
263
|
+| WS-A2 | 全平台 | `/shops` **无** shopId 限制 |
|
|
|
264
|
+| WS-A3 | 已提现 = 完成态之和 | SQL `CASE status='3'` |
|
|
|
265
|
+| WS-A4 | 待审核 = 待审态之和 | SQL `CASE status='1'` |
|
|
|
266
|
+| WS-A5 | 驳回不计入汇总 | 聚合 **不含** `status='2'` |
|
|
|
267
|
+| WS-A6 | 明细与审核/商家一致 | 复用 enrich 逻辑(账号/状态文案) |
|
|
|
268
|
+| WS-A7 | 店名/LOGO 读 shop | 汇总 JOIN `biz_shop` |
|
|
|
269
|
+| WS-A8 | 明细检索 | `withdrawStatus` + `begin/endApplyTime` |
|
|
|
270
|
+| WS-A9 | 汇总检索 | `shopName LIKE` |
|
|
|
271
|
+| WS-A10 | 不写审核 | **无** approve/reject |
|
|
|
272
|
+| WS-A11 | 无提现店仍展示 | LEFT JOIN 聚合;NULL→0 |
|
|
|
273
|
+
|
|
|
274
|
+**店铺状态文案:** 复用 `FinanceSupport.toShopStatusText(shopStatus, delFlag)`(与 **资金概览** 一致)。
|
|
|
275
|
+
|
|
|
276
|
+**明细 enrich(与 `listPlatformWithdraws` 对齐):**
|
|
|
277
|
+
|
|
|
278
|
+```text
|
|
|
279
|
+accountTypeText ← toAccountTypeText
|
|
|
280
|
+withdrawStatusText ← toWithdrawStatusText
|
|
|
281
|
+accountSummary ← buildAccountSummary(type, realName, mask)
|
|
|
282
|
+```
|
|
|
283
|
+
|
|
|
284
|
+---
|
|
|
285
|
+
|
|
|
286
|
+## 5. 权限与菜单
|
|
|
287
|
+
|
|
|
288
|
+| 权限 | 说明 |
|
|
|
289
|
+|------|------|
|
|
|
290
|
+| `agri:finance:withdrawSummary:summary` | 店铺汇总列表 |
|
|
|
291
|
+| `agri:finance:withdrawSummary:detail` | 提现明细 |
|
|
|
292
|
+
|
|
|
293
|
+| 菜单 | menu_id | path | 父菜单 |
|
|
|
294
|
+|------|---------|------|--------|
|
|
|
295
|
+| 财务管理(平台) | 7600 | finance | — |
|
|
|
296
|
+| 提现审核 | 7610 | withdrawAudit | 7600 |
|
|
|
297
|
+| 资金概览 | 7620 | fundOverview | 7600 |
|
|
|
298
|
+| **提现汇总** | **7630** | **withdrawSummary** | **7600** |
|
|
|
299
|
+
|
|
|
300
|
+脚本:[`sql/biz_platform_withdraw_summary_menu.sql`](../../../../sql/biz_platform_withdraw_summary_menu.sql)(待建)。
|
|
|
301
|
+
|
|
|
302
|
+---
|
|
|
303
|
+
|
|
|
304
|
+## 6. 测试要点
|
|
|
305
|
+
|
|
|
306
|
+| 编号 | 场景 | 预期 |
|
|
|
307
|
+|------|------|------|
|
|
|
308
|
+| T1 | 从未提现的店 | 汇总行存在;两金额 **0** |
|
|
|
309
|
+| T2 | 提交 100 待审 | 该店 `pendingAuditAmount=100` |
|
|
|
310
|
+| T3 | 审核通过 | `withdrawnAmount+100`;`pendingAuditAmount-100` |
|
|
|
311
|
+| T4 | 审核驳回 | 汇总两列 **不变**;明细 **status=2** |
|
|
|
312
|
+| T5 | shops 店名检索 | 仅匹配店名行 |
|
|
|
313
|
+| T6 | details shopId 必填 | 缺参 **400/业务提示** |
|
|
|
314
|
+| T7 | details 时间/状态筛选 | 与 SQL 条件一致 |
|
|
|
315
|
+| T8 | 与商家 list 对账 | 同 shopId 明细 **一致** |
|
|
|
316
|
+| T9 | 与 withdrawAudit 对账 | 同店待审金额 = 审核列表该店待审 **SUM** |
|
|
|
317
|
+| T10 | 已删店有历史单 | 汇总仍展示;`deleted=true` |
|
|
|
318
|
+
|
|
|
319
|
+**建议测试类:** `ShopFundServiceImplTest`(汇总/明细)、`PlatformWithdrawSummaryControllerTest`(MockMvc)。
|
|
|
320
|
+
|
|
|
321
|
+---
|
|
|
322
|
+
|
|
|
323
|
+## 7. 实现状态
|
|
|
324
|
+
|
|
|
325
|
+| 项 | 状态 |
|
|
|
326
|
+|----|------|
|
|
|
327
|
+| DDL(withdraw / shop) | **已有** |
|
|
|
328
|
+| `PlatformWithdrawSummaryController` | **待建** |
|
|
|
329
|
+| `IShopFundService` 汇总/明细方法 | **待扩展** |
|
|
|
330
|
+| `BizShopWithdrawMapper` 汇总/明细 SQL | **待扩展** |
|
|
|
331
|
+| VO/DTO | **待建** |
|
|
|
332
|
+| 菜单 SQL 7630 | **待建** |
|
|
|
333
|
+| ruoyi-ui 提现汇总页 | **待建** |
|
|
|
334
|
+| 汇总列排序 / 跳转审核 / 导出 | **非本期** |
|
|
|
335
|
+
|
|
|
336
|
+---
|
|
|
337
|
+
|
|
|
338
|
+## 8. 版本记录
|
|
|
339
|
+
|
|
|
340
|
+| 版本 | 说明 |
|
|
|
341
|
+|------|------|
|
|
|
342
|
+| **v1.0** | 首版:对齐《提现汇总功能需求》v1.0;关联提现审核/资金概览/商家提现;简练 DB/接口设计;RuoYi v3.9.2 + MySQL 5.7.39 |
|
|
|
343
|
+
|
|
|
344
|
+---
|
|
|
345
|
+
|
|
|
346
|
+*文档版本:v1.0 · 依据《提现汇总功能需求.md》v1.0*
|