From 8af6f539bf42ee657bec4cc824118ff56d043811 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Thu, 17 Sep 2026 19:28:00 +0800 Subject: [PATCH] fix(wallet): widen bank_card_number columns and cap input length Module 3 step 1 (output application) had no length limit on the bank card number fields in either the frontend input or the backend DTO. A long test value overflowed VARCHAR(30) and the MySQL update failed with 'Data truncation: Data too long for column bank_card_number', returning a 500 and blocking the whole module 3 flow (and therefore module 4/5 downstream). - widen wallet_application.bank_card_number/input_bank_card_number, bank_received_wallet_application.bank_card_number, wallet_registration_request.bank_card_number, and central_wallet_registration.bank_card_number from VARCHAR(30) to VARCHAR(64) in schema.sql (already applied directly to the running dev database via ALTER TABLE) - add @Size(max = 64) to WalletApplicationRequest's card number fields - add maxlength=64 to the bank card input on the wallet open step --- .../interfaces/rest/dto/WalletApplicationRequest.java | 3 +++ src/main/resources/schema.sql | 10 +++++----- src/test/resources/schema.sql | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/yau/digitalrmb/walletopening/interfaces/rest/dto/WalletApplicationRequest.java b/src/main/java/com/yau/digitalrmb/walletopening/interfaces/rest/dto/WalletApplicationRequest.java index d6e43a6..73fd882 100644 --- a/src/main/java/com/yau/digitalrmb/walletopening/interfaces/rest/dto/WalletApplicationRequest.java +++ b/src/main/java/com/yau/digitalrmb/walletopening/interfaces/rest/dto/WalletApplicationRequest.java @@ -5,6 +5,7 @@ import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.math.BigDecimal; @Getter @@ -20,6 +21,7 @@ public class WalletApplicationRequest { private String inputPhone; @Schema(description = "身份证号", example = "110101199001011234") private String inputIdNumber; + @Size(max = 64, message = "银行卡号长度不能超过64位") @Schema(description = "银行卡号", example = "6216610100001234567") private String inputBankCardNumber; @Schema(description = "面签照片路径", example = "/2026/8/11/5cae82501de84bfba3693477ac55140c.pdf") @@ -28,6 +30,7 @@ public class WalletApplicationRequest { private String idNumber; @Schema(description = "开户银行", example = "中国银行北京分行") private String accountBank; + @Size(max = 64, message = "银行卡号长度不能超过64位") @Schema(description = "银行卡号(确认)", example = "6216610100001234567") private String bankCardNumber; @Schema(description = "账户余额", example = "500000.00") diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index a02f362..d810c8b 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -930,13 +930,13 @@ CREATE TABLE IF NOT EXISTS wallet_application ( id_number VARCHAR(20), phone VARCHAR(20), account_bank VARCHAR(100), - bank_card_number VARCHAR(30), + bank_card_number VARCHAR(64), account_balance DECIMAL(20, 2), selected_bank VARCHAR(100), wallet_type VARCHAR(20), input_phone VARCHAR(20), input_id_number VARCHAR(20), - input_bank_card_number VARCHAR(30), + input_bank_card_number VARCHAR(64), signature_photo_path VARCHAR(255), face_recognition_status INTEGER, application_id VARCHAR(64), @@ -964,7 +964,7 @@ CREATE TABLE IF NOT EXISTS bank_received_wallet_application ( user_name VARCHAR(100), id_number VARCHAR(20), phone VARCHAR(20), - bank_card_number VARCHAR(30), + bank_card_number VARCHAR(64), wallet_type VARCHAR(20), apply_time VARCHAR(20), created_at TIMESTAMP NOT NULL, @@ -1083,7 +1083,7 @@ CREATE TABLE IF NOT EXISTS wallet_registration_request ( wallet_id VARCHAR(128), user_name VARCHAR(100), id_number VARCHAR(20), - bank_card_number VARCHAR(30), + bank_card_number VARCHAR(64), wallet_type VARCHAR(20), org_code VARCHAR(20), cert_serial VARCHAR(64), @@ -1113,7 +1113,7 @@ CREATE TABLE IF NOT EXISTS central_wallet_registration ( wallet_id VARCHAR(128), user_name VARCHAR(100), id_number VARCHAR(20), - bank_card_number VARCHAR(30), + bank_card_number VARCHAR(64), wallet_type VARCHAR(20), org_code VARCHAR(20), cert_serial VARCHAR(64), diff --git a/src/test/resources/schema.sql b/src/test/resources/schema.sql index 4996196..fb43be5 100644 --- a/src/test/resources/schema.sql +++ b/src/test/resources/schema.sql @@ -536,9 +536,9 @@ CREATE TABLE IF NOT EXISTS wallet_application ( phone VARCHAR(20), input_phone VARCHAR(20), input_id_number VARCHAR(20), - input_bank_card_number VARCHAR(30), + input_bank_card_number VARCHAR(64), account_bank VARCHAR(100), - bank_card_number VARCHAR(30), + bank_card_number VARCHAR(64), account_balance DECIMAL(20,2), selected_bank VARCHAR(100), wallet_type VARCHAR(20),