diff --git a/server/imserver/cache/cachemgr.go b/server/imserver/cache/cachemgr.go index 4563c5c0..0500b5f2 100644 --- a/server/imserver/cache/cachemgr.go +++ b/server/imserver/cache/cachemgr.go @@ -210,8 +210,34 @@ func (this *cacheMgr) AsyncRecommendList(recommendType int32, accountId string, } } if recommendType == constant.RECOMMEND_TYPE_BATTLE { - GetPlayerMgr().GetRecommendPlayers(excludeHums, outHums, 5) - doFunc() + f5.GetJsStyleDb().PageQuery( + constant.FRIEND_DB, + 5, + 0, + "SELECT * FROM t_recent_battle WHERE 1=1", + []string{}, + f5.GetDbFilter().Comp( + f5.GetDbFilter().GT("idx", q5.ToString(0)).And(), + f5.GetDbFilter().Like("account_id1", q5.ToString(accountId)).Or(), + f5.GetDbFilter().Like("account_id2", q5.ToString(accountId)), + ), + "ORDER BY last_battle_time DESC", + func (err error, pg *f5.Pagination) { + if err != nil { + cb(500, "server internal error") + return + } + for pg.Rows.Next() { + accountId1 := pg.Rows.GetByName("account_id1") + accountId2 := pg.Rows.GetByName("account_id2") + if accountId1 == accountId { + outHums[accountId2] = 1 + } else { + outHums[accountId1] = 1 + } + } + doFunc() + }) } else { if recommendType == constant.RECOMMEND_TYPE_ALL { GetPlayerMgr().GetRecommendPlayers(excludeHums, outHums, 5)