实现分销网后台基础功能与独立前端
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
package distribution
|
||||
|
||||
import "time"
|
||||
|
||||
type SiteDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
SiteCode string `json:"site_code"`
|
||||
SiteName string `json:"site_name"`
|
||||
Domain string `json:"domain"`
|
||||
Status string `json:"status"`
|
||||
DisplayAccountEnabled bool `json:"display_account_enabled"`
|
||||
DefaultSupportGroupID *uint64 `json:"default_support_group_id,omitempty"`
|
||||
TaxEnabled bool `json:"tax_enabled"`
|
||||
TaxRateBPS int64 `json:"tax_rate_bps"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type CreateSiteRequest struct {
|
||||
SiteCode string `json:"site_code" binding:"required,max=64"`
|
||||
SiteName string `json:"site_name" binding:"required,max=128"`
|
||||
Domain string `json:"domain" binding:"required,max=255"`
|
||||
DisplayAccountEnabled *bool `json:"display_account_enabled"`
|
||||
DefaultSupportGroupID *uint64 `json:"default_support_group_id"`
|
||||
TaxEnabled *bool `json:"tax_enabled"`
|
||||
TaxRateBPS *int64 `json:"tax_rate_bps"`
|
||||
}
|
||||
|
||||
type UpdateSiteRequest struct {
|
||||
SiteName *string `json:"site_name"`
|
||||
Domain *string `json:"domain"`
|
||||
Status *string `json:"status"`
|
||||
DisplayAccountEnabled *bool `json:"display_account_enabled"`
|
||||
DefaultSupportGroupID *uint64 `json:"default_support_group_id"`
|
||||
TaxEnabled *bool `json:"tax_enabled"`
|
||||
TaxRateBPS *int64 `json:"tax_rate_bps"`
|
||||
}
|
||||
|
||||
type RuleDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
SiteID *uint64 `json:"site_id,omitempty"`
|
||||
Mode string `json:"mode"`
|
||||
Version int `json:"version"`
|
||||
Status string `json:"status"`
|
||||
PlatformReceiveRatio float64 `json:"platform_receive_ratio"`
|
||||
PlatformSellRatio float64 `json:"platform_sell_ratio"`
|
||||
DistributorReceiveRatio float64 `json:"distributor_receive_ratio"`
|
||||
DistributorSellRatio float64 `json:"distributor_sell_ratio"`
|
||||
DistributorARatio float64 `json:"distributor_a_ratio"`
|
||||
DistributorBRatio float64 `json:"distributor_b_ratio"`
|
||||
ServiceFeeValue float64 `json:"service_fee_value"`
|
||||
ServiceFeeUnit string `json:"service_fee_unit"`
|
||||
PaymentFeeBPS int64 `json:"payment_fee_bps"`
|
||||
TaxEnabled bool `json:"tax_enabled"`
|
||||
TaxRateBPS int64 `json:"tax_rate_bps"`
|
||||
EffectiveFrom time.Time `json:"effective_from"`
|
||||
EffectiveTo *time.Time `json:"effective_to,omitempty"`
|
||||
CreatedBy *uint64 `json:"created_by,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type CreateRuleRequest struct {
|
||||
SiteID *uint64 `json:"site_id"`
|
||||
Mode string `json:"mode" binding:"required"`
|
||||
PlatformReceiveRatio float64 `json:"platform_receive_ratio"`
|
||||
PlatformSellRatio float64 `json:"platform_sell_ratio"`
|
||||
DistributorReceiveRatio float64 `json:"distributor_receive_ratio"`
|
||||
DistributorSellRatio float64 `json:"distributor_sell_ratio"`
|
||||
DistributorARatio float64 `json:"distributor_a_ratio"`
|
||||
DistributorBRatio float64 `json:"distributor_b_ratio"`
|
||||
ServiceFeeValue float64 `json:"service_fee_value"`
|
||||
ServiceFeeUnit string `json:"service_fee_unit" binding:"required"`
|
||||
PaymentFeeBPS int64 `json:"payment_fee_bps"`
|
||||
TaxEnabled bool `json:"tax_enabled"`
|
||||
TaxRateBPS int64 `json:"tax_rate_bps"`
|
||||
EffectiveFrom time.Time `json:"effective_from"`
|
||||
}
|
||||
|
||||
type UpdateRuleStatusRequest struct {
|
||||
Status string `json:"status" binding:"required,oneof=draft active disabled"`
|
||||
}
|
||||
|
||||
type DistributionOrderDTO struct {
|
||||
OrderID uint64 `json:"order_id"`
|
||||
OrderNo string `json:"order_no"`
|
||||
SiteID uint64 `json:"site_id"`
|
||||
ListingID uint64 `json:"listing_id"`
|
||||
AccountID uint64 `json:"account_id"`
|
||||
OwnerID uint64 `json:"owner_id"`
|
||||
RenterID uint64 `json:"renter_id"`
|
||||
Status string `json:"status"`
|
||||
HandoffStatus string `json:"handoff_status"`
|
||||
RefundStatus string `json:"refund_status"`
|
||||
SettlementStatus string `json:"settlement_status"`
|
||||
DistributionMode string `json:"distribution_mode"`
|
||||
GrossPaidAmountCent int64 `json:"gross_paid_amount_cent"`
|
||||
RefundAmountCent int64 `json:"refund_amount_cent"`
|
||||
NetPaidAmountCent int64 `json:"net_paid_amount_cent"`
|
||||
PaymentFeeCent int64 `json:"payment_fee_cent"`
|
||||
ServiceFeeCent int64 `json:"service_fee_cent"`
|
||||
MarkupAmountCent int64 `json:"markup_amount_cent"`
|
||||
TaxAmountCent int64 `json:"tax_amount_cent"`
|
||||
SplitBaseAmountCent int64 `json:"split_base_amount_cent"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type DistributionOrderListQuery struct {
|
||||
SiteID uint64
|
||||
Kind string
|
||||
Status string
|
||||
Page int
|
||||
Size int
|
||||
}
|
||||
|
||||
type DistributionOrderPage struct {
|
||||
Items []DistributionOrderDTO `json:"items"`
|
||||
Total int64 `json:"total"`
|
||||
Page int `json:"page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}
|
||||
|
||||
type AccountDisplayDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
SiteID uint64 `json:"site_id"`
|
||||
AccountID uint64 `json:"account_id"`
|
||||
ListingID uint64 `json:"listing_id"`
|
||||
DisplayStatus string `json:"display_status"`
|
||||
}
|
||||
|
||||
type UpdateAccountDisplayRequest struct {
|
||||
DisplayStatus string `json:"display_status" binding:"required,oneof=enabled disabled sold offline"`
|
||||
}
|
||||
|
||||
type PaymentChannelDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
SiteID uint64 `json:"site_id"`
|
||||
ConfigID uint64 `json:"config_id"`
|
||||
Priority int `json:"priority"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type BindPaymentChannelRequest struct {
|
||||
ConfigID uint64 `json:"config_id" binding:"required"`
|
||||
Priority int `json:"priority"`
|
||||
}
|
||||
|
||||
type SettlementBatchDTO struct {
|
||||
ID uint64 `json:"id"`
|
||||
SiteID uint64 `json:"site_id"`
|
||||
BatchNo string `json:"batch_no"`
|
||||
PeriodStart time.Time `json:"period_start"`
|
||||
PeriodEnd time.Time `json:"period_end"`
|
||||
TotalAmountCent int64 `json:"total_amount_cent"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type CreateSettlementBatchRequest struct {
|
||||
SiteID uint64 `json:"site_id" binding:"required"`
|
||||
PeriodStart time.Time `json:"period_start" binding:"required"`
|
||||
PeriodEnd time.Time `json:"period_end" binding:"required"`
|
||||
}
|
||||
|
||||
type SnapshotPartyRequest struct {
|
||||
PartyRole string `json:"party_role" binding:"required"`
|
||||
PartyType string `json:"party_type" binding:"required"`
|
||||
PartyID uint64 `json:"party_id"`
|
||||
Ratio float64 `json:"ratio"`
|
||||
IncomeAmountCent int64 `json:"income_amount_cent"`
|
||||
CostAmountCent int64 `json:"cost_amount_cent"`
|
||||
}
|
||||
|
||||
type CreateFinancialSnapshotRequest struct {
|
||||
SiteID uint64 `json:"site_id" binding:"required"`
|
||||
RuleVersionID uint64 `json:"rule_version_id" binding:"required"`
|
||||
GrossPaidAmountCent int64 `json:"gross_paid_amount_cent"`
|
||||
RefundAmountCent int64 `json:"refund_amount_cent"`
|
||||
MarkupAmountCent int64 `json:"markup_amount_cent"`
|
||||
Parties []SnapshotPartyRequest `json:"parties"`
|
||||
}
|
||||
Reference in New Issue
Block a user