接入分销订单支付退款与站点隔离

This commit is contained in:
yml2213
2026-09-05 10:52:36 +08:00
parent 2ffa7a89b1
commit ac67a91438
13 changed files with 299 additions and 27 deletions
+2 -1
View File
@@ -142,7 +142,8 @@ type ActiveDisputeDTO struct {
}
type CreateRequest struct {
ListingID uint64 `json:"listing_id" binding:"required"`
ListingID uint64 `json:"listing_id" binding:"required"`
DistributionSiteCode string `json:"distribution_site_code" binding:"omitempty,max=64"`
}
type SubmitHandoffRequest struct {
@@ -7,6 +7,7 @@ import (
"hfb_sys/backend/internal/model"
"hfb_sys/backend/internal/modules/chat"
"hfb_sys/backend/internal/modules/distribution"
"hfb_sys/backend/internal/modules/notification"
"hfb_sys/backend/internal/modules/rentergrowth"
@@ -50,6 +51,10 @@ func (r *Repository) Create(ctx context.Context, renterID uint64, req CreateRequ
}
rentHours := estimateOrderDurationHours(snapshot)
pricing := buildOrderPricing(listing, account)
distributionSite, distributionRule, err := distribution.ResolveOrderSourceTx(tx, req.DistributionSiteCode, listing.ID, account.ID, time.Now())
if err != nil {
return err
}
rentOriginalAmountCent := pricing.RentAmountCent
growthSnapshot, err := rentergrowth.SnapshotForUser(tx, renterID)
if err != nil {
@@ -97,6 +102,11 @@ func (r *Repository) Create(ctx context.Context, renterID uint64, req CreateRequ
SettlementStatus: settlementStatusUnsettled,
OfflineSettlementStatus: offlineSettlementStatusNone,
}
if distributionSite != nil && distributionRule != nil {
order.DistributionSiteID = &distributionSite.ID
order.DistributionMode = distributionRule.Mode
order.DistributionRuleVersionID = &distributionRule.ID
}
if err := tx.Create(&order).Error; err != nil {
return err
}