fix guild

back_recharge
wangyuan 2019-08-01 11:10:41 +08:00
parent cf006d2184
commit be43c5af87
2 changed files with 79 additions and 1 deletions

View File

@ -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<Integer, Set<Integer>> members = new ConcurrentHashMap();
private Map<Integer, Set<Integer>> 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();
}

View File

@ -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<GuildInfo> 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){
}
}