feat(distribution): 分销站点消息中心与钱包提现多租户独立分支隔离
- 新增 000070 数据库迁移:支持 chat_conversations、wallet_accounts、wallet_ledger、withdrawal_requests 按 distribution_site_id 隔离 - 消息中心:会话列表、未读数统计、站点专属客服及订单群聊与主站实现双向完全隔离 - 资金账户与提现:独立按 (user_id, distribution_site_id) 建账,分销订单自动结算至对应分站钱包,提现与流水相互独立 - 前台界面:Axios 自动透传 X-Distribution-Site-Code,钱包、提现与消息页面呈现分站专属标牌与独立说明
This commit is contained in:
@@ -273,15 +273,25 @@ func (r *Repository) ConfirmPaidFromChannelTx(tx *gorm.DB, orderID uint64) (uint
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// 拉租客进发布群(替代原来的建订单群)
|
||||
// 分销订单创建独立分站群聊;主站订单拉租客进发布群
|
||||
conversationID := uint64(0)
|
||||
if err := chat.AddRenterToListingConversation(tx, listing.ID, order.RenterID, order.OrderNo); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
// 查询发布群ID用于返回
|
||||
var listingConv model.ChatConversation
|
||||
if err := tx.Where("listing_id = ?", listing.ID).First(&listingConv).Error; err == nil {
|
||||
conversationID = listingConv.ID
|
||||
if order.DistributionSiteID != nil && *order.DistributionSiteID > 0 {
|
||||
orderConv, err := chat.EnsureOrderConversation(tx, *order)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if orderConv != nil {
|
||||
conversationID = orderConv.ID
|
||||
}
|
||||
} else {
|
||||
if err := chat.AddRenterToListingConversation(tx, listing.ID, order.RenterID, order.OrderNo); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
// 查询发布群ID用于返回
|
||||
var listingConv model.ChatConversation
|
||||
if err := tx.Where("listing_id = ?", listing.ID).First(&listingConv).Error; err == nil {
|
||||
conversationID = listingConv.ID
|
||||
}
|
||||
}
|
||||
|
||||
if isPlatformHandoffOrder(*order) {
|
||||
|
||||
Reference in New Issue
Block a user