From c3dceed851fc564255936af50f6f06c1ad8e0de6 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Fri, 10 Mar 2023 11:28:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=BE=A4=E7=BB=84=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E9=93=AD=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv/group_cv/group.go | 18 +++++++++-------- cv/group_power_cv/groupPower.go | 15 ++++++++------ cv/user_cv/user.go | 2 +- domain/model/groupPower_m/groupPower.go | 18 ++++++++++------- route/group_power_r/group_power.go | 9 +++++---- route/group_r/group_info.go | 7 ++++--- route/group_r/group_list.go | 27 ++++++++++++++----------- 7 files changed, 55 insertions(+), 41 deletions(-) diff --git a/cv/group_cv/group.go b/cv/group_cv/group.go index b5b2035..635c901 100644 --- a/cv/group_cv/group.go +++ b/cv/group_cv/group.go @@ -64,10 +64,11 @@ type GroupInfo struct { GroupBasicInfo // hilo业务 - EntryLevel uint32 `json:"entryLevel"` // obsolete - HasOnMic bool `json:"hasOnMic"` // 房间麦上是否有人 - GroupPowerId uint64 `json:"groupPowerId"` // 群主所在的势力ID - GroupPowerName string `json:"groupPowerName"` // 群主所在的势力的名称 + EntryLevel uint32 `json:"entryLevel"` // obsolete + HasOnMic bool `json:"hasOnMic"` // 房间麦上是否有人 + GroupPowerId uint64 `json:"groupPowerId"` // 群主所在的势力ID + GroupPowerName string `json:"groupPowerName"` // 群主所在的势力的名称 + GroupPowerNameplate string `json:"groupPowerNameplate"` // 势力铭牌 // "AppDefinedData": 群组维度的自定义字段 【暂时不用】 MemberList []MemberListInfo @@ -312,7 +313,7 @@ func BuildJoinedGroupInfo(myService *domain.Service, myUserId uint64, groupIds [ for _, i := range groupIds { owners = append(owners, groupInfo[i].Owner) } - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return nil, 0, err } @@ -388,9 +389,10 @@ func BuildJoinedGroupInfo(myService *domain.Service, myUserId uint64, groupIds [ MicNumType: int(g.MicNumType), GroupMedals: medals, }, - HasOnMic: len(micUsers) > 0, - GroupPowerId: powerIds[g.Owner], - GroupPowerName: powerNames[g.Owner], + HasOnMic: len(micUsers) > 0, + GroupPowerId: powerIds[g.Owner], + GroupPowerName: powerNames[g.Owner], + GroupPowerNameplate: powerNameplates[g.Owner], }, MicUsers: micUsers, RoomUserCount: uint(roomCount[i]), diff --git a/cv/group_power_cv/groupPower.go b/cv/group_power_cv/groupPower.go index 6953f63..dfb1607 100644 --- a/cv/group_power_cv/groupPower.go +++ b/cv/group_power_cv/groupPower.go @@ -232,28 +232,31 @@ func GetCvGroupPowerUsers(groupPowerId uint64) ([]mysql.ID, error) { return usreIds, nil } -func BatchGetGroupPower(db *gorm.DB, userIds []uint64) (map[uint64]uint64, map[uint64]string, error) { +// return userId->powerId userId->powerName userId->powerNameplate +func BatchGetGroupPower(db *gorm.DB, userIds []uint64) (map[uint64]uint64, map[uint64]string, map[uint64]string, error) { if len(userIds) <= 0 { - return nil, nil, nil + return nil, nil, nil, nil } groupPowers, err := groupPower_m.GetGroupPowerMap(db, userIds) if err != nil { - return nil, nil, err + return nil, nil, nil, err } gpIds := make([]uint64, 0) for _, i := range groupPowers { gpIds = append(gpIds, i) } - powerNames, err := groupPower_m.GetGroupPowerNames(db, gpIds) + powerNames, powerNameplates, err := groupPower_m.GetGroupPowerNames(db, gpIds) if err != nil { - return nil, nil, err + return nil, nil, nil, err } groupPowerNames := make(map[mysql.ID]string, 0) + groupPowerNameplates := make(map[mysql.ID]string, 0) for i, g := range groupPowers { groupPowerNames[i] = powerNames[g] + groupPowerNameplates[i] = powerNameplates[g] } - return groupPowers, groupPowerNames, nil + return groupPowers, groupPowerNames, groupPowerNameplates, nil } //获取国家势力的所有用户数量 diff --git a/cv/user_cv/user.go b/cv/user_cv/user.go index 89d2c24..d8d698d 100644 --- a/cv/user_cv/user.go +++ b/cv/user_cv/user.go @@ -299,7 +299,7 @@ func getUserDetails(model *domain.Model, users []*user_m.User, myUserId mysql.ID for _, i := range groupPowers { gpIds = append(gpIds, i) } - powerNames, err := groupPower_m.GetGroupPowerNames(mysql.Db, gpIds) + powerNames, _, err := groupPower_m.GetGroupPowerNames(mysql.Db, gpIds) if err != nil { return nil, err } diff --git a/domain/model/groupPower_m/groupPower.go b/domain/model/groupPower_m/groupPower.go index f25d9ed..e1cd5ac 100644 --- a/domain/model/groupPower_m/groupPower.go +++ b/domain/model/groupPower_m/groupPower.go @@ -348,24 +348,28 @@ func GetGroupPowerMap(db *gorm.DB, userIds []mysql.ID) (map[mysql.ID]uint64, err return result, nil } -func GetGroupPowerNames(db *gorm.DB, ids []mysql.ID) (map[mysql.ID]string, error) { +// return +func GetGroupPowerNames(db *gorm.DB, ids []mysql.ID) (map[mysql.ID]string, map[mysql.ID]string, error) { type record struct { - Id mysql.ID - Name string + Id mysql.ID + Name string + Nameplate string } rows := make([]record, 0) + result := make(map[mysql.ID]string, 0) + result2 := make(map[mysql.ID]string, 0) if len(ids) > 0 { - if err := db.Model(&GroupPower{}).Select("p.id, i.name"). + if err := db.Model(&GroupPower{}).Select("p.id, i.name,i.nameplate"). Joins("AS p INNER JOIN group_info AS i ON p.group_uid = i.im_group_id"). Where("p.id IN ?", ids).Find(&rows).Error; err != nil { - return nil, err + return result, result2, err } } - result := make(map[mysql.ID]string, 0) for _, i := range rows { result[i.Id] = i.Name + result[i.Id] = i.Nameplate } - return result, nil + return result, result2, nil } func GetGroupPower(model *domain.Model, id mysql.ID) (*GroupPower, error) { diff --git a/route/group_power_r/group_power.go b/route/group_power_r/group_power.go index f3e1cc4..467360a 100644 --- a/route/group_power_r/group_power.go +++ b/route/group_power_r/group_power.go @@ -375,7 +375,7 @@ func GetGroupPowerGroups(c *gin.Context) (*mycontext.MyContext, error) { groupIds = append(groupIds, i.ImGroupId) owners = append(owners, i.Owner) } - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return myContext, err } @@ -487,9 +487,10 @@ func GetGroupPowerGroups(c *gin.Context) (*mycontext.MyContext, error) { MicNumType: int(i.MicNumType), GroupMedals: medals, }, - HasOnMic: len(roomMicUserMap[i.ImGroupId]) > 0, - GroupPowerId: powerIds[i.Owner], - GroupPowerName: powerNames[i.Owner], + HasOnMic: len(roomMicUserMap[i.ImGroupId]) > 0, + GroupPowerId: powerIds[i.Owner], + GroupPowerName: powerNames[i.Owner], + GroupPowerNameplate: powerNameplates[i.Owner], }, MicUsers: micUsers, RoomUserCount: uint(roomCount[i.ImGroupId]), diff --git a/route/group_r/group_info.go b/route/group_r/group_info.go index 5633090..0912195 100644 --- a/route/group_r/group_info.go +++ b/route/group_r/group_info.go @@ -133,7 +133,7 @@ func GetTheirGroups(c *gin.Context) (*mycontext.MyContext, error) { } model.Log.Info("GetTheirGroups: theirRoles - ", theirRoles) - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return myContext, err } @@ -273,8 +273,9 @@ func GetTheirGroups(c *gin.Context) (*mycontext.MyContext, error) { GroupMedals: medals, }, //HasOnMic: onMicScore[i.GroupId] != 0, - GroupPowerId: powerIds[gi.Owner], - GroupPowerName: powerNames[gi.Owner], + GroupPowerId: powerIds[gi.Owner], + GroupPowerName: powerNames[gi.Owner], + GroupPowerNameplate: powerNameplates[gi.Owner], }, MicUsers: micUsers, RoomUserCount: uint(roomCount[i.GroupId]), diff --git a/route/group_r/group_list.go b/route/group_r/group_list.go index e6aee0a..8745e81 100644 --- a/route/group_r/group_list.go +++ b/route/group_r/group_list.go @@ -246,7 +246,7 @@ func GetPopularGroups(c *gin.Context) (*mycontext.MyContext, error) { groupIds = append(groupIds, i.ImGroupId) owners = append(owners, i.Owner) } - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return myContext, err } @@ -338,9 +338,10 @@ func GetPopularGroups(c *gin.Context) (*mycontext.MyContext, error) { MicNumType: int(i.MicNumType), GroupMedals: medals, }, - HasOnMic: true, - GroupPowerId: powerIds[i.Owner], - GroupPowerName: powerNames[i.Owner], + HasOnMic: true, + GroupPowerId: powerIds[i.Owner], + GroupPowerName: powerNames[i.Owner], + GroupPowerNameplate: powerNameplates[i.Owner], }, MicUsers: micUsers, RoomUserCount: uint(roomCount[i.ImGroupId]), @@ -468,7 +469,7 @@ func GetLatestGroups(c *gin.Context) (*mycontext.MyContext, error) { for _, group := range groupInfos { owners = append(owners, group.Owner) } - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return myContext, err } @@ -555,9 +556,10 @@ func GetLatestGroups(c *gin.Context) (*mycontext.MyContext, error) { MicNumType: int(group.MicNumType), GroupMedals: medals, }, - HasOnMic: true, - GroupPowerId: powerIds[group.Owner], - GroupPowerName: powerNames[group.Owner], + HasOnMic: true, + GroupPowerId: powerIds[group.Owner], + GroupPowerName: powerNames[group.Owner], + GroupPowerNameplate: powerNameplates[group.Owner], }, MicUsers: micUsers, RoomUserCount: uint(roomCount[group.ImGroupId]), @@ -1289,7 +1291,7 @@ func GetGroupByCountry(c *gin.Context) (*mycontext.MyContext, error) { groupIds = append(groupIds, i.ImGroupId) owners = append(owners, i.Owner) } - powerIds, powerNames, err := group_power_cv.BatchGetGroupPower(model.Db, owners) + powerIds, powerNames, powerNameplates, err := group_power_cv.BatchGetGroupPower(model.Db, owners) if err != nil { return myContext, err } @@ -1369,9 +1371,10 @@ func GetGroupByCountry(c *gin.Context) (*mycontext.MyContext, error) { MicNumType: int(i.MicNumType), GroupMedals: medals, }, - HasOnMic: micGroupNum[i.ImGroupId] > 0, - GroupPowerId: powerIds[i.Owner], - GroupPowerName: powerNames[i.Owner], + HasOnMic: micGroupNum[i.ImGroupId] > 0, + GroupPowerId: powerIds[i.Owner], + GroupPowerName: powerNames[i.Owner], + GroupPowerNameplate: powerNameplates[i.Owner], }, MicUsers: []user_cv.CvUserTiny{}, RoomUserCount: uint(roomCount[i.ImGroupId]), -- 2.22.0