公会推荐分页

back_recharge
duhui 2021-08-27 16:00:31 +08:00
parent 3c15f4b049
commit 605b2e9952
2 changed files with 19 additions and 15 deletions

View File

@ -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<Family.FamilyRecommandRequest> {
@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);
}
}

View File

@ -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<GuildInfo> guildInfos = GuilidManager.recommandGuild(user);
Family.FamilyRecommandResponse.Builder builder = Family.FamilyRecommandResponse.newBuilder();
Map<Integer, GuildApply> 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<List<GuildInfo>> 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);
}