diff --git a/domain/model/user_m/user.go b/domain/model/user_m/user.go index a51520e83c5b6e35d7cfcf1111725ece15a0e36e..bc83bab1630d653f18180008a22c7c11e140f6b3 100644 --- a/domain/model/user_m/user.go +++ b/domain/model/user_m/user.go @@ -155,9 +155,24 @@ func GetUserExternalIds(model *domain.Model, userIds []mysql.ID) ([]string, map[ return res, m, c } var users []User - if err := model.DB().Model(User{}).Where("id in (?)", userIds).Select("id,external_id").Find(&users).Error; err != nil { - model.Log.Errorf("GetUserExternalIds fail:%v", err) + total := len(userIds) + const NUM = 500 + start, end := 0, NUM + for start < total { + if end > total { + end = total + } + var tmp []User + tmpUserId := userIds[start:end] + if err := model.DB().Model(User{}).Where("id in (?)", tmpUserId).Select("id,external_id,code").Find(&tmp).Error; err != nil { + model.Log.Errorf("GetUserExternalIds fail:%v", err) + } else if len(tmp) > 0 { + users = append(users, tmp...) + } + start += NUM + end += NUM } + for _, user := range users { res = append(res, user.ExternalId) m[user.ID] = user.ExternalId diff --git a/route/group_r/group_list.go b/route/group_r/group_list.go index a4d65858f93a93d83f6523ffbcd2bc5eb82c9900..ca167709004241925bd8fc81c6a62defc2940a0c 100644 --- a/route/group_r/group_list.go +++ b/route/group_r/group_list.go @@ -1039,7 +1039,7 @@ func GetGroupVisitorsV2(c *gin.Context) (*mycontext.MyContext, error) { beginPos := pageSize * (pageIndex - 1) if uint(beginPos) < result.Total { // 取在线状态 - extIds, userExtIdMap, userCodeMap := user_c.GetUserExternalIds(model, userIds) + extIds, userExtIdMap, userCodeMap := user_m.GetUserExternalIds(model, userIds) statusMap, err := tim_m.GetOnlineStatus(model, extIds) if err != nil { return myContext, err