From 56caba873744b898dad16e3303d8130d0f7a7e80 Mon Sep 17 00:00:00 2001 From: chenweijian <820961417@qq.com> Date: Mon, 28 Aug 2023 18:13:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=A4=E7=BB=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- domain/model/group_m/support.go | 18 +++++++++++++++ domain/service/group_s/group.go | 34 ++++++++++++++++++++++++++++ domain/service/group_s/group_list.go | 10 ++++---- route/group_r/group_list.go | 4 ++-- 4 files changed, 59 insertions(+), 7 deletions(-) diff --git a/domain/model/group_m/support.go b/domain/model/group_m/support.go index 3bfe45a..f8e6472 100644 --- a/domain/model/group_m/support.go +++ b/domain/model/group_m/support.go @@ -57,6 +57,24 @@ func GetAllGroupSupportResult(db *gorm.DB, period string) (map[string]uint8, err return result, nil } +func GetGroupSupportResult(db *gorm.DB, period string, groupIds []string) (map[string]uint8, error) { + if len(period) <= 0 { + return nil, nil + } + gsr := GroupSupportResult{ + Period: period, + } + rows := make([]GroupSupportResult, 0) + if err := db.Where(gsr).Where("group_uid in (?)", groupIds).Find(&rows).Error; err != nil { + return nil, err + } + result := make(map[string]uint8) + for _, i := range rows { + result[i.GroupUid] = i.Grade + } + return result, nil +} + //群组扶持奖励,利益分配者 type GroupSupportAwardAdmin struct { mysql.Entity diff --git a/domain/service/group_s/group.go b/domain/service/group_s/group.go index 25cba03..00d75f4 100644 --- a/domain/service/group_s/group.go +++ b/domain/service/group_s/group.go @@ -65,6 +65,40 @@ func (s *GroupService) GetSupportLevelMap(now time.Time) (map[string]uint8, erro return result, nil } +// 取本周最高的扶持等级 +func (s *GroupService) GetWeekMaxSupportLevelMapByIds(groupIds []string) (map[string]uint8, error) { + return s.GetSupportLevelMapByIds(groupIds, time.Now().AddDate(0, 0, -group_e.SUPPORT_LEVEL_PERIOD_DAY)) +} + +func (s *GroupService) GetSupportLevelMapByIds(groupIds []string, now time.Time) (map[string]uint8, error) { + model := domain.CreateModel(s.svc.CtxAndDb) + + _, _, period := group_m.GetSupportLevelTime(now) + + levels, err := GetAllSupportLevel(model, period) + if err != nil { + return nil, err + } + model.Log.Debugf("GetSupportLevelMapByIds, GET %s: %v", period, levels) + + result := make(map[string]uint8, 0) + if len(levels) > 0 { + for g, l := range levels { + le, err := strconv.ParseUint(l, 10, 8) + if err == nil { + result[g] = uint8(le) + } + } + } else { + result, err = group_m.GetGroupSupportResult(model.DB(), period, groupIds) + if err == nil { + ret, err := SaveAllSupportLevel(model, period, result) + model.Log.Infof("GetSupportLevelMapByIds SAVE ret = %d, err: %v", ret, err) + } + } + return result, nil +} + func SaveAllSupportLevel(model *domain.Model, date string, levels map[string]uint8) (int64, error) { values := make(map[string]interface{}, 0) for g, l := range levels { diff --git a/domain/service/group_s/group_list.go b/domain/service/group_s/group_list.go index b8e1af9..5d6e71d 100644 --- a/domain/service/group_s/group_list.go +++ b/domain/service/group_s/group_list.go @@ -129,11 +129,11 @@ func GetGroupSortList(model *domain.Model, country string) ([]string, error) { model.Log.Infof("GroupCountryListSort, diamonds in 30 mins: %v", diamonds) model.Log.Infof("GroupCountryListSort cost3:%v", time.Now().Sub(beginTime)) - supportLevels, err := NewGroupService(model.MyContext).GetWeekMaxSupportLevelMap() - if err != nil { - return nil, err - } - model.Log.Infof("GroupCountryListSort, supportLevels : %v", supportLevels) + //supportLevels, err := NewGroupService(model.MyContext).GetWeekMaxSupportLevelMap() + //if err != nil { + // return nil, err + //} + //model.Log.Infof("GroupCountryListSort, supportLevels : %v", supportLevels) model.Log.Infof("GroupCountryListSort cost4:%v", time.Now().Sub(beginTime)) // 排序优先级2022-07-25 diff --git a/route/group_r/group_list.go b/route/group_r/group_list.go index 3b8706c..185f1a8 100644 --- a/route/group_r/group_list.go +++ b/route/group_r/group_list.go @@ -736,7 +736,7 @@ func GetRecentGroup(c *gin.Context) (*mycontext.MyContext, error) { } myService := domain.CreateService(myContext) - result, _, err := group_cv.BuildJoinedGroupInfo(myService, userId, groupIds, 30, 1,roomEnterTime) + result, _, err := group_cv.BuildJoinedGroupInfo(myService, userId, groupIds, 30, 1, roomEnterTime) if err != nil { return myContext, err } @@ -1555,7 +1555,7 @@ func GetGroupByCountryV2(c *gin.Context) (*mycontext.MyContext, error) { // 正在进行的游戏 games := game_m.GetNotEndGamesMap(model) // 扶持等级 - supportLevels, err := group_s.NewGroupService(myContext).GetWeekMaxSupportLevelMap() + supportLevels, err := group_s.NewGroupService(myContext).GetWeekMaxSupportLevelMapByIds(groupIds) if err != nil { return myContext, err } -- 2.22.0