refactor(sitecode): 统一各模块分销站点编码解析为公共包

- 新增 internal/sitecode 包:FromRequest 头优先解析、FromQueryThenHeader
  探测接口专用、ExtractHost/IsLocalHost 提取 Host 域名
- 替换 auth/order/listing/chat/notification/withdrawal/wallet/distribution
  八模块 17 处各自内联的解析逻辑,统一优先级与 TrimSpace 行为
- 修复 notification 漏 TrimSpace、探测接口会话头压过显式 query、
  GetPublicSiteInfo 把 localhost Host 当站点域名查库等不一致
- 顺手清理 auth 中无引用的 extractHost 死代码
- gofmt 修复 withdrawal/presenter、chat/file/payment 测试四个历史遗留格式问题
This commit is contained in:
yml2213
2026-09-17 14:54:38 +08:00
parent 69774458b0
commit 8dc21d2757
16 changed files with 236 additions and 119 deletions
+2 -12
View File
@@ -2,8 +2,8 @@ package withdrawal
import (
"strconv"
"strings"
"hfb_sys/backend/internal/sitecode"
"hfb_sys/backend/pkg/response"
"github.com/gin-gonic/gin"
@@ -18,17 +18,7 @@ func NewHandler(service *Service) *Handler {
}
func parseSiteCode(c *gin.Context) string {
for _, val := range []string{
c.Query("distribution_site_code"),
c.Query("site_code"),
c.GetHeader("X-Distribution-Site-Code"),
c.GetHeader("X-Site-Code"),
} {
if trimmed := strings.TrimSpace(val); trimmed != "" {
return trimmed
}
}
return ""
return sitecode.FromRequest(c)
}
// ========== 用户端接口 ==========
@@ -95,29 +95,29 @@ func (r *Repository) toDetailDTO(ctx context.Context, w model.WithdrawalRequest)
DistributionSiteName: siteName,
DistributionSiteCode: siteCode,
UserNickname: user.Nickname,
UserPhone: user.Phone,
AmountCent: w.AmountCent,
FeeCent: w.FeeCent,
ActualAmountCent: w.ActualAmountCent,
PaymentAccountID: w.PaymentAccountID,
AccountType: w.AccountType,
AccountName: w.AccountName,
AccountNo: fullAccountNo,
BankName: w.BankName,
BankBranch: w.BankBranch,
CertificateURLs: certificateURLs,
Status: w.Status,
ReviewedBy: w.ReviewedBy,
ReviewedByName: reviewedByName,
ReviewedAt: w.ReviewedAt,
ReviewRemark: w.ReviewRemark,
PaidBy: w.PaidBy,
PaidByName: paidByName,
PaidAt: w.PaidAt,
PaymentProofURL: w.PaymentProofURL,
PaymentRemark: w.PaymentRemark,
CreatedAt: w.CreatedAt,
UpdatedAt: w.UpdatedAt,
UserPhone: user.Phone,
AmountCent: w.AmountCent,
FeeCent: w.FeeCent,
ActualAmountCent: w.ActualAmountCent,
PaymentAccountID: w.PaymentAccountID,
AccountType: w.AccountType,
AccountName: w.AccountName,
AccountNo: fullAccountNo,
BankName: w.BankName,
BankBranch: w.BankBranch,
CertificateURLs: certificateURLs,
Status: w.Status,
ReviewedBy: w.ReviewedBy,
ReviewedByName: reviewedByName,
ReviewedAt: w.ReviewedAt,
ReviewRemark: w.ReviewRemark,
PaidBy: w.PaidBy,
PaidByName: paidByName,
PaidAt: w.PaidAt,
PaymentProofURL: w.PaymentProofURL,
PaymentRemark: w.PaymentRemark,
CreatedAt: w.CreatedAt,
UpdatedAt: w.UpdatedAt,
}, nil
}