package models import ( "strconv" "strings" ) func SplitStringIds(str string, prefix string) (r []string) { Ids_str := strings.TrimRight(str, "|") Ids := strings.Split(Ids_str, "|") for _, v := range Ids { r = append(r, strings.TrimLeft(v, prefix)) } return r } func SplitStringToDotStr(str string, prefix string) (r string) { Ids_str := strings.TrimRight(str, "|") Ids := strings.Split(Ids_str, "|") for _, v := range Ids { r += strings.TrimLeft(v, prefix) + "," } r = strings.TrimRight(r, ",") return r } func SplitStringToIntIds(str string, prefix string) (r []int) { Ids_str := strings.TrimRight(str, "|") Ids := strings.Split(Ids_str, "|") for _, v := range Ids { id, _ := strconv.Atoi(strings.TrimLeft(v, prefix)) r = append(r, id) } return r } func IntIdsDistinct(Ids []int) (result []int) { distinctMap := make(map[int]int, len(Ids)) for _, Id := range Ids { if _, ok := distinctMap[Id]; !ok { distinctMap[Id] = 1 result = append(result, Id) } } return result }