id_list_utils.go 428 B

12345678910111213141516171819202122232425
  1. package admin
  2. import "sort"
  3. func normalizeInt64IDList(ids []int64) []int64 {
  4. if len(ids) == 0 {
  5. return nil
  6. }
  7. out := make([]int64, 0, len(ids))
  8. seen := make(map[int64]struct{}, len(ids))
  9. for _, id := range ids {
  10. if id <= 0 {
  11. continue
  12. }
  13. if _, ok := seen[id]; ok {
  14. continue
  15. }
  16. seen[id] = struct{}{}
  17. out = append(out, id)
  18. }
  19. sort.Slice(out, func(i, j int) bool { return out[i] < out[j] })
  20. return out
  21. }