55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
type IDS []int
|
|
|
|
// 合并为以逗号分隔的字符串
|
|
func (ids IDS) ToString() (str string) {
|
|
return strings.Trim(strings.Join(strings.Fields(fmt.Sprint(ids)), ","), "[]")
|
|
}
|
|
|
|
type ImageList []Image
|
|
|
|
// 按照ID排序
|
|
func (image *ImageList) SortByIDList(id_list []string) {
|
|
var sortedImageList ImageList
|
|
for _, id := range id_list {
|
|
id_number, _ := strconv.Atoi(id)
|
|
for _, image := range *image {
|
|
if image.ID == id_number {
|
|
sortedImageList = append(sortedImageList, image)
|
|
}
|
|
}
|
|
}
|
|
*image = sortedImageList
|
|
}
|
|
|
|
// 取到所有的文章ID, 去除重复
|
|
func (images *ImageList) ToAllArticleID() (uniqueIds IDS) {
|
|
article_ids := make(map[int]bool)
|
|
for _, image := range *images {
|
|
article_ids[image.ArticleID] = true
|
|
}
|
|
for id := range article_ids {
|
|
uniqueIds = append(uniqueIds, id)
|
|
}
|
|
return uniqueIds
|
|
}
|
|
|
|
// 取到所有的用户ID, 去除重复
|
|
func (images *ImageList) ToAllUserID() (uniqueIds IDS) {
|
|
user_ids := make(map[int]bool)
|
|
for _, image := range *images {
|
|
user_ids[image.UserID] = true
|
|
}
|
|
for id := range user_ids {
|
|
uniqueIds = append(uniqueIds, id)
|
|
}
|
|
return uniqueIds
|
|
}
|