feat(fund): 备用金账户编号改为带用户名的可读编号
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- 113_fund_account_no_readable.sql —— 备用金账户编号改为可读的 FA-<用户名>。
|
||||
--
|
||||
-- 背景:历史编号是 FA + 10 位随机十六进制(如 FA7683D6B58B),
|
||||
-- 在「备用金」列表里无法一眼对应到具体客服。
|
||||
-- 新规则:FA-<大写用户名>,例如 FA-KF_2、FA-JIAJIALI;
|
||||
-- 同一用户名重名时追加 -2、-3。
|
||||
|
||||
WITH base AS (
|
||||
SELECT
|
||||
fa.id,
|
||||
'FA-' || COALESCE(
|
||||
NULLIF(
|
||||
trim(
|
||||
both '_' FROM upper(
|
||||
regexp_replace(COALESCE(NULLIF(au.username, ''), 'account-' || fa.id), '[^A-Za-z0-9_]+', '_', 'g')
|
||||
)
|
||||
),
|
||||
''
|
||||
),
|
||||
'ACCOUNT-' || fa.id
|
||||
) AS base_no
|
||||
FROM fund_accounts fa
|
||||
LEFT JOIN admin_users au ON au.id = fa.owner_admin_user_id
|
||||
),
|
||||
numbered AS (
|
||||
SELECT
|
||||
id,
|
||||
base_no,
|
||||
row_number() OVER (PARTITION BY base_no ORDER BY id) AS rn
|
||||
FROM base
|
||||
)
|
||||
UPDATE fund_accounts fa
|
||||
SET account_no = CASE WHEN n.rn = 1 THEN n.base_no ELSE n.base_no || '-' || n.rn END
|
||||
FROM numbered n
|
||||
WHERE fa.id = n.id;
|
||||
Reference in New Issue
Block a user