SortVersionItems 版本排序
(versionItems []VersionItem)
| 222 | |
| 223 | // SortVersionItems 版本排序 |
| 224 | func (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 | } |
no test coverage detected