diff --git a/cv/group_power_cv/group_rank.go b/cv/group_power_cv/group_rank.go index 1f541493a9561541770b2b5558819b1c8c745b9d..2987c6f45346658a9ca69b5e4d808b6097132d40 100644 --- a/cv/group_power_cv/group_rank.go +++ b/cv/group_power_cv/group_rank.go @@ -14,13 +14,12 @@ type CvGroupPowerRank struct { type CvGroupPowerRankData struct { GroupPowerId mysql.ID `json:"groupPowerId"` // 家族id - GroupPic string `json:"groupPic"` // 家族图片 + Icon string `json:"icon"` // 家族图片 Name string `json:"name"` // 家族名 Nameplate string `json:"nameplate"` // 铭牌 Grade groupPower_e.GroupPowerGrade `json:"grade"` // 等级 0:无 1:青铜 2:白银 3:黄金 4:黑金 Exp mysql.Num `json:"exp"` // 经验值 Rank int `json:"rank"` // 排名 - // todo 铭牌,图片等字段, 等伟健哥哥的结构体 } // 家族之星 diff --git a/domain/model/groupPower_m/groupPower.go b/domain/model/groupPower_m/groupPower.go index d3ed5db457e2c9beebe9b4a8e93146c8f5c01cf4..f25d9ed3d585b6b1a10b8db370ab949891fbf52e 100644 --- a/domain/model/groupPower_m/groupPower.go +++ b/domain/model/groupPower_m/groupPower.go @@ -368,29 +368,6 @@ func GetGroupPowerNames(db *gorm.DB, ids []mysql.ID) (map[mysql.ID]string, error return result, nil } -type GroupPowerInfo struct { - PowerId mysql.ID - Owner mysql.ID - Name string -} - -func BatchGetGroupPower(db *gorm.DB, ids []mysql.ID) (map[mysql.ID]GroupPowerInfo, error) { - rows := make([]GroupPowerInfo, 0) - if len(ids) > 0 { - if err := db.Model(&GroupPower{}).Select("p.id AS power_id, u.user_id AS owner, p.name"). - Joins("AS p INNER JOIN group_power_user AS u ON p.id = u.group_power_id"). - Where("p.id IN ? AND p.status = ? AND role = ?", ids, groupPower_e.GroupPowerUserHas, groupPower_e.GroupPowerUserRoleMgr). - Find(&rows).Error; err != nil { - return nil, err - } - } - result := make(map[mysql.ID]GroupPowerInfo, 0) - for _, i := range rows { - result[i.PowerId] = i - } - return result, nil -} - func GetGroupPower(model *domain.Model, id mysql.ID) (*GroupPower, error) { groupPower := GroupPower{} if err := model.Db.Model(&GroupPower{}).First(&groupPower, id).Error; err != nil { diff --git a/domain/model/groupPower_m/group_info.go b/domain/model/groupPower_m/group_info.go new file mode 100644 index 0000000000000000000000000000000000000000..71d6bf526b8e6fb88d46dff2d8f64dabade38d17 --- /dev/null +++ b/domain/model/groupPower_m/group_info.go @@ -0,0 +1,31 @@ +package groupPower_m + +import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" +) + +type GroupPowerInfo struct { + mysql.Entity + GroupUid string + Name string + Nameplate string + Declaration string + Icon string + Status int +} + +func (GroupPowerInfo) TableName() string { + return "group_power" +} + +// 批量获取家族信息 +func MGetGroupPowerInfoMap(model *domain.Model, groupPowerIds []mysql.ID) (map[mysql.ID]GroupPowerInfo, error) { + var rows []GroupPowerInfo + res := make(map[mysql.ID]GroupPowerInfo) + if err := model.DB().Model(GroupPowerInfo{}).Where("id in ?", groupPowerIds).Find(&rows).Error; err != nil { + model.Log.Errorf("MGetGroupPowerInfo fail:%v", err) + return res, err + } + return res, nil +} diff --git a/route/group_power_r/group_rank.go b/route/group_power_r/group_rank.go index 2c53818721bbc51b6fe948ce84dcd67d7c96522a..3a184e1a4afe736b26151deb6b15a0c144db18ea 100644 --- a/route/group_power_r/group_rank.go +++ b/route/group_power_r/group_rank.go @@ -65,6 +65,10 @@ func GroupPowerRank(c *gin.Context) (*mycontext.MyContext, error) { if err != nil { return myContext, err } + groupPowers, err := groupPower_m.MGetGroupPowerInfoMap(model, ids) + if err != nil { + return myContext, err + } if myGroupPower != nil && myGroupPower.Role == groupPower_e.GroupPowerUserRoleMgr { myGroupPowerRank, err := groupPower_m.GetGroupPowerExpMyRank(model, beginDate, endDate, myGroupPower.GroupPowerId) if err != nil { @@ -72,9 +76,9 @@ func GroupPowerRank(c *gin.Context) (*mycontext.MyContext, error) { } response.MyGroupPower = group_power_cv.CvGroupPowerRankData{ GroupPowerId: myGroupPower.GroupPowerId, - GroupPic: "todo", - Name: "todo", - Nameplate: "todo", + Icon: groupPowers[myGroupPower.ID].Icon, + Name: groupPowers[myGroupPower.ID].Name, + Nameplate: groupPowers[myGroupPower.ID].Nameplate, Grade: grades[myGroupPower.GroupPowerId].Grade, Exp: myGroupPowerRank.Exp, Rank: myGroupPowerRank.Rank, @@ -83,9 +87,9 @@ func GroupPowerRank(c *gin.Context) (*mycontext.MyContext, error) { for r, v := range rank { response.Items = append(response.Items, group_power_cv.CvGroupPowerRankData{ GroupPowerId: v.GroupPowerId, - GroupPic: "todo", // todo - Name: "todo", - Nameplate: "todo", + Icon: groupPowers[v.GroupPowerId].Icon, + Name: groupPowers[v.GroupPowerId].Name, + Nameplate: groupPowers[v.GroupPowerId].Nameplate, Grade: grades[v.GroupPowerId].Grade, Exp: v.Exp, Rank: r + 1, // 查询已做排序