feat(distribution): 独立分销前台商城多租户体系、货源与订单数据严格隔离

This commit is contained in:
yml2213
2026-09-07 17:18:14 +08:00
parent 550b42eb22
commit ecaf15417b
34 changed files with 2397 additions and 119 deletions
@@ -16,10 +16,16 @@ func (r *Repository) ListPublic(ctx context.Context, query PublicListQuery) (*Pu
return r.listPublicPage(ctx, query, page, pageSize)
}
db := r.baseQuery(ctx).
Where("l.status = ? AND l.review_status = ? AND l.in_transaction = ?", "published", "approved", false)
if query.DistributionSiteCode != "" {
db = db.Joins("INNER JOIN distribution_site_accounts AS dsa ON dsa.listing_id = l.id AND dsa.display_status = 'enabled'").
Joins("INNER JOIN distribution_sites AS ds ON ds.id = dsa.site_id AND ds.site_code = ? AND ds.status = 'active' AND ds.display_account_enabled = ?", query.DistributionSiteCode, true)
}
var rows []listingRow
err := r.baseQuery(ctx).
Where("l.status = ? AND l.review_status = ? AND l.in_transaction = ?", "published", "approved", false).
Order("l.published_at DESC, l.id DESC").
err := db.Order("l.published_at DESC, l.id DESC").
Scan(&rows).Error
if err != nil {
return nil, err
@@ -103,6 +109,9 @@ func normalizedPublicPage(query PublicListQuery) (int, int) {
}
func canListPublicWithSQL(query PublicListQuery) bool {
if query.DistributionSiteCode != "" {
return false
}
if query.Keyword != "" {
return false
}