From be43c5af872b3c2b1ef6a642834ad558bc37cee5 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 1 Aug 2019 11:10:41 +0800 Subject: [PATCH] fix guild --- .../jieling/logic/dao/root/GuildInfo.java | 7 +- .../ljsd/jieling/logic/family/GuildLogic.java | 73 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java index 317e80e3e..7b8ab938d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/GuildInfo.java @@ -4,6 +4,7 @@ import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; +import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -20,7 +21,7 @@ public class GuildInfo { private int joinType ; //加入类型 0:直接加入 1:申请加入 2:禁止加入 - private Map> members = new ConcurrentHashMap(); + private Map> members ; private long createTime; @@ -28,6 +29,10 @@ public class GuildInfo { this.id = ((Long)RedisUtil.getInstence().increment(RedisKey.FAMILY_ID)).intValue(); this.name = name; this.announce = announce; + members = new ConcurrentHashMap(); + if(!members.containsKey(GlobalsDef.CHAIRMAN)){ + members.put(GlobalsDef.CHAIRMAN,new HashSet<>()); + } members.get(GlobalsDef.CHAIRMAN).add(creator); this.createTime = System.currentTimeMillis(); } 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 new file mode 100644 index 000000000..4513cf1bc --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -0,0 +1,73 @@ +package com.ljsd.jieling.logic.family; + +import com.ljsd.jieling.config.SGuildSetting; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.dao.GuilidManager; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.GuildInfo; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.Family; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.ShieldedWordUtils; +import com.ljsd.jieling.util.StringUtil; + +import java.util.Collection; + +public class GuildLogic { + + public static void createFamily(ISession session,String familyName,String announce) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + int msgId = MessageTypeProto.MessageType.FAMILY_CREATE_RESPONSE_VALUE; + String err = checkForCreateGuild(user, familyName, announce); + if(!"".equals(err)){ + MessageUtil.sendErrorResponse(session,0,msgId,err); + return; + } + GuildInfo guildInfo = new GuildInfo(user.getId(),familyName,announce); + GuilidManager.addGuildInfo(guildInfo); + MessageUtil.sendMessage(session,1,msgId,null,true); + } + + public static String checkForCreateGuild( User user,String familyName,String announce) throws Exception { + if(StringUtil.isEmpty(familyName)){ + return "名字不能为空"; + } + boolean result = ShieldedWordUtils.checkName(familyName,false); + if (!result) { + return "包含敏感字"; + } + if(!StringUtil.isEmpty(announce)){ + result = ShieldedWordUtils.checkName(announce,false); + if (!result) { + return "包含敏感字"; + } + } + boolean enough= ItemUtil.itemCost(user, SGuildSetting.sGuildSetting.getCreatCost(), BIReason.CREATE_GUILD_CONSUME, 0); + if(!enough){ + return "道具不足"; + } + return ""; + } + + + public static void recommendFamily(ISession session) 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(); + for(GuildInfo guildInfo : guildInfos){ + builder.addFamilyBaseInfo(CommonProto.FamilyBaseInfo.newBuilder().setId(guildInfo.getId()).setLevle(1).setAnnouce(guildInfo.getAnnounce()).setName(guildInfo.getName())); + } + MessageUtil.sendMessage(session,1,msgId,builder.build(),true); + } + + public static void applyFamily(ISession session){ + + } +}