|
|
|
@@ -3,6 +3,7 @@ package model |
|
|
|
import ( |
|
|
|
"encoding/json" |
|
|
|
"fmt" |
|
|
|
"sort" |
|
|
|
"strings" |
|
|
|
|
|
|
|
"sync" |
|
|
|
@@ -165,6 +166,11 @@ func updatePricing() { |
|
|
|
initDefaultVendorMapping(metaMap, vendorMap, enableAbilities) |
|
|
|
|
|
|
|
// 构建对前端友好的供应商列表 |
|
|
|
vendorOrderMap := make(map[int]int) |
|
|
|
for _, v := range vendorMap { |
|
|
|
vendorOrderMap[v.Id] = v.SortOrder |
|
|
|
} |
|
|
|
|
|
|
|
vendorsList = make([]PricingVendor, 0, len(vendorMap)) |
|
|
|
for _, v := range vendorMap { |
|
|
|
vendorsList = append(vendorsList, PricingVendor{ |
|
|
|
@@ -174,6 +180,14 @@ func updatePricing() { |
|
|
|
Icon: v.Icon, |
|
|
|
}) |
|
|
|
} |
|
|
|
sort.Slice(vendorsList, func(i, j int) bool { |
|
|
|
oi := vendorOrderMap[vendorsList[i].ID] |
|
|
|
oj := vendorOrderMap[vendorsList[j].ID] |
|
|
|
if oi != oj { |
|
|
|
return oi < oj |
|
|
|
} |
|
|
|
return vendorsList[i].ID < vendorsList[j].ID |
|
|
|
}) |
|
|
|
|
|
|
|
modelGroupsMap := make(map[string]*types.Set[string]) |
|
|
|
|
|
|
|
@@ -322,6 +336,22 @@ func updatePricing() { |
|
|
|
pricingMap = append(pricingMap, pricing) |
|
|
|
} |
|
|
|
|
|
|
|
// 按 sort_order 排序 pricingMap |
|
|
|
sort.Slice(pricingMap, func(i, j int) bool { |
|
|
|
mi, okI := metaMap[pricingMap[i].ModelName] |
|
|
|
mj, okJ := metaMap[pricingMap[j].ModelName] |
|
|
|
if okI && okJ { |
|
|
|
if mi.SortOrder != mj.SortOrder { |
|
|
|
return mi.SortOrder < mj.SortOrder |
|
|
|
} |
|
|
|
} else if okI { |
|
|
|
return true |
|
|
|
} else if okJ { |
|
|
|
return false |
|
|
|
} |
|
|
|
return pricingMap[i].ModelName < pricingMap[j].ModelName |
|
|
|
}) |
|
|
|
|
|
|
|
// 防止大更新后数据不通用 |
|
|
|
if len(pricingMap) > 0 { |
|
|
|
pricingMap[0].PricingVersion = "82c4a357505fff6fee8462c3f7ec8a645bb95532669cb73b2cabee6a416ec24f" |
|
|
|
|