feat: 基本实现拆单收货

This commit is contained in:
2026-07-29 15:53:23 +08:00
parent c443109869
commit 1b45f9dac6
92 changed files with 3223 additions and 22968 deletions
+119 -41
View File
@@ -17,7 +17,6 @@ model User {
updatedAt DateTime @updatedAt
carts CartItem[]
orders Order[]
}
model SupplierProduct {
@@ -44,7 +43,6 @@ model SupplierProduct {
updatedAt DateTime @updatedAt
carts CartItem[]
orderItems OrderItem[]
@@map("supplier_product")
}
@@ -56,6 +54,8 @@ model SupplierInfo {
supplierName String
clientId String
clientSecret String
supplierApiUrl String?
sroNo String?
createTime DateTime @default(now())
updateTime DateTime @updatedAt
creator String?
@@ -81,35 +81,6 @@ model CartItem {
@@unique([userId, productId, skuText])
}
model Order {
id Int @id @default(autoincrement())
orderNo String @unique
userId Int
status OrderStatus @default(PENDING_PAYMENT)
totalAmount Decimal @db.Decimal(10, 2)
payType PayType?
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
items OrderItem[]
}
model OrderItem {
id Int @id @default(autoincrement())
orderId Int
productId Int
name String
imageUrl String?
skuText String?
price Decimal @db.Decimal(10, 2)
quantity Int
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
product SupplierProduct @relation(fields: [productId], references: [id])
}
model SupplierOrderMain {
id Int @id @default(autoincrement())
orderId String @unique
@@ -130,6 +101,8 @@ model SupplierOrderMain {
logisticsOrderId String?
crrgBsnNm String?
orderState Int @default(0)
isSplit Int @default(0)
splitTime DateTime?
totalPrice Decimal @default(0) @db.Decimal(10, 2)
wPayOrAPay Decimal @default(0) @db.Decimal(10, 2)
pointsPrice Decimal @default(0) @db.Decimal(10, 2)
@@ -202,16 +175,121 @@ model SupplierOrderProduct {
@@map("supplier_order_product")
}
enum OrderStatus {
PENDING_PAYMENT
PAID
SHIPPED
COMPLETED
CANCELLED
model SupplierPointsLedger {
id Int @id @default(autoincrement())
ledgerNo String @unique
supplierId String
userId String
mainOrderId String?
subOrderId String?
bizType Int
direction Int
points Decimal @db.Decimal(10, 2)
beforePoints Decimal? @db.Decimal(10, 2)
afterPoints Decimal? @db.Decimal(10, 2)
remark String? @db.Text
createTime DateTime @default(now())
updateTime DateTime @updatedAt
deleted Int @default(0)
@@index([supplierId, userId])
@@index([mainOrderId])
@@index([subOrderId])
@@map("supplier_points_ledger")
}
enum PayType {
POINTS
WECHAT
ALIPAY
model SupplierOrderPushLog {
id Int @id @default(autoincrement())
supplierId String
userId String?
mainOrderId String?
orderId String? @db.VarChar(1000)
orderType Int?
apiPath String
requestBody Json?
responseBody Json?
httpStatus Int?
resultCode Int?
pushStatus Int @default(0)
retryCount Int @default(0)
errorMessage String? @db.Text
lastPushTime DateTime?
nextRetryTime DateTime?
createTime DateTime @default(now())
updateTime DateTime @updatedAt
deleted Int @default(0)
@@index([supplierId, mainOrderId])
@@index([orderType, pushStatus])
@@index([nextRetryTime])
@@map("supplier_order_push_log")
}
model SupplierOrderOperateLog {
id Int @id @default(autoincrement())
supplierId String
userId String?
mainOrderId String?
subOrderId String?
operateType Int
beforeState Int?
afterState Int?
beforeSplit Int?
afterSplit Int?
remark String? @db.Text
operator String?
createTime DateTime @default(now())
deleted Int @default(0)
@@index([supplierId, mainOrderId])
@@index([subOrderId])
@@index([operateType])
@@map("supplier_order_operate_log")
}
model SupplierRefundExchange {
id Int @id @default(autoincrement())
serviceOrderId String @unique
supplierId String
userId String?
mainOrderId String?
subOrderId String?
serviceType Int
serviceState Int @default(0)
amount Decimal @default(0) @db.Decimal(10, 2)
reason String? @db.Text
requestBody Json?
createTime DateTime @default(now())
updateTime DateTime @updatedAt
deleted Int @default(0)
@@index([supplierId, mainOrderId])
@@index([subOrderId])
@@index([serviceType, serviceState])
@@map("supplier_refund_exchange")
}
model SupplierInvoiceInfo {
id Int @id @default(autoincrement())
invoiceBizId String @unique
supplierId String
userId String?
mainOrderId String?
subOrderId String?
settlementId String?
invoiceCode String?
invoiceIds String? @db.VarChar(1000)
orderIds String? @db.VarChar(1000)
invoiceStatus Int @default(0)
fileId String?
filePath String?
requestBody Json?
createTime DateTime @default(now())
updateTime DateTime @updatedAt
deleted Int @default(0)
@@index([supplierId, mainOrderId])
@@index([settlementId])
@@index([invoiceCode])
@@map("supplier_invoice_info")
}