跨服加公会
parent
360e6c846d
commit
30175a75c2
|
@ -39,7 +39,7 @@ public class ItemStaticConfig extends AbstractClassStaticConfig {
|
|||
try {
|
||||
ItemUtil.initDropReward();
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("SRewardItem|SRewardGroup init fail");
|
||||
LOGGER.error("SRewardItem|SRewardGroup init fail {}", e);
|
||||
}
|
||||
try {
|
||||
euipTppes = new HashMap<>();
|
||||
|
|
|
@ -103,11 +103,12 @@ public class CarDelayFunction implements FunctionManager {
|
|||
String value = item.getValue();
|
||||
int guildId = Integer.parseInt(value);
|
||||
String rewardByRank = guildRewardConfigTreeMap.floorEntry(rank).getValue();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
guildInfo.clearCarFightSb();
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
Collection<Set<Integer>> values = guildInfo.getMembers().values();
|
||||
// if(userLevelGuildMap.containsKey(guildId)){
|
||||
// values.add(usersByGuildId.get(guildId));
|
||||
|
|
|
@ -329,60 +329,60 @@ public class AreaManager {
|
|||
|
||||
private void processChangeGuildName(){
|
||||
|
||||
try {
|
||||
//合并名称
|
||||
|
||||
//查找本服所有名称
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
for(Map.Entry<Integer, GuildInfo> entry:guildInfoMap.entrySet()) {
|
||||
|
||||
String newKey = RedisKey.getKey(RedisKey.C_Family_Name_Key, entry.getValue().getName(), true);
|
||||
|
||||
if(newKey.startsWith(String.valueOf(areaId))){
|
||||
int length =newKey.length();
|
||||
newKey = newAreaId+newKey.substring(String.valueOf(areaId).length(),length);
|
||||
}
|
||||
|
||||
Object extFamilyId = RedisUtil.getInstence().get(newKey);
|
||||
|
||||
String tempName = newKey;
|
||||
String tempAdd="" ;
|
||||
if (extFamilyId != null) {
|
||||
int i = 0;
|
||||
while (i < 1000 && extFamilyId != null) {
|
||||
i++;
|
||||
tempAdd="_S" + i;
|
||||
tempName = newKey + tempAdd;
|
||||
extFamilyId = RedisUtil.getInstence().get(tempName);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
entry.getValue().setName(entry.getValue().getName()+tempAdd);
|
||||
Set<Integer> chairmans = entry.getValue().getMembers().get(GlobalsDef.CHAIRMAN);
|
||||
|
||||
for (Integer userId : chairmans) {
|
||||
//sendmail
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("hefugaiming_mail_gonghui_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("hefugaiming_mail_gonghui_txt");
|
||||
int[][] values = new int[1][2];
|
||||
values[0][0] = Global.GEM;
|
||||
values[0][1] = 100;
|
||||
String mailReward = ItemUtil.getMailReward(values);
|
||||
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
MailLogic.getInstance().sendMail(userId, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOGGER.info("合并命名异常" + e);
|
||||
}
|
||||
|
||||
}
|
||||
RedisUtil.getInstence().set(tempName, String.valueOf(extFamilyId),RedisKey.REDIS_OVER_FOREVER);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOGGER.info("合并命名异常" + e.toString());
|
||||
}
|
||||
// try {
|
||||
// //合并名称
|
||||
//
|
||||
// //查找本服所有名称
|
||||
// Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
// for(Map.Entry<Integer, GuildInfo> entry:guildInfoMap.entrySet()) {
|
||||
//
|
||||
// String newKey = RedisKey.getKey(RedisKey.C_Family_Name_Key, entry.getValue().getName(), true);
|
||||
//
|
||||
// if(newKey.startsWith(String.valueOf(areaId))){
|
||||
// int length =newKey.length();
|
||||
// newKey = newAreaId+newKey.substring(String.valueOf(areaId).length(),length);
|
||||
// }
|
||||
//
|
||||
// Object extFamilyId = RedisUtil.getInstence().get(newKey);
|
||||
//
|
||||
// String tempName = newKey;
|
||||
// String tempAdd="" ;
|
||||
// if (extFamilyId != null) {
|
||||
// int i = 0;
|
||||
// while (i < 1000 && extFamilyId != null) {
|
||||
// i++;
|
||||
// tempAdd="_S" + i;
|
||||
// tempName = newKey + tempAdd;
|
||||
// extFamilyId = RedisUtil.getInstence().get(tempName);
|
||||
// }
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// entry.getValue().setName(entry.getValue().getName()+tempAdd);
|
||||
// Set<Integer> chairmans = entry.getValue().getMembers().get(GlobalsDef.CHAIRMAN);
|
||||
//
|
||||
// for (Integer userId : chairmans) {
|
||||
// //sendmail
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("hefugaiming_mail_gonghui_title");
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessage("hefugaiming_mail_gonghui_txt");
|
||||
// int[][] values = new int[1][2];
|
||||
// values[0][0] = Global.GEM;
|
||||
// values[0][1] = 100;
|
||||
// String mailReward = ItemUtil.getMailReward(values);
|
||||
// int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
// MailLogic.getInstance().sendMail(userId, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
// }
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// LOGGER.info("合并命名异常" + e);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// RedisUtil.getInstence().set(tempName, String.valueOf(extFamilyId),RedisKey.REDIS_OVER_FOREVER);
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// LOGGER.info("合并命名异常" + e.toString());
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON;
|
|||
import com.google.gson.*;
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.db.mongo.core.CServerInfo;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.GlobleSystemLogic;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
@ -59,7 +62,6 @@ public class MongoUtil {
|
|||
|
||||
|
||||
public static Map<Integer,MongoTemplate> mongoTemplateMap = new HashMap<>();
|
||||
public static Map<Integer,Integer> guild2serverid= new HashMap<>();
|
||||
|
||||
private MongoClient mongoClient;
|
||||
private LjsdMongoTemplate myMongoTemplate;
|
||||
|
@ -77,8 +79,6 @@ public class MongoUtil {
|
|||
for (CServerInfo cServerInfo : cServerInfos) {
|
||||
getMonogTemplate(cServerInfo.getServerId());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public LjsdMongoTemplate getMyMongoTemplate() {
|
||||
|
@ -117,32 +117,6 @@ public class MongoUtil {
|
|||
return MongoUtil.getInstence().coreMongoTemplate;
|
||||
}
|
||||
|
||||
// public static void main(String[] args) {
|
||||
// try {
|
||||
// LjsdMongoTemplate ljsdMongoTemplate = getLjsdMongoTemplate();
|
||||
// Criteria criatira = new Criteria();
|
||||
// Random random = new Random();
|
||||
// int minLevel = random.nextInt(10) - 5;
|
||||
// minLevel = minLevel <= 5 ? 5 : minLevel;
|
||||
// int maxLevel = random.nextInt(10) + 20;
|
||||
// long befor3Day = 1558332518379l - 3;
|
||||
//// criatira.andOperator(Criteria.where("id").nin(10003770),
|
||||
//// Criteria.where("level").gte(minLevel), Criteria.where("level").lte(maxLevel),
|
||||
//// Criteria.where("lastLoginTime").gte(befor3Day));//不包含自己
|
||||
//// Criteria.where("level").is(1);
|
||||
// Query query = new Query(criatira).limit(100);
|
||||
// query.fields().include("playerManager");
|
||||
// long startTime = System.currentTimeMillis();
|
||||
// List<User> allByCondition = ljsdMongoTemplate.findAllByCondition(query, User.class);
|
||||
// System.out.println((System.currentTimeMillis() - startTime));
|
||||
// } catch (UnknownHostException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
public static void checkDb() {
|
||||
Set<Integer> set = OnlineUserManager.sessionMap.keySet();
|
||||
Integer[] integers = set.toArray(new Integer[0]);
|
||||
|
@ -260,45 +234,40 @@ public class MongoUtil {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (ClassCastException unused) {
|
||||
is = false;
|
||||
} catch (NullPointerException unused) {
|
||||
is = false;
|
||||
}
|
||||
|
||||
return is;
|
||||
|
||||
}
|
||||
|
||||
//慢查询 弃用 lxr
|
||||
// public Integer findCUserServerId(int uid){
|
||||
// BasicQuery basicQuery = new BasicQuery(new BasicDBObject("uid", uid),new BasicDBObject("serverId", 1));
|
||||
// DBObject c_user_info = coreMongoTemplate.findOne(basicQuery, DBObject.class, "user_info");
|
||||
// if(c_user_info == null){
|
||||
// LOGGER.error("the user={} not exists",uid);
|
||||
// return null;
|
||||
// }
|
||||
// String serverid = (String) c_user_info.get("serverId");
|
||||
//
|
||||
// return Integer.valueOf(serverid);
|
||||
// }
|
||||
|
||||
|
||||
public Integer findGuilderverId(int guildId){
|
||||
if(guild2serverid.containsKey(guildId)){
|
||||
return guild2serverid.get(guildId);
|
||||
}else {
|
||||
guild2serverid.put(guildId, GameApplication.serverId);
|
||||
return GameApplication.serverId;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//初始化 数据库映射 公会server映射
|
||||
public MongoTemplate getMonogTemplate(int serverId){
|
||||
if (serverId == GameApplication.serverId) {
|
||||
MongoTemplate mongoTemplate = mongoTemplateMap.get(serverId);
|
||||
if (mongoTemplate == null) {
|
||||
String dbName = "jieling_"+serverId;
|
||||
MappingMongoConverter mappingMongoConverter = (MappingMongoConverter) ConfigurableApplicationContextManager.getBean("mappingMongoConverter1");
|
||||
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, dbName);
|
||||
mongoTemplate = new MongoTemplate(mongoDbFactory, mappingMongoConverter);
|
||||
mongoTemplateMap.put(serverId,mongoTemplate);
|
||||
}
|
||||
return mongoTemplate;
|
||||
}
|
||||
// 如果不参与跨服,不可以获取其他服数据
|
||||
if (GlobleSystemLogic.crossGroup == 0) {
|
||||
return null;
|
||||
}
|
||||
Integer group = RedisUtil.getInstence().getMapValue(RedisKey.SERVER_SPLIT_INFO, "", Integer.toString(serverId), Integer.class);
|
||||
if (group == null || group <= 0){
|
||||
return null;
|
||||
}
|
||||
// 不是同一组也不可以获取数据
|
||||
if (GlobleSystemLogic.crossGroup != group) {
|
||||
return null;
|
||||
}
|
||||
if(!AreaManager.getInstance().checkServerIdAllowPermit(serverId)){
|
||||
return null;
|
||||
}
|
||||
|
@ -310,24 +279,22 @@ public class MongoUtil {
|
|||
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, dbName);
|
||||
mongoTemplate = new MongoTemplate(mongoDbFactory, mappingMongoConverter);
|
||||
mongoTemplateMap.put(serverId,mongoTemplate);
|
||||
List<GuildInfo> all = mongoTemplate.findAll(GuildInfo.class, GuildInfo._COLLECTION_NAME);
|
||||
for (GuildInfo guildInfo:all) {
|
||||
guild2serverid.put(guildInfo.getId(),serverId);
|
||||
}
|
||||
}
|
||||
return mongoTemplate;
|
||||
}
|
||||
//初始化 数据库映射 无合服操作拦截
|
||||
// public MongoTemplate getMonogTemplate2(int serverId){
|
||||
// MongoTemplate mongoTemplate = mongoTemplateMap.get(serverId);
|
||||
// if(mongoTemplate == null){
|
||||
// String dbName = "jieling_"+serverId;
|
||||
// // new MongoTemplate(this.mongoDbFactory(), this.mappingMongoConverter1())
|
||||
// MappingMongoConverter mappingMongoConverter = (MappingMongoConverter) ConfigurableApplicationContextManager.getBean("mappingMongoConverter1");
|
||||
// MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, dbName);
|
||||
// mongoTemplate = new MongoTemplate(mongoDbFactory, mappingMongoConverter);
|
||||
// mongoTemplateMap.put(serverId,mongoTemplate);
|
||||
// }
|
||||
// return mongoTemplate;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取公会所在服务器id
|
||||
* @param guildId
|
||||
* @return
|
||||
*/
|
||||
public Integer findGuilderverId(int guildId){
|
||||
Integer serverId = RedisUtil.getInstence().getObject(RedisKey.GUILD_SERVERID, Integer.toString(guildId), Integer.class, -1);
|
||||
if(serverId != null){
|
||||
return serverId;
|
||||
}else {
|
||||
return GameApplication.serverId;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -143,6 +143,8 @@ public class RedisKey {
|
|||
|
||||
public static final String FAMILY_INFO = "FAMILY_INFO";
|
||||
|
||||
public static final String FAMILY_NAMES = "FAMILY_NAMES";
|
||||
|
||||
public static final String FAMILY_FIGHT = "FAMILY_FIGHT" ;
|
||||
public static final String FAMILY_ATTACK_BLOOD = "FAMILY_ATTACK_BLOOD";
|
||||
public static final String FAMILY_FIGHT_RANK = "FAMILY_FIGHT_RANK";
|
||||
|
@ -277,9 +279,7 @@ public class RedisKey {
|
|||
|
||||
public static final String PLAYER_INFO_CACHE = "PLAYER_INFO_CACHE";
|
||||
|
||||
public static final String GUILD_INFO_CACHE = "GUILD_INFO_CACHE";
|
||||
//排行榜
|
||||
|
||||
public final static String CHAMPION_RANK = "CHAMPION_RANK";
|
||||
|
||||
public static final String SYSMSG = "SYSMSG";//????
|
||||
|
@ -355,7 +355,7 @@ public class RedisKey {
|
|||
|
||||
public static final String WORLD_ARENA_RRECORD = "WORLD_ARENA_RRECORD";
|
||||
|
||||
public static final String GUILD_LEADER_CACHE = "GUILD_LEADER_CACHE";
|
||||
public static final String GUILD_SERVERID = "GUILD_SERVERID";
|
||||
|
||||
public static final String CROSS_RANK_UPDATE = "CROSS_RANK_UPDATE";
|
||||
public static final String CROSS_RANK_DELETE = "CROSS_RANK_DELETE";
|
||||
|
|
|
@ -1419,7 +1419,7 @@ public class RedisUtil {
|
|||
else if (
|
||||
RedisKey.PLAYER_INFO_CACHE.equals(type) || RedisKey.FAMILY_INFO.equals(type) ||
|
||||
RedisKey.PIDGIDTEMP.equals(type) || RedisKey.SERVER_WORLDLEVE_INFO.equals(type) ||
|
||||
RedisKey.GUILD_INFO_CACHE.equals(type) || RedisKey.SERVER_SPLIT_INFO.equals(type) ||
|
||||
RedisKey.SERVER_SPLIT_INFO.equals(type) ||
|
||||
RedisKey.SERVER_SPLIT_MAIL_INFO.equals(type) || RedisKey.CROSS_ARENA_ROBOT_INFO.equals(type) ||
|
||||
RedisKey.CROSS_SERVICE_ARENA.equals(type) || RedisKey.WORLD_ARENA_RANK_MY_MATH.equals(type) ||
|
||||
RedisKey.WORLD_ARENA_MY_PRON.equals(type) || RedisKey.WORLD_ARENA_RRECORD.equals(type) ||
|
||||
|
@ -1443,7 +1443,7 @@ public class RedisUtil {
|
|||
|
||||
if(RedisKey.PLAYER_INFO_CACHE.equals(type) ||RedisKey.FAMILY_INFO.equals(type)||
|
||||
RedisKey.PIDGIDTEMP.equals(type)||RedisKey.SERVER_WORLDLEVE_INFO.equals(type)||
|
||||
RedisKey.GUILD_INFO_CACHE.equals(type)||RedisKey.SERVER_SPLIT_INFO.equals(type)||
|
||||
RedisKey.SERVER_SPLIT_INFO.equals(type)||
|
||||
RedisKey.SERVER_SPLIT_MAIL_INFO.equals(type)||RedisKey.CROSS_ARENA_ROBOT_INFO.equals(type)||
|
||||
RedisKey.CROSS_SERVICE_ARENA.equals(type)||RedisKey.WORLD_ARENA_RANK_MY_MATH.equals(type)||
|
||||
RedisKey.WORLD_ARENA_MY_PRON.equals(type)||RedisKey.WORLD_ARENA_RRECORD.equals(type)||
|
||||
|
|
|
@ -64,7 +64,7 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
|
|||
}
|
||||
|
||||
if(type == 1 || type == 2){
|
||||
guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
|
||||
guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId());
|
||||
if(guildInfo == null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class CommitShejiActivityItemRequestHandler extends BaseHandler<ActivityP
|
|||
}
|
||||
|
||||
//lock all
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
@ -100,6 +100,7 @@ public class CommitShejiActivityItemRequestHandler extends BaseHandler<ActivityP
|
|||
_result[0][1]= sGodSacrificeSetting.getRewardItemChangRate()[index+3]*proto.getItemNum();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, _result, BIReason.SHEJI_ACTIVITY);
|
||||
guildInfo.setGuildSheJiScore(score+guildInfo.getGuildSheJiScore());
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
Poster.getPoster().dispatchEvent(new CommitSheJiEvent(guildId,uid,score,proto.getItemId(),proto.getItemNum()));
|
||||
//社稷捐献次数
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.SHEJI_DONATE,1);
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
package com.ljsd.jieling.handler.family;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.core.Lockeys;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
|
@ -76,7 +72,7 @@ public class FamilyFeteRequestHandler extends BaseHandler<Family.FamilyFeteReque
|
|||
|
||||
//drop exp
|
||||
//lock 操作公会
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
|
||||
if (guildInfo == null) {
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NULL);
|
||||
|
@ -100,6 +96,7 @@ public class FamilyFeteRequestHandler extends BaseHandler<Family.FamilyFeteReque
|
|||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
} else {
|
||||
guildInfo.updateExp(guildInfo.getExp() + addexp);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
int exp = guildInfo.getExp();
|
||||
return Family.FamilyFeteResponse.newBuilder().setCurExp(exp).setDrop(drop).build();
|
||||
|
|
|
@ -57,7 +57,7 @@ public class FamilyGetFeteRewardRequestHandler extends BaseHandler<Family.Family
|
|||
|
||||
//check value 检查下公会进度;
|
||||
//TODO 加锁
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int fete = guildInfo.getFete();
|
||||
if(sGuildSacrificeRewardConfig.getScore()>fete){
|
||||
throw new ErrorCodeException("当前公会祭祀积分进度未达成 target:"+sGuildSacrificeRewardConfig.getScore()+"now:"+fete);
|
||||
|
|
|
@ -9,7 +9,6 @@ import com.ljsd.jieling.logic.GlobleSystemLogic;
|
|||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
|
@ -66,7 +65,7 @@ public class GetCarChallengeListHandler extends BaseHandler {
|
|||
int zsetSize = RedisUtil.getInstence().getZsetSize(key);
|
||||
int[] matchSection = STableManager.getConfig(SWorldBossSetting.class).get(1).getMatchSection();
|
||||
int matchNums = matchSection[0] + matchSection[1];
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> members = new HashSet<>();
|
||||
guildInfo.getMembers().values().forEach(integers ->members.addAll(integers));
|
||||
|
||||
|
@ -207,7 +206,7 @@ public class GetCarChallengeListHandler extends BaseHandler {
|
|||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setServerName(serverName);
|
||||
if(challengeGuildId!=0){
|
||||
GuildCache crossGuild = CrossDeathPathLogic.getCrossGuild(challengeGuildId);
|
||||
GuildInfo crossGuild = CrossDeathPathLogic.getCrossGuild(challengeGuildId);
|
||||
builder1.setGuildName(crossGuild.getName());
|
||||
}
|
||||
builder.addCarChallengeItem(builder1);
|
||||
|
@ -232,7 +231,7 @@ public class GetCarChallengeListHandler extends BaseHandler {
|
|||
builder1.addTeamInfo(CBean2Proto.getSimpleTeamInfoByHero(user, hero,heroInfo.getPosition()));
|
||||
}
|
||||
if(challengeGuildId!=0){
|
||||
GuildInfo challenegeGuildInfo = GuilidManager.guildInfoMap.get(challenegeUser.getPlayerInfoManager().getGuildId());
|
||||
GuildInfo challenegeGuildInfo = GuilidManager.getGuildInfo(challenegeUser.getPlayerInfoManager().getGuildId());
|
||||
builder1.setGuildName(challenegeGuildInfo.getName());
|
||||
}
|
||||
builder.addCarChallengeItem(builder1);
|
||||
|
|
|
@ -38,7 +38,7 @@ public class GuildGetHelpLogRequestHandler extends BaseHandler<Family.GuildGetHe
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
|
|
@ -41,7 +41,7 @@ public class GuildHelpGetAllRequestHandler extends BaseHandler<Family.GuildHelpG
|
|||
}
|
||||
|
||||
//lock all
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
|
|
@ -61,7 +61,7 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler<Family.GuildHe
|
|||
|
||||
//lock all 会修改公会记录
|
||||
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
@ -102,18 +102,19 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler<Family.GuildHe
|
|||
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(target.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)).setNum(entry.getValue()));
|
||||
}
|
||||
build.setName(target.getPlayerInfoManager().getNickName()).setUid(target.getId()).setPracticeLevel(target.getHeroManager().getPracticeLevel());
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
||||
|
||||
|
||||
GuildHelpLog guildHelpLog = new GuildHelpLog(uid, target.getId(), user.getPlayerInfoManager().getNickName(),
|
||||
target.getPlayerInfoManager().getNickName(), (int) (System.currentTimeMillis() / 1000), proto.getType(),
|
||||
user.getHeroManager().getPracticeLevel(), target.getHeroManager().getPracticeLevel());
|
||||
guildInfo.addGuildHelpLog(guildHelpLog);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
//notify all log
|
||||
Family.GuildHelpLogIndication build1 = Family.GuildHelpLogIndication.newBuilder()
|
||||
.setGuildHelpLog(GuildLogic.getLog(guildHelpLog))
|
||||
.build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpLogIndication,build1);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpLogIndication,build1);
|
||||
|
||||
return Family.GuildHelpHelpOtherResponse.newBuilder().setDrop(drop).build();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ public class GuildSendHelpRequestHandler extends BaseHandler<Family.GuildSendHel
|
|||
}
|
||||
|
||||
//lock all
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
@ -86,7 +86,7 @@ public class GuildSendHelpRequestHandler extends BaseHandler<Family.GuildSendHel
|
|||
.setName(user.getPlayerInfoManager().getNickName())
|
||||
.setPracticeLevel(user.getHeroManager().getPracticeLevel())
|
||||
.build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);
|
||||
|
||||
|
||||
long time =System.currentTimeMillis();
|
||||
|
|
|
@ -22,7 +22,7 @@ public class Cmd_addfete extends GmRoleAbstract {
|
|||
int guildId = Integer.parseInt(args[0]);
|
||||
int addexp = Integer.parseInt(args[1]);
|
||||
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
|
||||
if (guildInfo == null) {
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NULL);
|
||||
|
@ -37,6 +37,7 @@ public class Cmd_addfete extends GmRoleAbstract {
|
|||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
} else {
|
||||
guildInfo.updateExp(guildInfo.getExp() + addexp);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public class Cmd_guildboss extends GmRoleAbstract {
|
|||
|
||||
// 获取公会信息
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
// 更换boss信息
|
||||
if(guildInfo.getCurrBossId()!=configMap.size()){
|
||||
guildInfo.setCurrBossId(Integer.parseInt(arg));
|
||||
|
@ -33,7 +33,7 @@ public class Cmd_guildboss extends GmRoleAbstract {
|
|||
}else{
|
||||
guildInfo.setBossHpRemain(-1);
|
||||
}
|
||||
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public class Cmd_skyeye extends GmRoleAbstract {
|
|||
// 获取公会信息
|
||||
GuildInfo guildInfo = null;
|
||||
if (type == RESET_GUILD_NAME || type == RESET_GUILD_ANNOUNCEMENT){
|
||||
guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(args[2]));
|
||||
guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(args[2]));
|
||||
}
|
||||
if (guildInfo == null){
|
||||
LOGGER.error("天眼,修改公会名称报错,找不到公会:{}",args[1]);
|
||||
|
|
|
@ -15,7 +15,7 @@ public class Cmd_updateguild extends GmAbstract {
|
|||
public boolean exec(String[] args) throws Exception {
|
||||
|
||||
int guildId = Optional.of(Integer.parseInt(args[0])).orElse(0);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if (guildInfo == null) {
|
||||
throw new ErrorCodeException("修改公会,公会不存在,公会id:"+guildId);
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ public class Cmd_updateguild extends GmAbstract {
|
|||
case "dissolution":
|
||||
guildInfo.setLevelTime(1);
|
||||
GuilidManager.addGuildToRelease(guildInfo);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
break;
|
||||
default:
|
||||
throw new ErrorCodeException("修改公会,类型错误,公会id:"+guildId+",类型:"+parm);
|
||||
|
|
|
@ -84,7 +84,7 @@ public class ReportUtil {
|
|||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
GuildInfo guildInfo = null;
|
||||
if(guildId!=0){
|
||||
guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
}
|
||||
Item coin = user.getItemManager().getItem(COIN_ID);
|
||||
Item diamond = user.getItemManager().getItem(DIAMOND_ID);
|
||||
|
|
|
@ -45,7 +45,7 @@ public class GlobleSystemLogic implements IEventHandler {
|
|||
*/
|
||||
private static volatile int GLOABLE_WORLD_LEVE_CACHE = 0;
|
||||
private static volatile int GLOABLE_WORLD_LEVE_CACHE_LINE = 0; // 名次基线 看配置
|
||||
private static int crossGroup = 0;
|
||||
public static int crossGroup = 0;
|
||||
|
||||
private GlobleSystemLogic() {
|
||||
Poster.getPoster().listenEvent(this, MinuteTaskEvent.class);
|
||||
|
|
|
@ -47,7 +47,7 @@ public class ExploreExpectActivity extends AbstractActivity {
|
|||
User user = UserManager.getUser(session.getUid(), true);
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if(guildId != 0 ){
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
return guildInfo.getExploreKillMonsterNum() >= values[0][0];
|
||||
}
|
||||
return false;
|
||||
|
@ -59,9 +59,10 @@ public class ExploreExpectActivity extends AbstractActivity {
|
|||
public void onActivityEndOnMySelf(User user) throws Exception {
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if(guildId !=0){
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(guildInfo.getExploreKillMonsterNum()!=0){
|
||||
guildInfo.setExploreKillMonsterNum(0);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ class SheJiActivity extends AbstractActivity {
|
|||
}
|
||||
|
||||
//lock all 会修改公会记录
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
@ -148,10 +148,9 @@ class SheJiActivity extends AbstractActivity {
|
|||
public void onActivityEnd() throws Exception {
|
||||
ThreadManager.getScheduledExecutor().execute(this::sendReward);
|
||||
ThreadManager.getScheduledExecutor().execute(this::sendGuildReward);
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
||||
try {
|
||||
SimpleTransaction transaction = SimpleTransaction.current();
|
||||
GuildInfo guildInfo = guildInfoEntry.getValue();
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
|
@ -159,6 +158,7 @@ class SheJiActivity extends AbstractActivity {
|
|||
}
|
||||
Lockeys.getLockeys().lock("guild",sendUids);
|
||||
guildInfo.setGuildSheJiScore(0);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}catch (Exception e){
|
||||
LOGGER.error("Exception resetGuildInfo err");
|
||||
}finally {
|
||||
|
@ -279,7 +279,7 @@ class SheJiActivity extends AbstractActivity {
|
|||
try {
|
||||
String guildId = item.getValue();
|
||||
int guild = Integer.parseInt(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guild);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guild);
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||
sendUids.addAll(items);
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/12/11
|
||||
* @discribe
|
||||
*/
|
||||
public class GuildInfoCache {
|
||||
|
||||
private int serverId;
|
||||
|
||||
private int guildId;
|
||||
|
||||
private String guildName;
|
||||
|
||||
public int getServerId() {
|
||||
return serverId;
|
||||
}
|
||||
|
||||
public void setServerId(int serverId) {
|
||||
this.serverId = serverId;
|
||||
}
|
||||
|
||||
public int getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
public void setGuildId(int guildId) {
|
||||
this.guildId = guildId;
|
||||
}
|
||||
|
||||
public String getGuildName() {
|
||||
return guildName;
|
||||
}
|
||||
|
||||
public void setGuildName(String guildName) {
|
||||
this.guildName = guildName;
|
||||
}
|
||||
}
|
|
@ -22,29 +22,62 @@ import java.util.*;
|
|||
|
||||
public class GuilidManager {
|
||||
|
||||
public static Map<Integer,GuildInfo> guildInfoMap = new HashMap<>();
|
||||
public static Map<String,GuildInfo> guildNameInfoMap = new HashMap<>();
|
||||
public static Map<Integer,List<GuildLog>> guildLogInfoMap = new HashMap<>();
|
||||
|
||||
public static void addGuildInfo(GuildInfo guildInfo) throws Exception {
|
||||
|
||||
Integer guilderverId = MongoUtil.getInstence().findGuilderverId(guildInfo.getId());
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(guilderverId);
|
||||
saveOrUpdateGuildInfo(guildInfo);
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(guildInfo.getServerId());
|
||||
otherMonogTemplate.save(guildInfo);
|
||||
// MongoUtil.getInstence().getMyMongoTemplate().save(guildInfo);
|
||||
guildInfoMap.put(guildInfo.getId(),guildInfo);
|
||||
guildNameInfoMap.put(guildInfo.getName(),guildInfo);
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_NAMES, "", guildInfo.getName(), Integer.toString(guildInfo.getId()));
|
||||
}
|
||||
|
||||
public static void saveOrUpdateGuildInfo(GuildInfo guildInfo) {
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), guildInfo);
|
||||
}
|
||||
|
||||
public static GuildInfo getGuildInfo(int guildId){
|
||||
GuildInfo mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", Integer.toString(guildId), GuildInfo.class);
|
||||
return mapEntry;
|
||||
}
|
||||
|
||||
public static GuildInfo getGuildInfoByName(String guildName){
|
||||
String guildId = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_NAMES, "", guildName, String.class);
|
||||
if (guildId == null || guildId.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
GuildInfo guildInfo = getGuildInfo(Integer.parseInt(guildId));
|
||||
return guildInfo;
|
||||
}
|
||||
|
||||
public static Map<Integer, GuildInfo> getAllGuildInfos(){
|
||||
Map<String, String> mapValues = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_NAMES, "", String.class, String.class);
|
||||
if (mapValues == null || mapValues.isEmpty()) {
|
||||
return new HashMap<>(0);
|
||||
}
|
||||
Map<Integer, GuildInfo> allGuildInfos = new HashMap<>(mapValues.size());
|
||||
for (Map.Entry<String, String> entry : mapValues.entrySet()) {
|
||||
GuildInfo guildInfo = getGuildInfo(Integer.parseInt(entry.getValue()));
|
||||
allGuildInfos.put(guildInfo.getId(), guildInfo);
|
||||
}
|
||||
return allGuildInfos;
|
||||
}
|
||||
|
||||
public static int getAllGuildCount(){
|
||||
Map<String, String> mapValues = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_NAMES, "", String.class, String.class);
|
||||
if (mapValues == null || mapValues.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
return mapValues.size();
|
||||
}
|
||||
|
||||
public static void removeGuildInfo(GuildInfo guildInfo){
|
||||
System.out.println("此处删除了工会信息"+guildInfo.getId());
|
||||
int guildId = guildInfo.getId();
|
||||
guildInfoMap.remove(guildId);
|
||||
guildNameInfoMap.remove(guildInfo.getName());
|
||||
RedisUtil.getInstence().removeMapEntrys(RedisKey.FAMILY_INFO, "", String.valueOf(guildId));
|
||||
RedisUtil.getInstence().removeMapEntrys(RedisKey.FAMILY_NAMES, "", guildInfo.getName());
|
||||
guildLogInfoMap.remove(guildId);
|
||||
|
||||
Integer guilderverId = MongoUtil.getInstence().findGuilderverId(guildId);
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(guilderverId);
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(guildInfo.getServerId());
|
||||
otherMonogTemplate.remove(new BasicQuery(new BasicDBObject("_id",guildId)),"guildInfo");
|
||||
otherMonogTemplate.remove(new BasicQuery(new BasicDBObject("guildId",guildId)),"guildLog");
|
||||
}
|
||||
|
@ -72,9 +105,8 @@ public class GuilidManager {
|
|||
RedisUtil.getInstence().removeMapEntrys("apply-user-play",Integer.toString(uid),Integer.toString(guild));
|
||||
}
|
||||
|
||||
public static void addGuildLog(GuildLog guildLog) throws Exception {
|
||||
Integer guilderverId = MongoUtil.getInstence().findGuilderverId(guildLog.getGuildId());
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(guilderverId);
|
||||
public static void addGuildLog(int serverId, GuildLog guildLog) throws Exception {
|
||||
MongoTemplate otherMonogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId);
|
||||
otherMonogTemplate.save(guildLog);
|
||||
if(!guildLogInfoMap.containsKey(guildLog.getGuildId())){
|
||||
guildLogInfoMap.put(guildLog.getGuildId(),new ArrayList<>());
|
||||
|
@ -83,13 +115,7 @@ public class GuilidManager {
|
|||
}
|
||||
|
||||
public static void init() throws Exception {
|
||||
List<GuildInfo> all = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildInfo._COLLECTION_NAME, GuildInfo.class);
|
||||
List<GuildLog> guildLogs = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildLog._COLLECTION_NAME, GuildLog.class);
|
||||
for(GuildInfo guildInfo : all){
|
||||
guildInfoMap.put(guildInfo.getId(),guildInfo);
|
||||
guildNameInfoMap.put(guildInfo.getName(),guildInfo);
|
||||
}
|
||||
|
||||
for(GuildLog guildLog : guildLogs){
|
||||
if(!guildLogInfoMap.containsKey(guildLog.getGuildId())){
|
||||
guildLogInfoMap.put(guildLog.getGuildId(),new ArrayList<>());
|
||||
|
@ -122,7 +148,7 @@ public class GuilidManager {
|
|||
RedisUtil.getInstence().zsetRemoveOne(RedisUtil.getInstence().getKey(guildRank.getRedisKey(),""),value);
|
||||
RedisUtil.getInstence().zsetRemoveOne(RedisUtil.getInstence().getKey(guildRank.getCrossRedisKey(),"",false),value);
|
||||
|
||||
GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value));
|
||||
GuildInfo guildInfo = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", value, GuildInfo.class);
|
||||
if(guildInfo == null){
|
||||
// 公会不存在
|
||||
CrossDeathPathLogic.removeCrossGuild(Integer.parseInt(value));
|
||||
|
@ -140,7 +166,19 @@ public class GuilidManager {
|
|||
}
|
||||
|
||||
public static Collection<GuildInfo> recommandGuild(User user) {
|
||||
return guildInfoMap.values();
|
||||
Map<String, String> mapValues = RedisUtil.getInstence().getMapValues(RedisKey.FAMILY_NAMES, "", String.class, String.class);
|
||||
if (mapValues == null || mapValues.isEmpty()) {
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
List<GuildInfo> guildInfo = new ArrayList<>(mapValues.size());
|
||||
for (Map.Entry<String, String> entry : mapValues.entrySet()) {
|
||||
GuildInfo mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", entry.getValue(), GuildInfo.class);
|
||||
if (mapEntry == null) {
|
||||
continue;
|
||||
}
|
||||
guildInfo.add(mapEntry);
|
||||
}
|
||||
return guildInfo;
|
||||
}
|
||||
|
||||
public static void addGuildToRelease(GuildInfo guildInfo) {
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
package com.ljsd.jieling.logic.dao.root;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class GuildCache {
|
||||
|
||||
private int serverId;
|
||||
|
||||
private int icon;
|
||||
|
||||
private int level;
|
||||
|
||||
private String name;
|
||||
|
||||
private int leaderUId;
|
||||
|
||||
public int getServerId() {
|
||||
return serverId;
|
||||
}
|
||||
|
||||
public void setServerId(int serverId) {
|
||||
this.serverId = serverId;
|
||||
}
|
||||
|
||||
public int getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setIcon(int icon) {
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(int level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getLeaderUId() {
|
||||
return leaderUId;
|
||||
}
|
||||
|
||||
public void setLeaderUId(int leaderUId) {
|
||||
this.leaderUId = leaderUId;
|
||||
}
|
||||
|
||||
public GuildCache(int serverId, int icon, int level, String name, int leaderUId) {
|
||||
this.serverId = serverId;
|
||||
this.icon = icon;
|
||||
this.level = level;
|
||||
this.name = name;
|
||||
this.leaderUId = leaderUId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建工会缓存
|
||||
* @param guildInfo
|
||||
* @return
|
||||
*/
|
||||
public static GuildCache create(GuildInfo guildInfo){
|
||||
int serverId = GameApplication.serverId;
|
||||
Set<Integer> set = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN);
|
||||
Integer userId = set.iterator().next();
|
||||
return new GuildCache(serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName(), userId);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.dao.root;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
import rpc.protocols.Family;
|
||||
|
@ -19,6 +20,8 @@ public class GuildInfo extends MongoBase {
|
|||
|
||||
private int id;
|
||||
|
||||
private int serverId;
|
||||
|
||||
private String name;
|
||||
|
||||
private String announce;
|
||||
|
@ -90,6 +93,7 @@ public class GuildInfo extends MongoBase {
|
|||
icon = MathUtils.randomInt(SGuildSetting.sGuildSetting.getTotemItem().length)+1;
|
||||
defendInfo = new ConcurrentHashMap<>();
|
||||
currBossId = 1;
|
||||
this.serverId = GameApplication.serverId;
|
||||
}
|
||||
|
||||
public void addMembers(int type,int uid){
|
||||
|
@ -190,10 +194,6 @@ public class GuildInfo extends MongoBase {
|
|||
defendInfo.remove(uid);
|
||||
removeString("defendInfo."+uid);
|
||||
}
|
||||
public void removeAllDefendInfo(){
|
||||
defendInfo = new HashMap<>();
|
||||
updateString("defendInfo",new HashMap<>());
|
||||
}
|
||||
public int getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
@ -337,6 +337,15 @@ public class GuildInfo extends MongoBase {
|
|||
this.guildSheJiScore = guildSheJiScore;
|
||||
}
|
||||
|
||||
public int getServerId() {
|
||||
return serverId;
|
||||
}
|
||||
|
||||
public void setServerId(int serverId) {
|
||||
updateString("serverId",serverId);
|
||||
this.serverId = serverId;
|
||||
}
|
||||
|
||||
public List<Integer> getHistoryMember() {
|
||||
return historyMember;
|
||||
}
|
||||
|
|
|
@ -125,9 +125,10 @@ public class ExplorerMapLogic {
|
|||
//同个工会 死亡计数
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if (guildId != 0) {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if (guildInfo != null) {
|
||||
guildInfo.setExploreKillMonsterNum(guildInfo.getExploreKillMonsterNum() + 1);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
Poster.getPoster().dispatchEvent(new ExploreEvent(user.getId(), 1));
|
||||
Set<Integer> allUid = new HashSet<>();
|
||||
allUid.addAll(guildInfo.getMembers().get(GlobalsDef.CHAIRMAN));
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
package com.ljsd.jieling.logic.family;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.mongo.core.CServerInfo;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||
import com.ljsd.jieling.tools.Utils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
|
@ -105,8 +97,8 @@ public class CrossDeathPathLogic {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static GuildCache getCrossGuild(int id){
|
||||
return RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(id), GuildCache.class);
|
||||
public static GuildInfo getCrossGuild(int id){
|
||||
return RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(id), GuildInfo.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -115,7 +107,7 @@ public class CrossDeathPathLogic {
|
|||
* @return
|
||||
*/
|
||||
public static void setCrossGuild(GuildInfo guildInfo){
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), GuildCache.create(guildInfo));
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), guildInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -159,7 +151,7 @@ public class CrossDeathPathLogic {
|
|||
for(ZSetOperations.TypedTuple<String> value:values){
|
||||
rank++;
|
||||
int guildId = Integer.parseInt(value.getValue());
|
||||
GuildCache guild = getCrossGuild(guildId);
|
||||
GuildInfo guild = getCrossGuild(guildId);
|
||||
if(guild==null||guild.getServerId()!=serverId){
|
||||
continue;
|
||||
}
|
||||
|
@ -175,13 +167,13 @@ public class CrossDeathPathLogic {
|
|||
RedisUtil.getInstence().delVague(RedisKey.DEATH_PATH_DELETE,pattern);
|
||||
|
||||
// 旧数据兼容,只执行一次
|
||||
String one = (String) RedisUtil.getInstence().get(groupId+RedisKey.DEATH_PATH_DELETE_CROSS_ONE);
|
||||
if (one == null){
|
||||
Set<String> dimKey = RedisUtil.getInstence().getDimKey("DEATH_PATH*"+groupId+":*", -1);
|
||||
String[] keys = dimKey.toArray(new String[0]);
|
||||
RedisUtil.getInstence().del(keys);
|
||||
RedisUtil.getInstence().set(groupId+RedisKey.DEATH_PATH_DELETE_CROSS_ONE,"1");
|
||||
}
|
||||
// String one = (String) RedisUtil.getInstence().get(groupId+RedisKey.DEATH_PATH_DELETE_CROSS_ONE);
|
||||
// if (one == null){
|
||||
// Set<String> dimKey = RedisUtil.getInstence().getDimKey("DEATH_PATH*"+groupId+":*", -1);
|
||||
// String[] keys = dimKey.toArray(new String[0]);
|
||||
// RedisUtil.getInstence().del(keys);
|
||||
// RedisUtil.getInstence().set(groupId+RedisKey.DEATH_PATH_DELETE_CROSS_ONE,"1");
|
||||
// }
|
||||
}
|
||||
return hashMap;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.ljsd.common.mogodb.util.BlockingUniqueQueue;
|
|||
import com.ljsd.fight.FightType;
|
||||
import com.ljsd.jieling.chat.logic.ChatLogic;
|
||||
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
|
@ -17,7 +16,6 @@ import com.ljsd.jieling.logic.GlobleSystemLogic;
|
|||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.*;
|
||||
|
@ -262,7 +260,7 @@ public class DeathPathLogic {
|
|||
break;
|
||||
}
|
||||
String gid = firstGuild.iterator().next().getValue();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(gid));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(gid));
|
||||
String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("guildwar_content", new Object[]{guildInfo.getName()},new int[]{0});
|
||||
ChatLogic.getInstance().sendSysChatMessage(message, Global.DEATH_PATH_FIRST, "", 0, 0, 0, 0, 0);
|
||||
break;
|
||||
|
@ -330,8 +328,8 @@ public class DeathPathLogic {
|
|||
LOGGER.info("十绝阵信息,分组情况:{},排名信息:{}",getGroupId(),iterator.toString());
|
||||
ZSetOperations.TypedTuple<String> next = iterator.next();
|
||||
int guildId = Integer.parseInt(next.getValue());
|
||||
GuildCache crossGuild = CrossDeathPathLogic.getCrossGuild(guildId);
|
||||
Integer serverId = Optional.ofNullable(CrossDeathPathLogic.getCrossGuild(guildId)).map(GuildCache::getServerId).orElse(0);
|
||||
GuildInfo crossGuild = CrossDeathPathLogic.getCrossGuild(guildId);
|
||||
Integer serverId = Optional.ofNullable(CrossDeathPathLogic.getCrossGuild(guildId)).map(GuildInfo::getServerId).orElse(0);
|
||||
String serverName = result ? CrossServiceLogic.simplifyServerName(serverId):"";
|
||||
Family.DeathPathInfo info = Family.DeathPathInfo.newBuilder().setGuildName(crossGuild.getName()).setPathId(i).setGid(guildId).setServerName(serverName).build();
|
||||
response.addInfos(info);
|
||||
|
@ -377,14 +375,6 @@ public class DeathPathLogic {
|
|||
tasks.offer(new DeathPathTask(uid,guildId,damage,pathId,getGroupId()));
|
||||
//挑战次数记录
|
||||
RedisUtil.getInstence().increment(RedisUtil.getInstence().getKey(RedisKey.DEATH_PATH_CHALLENGE_COUNT,String.valueOf(uid)));
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
|
||||
// 跨服十绝阵添加
|
||||
GuildInfoCache guildInfoCache = new GuildInfoCache();
|
||||
guildInfoCache.setGuildId(guildId);
|
||||
guildInfoCache.setGuildName(guildInfo.getName());
|
||||
guildInfoCache.setServerId(GameApplication.serverId);
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.GUILD_INFO_CACHE,"",String.valueOf(guildId),guildInfoCache);
|
||||
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getReward(), BIReason.DEATH_PATH_CHALLENGE);
|
||||
Map<Integer, Long> deathMaxDamage = user.getGuildMyInfo().getDeathMaxDamage();
|
||||
|
@ -505,9 +495,9 @@ public class DeathPathLogic {
|
|||
allGuild = guildTotalRank.getRankByKey("", 0, -1);
|
||||
}
|
||||
for (ZSetOperations.TypedTuple<String> n : allGuild) {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(n.getValue()));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(n.getValue()));
|
||||
if(guildInfo!=null){
|
||||
GuildCache crossGuild = CrossDeathPathLogic.getCrossGuild(guildInfo.getId());
|
||||
GuildInfo crossGuild = CrossDeathPathLogic.getCrossGuild(guildInfo.getId());
|
||||
String name = CrossServiceLogic.simplifyServerName(crossGuild.getServerId());
|
||||
String serverName = getGroupId()>0?name:"";
|
||||
Family.DeathPathInfo info = Family.DeathPathInfo.newBuilder()
|
||||
|
@ -596,7 +586,7 @@ public class DeathPathLogic {
|
|||
Family.DoRewardDeathPathResponse response =Family.DoRewardDeathPathResponse.newBuilder().setDrop(drop).build();
|
||||
Family.RewardInfo info = Family.RewardInfo.newBuilder().setUid(uid).setItemCount(reward[1]).setItemId(reward[0]).setPosition(position).setUsername(user.getPlayerInfoManager().getNickName()).build();
|
||||
Family.DoRewardIndication indication =Family.DoRewardIndication.newBuilder().setInfo(info).build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.DEATH_PATH_DO_REWARD_INDICATION,indication);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.DEATH_PATH_DO_REWARD_INDICATION,indication);
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package com.ljsd.jieling.logic.family;
|
||||
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.RewardStaticConfig;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
@ -11,7 +9,6 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
|||
import com.ljsd.jieling.logic.dao.GuildMyInfo;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.*;
|
||||
|
@ -78,7 +75,7 @@ public class GuildChallengeLogic {
|
|||
if(guildId==0){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
|
||||
int currBossId = guildInfo.getCurrBossId();
|
||||
|
||||
|
@ -114,6 +111,7 @@ public class GuildChallengeLogic {
|
|||
isRefresh = 1;
|
||||
}
|
||||
}
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
int canSweep = 0;
|
||||
if(guildMyInfo.getLastMonsterId()!=0&&currBossId==guildMyInfo.getLastMonsterId()&&guildMyInfo.getGuildChallengeDamage()>0){
|
||||
canSweep = 1;
|
||||
|
@ -177,7 +175,7 @@ public class GuildChallengeLogic {
|
|||
}
|
||||
//锁住
|
||||
synchronized (lockMap.get(guildId)){
|
||||
guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
GuildMyInfo guildMyInfo = user.getGuildMyInfo();
|
||||
|
||||
if(guildInfo.getCurrBossId()!=bossId){
|
||||
|
@ -222,8 +220,6 @@ public class GuildChallengeLogic {
|
|||
if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
|
||||
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
|
||||
// 公会升级
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
} else {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
|
||||
}
|
||||
|
@ -271,6 +267,7 @@ public class GuildChallengeLogic {
|
|||
damage = guildMyInfo.getGuildChallengeDamage();
|
||||
}
|
||||
}
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
}
|
||||
if(!error.isEmpty()){
|
||||
|
@ -400,7 +397,7 @@ public class GuildChallengeLogic {
|
|||
if(!lockMap.containsKey(guildId)){
|
||||
lockMap.put(guildId,new Object());
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
SGuildCheckpointConfig config = STableManager.getConfig(SGuildCheckpointConfig.class).get(guildInfo.getCurrBossId());
|
||||
int[] attributePromote = config.getAttributePromote();
|
||||
int maxCount = attributePromote.length;
|
||||
|
@ -429,6 +426,7 @@ public class GuildChallengeLogic {
|
|||
guildInfo.setBuffIndex(guildInfo.getBuffIndex()+1);
|
||||
int fiveTime = (int)(TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0, false)/1000);
|
||||
guildInfo.setBuffOverTime(Math.min(time,fiveTime));
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
Family.GuildChallengeBuyBuffIndication indication = Family.GuildChallengeBuyBuffIndication.newBuilder()
|
||||
.setBuffTime(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffOverTime():0)
|
||||
|
@ -442,7 +440,7 @@ public class GuildChallengeLogic {
|
|||
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int memberType = GuildLogic.getMemberType(session.getUid(), guildInfo.getMembers());
|
||||
if(memberType==3){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
|
@ -455,6 +453,7 @@ public class GuildChallengeLogic {
|
|||
|
||||
if(guildInfo.getNextChallengeMessageTime()<TimeUtils.nowInt()){
|
||||
guildInfo.setNextChallengeMessageTime(TimeUtils.nowInt()+TimeUtils.SECONDS_HOUR);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.ljsd.jieling.logic.GlobalDataManaager;
|
|||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.blood.BloodLogic;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.*;
|
||||
|
@ -89,7 +88,7 @@ public class GuildFightLogic {
|
|||
public static void viewDefendInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
int gid = user.getPlayerInfoManager().getGuildId();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(gid);
|
||||
Map<Integer, Integer> defendInfo = guildInfo.getDefendInfo();
|
||||
Family.FamilyDefendViewResponse.Builder response = Family.FamilyDefendViewResponse.newBuilder();
|
||||
SGuildSetting guildSetting = sGuildSetting;
|
||||
|
@ -188,10 +187,11 @@ public class GuildFightLogic {
|
|||
if (buildId == 0) {
|
||||
buildId = 1;
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId());
|
||||
SGuildSetting guildSetting = sGuildSetting;
|
||||
int memberType = GuildLogic.getMemberType(uid, guildInfo.getMembers());
|
||||
guildInfo.updateDefendInfo(uid, buildId);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder();
|
||||
defend.setBuildId(buildId);
|
||||
defend.setUid(uid);
|
||||
|
@ -266,13 +266,13 @@ public class GuildFightLogic {
|
|||
public static void familyFightMatching() throws Exception {
|
||||
RedisUtil redisUtil = RedisUtil.getInstence();
|
||||
// Thread.sleep(10000);
|
||||
int guildIds = GuilidManager.guildInfoMap.size();
|
||||
int guildIds = GuilidManager.getAllGuildCount();
|
||||
if (guildIds < 1) {
|
||||
return;
|
||||
}
|
||||
String key = RedisKey.getKey(RedisKey.FAMILY_FIGHT_RANK, "", false);
|
||||
SGuildSetting guildSetting = sGuildSetting;
|
||||
for (Map.Entry<Integer,GuildInfo> guildInfoMapEntry : GuilidManager.guildInfoMap.entrySet()) {
|
||||
for (Map.Entry<Integer,GuildInfo> guildInfoMapEntry : GuilidManager.getAllGuildInfos().entrySet()) {
|
||||
Integer gid = guildInfoMapEntry.getKey();
|
||||
if(redisUtil.getZSetScore("guild-release","",String.valueOf(gid))>0){
|
||||
continue;
|
||||
|
@ -377,17 +377,17 @@ public class GuildFightLogic {
|
|||
|
||||
private static void sendMatchingInfo(){
|
||||
RedisUtil redisUtil = RedisUtil.getInstence();
|
||||
for (Map.Entry<Integer,GuildInfo> entry : GuilidManager.guildInfoMap.entrySet()) {
|
||||
for (Map.Entry<Integer,GuildInfo> entry : GuilidManager.getAllGuildInfos().entrySet()) {
|
||||
Integer gid = entry.getKey();
|
||||
int enemyFamily = getEnemyFamily(gid);
|
||||
if (enemyFamily == -1) {
|
||||
continue;
|
||||
}
|
||||
GuildInfo guildInfo = entry.getValue();
|
||||
GuildCache enemyInfo = CrossDeathPathLogic.getCrossGuild(enemyFamily);
|
||||
GuildInfo enemyInfo = CrossDeathPathLogic.getCrossGuild(enemyFamily);
|
||||
Family.EnemyFamily familyInfo = Family.EnemyFamily.newBuilder().setId(enemyFamily)
|
||||
.setLevel(enemyInfo.getLevel())
|
||||
.setName(Optional.ofNullable(enemyInfo).map(GuildCache::getName).orElse(""))
|
||||
.setName(Optional.ofNullable(enemyInfo).map(GuildInfo::getName).orElse(""))
|
||||
.setPictureId(enemyInfo.getIcon())
|
||||
.setTotalStar(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",String.valueOf(enemyFamily),Integer.class))
|
||||
.setMyTotalStar(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",String.valueOf(guildInfo.getId()),Integer.class))
|
||||
|
@ -492,7 +492,7 @@ public class GuildFightLogic {
|
|||
//发送indication
|
||||
Family.DefeatResponse fightResponse = Family.DefeatResponse.newBuilder().setUid(defendUid).setTeamLostStar(getStar).build();
|
||||
// GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(gid), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(userAttack.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(userAttack.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
//获得星数处理
|
||||
int attackGuildId = userAttack.getPlayerInfoManager().getGuildId();
|
||||
String attackRankKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(attackGuildId), false);
|
||||
|
@ -546,16 +546,17 @@ public class GuildFightLogic {
|
|||
.setRoundEndTime(roundEndTime)
|
||||
.setAttackCount(attackCount);
|
||||
// long joinTime = UserManager.getUser(session.getUid()).getGuildMyInfo().getJoinTime();
|
||||
if(guildId!=0&&status!=0&&!GuilidManager.guildInfoMap.get(guildId).getDefendInfo().keySet().contains(session.getUid())){
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if (guildInfo != null && status != 0 && !guildInfo.getDefendInfo().keySet().contains(session.getUid())) {
|
||||
response.setJoinType(1);
|
||||
}
|
||||
if (enemyFamily != -1) {
|
||||
GuildCache enemyInfo = CrossDeathPathLogic.getCrossGuild(enemyFamily);
|
||||
GuildInfo enemyInfo = CrossDeathPathLogic.getCrossGuild(enemyFamily);
|
||||
if(enemyInfo!=null){
|
||||
Family.EnemyFamily familyInfo = Family.EnemyFamily.newBuilder()
|
||||
.setId(enemyFamily)
|
||||
.setLevel(enemyInfo.getLevel())
|
||||
.setName(Optional.of(enemyInfo).map(GuildCache::getName).orElse(""))
|
||||
.setName(Optional.of(enemyInfo).map(GuildInfo::getName).orElse(""))
|
||||
.setPictureId(enemyInfo.getIcon())
|
||||
.setTotalStar(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",String.valueOf(enemyFamily),Integer.class))
|
||||
.setMyTotalStar(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",String.valueOf(guildId),Integer.class))
|
||||
|
@ -571,15 +572,15 @@ public class GuildFightLogic {
|
|||
//todo 人数限制
|
||||
if(guildId!=0){
|
||||
Map<Integer, SGuildLevelConfig> configMap = STableManager.getConfig(SGuildLevelConfig.class);
|
||||
if(GuilidManager.guildInfoMap.get(guildId).getDefendInfo().size()<configMap.get(GuilidManager.guildInfoMap.get(guildId).getLevel()).getDefendNum()){
|
||||
if(guildInfo.getDefendInfo().size()<configMap.get(guildInfo.getLevel()).getDefendNum()){
|
||||
response.setType(-1);
|
||||
response.setRoundEndTime((int) (TimeUtils.getAppointTime(sGuildSetting.getSettleTime()[1][0], sGuildSetting.getSettleTime()[1][1]) / 1000));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(GuilidManager.guildInfoMap.get(guildId)!=null){
|
||||
long createTime = GuilidManager.guildInfoMap.get(guildId).getCreateTime();
|
||||
if(guildInfo!=null){
|
||||
long createTime = guildInfo.getCreateTime();
|
||||
if(createTime/1000>roundStartTime&&createTime/1000<roundEndTime){
|
||||
response.setType(-1);
|
||||
response.setRoundEndTime((int) (TimeUtils.getAppointTime(sGuildSetting.getSettleTime()[1][0], sGuildSetting.getSettleTime()[1][1]) / 1000));
|
||||
|
@ -682,7 +683,7 @@ public class GuildFightLogic {
|
|||
//删除buff信息
|
||||
redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_BUFF,index,String.valueOf(i));
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(index));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(index));
|
||||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
|
@ -756,7 +757,7 @@ public class GuildFightLogic {
|
|||
}
|
||||
int getStar = getTotalStar(Integer.parseInt(str));
|
||||
int loseStar = getTotalStar(enemyFamily);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(str));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(str));
|
||||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
|
@ -807,11 +808,10 @@ public class GuildFightLogic {
|
|||
if(guildInfo.getExp()+getExp>=levelConfigMap.get(guildInfo.getLevel()).getExp()){
|
||||
guildInfo.updateExp(guildInfo.getExp()+getExp-levelConfigMap.get(guildInfo.getLevel()).getExp());
|
||||
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
|
||||
// 公会升级
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
}else{
|
||||
guildInfo.updateExp(guildInfo.getExp()+getExp);
|
||||
}
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
//个人奖励
|
||||
Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(guildInfo.getId()), 0, 20);
|
||||
if(zsetreverseRangeWithScores.size()<1){
|
||||
|
@ -895,7 +895,7 @@ public class GuildFightLogic {
|
|||
int guildId=UserManager.getUser(session.getUid()).getPlayerInfoManager().getGuildId();
|
||||
int enemyFamily = getEnemyFamily(guildId);
|
||||
Family.GuildFightResultResponse.Builder response = Family.GuildFightResultResponse.newBuilder();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(enemyFamily==-1){
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
return;
|
||||
|
@ -988,7 +988,7 @@ public class GuildFightLogic {
|
|||
timeRound = sGuildSetting.getPrepareTime();
|
||||
if(status==0){
|
||||
LOGGER.info("阶段变为布防");
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
if(guildInfoMap!=null&&guildInfoMap.size()>0){
|
||||
for(Map.Entry<Integer, GuildInfo> entry:guildInfoMap.entrySet()){
|
||||
int build = 0;
|
||||
|
@ -997,6 +997,7 @@ public class GuildFightLogic {
|
|||
for(Integer uid:member.getValue()){
|
||||
entry.getValue().updateDefendInfo(uid,build%3+1);
|
||||
build=build%3+1;
|
||||
GuilidManager.saveOrUpdateGuildInfo(entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1173,7 +1174,7 @@ public class GuildFightLogic {
|
|||
public static void sendBossFightReward( int season) throws Exception {
|
||||
String title= SErrorCodeEerverConfig.getI18NMessage("guildboss_daily_reward_title");
|
||||
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
int now = (int)(TimeUtils.now()/1000);
|
||||
float[][] bossReward = SGuildSetting.sGuildSetting.getBossReward();
|
||||
List<String> delKeys = new ArrayList<>();
|
||||
|
|
|
@ -12,15 +12,16 @@ import com.ljsd.jieling.exception.ErrorCodeException;
|
|||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.GuildForceChangeEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.*;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
|
@ -97,7 +98,7 @@ public class GuildLogic {
|
|||
|
||||
//take rewards checkAndUpdate
|
||||
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int fete = guildInfo.getFete();
|
||||
if(sGuildSacrificeRewardConfig.getScore()>fete){
|
||||
continue;
|
||||
|
@ -138,7 +139,7 @@ public class GuildLogic {
|
|||
if( 0 == guildId ){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("guildId wrong"));
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
Family.GetFamilyInfoResponse.Builder builder = Family.GetFamilyInfoResponse.newBuilder()
|
||||
.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo))
|
||||
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user, getMemberType(uid, guildInfo.getMembers()))).setGuildBossId(GuildFightLogic.getCurSGuildBossConfig() == null?0:GuildFightLogic.getCurSGuildBossConfig().getId());
|
||||
|
@ -196,11 +197,11 @@ public class GuildLogic {
|
|||
|
||||
GuilidManager.addGuildInfo(guildInfo);
|
||||
user.getPlayerInfoManager().setGuildId(guildInfo.getId());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.CREATE,user.getPlayerInfoManager().getNickName());
|
||||
// 创建公会
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.CREATE,user.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
|
||||
// 更新redis
|
||||
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
|
||||
RedisUtil.getInstence().setObject(RedisKey.GUILD_SERVERID, Integer.toString(guildInfo.getId()), -1);
|
||||
|
||||
PlayerInfoCache cache = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(uid), PlayerInfoCache.class);
|
||||
cache.setGuildPosition(GlobalsDef.CHAIRMAN);
|
||||
|
@ -228,11 +229,9 @@ public class GuildLogic {
|
|||
if(familyName.length()<SGuildSetting.sGuildSetting.getNameSize()[0]||familyName.length()>SGuildSetting.sGuildSetting.getNameSize()[1]){
|
||||
throw new ErrorCodeException(ErrorCode.NAME_LENGTH_ERROR);
|
||||
}
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
for(Map.Entry<Integer, GuildInfo> entry:guildInfoMap.entrySet()){
|
||||
if(entry.getValue().getName().equals(familyName)){
|
||||
throw new ErrorCodeException(ErrorCode.EXIST_NAME);
|
||||
}
|
||||
GuildInfo guildInfoByName = GuilidManager.getGuildInfoByName(familyName);
|
||||
if (guildInfoByName != null && guildInfoByName.getName().equals(familyName)) {
|
||||
throw new ErrorCodeException(ErrorCode.EXIST_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -290,7 +289,7 @@ public class GuildLogic {
|
|||
if(StringUtil.isEmpty(searchName)){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_SEARCH_NULL);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildNameInfoMap.get(searchName);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfoByName(searchName);
|
||||
if(guildInfo == null){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NULL);
|
||||
}
|
||||
|
@ -321,7 +320,7 @@ public class GuildLogic {
|
|||
throw new ErrorCodeException(ErrorCode.FAMILY_HAD_APPLY);
|
||||
}
|
||||
for(Integer applyGuildId : applyGuilds){
|
||||
if(GuilidManager.guildInfoMap.get(applyGuildId).getJoinType()!=0&&applyGuilds.size()==0){
|
||||
if(GuilidManager.getGuildInfo(applyGuildId).getJoinType()!=0&&applyGuilds.size()==0){
|
||||
if(applyGuilds.size()>1){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_LIMIT_CHANGED);
|
||||
}
|
||||
|
@ -336,7 +335,7 @@ public class GuildLogic {
|
|||
continue;
|
||||
}
|
||||
GuilidManager.addApplyGuildInfo(guildApply);
|
||||
Map<Integer, Set<Integer>> members = GuilidManager.guildInfoMap.get(applyGuildId).getMembers();
|
||||
Map<Integer, Set<Integer>> members = GuilidManager.getGuildInfo(applyGuildId).getMembers();
|
||||
for(Map.Entry<Integer, Set<Integer>> entry: members.entrySet()){
|
||||
if(entry.getValue().size()<1){
|
||||
continue;
|
||||
|
@ -365,7 +364,7 @@ public class GuildLogic {
|
|||
if(user.getPlayerInfoManager().getGuildId()!=0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_IN);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(guildInfo == null){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NULL);
|
||||
}
|
||||
|
@ -391,7 +390,7 @@ public class GuildLogic {
|
|||
//社稷大典需要初始化分数
|
||||
Poster.getPoster().dispatchEvent(new CommitSheJiEvent(guildId,uid,0,0,0));
|
||||
RedisUtil.getInstence().expire(RedisKey.getKey(RedisKey.FAMILY_JOIN,String.valueOf(uid),false), TimeUtils.DAY);
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.JOIN,user.getPlayerInfoManager().getNickName());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.JOIN,user.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
Family.FamilyJoinIndicaion build = Family.FamilyJoinIndicaion.newBuilder().setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo)).setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user, GlobalsDef.MEMBER)).build();
|
||||
Family.FamilyJoinResponse response = Family.FamilyJoinResponse.newBuilder().setFamilyJoinIndicaion(build).build();
|
||||
MessageUtil.sendMessage(session,1,msgId,response,true);
|
||||
|
@ -437,7 +436,7 @@ public class GuildLogic {
|
|||
if(user.getPlayerInfoManager().getGuildId()==0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId());
|
||||
Family.GetFamilyMemberInfoResponse.Builder builder = Family.GetFamilyMemberInfoResponse.newBuilder();
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Map.Entry<Integer,Set<Integer>> memberEntry : members.entrySet()){
|
||||
|
@ -502,7 +501,7 @@ public class GuildLogic {
|
|||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int msgId = MessageTypeProto.MessageType.FAMILY_OPERATION_APPLY_LIST_RESPONSE_VALUE;
|
||||
if(getMemberType(uid,guildInfo.getMembers())>=GlobalsDef.MEMBER) {
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
|
@ -604,6 +603,7 @@ public class GuildLogic {
|
|||
}
|
||||
GuilidManager.removeOneApplyGuildInfos(guildInfo.getId(),applyId);
|
||||
guildInfo.addMembers(GlobalsDef.MEMBER,applyId);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
targetUser.getPlayerInfoManager().setGuildId(guildInfo.getId());
|
||||
MessageUtil.sendIndicationMessage(targetUser.getId(),Family.FamilyFeteRewardProcessIndication.newBuilder().setScore(guildInfo.getFete()).build());
|
||||
PlayerInfoCache cache = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(applyId), PlayerInfoCache.class);
|
||||
|
@ -611,10 +611,7 @@ public class GuildLogic {
|
|||
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(applyId),cache);
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(targetUser, true, new AynMissionWorker(GameEvent.JOIN_FAMILY));
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
// RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId));
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(targetUser.getId(),targetUser.getPlayerInfoManager().getGuildId(),1,targetUser.getPlayerInfoManager().getMaxForce()));
|
||||
|
||||
|
||||
Family.GuildHelpInfoIndication.Builder builder = Family.GuildHelpInfoIndication.newBuilder();
|
||||
for (Map.Entry<Integer, Integer> entry : targetUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
||||
builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder()
|
||||
|
@ -629,7 +626,7 @@ public class GuildLogic {
|
|||
.setName(targetUser.getPlayerInfoManager().getNickName())
|
||||
.setPracticeLevel(targetUser.getHeroManager().getPracticeLevel())
|
||||
.build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);
|
||||
}finally {
|
||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId));
|
||||
}
|
||||
|
@ -659,7 +656,7 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
int targetType = getMemberType(targetUid, guildInfo.getMembers());
|
||||
if(uidType>targetType){
|
||||
|
@ -683,10 +680,11 @@ public class GuildLogic {
|
|||
if(guildInfo.getDefendInfo().containsKey((targetUid))){
|
||||
guildInfo.removeDefendInfo(targetUid);
|
||||
}
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
targetUser.getPlayerInfoManager().setGuildId(0);
|
||||
targetUser.getPlayerInfoManager().setWelfareRedPackets(clearRedPacketMap(user));
|
||||
targetUser.getGuildMyInfo().clearOfLevelGuild();
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.KICK,targetUser.getPlayerInfoManager().getNickName());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.KICK,targetUser.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
// Family.FamilyKickIndication build = Family.FamilyKickIndication.newBuilder().setType(1).build();
|
||||
// ISession targetSession = OnlineUserManager.getSessionByUid(targetUid);
|
||||
// if(targetSession!=null){
|
||||
|
@ -722,7 +720,7 @@ public class GuildLogic {
|
|||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
}
|
||||
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(targetUserGuildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(targetUserGuildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
boolean isIn=false;
|
||||
for(Set<Integer> memberEntry : guildInfo.getMembers().values()){
|
||||
|
@ -761,11 +759,11 @@ public class GuildLogic {
|
|||
sendPositionChange(uid,GlobalsDef.CHAIRMAN_TO_MENBER);
|
||||
// 转移会长
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.TRANSFER,targetUser.getPlayerInfoManager().getNickName());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.TRANSFER,targetUser.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
}else{
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.APPOINTMENT,targetUser.getPlayerInfoManager().getNickName());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.APPOINTMENT,targetUser.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
}
|
||||
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
}
|
||||
|
||||
|
@ -782,7 +780,7 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType!=1){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
|
@ -799,8 +797,11 @@ public class GuildLogic {
|
|||
}else{
|
||||
guildInfo.setLevelTime(0);
|
||||
}
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
sendFamilyBaseUpdateIndication(guildInfo);
|
||||
GuilidManager.addGuildToRelease(guildInfo);
|
||||
String key = RedisUtil.getInstence().getKey(RedisKey.GUILD_SERVERID, Integer.toString(guildInfo.getId()));
|
||||
RedisUtil.getInstence().del(key);
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
}
|
||||
|
||||
|
@ -817,7 +818,7 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType>2){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
|
@ -854,9 +855,9 @@ public class GuildLogic {
|
|||
guildInfo.setName(content);
|
||||
// 天眼查询
|
||||
MessageUtil.sendSkyEyeMsgByGuild(content,user,MessageUtil.skyeye_guildName,guildInfo.getId());
|
||||
// 修改公会名
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
}
|
||||
// 修改公会名
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
MessageUtil.sendMessage(session,resultCode,msgId,response,true);
|
||||
}
|
||||
}
|
||||
|
@ -879,13 +880,14 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType>2){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
}
|
||||
guildInfo.updateIntoLevel(joinLevel);
|
||||
guildInfo.setJoinType(joinType);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
sendFamilyBaseUpdateIndication(guildInfo);
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
}
|
||||
|
@ -932,7 +934,7 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType>1){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
|
||||
|
@ -940,6 +942,7 @@ public class GuildLogic {
|
|||
guildInfo.removeMember(GlobalsDef.CHAIRMAN,uid);
|
||||
guildInfo.addMembers(GlobalsDef.MEMBER,uid);
|
||||
guildInfo.addMembers(GlobalsDef.CHAIRMAN,targetUid);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
sendPositionChange(uid,GlobalsDef.MEMBER);
|
||||
sendPositionChange(targetUid,GlobalsDef.CHAIRMAN);
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
|
@ -954,7 +957,7 @@ public class GuildLogic {
|
|||
if(guildId == 0){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_NO);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType == GlobalsDef.CHAIRMAN){
|
||||
throw new ErrorCodeException(ErrorCode.FAMILY_LEADER_QUIT_ERR);
|
||||
|
@ -970,10 +973,11 @@ public class GuildLogic {
|
|||
cache.setGuildPosition(0);
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(uid),cache);
|
||||
guildInfo.removeMember(uidType,uid);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
user.getPlayerInfoManager().setGuildId(0);
|
||||
user.getPlayerInfoManager().setWelfareRedPackets(clearRedPacketMap(user));
|
||||
user.getGuildMyInfo().clearOfLevelGuild();
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.LEVEL,user.getPlayerInfoManager().getNickName());
|
||||
addGuildLog(guildInfo.getId(),GuildDef.Log.LEVEL,user.getPlayerInfoManager().getNickName(), guildInfo.getServerId());
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
//探索活动个人计数重置
|
||||
exploreActivity(user,guildInfo);
|
||||
|
@ -1010,7 +1014,7 @@ public class GuildLogic {
|
|||
MailLogic.getInstance().sendMail(uid,title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
|
||||
Family.FamilyPositionUpdateIndication build = Family.FamilyPositionUpdateIndication.newBuilder().setPosition(position).setUid(uid).build();
|
||||
User userInMem = UserManager.getUserInMem(uid);
|
||||
sendIndicationToMember(GuilidManager.guildInfoMap.get(userInMem.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_POSITION_UPDATE_INDICAITON,build);
|
||||
sendIndicationToMember(GuilidManager.getGuildInfo(userInMem.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_POSITION_UPDATE_INDICAITON,build);
|
||||
}
|
||||
|
||||
public static void sendFamilyBaseUpdateIndication(GuildInfo guildInfo){
|
||||
|
@ -1050,59 +1054,48 @@ public class GuildLogic {
|
|||
}*/
|
||||
user.getGuildMyInfo().move(path);
|
||||
Family.FamilyWalkIndicaiton familyWalkIndicaiton = CBean2Proto.getFamilyWalkIndicaiton(user);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
|
||||
sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_WALK_INDICATION,familyWalkIndicaiton);
|
||||
MessageUtil.sendMessage(session,1,msgId,null,true);
|
||||
}
|
||||
|
||||
public static void updateMyPos(User user) {
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if(guildId == 0){
|
||||
return;
|
||||
}
|
||||
user.getGuildMyInfo().move(new ArrayList<>());
|
||||
Family.FamilyWalkIndicaiton familyWalkIndicaiton = CBean2Proto.getFamilyWalkIndicaiton(user);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_WALK_INDICATION,familyWalkIndicaiton);
|
||||
}
|
||||
|
||||
public static void addGuildLog(int guildId, int type,String name) throws Exception {
|
||||
public static void addGuildLog(int guildId, int type,String name, int serverId) throws Exception {
|
||||
switch (type) {
|
||||
case GuildDef.Log.CREATE: {
|
||||
// 宗门创立
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
case GuildDef.Log.JOIN: {
|
||||
// 加入宗门
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logJoin", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
case GuildDef.Log.KICK: {
|
||||
// 退出宗门
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logKick", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
case GuildDef.Log.TRANSFER: {
|
||||
// 宗门转让
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logTransfer", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
case GuildDef.Log.APPOINTMENT: {
|
||||
// 宗门任免
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logAppointment", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
case GuildDef.Log.LEVEL: {
|
||||
// 宗门退出
|
||||
GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logLevel", new Object[]{name}));
|
||||
GuilidManager.addGuildLog(cGuildLog);
|
||||
GuilidManager.addGuildLog(serverId, cGuildLog);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
@ -1168,7 +1161,7 @@ public class GuildLogic {
|
|||
if (!b){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(playerInfoManager.getGuildId());
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(playerInfoManager.getGuildId());
|
||||
guildInfo.updateIcon(iconId);
|
||||
// 修改公会图标
|
||||
CrossDeathPathLogic.setCrossGuild(guildInfo);
|
||||
|
@ -1427,7 +1420,7 @@ public class GuildLogic {
|
|||
ItemUtil.drop(UserManager.getUser(uid),new int[][]{new int[]{config.getTotalMoney()[0],count}},BIReason.RED_PACKAGE_REWARD);
|
||||
builder.setCount(count);
|
||||
builder.setItemId(config.getTotalMoney()[0]);
|
||||
int position = getMemberType(uid, GuilidManager.guildInfoMap.get(UserManager.getUser(uid).getPlayerInfoManager().getGuildId()).getMembers());
|
||||
int position = getMemberType(uid, GuilidManager.getGuildInfo(UserManager.getUser(uid).getPlayerInfoManager().getGuildId()).getMembers());
|
||||
RedisUtil.getInstence().putMapEntry("red_already_list", String.valueOf(redId),String.valueOf(uid),new AcceptRedInfo(uid,config.getTotalMoney()[0], count,(int)(TimeUtils.now()/1000),position));
|
||||
}else{
|
||||
throw new ErrorCodeException(ErrorCode.RED_PACKAGE_NOT);
|
||||
|
@ -1679,7 +1672,7 @@ public class GuildLogic {
|
|||
build.setPracticeLevel(user.getHeroManager().getPracticeLevel());
|
||||
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1));
|
||||
}
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
||||
|
||||
}
|
||||
|
||||
|
@ -1767,6 +1760,7 @@ public class GuildLogic {
|
|||
}else{
|
||||
guildInfo.getHistoryMember().add(userId);
|
||||
guildInfo.updateHistoryMember();
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
Poster.getPoster().dispatchEvent(new WelfareRedPackEvent(chairman.getId(), WelfareRedPacketType.newfish_come.getType(),0));
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ public class HelpHeroLogic {
|
|||
List<Integer> friends = user.getFriendManager().getFriends();
|
||||
// 公会列表
|
||||
Map<Integer, Set<Integer>> members = new HashMap<>();
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId());
|
||||
if (guildInfo != null){
|
||||
members = guildInfo.getMembers();
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ import com.ljsd.jieling.logic.dao.PurpleMansionSeal;
|
|||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
|
@ -621,8 +621,9 @@ public class PlayerLogic {
|
|||
teamInfo.addAllUserMountInfo(CBean2Proto.getUserMountList(user));
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
if(guildId!=0){
|
||||
if(GuilidManager.guildInfoMap.containsKey(guildId)){
|
||||
String name = GuilidManager.guildInfoMap.get(guildId).getName();
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(guildInfo != null){
|
||||
String name = guildInfo.getName();
|
||||
oneInfo.setGuildName(name);
|
||||
}
|
||||
|
||||
|
@ -866,14 +867,14 @@ public class PlayerLogic {
|
|||
}
|
||||
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
CommonProto.TeamOneInfo.Builder builder = CommonProto.TeamOneInfo.newBuilder()
|
||||
.setHead(csPlayer.getHead())
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserTitle(csPlayer.getUserTitle())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
.setName(csPlayer.getName())
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildCache::getName).orElse("")) //csPlayer.getGuildName()
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse("")) //csPlayer.getGuildName()
|
||||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setUid(user.getId()).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
|
||||
.setServerName(serverName);
|
||||
|
@ -1104,14 +1105,14 @@ public class PlayerLogic {
|
|||
}
|
||||
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
CommonProto.TeamOneInfo.Builder builder = CommonProto.TeamOneInfo.newBuilder()
|
||||
.setHead(csPlayer.getHead())
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserTitle(csPlayer.getUserTitle())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
.setName(csPlayer.getName())
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildCache::getName).orElse("")) //csPlayer.getGuildName()
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse("")) //csPlayer.getGuildName()
|
||||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setUid(id).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
|
||||
.setServerName(serverName);
|
||||
|
@ -1478,7 +1479,7 @@ public class PlayerLogic {
|
|||
if(user.getPlayerInfoManager().getGuildId()==0){
|
||||
cache.setGuildPosition(0);
|
||||
}else{
|
||||
int memberType = GuildLogic.getMemberType(user.getId(), GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()).getMembers());
|
||||
int memberType = GuildLogic.getMemberType(user.getId(), GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId()).getMembers());
|
||||
cache.setGuildPosition(memberType);
|
||||
}
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(user.getId()),cache);
|
||||
|
|
|
@ -99,12 +99,12 @@ public class CrossRankManager {
|
|||
* 工会缓存处理
|
||||
*/
|
||||
public void guildCacheHandle(){
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
for (Map.Entry<Integer, GuildInfo> entry : guildInfoMap.entrySet()) {
|
||||
// 启动游戏,重新赋值公会信息
|
||||
CrossDeathPathLogic.setCrossGuild(entry.getValue());
|
||||
}
|
||||
LOGGER.info("==================工会缓存处理=============");
|
||||
// Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
// for (Map.Entry<Integer, GuildInfo> entry : guildInfoMap.entrySet()) {
|
||||
// // 启动游戏,重新赋值公会信息
|
||||
// CrossDeathPathLogic.setCrossGuild(entry.getValue());
|
||||
// }
|
||||
// LOGGER.info("==================工会缓存处理=============");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,10 +4,9 @@ import com.ljsd.jieling.db.redis.RedisKey;
|
|||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.GlobleSystemLogic;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.TeamEnum;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
import com.ljsd.jieling.logic.rank.IRank;
|
||||
|
@ -271,7 +270,7 @@ public abstract class AbstractRank implements IRank {
|
|||
|
||||
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
// 兼容
|
||||
if (csPlayer.getMainLineForce() == 0){
|
||||
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
|
||||
|
@ -287,7 +286,7 @@ public abstract class AbstractRank implements IRank {
|
|||
.setForce(csPlayer.getMainLineForce())
|
||||
.setSex(csPlayer.getSex())
|
||||
.setHead(csPlayer.getHead())
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildCache::getName).orElse(""))
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse(""))
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserMount(csPlayer.getUserMount())
|
||||
.setUserSkin(csPlayer.getSkin())
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
|
@ -10,11 +11,9 @@ import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
|||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
import com.ljsd.jieling.logic.family.DeathPathLogic;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
@ -31,11 +30,11 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
|
|||
|
||||
@Override
|
||||
protected void getCrossOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
if (mapEntry == null){
|
||||
return;
|
||||
}
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next());
|
||||
if (csPlayer == null){
|
||||
return;
|
||||
}
|
||||
|
@ -58,11 +57,11 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
|
|||
}
|
||||
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
if (mapEntry == null){
|
||||
return builder;
|
||||
}
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next());
|
||||
if (csPlayer == null){
|
||||
return builder;
|
||||
}
|
||||
|
@ -123,7 +122,7 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
|
|||
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
String value = data.getValue();
|
||||
int guildId = Integer.parseInt(value);
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
if(guildInfo == null){
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
@ -29,11 +30,11 @@ public class CrossGuildForceRank extends GuildForceRank {
|
|||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
if (mapEntry == null){
|
||||
return;
|
||||
}
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next());
|
||||
if (csPlayer == null){
|
||||
return;
|
||||
}
|
||||
|
@ -51,7 +52,7 @@ public class CrossGuildForceRank extends GuildForceRank {
|
|||
}
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
if (mapEntry == null){
|
||||
return builder;
|
||||
}
|
||||
|
@ -60,7 +61,7 @@ public class CrossGuildForceRank extends GuildForceRank {
|
|||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next());
|
||||
if (csPlayer == null){
|
||||
return builder;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public class DeathPathEveryGuildRank extends CrossGuildForceRank {
|
|||
|
||||
@Override
|
||||
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(data.getValue()));
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
|
||||
|
@ -15,7 +15,6 @@ import rpc.protocols.CommonProto;
|
|||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
|
@ -44,7 +43,7 @@ public class DeathPathTotalGuildRank extends CrossGuildForceRank{
|
|||
|
||||
@Override
|
||||
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(data.getValue()));
|
||||
DeathChallengeCount countInfo = DeathPathLogic.getInstance().getDeathChallengeCount(guildInfo.getId());
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
|
@ -60,14 +59,14 @@ public class DeathPathTotalGuildRank extends CrossGuildForceRank{
|
|||
|
||||
@Override
|
||||
protected void getCrossOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
|
||||
DeathChallengeCount countInfo = DeathPathLogic.getInstance().getDeathChallengeCount(Integer.valueOf(data.getValue()));
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(countInfo==null?0:countInfo.getUserReward().size());
|
||||
CSPlayer query = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
|
||||
CSPlayer query = CrossServiceLogic.getPlayerByRedis(mapEntry.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next());
|
||||
if (query == null){
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public class GuildForceRank extends AbstractRank {
|
|||
|
||||
@Override
|
||||
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(data.getValue()));
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
|
@ -83,9 +83,7 @@ public class GuildForceRank extends AbstractRank {
|
|||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
// 获取公会信息
|
||||
GuildInfo guildInfo = Optional.ofNullable(GuilidManager.guildInfoMap)
|
||||
.map(v -> v.get(Integer.parseInt(data.getValue())))
|
||||
.orElse(null);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(Integer.parseInt(data.getValue()));
|
||||
if (guildInfo == null){
|
||||
return builder;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public class RandomCardPerfectRank extends AbstractRank {
|
|||
String familyName = "";
|
||||
int familySign = 0;
|
||||
if(guildId!=0){
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
|
||||
familyName = guildInfo.getName();
|
||||
familySign = guildInfo.getIcon();
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public class GuildChangeTask implements GeneralTask{
|
|||
@Override
|
||||
public void run() {
|
||||
long now = time;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
if(chairmanChangeGuilds!=null&&chairmanChangeGuilds.size()>0){
|
||||
Iterator<Integer> iterator = chairmanChangeGuilds.iterator();
|
||||
while(iterator.hasNext()){
|
||||
|
@ -70,6 +70,7 @@ public class GuildChangeTask implements GeneralTask{
|
|||
guildInfo.addMembers(GlobalsDef.CHAIRMAN,compareValue.getUid());
|
||||
guildInfo.removeMember(type,compareValue.getUid());
|
||||
guildInfo.addMembers(GlobalsDef.MEMBER,chairMan);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
try {
|
||||
User user = UserManager.getUser(compareValue.getUid());
|
||||
//发送邮件 GuildLeaderPass_mail_title
|
||||
|
|
|
@ -32,7 +32,7 @@ public class GuildCheckOfflineTask implements GeneralTask {
|
|||
|
||||
LOGGER.info("=-------公会检测开始-------");
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
Set<Integer> chairmanChangeGuilds = new HashSet<>();
|
||||
Set<Integer> releaseGuilds = new HashSet<>();
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
|
|
|
@ -262,7 +262,7 @@ public class MinuteTask extends Thread {
|
|||
RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).removeRank("");*/
|
||||
|
||||
// 公会信息处理
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
|
||||
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
||||
// 公会红包排行处理
|
||||
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
|
||||
|
@ -272,6 +272,7 @@ public class MinuteTask extends Thread {
|
|||
// 公会援助日志处理
|
||||
GuildInfo guildInfo = guildInfoEntry.getValue();
|
||||
guildInfo.clearGuildHelpLog();
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
// 公会援助刷新
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
guildInfo.getMembers().values().forEach(sendUids::addAll);
|
||||
|
|
Loading…
Reference in New Issue