feat(store): v4.0.18 门店多收款账户与子账号继承二维码

C 端门店列表拼接省市区县地址;门店多银行账户与默认打款账户;子账号独立 sa_ 关联码及统计维度;同步 v4.0.18 开发文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 15:56:16 +08:00
parent a9c466930d
commit 4bdb09068c
26 changed files with 1193 additions and 102 deletions
+24
View File
@@ -1278,6 +1278,7 @@ model PartnerAccount {
stores Store[]
bills PartnerBill[]
assocUsers User[] @relation("UserPartnerAssoc")
assocSubUsers User[] @relation("UserSubAccountAssoc")
userNotes PartnerUserNote[]
assocQrcodeResource CommonResource? @relation("PartnerAssocQrcode", fields: [assocQrcodeResourceId], references: [id], onDelete: SetNull)
activityPoster ActivityPoster? @relation(fields: [activityPosterId], references: [id], onDelete: SetNull)
@@ -1457,6 +1458,7 @@ model User {
sourceLabel String? @map("source_label") @db.VarChar(128)
referrerUserId BigInt? @map("referrer_user_id") @db.UnsignedBigInt
assocPartnerAccountId BigInt? @map("assoc_partner_account_id") @db.UnsignedBigInt
assocSubAccountId BigInt? @map("assoc_sub_account_id") @db.UnsignedBigInt
assocBoundAt DateTime? @map("assoc_bound_at") @db.DateTime(3)
createdAt DateTime @default(now()) @map("created_at") @db.DateTime(3)
updatedAt DateTime @updatedAt @map("updated_at") @db.DateTime(3)
@@ -1466,6 +1468,7 @@ model User {
referrer User? @relation("UserReferrer", fields: [referrerUserId], references: [id], onDelete: SetNull)
referrers User[] @relation("UserReferrer")
assocPartner PartnerAccount? @relation("UserPartnerAssoc", fields: [assocPartnerAccountId], references: [id], onDelete: SetNull)
assocSubAccount PartnerAccount? @relation("UserSubAccountAssoc", fields: [assocSubAccountId], references: [id], onDelete: SetNull)
partnerNotes PartnerUserNote[]
avatar CommonResource? @relation("UserAvatar", fields: [avatarResourceId], references: [id], onDelete: SetNull)
addresses UserAddress[]
@@ -1482,6 +1485,7 @@ model User {
@@index([sourceType, sourceRefId])
@@index([referrerUserId])
@@index([assocPartnerAccountId])
@@index([assocSubAccountId])
@@index([mergedIntoUserId])
@@index([wxOpenId])
@@index([isTest])
@@ -1598,6 +1602,7 @@ model Store {
packageChangeRequests StorePackageChangeRequest[]
infoChangeRequests StoreInfoChangeRequest[]
categoryLinks StoreCategoryLink[]
bankAccounts StoreBankAccount[]
@@index([cityId, status])
@@index([partnerAccountId])
@@ -1607,6 +1612,25 @@ model Store {
@@map("store_store")
}
/// 门店收款银行账户(一个门店可维护多个,is_default 为打款默认账户)
model StoreBankAccount {
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
storeId BigInt @map("store_id") @db.UnsignedBigInt
bankAccountName String @map("bank_account_name") @db.VarChar(64)
bankAccountNo String @map("bank_account_no") @db.VarChar(32)
bankBranch String? @map("bank_branch") @db.VarChar(128)
isDefault Int @default(0) @map("is_default") @db.TinyInt
status AccountStatus @default(ACTIVE)
sortOrder Int @default(0) @map("sort_order")
createdAt DateTime @default(now()) @map("created_at") @db.DateTime(3)
updatedAt DateTime @updatedAt @map("updated_at") @db.DateTime(3)
store Store @relation(fields: [storeId], references: [id], onDelete: Cascade)
@@index([storeId, status])
@@map("store_bank_account")
}
/// Store visibility whitelist phones (match by bound user phone)
model StoreVisibilityPhone {
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt