diff --git a/cv/group_power_cv/groupPower.go b/cv/group_power_cv/groupPower.go index cf4996de7a4b768f7c9878f2727330bb4e4b0302..4c9522dbc56a4a366fd7ca1a499db259a42f69ee 100644 --- a/cv/group_power_cv/groupPower.go +++ b/cv/group_power_cv/groupPower.go @@ -671,6 +671,7 @@ type GroupPower struct { MemberMax mysql.Num `json:"memberMax" gorm:"-"` // 最大人数 Role int `json:"role" gorm:"-"` // 我在此家族中的角色 0.路人 1.成员 2.家族长 3.管理员 IsApply bool `json:"isApply" gorm:"-"` // 最大人数 + MonthRank int `json:"monthRank" gorm:"-"` // 家族月排名 } type GroupPowerUser struct { diff --git a/domain/model/groupPower_m/group_rank.go b/domain/model/groupPower_m/group_rank.go index 9ebcfd53251c9d17e8e6dfd403a0ad6eb18a719b..78287bd3ba8098366c5e5762b959abfaf3ab437b 100644 --- a/domain/model/groupPower_m/group_rank.go +++ b/domain/model/groupPower_m/group_rank.go @@ -25,3 +25,23 @@ func GetGroupPowerExpRank(model *domain.Model, beginDate, endDate string, limit } return res, nil } + +// 获取我的家族月排名是多少,超过30则返回31 +func GetGroupPowerExpRankById(model *domain.Model, beginDate, endDate string, limit int, groupPowerId uint64) (int, error) { + var res []GroupPowerExpRank + if err := model.DB().Table("group_power_day_exp").Select("group_power_id,SUM(exp) as exp"). + Where("date BETWEEN ? AND ?", beginDate, endDate).Group("group_power_id").Order("exp DESC").Limit(limit).Find(&res).Error; err != nil { + model.Log.Errorf("GetMyGroupPowerExpRank fail:%v", err) + return 0, err + } + for i := range res { + res[i].Rank = i + 1 + } + myRank := 31 + for _, v := range res { + if v.GroupPowerId == groupPowerId { + myRank = v.Rank + } + } + return myRank, nil +} diff --git a/route/group_power_r/group_power.go b/route/group_power_r/group_power.go index 2174fc915344832d3519e6b05994ff21ec8525a2..1d11c61cb696e22793db0e48334a435758617ddc 100644 --- a/route/group_power_r/group_power.go +++ b/route/group_power_r/group_power.go @@ -9,6 +9,7 @@ import ( "git.hilo.cn/hilo-common/resource/redisCli" "git.hilo.cn/hilo-common/utils" "github.com/gin-gonic/gin" + "github.com/jinzhu/now" "hilo-group/_const/enum/groupPower_e" "hilo-group/_const/enum/group_e" "hilo-group/_const/enum/msg_e" @@ -760,6 +761,12 @@ func GroupPowerInfo(c *gin.Context) (*mycontext.MyContext, error) { info.Nameplate = groupInfo.Name } } + // 家族月排名 + beginDate, endDate := now.BeginningOfMonth().Format("2006-01-02"), now.EndOfMonth().Format("2006-01-02") + info.MonthRank, err = groupPower_m.GetGroupPowerExpRankById(model, beginDate, endDate, 30, info.Id) + if err != nil { + return myContext, err + } // 我在该家族中的角色 myPU := groupPower_m.GroupPowerUser{UserId: myUserId} myGroupPUser, err := myPU.GetGroupPowerUser(model)