Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-04-20 10:04:29 +03:00
parent 7ef12df93a
commit 8462df878f

View File

@@ -94,13 +94,19 @@ func GetProductPricingList(ctx context.Context, limit int, afterProductCode stri
for _, item := range out {
codes = append(codes, strings.TrimSpace(item.ProductCode))
}
codesCSV := strings.Join(codes, ",")
valueRows := make([]string, 0, len(codes))
metricArgs := make([]any, 0, len(codes))
for i, code := range codes {
paramName := "@p" + strconv.Itoa(i+1)
valueRows = append(valueRows, "("+paramName+")")
metricArgs = append(metricArgs, code)
}
metricsQuery := `
WITH req_codes AS (
SELECT DISTINCT LTRIM(RTRIM(value)) AS ProductCode
FROM STRING_SPLIT(@p1, ',')
WHERE LEN(LTRIM(RTRIM(value))) > 0
SELECT DISTINCT LTRIM(RTRIM(v.ProductCode)) AS ProductCode
FROM (VALUES ` + strings.Join(valueRows, ",") + `) v(ProductCode)
WHERE LEN(LTRIM(RTRIM(v.ProductCode))) > 0
),
latest_base_price AS (
SELECT
@@ -206,7 +212,7 @@ func GetProductPricingList(ctx context.Context, limit int, afterProductCode stri
ON db.ItemCode = rc.ProductCode;
`
metricsRows, err := db.MssqlDB.QueryContext(ctx, metricsQuery, codesCSV)
metricsRows, err := db.MssqlDB.QueryContext(ctx, metricsQuery, metricArgs...)
if err != nil {
return nil, fmt.Errorf("metrics query failed: %w", err)
}