diff --git a/server/internal/api/exports.go b/server/internal/api/exports.go index 1430801..a45d445 100644 --- a/server/internal/api/exports.go +++ b/server/internal/api/exports.go @@ -231,38 +231,9 @@ func (a *ExportsAPI) create(w http.ResponseWriter, r *http.Request) { } normalized = tmp } - // whitelist validation & soft removal of disallowed fields - bad := []string{} - filtered = make([]string, 0, len(normalized)) - for _, tf := range normalized { - if !wl[tf] { - bad = append(bad, tf) - continue - } - filtered = append(filtered, tf) - } - if len(bad) > 0 { - logging.JSON("ERROR", map[string]interface{}{"event": "fields_not_whitelisted", "removed": bad}) - } - // 字段去重:移除完全重复的字段(包括主表自身的重复) - { - seen := make(map[string]bool) - deduped := make([]string, 0, len(filtered)) - removed := []string{} - for _, tf := range filtered { - if seen[tf] { - removed = append(removed, tf) - continue - } - seen[tf] = true - deduped = append(deduped, tf) - } - if len(removed) > 0 { - logging.JSON("INFO", map[string]interface{}{"event": "fields_deduplicated_exact", "removed": removed, "reason": "移除完全重复的字段"}) - } - filtered = deduped - } - // 易码通立减金:保留 order_voucher.grant_time,移除红包领取时间列,避免“领取时间”为空 + // 不再使用白名单过滤,直接使用所有字段 + filtered = normalized + // 易码通立减金:保留 order_voucher.grant_time,移除红包领取时间列,避免"领取时间"为空 if ds == "ymt" && tv == 3 { deduped := make([]string, 0, len(filtered)) removed := []string{} diff --git a/server/internal/api/templates.go b/server/internal/api/templates.go index 7a148bc..d8c6beb 100644 --- a/server/internal/api/templates.go +++ b/server/internal/api/templates.go @@ -232,35 +232,9 @@ func (api *TemplatesAPI) listTemplates(w http.ResponseWriter, r *http.Request) { ok(w, r, templates) } -// countValidFields 计算有效字段数(去重) +// countValidFields 计算有效字段数(不去重,不过滤白名单) func countValidFields(datasource, mainTable string, fields []string, whitelist map[string]bool) int64 { - seen := map[string]struct{}{} - - for _, field := range fields { - // YMT系统的order_info映射为order - if datasource == "ymt" && strings.HasPrefix(field, "order_info.") { - field = strings.Replace(field, "order_info.", "order.", 1) - } - - // 检查白名单 - if !whitelist[field] { - continue - } - - // YMT系统客户名称去重 - if datasource == "ymt" && field == "order.merchant_name" { - if _, exists := seen["merchant.name"]; exists { - continue - } - } - - if _, exists := seen[field]; exists { - continue - } - seen[field] = struct{}{} - } - - return int64(len(seen)) + return int64(len(fields)) } // getTemplate 获取单个模板详情