From 605b2e995204b8541f10a9aaba3235e416221506 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 16:00:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=8E=A8=E8=8D=90=E5=88=86?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../family/FamilyRecommandHandler.java | 7 ++--- .../ljsd/jieling/logic/family/GuildLogic.java | 27 ++++++++++--------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyRecommandHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyRecommandHandler.java index 0a998c929..d4f5a1bcf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyRecommandHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyRecommandHandler.java @@ -4,18 +4,19 @@ import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import rpc.protocols.Family; import rpc.protocols.MessageTypeProto; import org.springframework.stereotype.Component; @Component -public class FamilyRecommandHandler extends BaseHandler { +public class FamilyRecommandHandler extends BaseHandler { @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.FAMILY_RECOMEND_REQUEST; } @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { - GuildLogic.recommendFamily(iSession); + public void processWithProto(ISession session, Family.FamilyRecommandRequest proto) throws Exception { + GuildLogic.recommendFamily(session,proto); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index ce5b7f07a..6338cd0be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.family; +import com.google.common.collect.Lists; import com.google.protobuf.GeneratedMessage; import com.google.protobuf.Message; import com.ljsd.GameApplication; @@ -235,10 +236,10 @@ public class GuildLogic { * @param session * @throws Exception */ - public static void recommendFamily(ISession session) throws Exception { + public static void recommendFamily(ISession session,Family.FamilyRecommandRequest proto) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); - int msgId = MessageTypeProto.MessageType.FAMILY_RECOMEND_RESPONSE_VALUE; + Collection guildInfos = GuilidManager.recommandGuild(user); Family.FamilyRecommandResponse.Builder builder = Family.FamilyRecommandResponse.newBuilder(); Map applyGuildInfos = GuilidManager.getApplyGuildInfos(uid, 1); @@ -255,18 +256,20 @@ public class GuildLogic { } } - //工会临时改成推荐20个 下个版本改成分页 - int i = 0; - for(GuildInfo guildInfo : guildInfos){ - if(i >= 20){ - break; + + int page = proto.getPage(); + List> partition = Lists.partition(new ArrayList<>(guildInfos), 10); + // 防止超出下标 + if (page <= partition.size()){ + for(GuildInfo guildInfo : partition.get(page-1)){ + builder.addFamilyRecomandInfo(Family.FamilyRecomandInfo.newBuilder(). + setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)) + .setIsApply(applyGuildInfos.containsKey(guildInfo.getId())?1:0) + .build()); } - builder.addFamilyRecomandInfo(Family.FamilyRecomandInfo.newBuilder(). - setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)) - .setIsApply(applyGuildInfos.containsKey(guildInfo.getId())?1:0) - .build()); - i++; } + // 返回信息 + int msgId = MessageTypeProto.MessageType.FAMILY_RECOMEND_RESPONSE_VALUE; MessageUtil.sendMessage(session,1,msgId,builder.build(),true); }