MCPcopy Index your code
hub / github.com/TruthHun/BookStack / SortVersionItems

Method SortVersionItems

models/version.go:224–256  ·  view source on GitHub ↗

SortVersionItems 版本排序

(versionItems []VersionItem)

Source from the content-addressed store, hash-verified

222
223// SortVersionItems 版本排序
224func (m *Version) SortVersionItems(versionItems []VersionItem) (vers []VersionItem) {
225 if len(versionItems) == 0 {
226 return
227 }
228
229 var versions []*version.Version
230 itemMap := make(map[string][]VersionItem)
231 for _, item := range versionItems {
232 v, err := version.NewVersion(item.VersionNO)
233 if err != nil {
234 beego.Error(err)
235 continue
236 }
237 if _, ok := itemMap[item.VersionNO]; !ok {
238 versions = append(versions, v)
239 }
240 itemMap[item.VersionNO] = append(itemMap[item.VersionNO], item)
241 }
242
243 sort.Sort(
244 sort.Reverse(
245 version.Collection(versions),
246 ),
247 )
248
249 for _, v := range versions {
250 if vv, ok := itemMap[v.Original()]; ok {
251 vers = append(vers, vv...)
252 }
253 }
254
255 return vers
256}

Callers 2

GetPublicVersionItemsMethod · 0.95
ListsMethod · 0.95

Calls 3

SortMethod · 0.80
CollectionMethod · 0.80
appendFunction · 0.50

Tested by

no test coverage detected