公会代码格式优化

back_recharge
duhui 2023-02-22 11:32:48 +08:00
parent b1b66941ba
commit 99a9bc9b1e
8 changed files with 93 additions and 111 deletions

View File

@ -18,12 +18,13 @@ import com.ljsd.jieling.logic.family.GuildDef;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.player.PlayerLogic;
import rpc.protocols.CommonProto;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
import config.SGuildHelpConfig; import config.SGuildHelpConfig;
import manager.STableManager; import manager.STableManager;
import rpc.protocols.CommonProto;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import util.TimeUtils;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
@ -116,7 +117,7 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler<Family.GuildHe
} }
GuildHelpLog guildHelpLog = new GuildHelpLog(uid, target.getId(), user.getPlayerInfoManager().getNickName(), GuildHelpLog guildHelpLog = new GuildHelpLog(uid, target.getId(), user.getPlayerInfoManager().getNickName(),
target.getPlayerInfoManager().getNickName(), (int) (System.currentTimeMillis() / 1000), proto.getType(), target.getPlayerInfoManager().getNickName(), TimeUtils.nowInt(), proto.getType(),
user.getHeroManager().getPracticeLevel(), target.getHeroManager().getPracticeLevel()); user.getHeroManager().getPracticeLevel(), target.getHeroManager().getPracticeLevel());
guildInfo.addGuildHelpLog(guildHelpLog); guildInfo.addGuildHelpLog(guildHelpLog);
GuilidManager.saveOrUpdateGuildInfo(guildInfo); GuilidManager.saveOrUpdateGuildInfo(guildInfo);

View File

@ -12,11 +12,11 @@ import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
import config.SGuildHelpConfig;
import manager.STableManager;
import rpc.protocols.CommonProto; import rpc.protocols.CommonProto;
import rpc.protocols.Family; import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto; import rpc.protocols.MessageTypeProto;
import config.SGuildHelpConfig;
import manager.STableManager;
import java.util.*; import java.util.*;
@ -90,7 +90,7 @@ public class GuildSendHelpRequestHandler extends BaseHandler<Family.GuildSendHel
long time =System.currentTimeMillis(); long time =System.currentTimeMillis();
boolean b = (time - guildMyInfo.getGuildHelpSendTime()) > 1000 * sGuildHelpConfig.getRecourseCD(); boolean b = (time - guildMyInfo.getGuildHelpSendTime()) > 1000L * sGuildHelpConfig.getRecourseCD();
if(proto.getSendMessage()&&b){ if(proto.getSendMessage()&&b){
guildMyInfo.setGuildHelpSendTime(time); guildMyInfo.setGuildHelpSendTime(time);
} }

View File

@ -20,6 +20,7 @@ import config.SGuildSetting;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
import util.TimeUtils;
import java.util.*; import java.util.*;
@ -39,8 +40,7 @@ public class GuilidManager {
} }
public static GuildInfo getGuildInfo(int guildId){ public static GuildInfo getGuildInfo(int guildId){
GuildInfo mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", Integer.toString(guildId), GuildInfo.class); return RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", Integer.toString(guildId), GuildInfo.class);
return mapEntry;
} }
public static GuildInfo getGuildInfoByName(String guildName){ public static GuildInfo getGuildInfoByName(String guildName){
@ -48,8 +48,7 @@ public class GuilidManager {
if (guildId == null || guildId.isEmpty()) { if (guildId == null || guildId.isEmpty()) {
return null; return null;
} }
GuildInfo guildInfo = getGuildInfo(Integer.parseInt(guildId)); return getGuildInfo(Integer.parseInt(guildId));
return guildInfo;
} }
public static Map<Integer, GuildInfo> getAllGuildInfos(){ public static Map<Integer, GuildInfo> getAllGuildInfos(){
@ -133,23 +132,15 @@ public class GuilidManager {
} }
public static void init() throws Exception { public static void init() throws Exception {
// List<GuildLog> guildLogs = MongoUtil.getInstence().getMyMongoTemplate().findAll(GuildLog._COLLECTION_NAME, GuildLog.class);
// for(GuildLog guildLog : guildLogs){
// if(!guildLogInfoMap.containsKey(guildLog.getGuildId())){
// guildLogInfoMap.put(guildLog.getGuildId(),new ArrayList<>());
// }
// guildLogInfoMap.get(guildLog.getGuildId()).add(guildLog);
// }
Map<String, BaseCrossHandler> beansOfType = ConfigurableApplicationContextManager.getBeansOfType(BaseCrossHandler.class); Map<String, BaseCrossHandler> beansOfType = ConfigurableApplicationContextManager.getBeansOfType(BaseCrossHandler.class);
for (BaseCrossHandler baseBehavior : beansOfType.values()) { for (BaseCrossHandler baseBehavior : beansOfType.values()) {
baseCrossHandlerHashMap.put(baseBehavior.getOpsType(), baseBehavior); baseCrossHandlerHashMap.put(baseBehavior.getOpsType(), baseBehavior);
} }
} }
public static void checkNeedReleaseGuild() throws Exception { public static void checkNeedReleaseGuild() throws Exception {
int now = (int)(System.currentTimeMillis()/1000); int now = TimeUtils.nowInt();
int round=0; int round=0;
boolean needContinue = true; boolean needContinue = true;

View File

@ -2,13 +2,13 @@ package com.ljsd.jieling.logic.dao.root;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.common.mogodb.MongoBase; import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.family.GuildLogic;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import config.SGuildSetting;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.family.GuildLogic;
import config.SGuildSetting;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import util.MathUtils; import util.MathUtils;
import java.util.*; import java.util.*;
@ -79,10 +79,8 @@ public class GuildInfo extends MongoBase {
this.id = ((Long)RedisUtil.getInstence().increment(RedisKey.FAMILY_ID)).intValue(); this.id = ((Long)RedisUtil.getInstence().increment(RedisKey.FAMILY_ID)).intValue();
this.name = name; this.name = name;
this.announce = announce; this.announce = announce;
members = new ConcurrentHashMap(); members = new ConcurrentHashMap<>();
if(!members.containsKey(GlobalsDef.CHAIRMAN)){ members.put(GlobalsDef.CHAIRMAN, new HashSet<>());
members.put(GlobalsDef.CHAIRMAN,new HashSet<>());
}
members.get(GlobalsDef.CHAIRMAN).add(creator); members.get(GlobalsDef.CHAIRMAN).add(creator);
this.createTime = System.currentTimeMillis(); this.createTime = System.currentTimeMillis();
this.init(id,""); this.init(id,"");

View File

@ -637,15 +637,6 @@ public class DeathPathLogic {
// 删除rediskey // 删除rediskey
String pattern = serverId+":DEATH_PATH.*"; String pattern = serverId+":DEATH_PATH.*";
RedisUtil.getInstence().delVague(RedisKey.DEATH_PATH_DELETE,pattern); RedisUtil.getInstence().delVague(RedisKey.DEATH_PATH_DELETE,pattern);
// 旧数据兼容,只执行一次
String one = (String) RedisUtil.getInstence().get(serverId + RedisKey.DEATH_PATH_DELETE_ONE);
if (one == null){
Set<String> dimKey = RedisUtil.getInstence().getDimKey(serverId + ":DEATH_PATH*", -1);
String[] keys = dimKey.toArray(new String[0]);
RedisUtil.getInstence().del(keys);
RedisUtil.getInstence().set(serverId + RedisKey.DEATH_PATH_DELETE_ONE,"1");
}
} }
/** /**

View File

@ -1,18 +1,18 @@
package com.ljsd.jieling.logic.family.GuildCrossHandler; package com.ljsd.jieling.logic.family.GuildCrossHandler;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildDef; import com.ljsd.jieling.logic.family.GuildDef;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.AyncWorkerRunnable; import com.ljsd.jieling.util.AyncWorkerRunnable;
import com.ljsd.jieling.util.AyyncWorker; import com.ljsd.jieling.util.AyyncWorker;
import config.SErrorCodeEerverConfig;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import rpc.protocols.CommonProto; import util.TimeUtils;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import java.util.Map; import java.util.Map;
@ -20,7 +20,7 @@ import java.util.Map;
public class KickOutGuildHandler extends BaseCrossHandler { public class KickOutGuildHandler extends BaseCrossHandler {
@Override @Override
public int getOpsType() { public int getOpsType() {
return GuildDef.UPDATE_YUANZHU; return GuildDef.UPDATE_KICK_OUT;
} }
@Override @Override
@ -28,21 +28,30 @@ public class KickOutGuildHandler extends BaseCrossHandler {
AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, new AyncWorkerRunnable() { AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, new AyncWorkerRunnable() {
@Override @Override
public void work(User user) throws Exception { public void work(User user) throws Exception {
user.getGuildMyInfo().setGuidHelpInfo(otherUser.getGuildMyInfo().getGuidHelpInfo()); GuildLogic.OnUserLeveFamily(user);
int guildId = user.getPlayerInfoManager().getGuildId();
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
user.getPlayerInfoManager().setGuildId(0);
user.getPlayerInfoManager().setWelfareRedPackets(clearRedPacketMap(user));
user.getGuildMyInfo().clearOfLevelGuild();
// 发送通知邮件
String title = SErrorCodeEerverConfig.getI18NMessage("family_kick_title");
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_kick_txt",new Object[]{guildInfo.getName()},new int[]{0},"#");
MailLogic.getInstance().sendMail(user.getId(),title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
} }
}); });
// 更新mongo // 更新mongo
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
// 玩家在线,通知玩家
ISession sessionByUid = OnlineUserManager.getSessionByUid(thisUser.getId());
if (sessionByUid != null) {
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();
for (Map.Entry<Integer, Integer> entry : otherUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(otherUser.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(), 0)).setNum(entry.getValue()));
} }
int guildId = thisUser.getPlayerInfoManager().getGuildId();
build.setName(otherUser.getPlayerInfoManager().getNickName()).setUid(otherUser.getId()).setPracticeLevel(otherUser.getHeroManager().getPracticeLevel()); private Map<Integer,Integer> clearRedPacketMap(User user){
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication, build.build()); Map<Integer,Integer> map = user.getPlayerInfoManager().getWelfareRedPackets();
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
if(entry.getValue() != -1){
entry.setValue(0);
} }
} }
return map;
}
} }

View File

@ -1,57 +1,43 @@
package com.ljsd.jieling.logic.family.GuildCrossHandler; package com.ljsd.jieling.logic.family.GuildCrossHandler;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildDef; import com.ljsd.jieling.logic.family.GuildDef;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.util.AyncWorkerRunnable; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.AyyncWorker; import com.ljsd.jieling.util.AyyncWorker;
import config.SErrorCodeEerverConfig;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import util.TimeUtils; import rpc.protocols.CommonProto;
import rpc.protocols.Family;
import rpc.protocols.MessageTypeProto;
import java.util.Map; import java.util.Map;
@Component @Component
public class UpdateYuanZhuHandler extends BaseCrossHandler { public class UpdateYuanZhuHandler extends BaseCrossHandler {
@Override @Override
public int getOpsType() { public int getOpsType() {
return GuildDef.UPDATE_KICK_OUT; return GuildDef.UPDATE_YUANZHU;
} }
@Override @Override
public void process(User thisUser, User otherUser) { public void process(User thisUser, User otherUser) {
AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, new AyncWorkerRunnable() { AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, user -> user.getGuildMyInfo().setGuidHelpInfo(otherUser.getGuildMyInfo().getGuidHelpInfo()));
@Override
public void work(User user) throws Exception {
GuildLogic.OnUserLeveFamily(user);
int guildId = user.getPlayerInfoManager().getGuildId();
GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId);
user.getPlayerInfoManager().setGuildId(0);
user.getPlayerInfoManager().setWelfareRedPackets(clearRedPacketMap(user));
user.getGuildMyInfo().clearOfLevelGuild();
// 发送通知邮件
String title = SErrorCodeEerverConfig.getI18NMessage("family_kick_title");
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_kick_txt",new Object[]{guildInfo.getName()},new int[]{0},"#");
MailLogic.getInstance().sendMail(user.getId(),title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
}
});
// 更新mongo // 更新mongo
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
// 玩家在线,通知玩家
ISession sessionByUid = OnlineUserManager.getSessionByUid(thisUser.getId());
if (sessionByUid != null) {
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();
for (Map.Entry<Integer, Integer> entry : otherUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(otherUser.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(), 0)).setNum(entry.getValue()));
} }
int guildId = thisUser.getPlayerInfoManager().getGuildId();
private Map<Integer,Integer> clearRedPacketMap(User user){ build.setName(otherUser.getPlayerInfoManager().getNickName()).setUid(otherUser.getId()).setPracticeLevel(otherUser.getHeroManager().getPracticeLevel());
Map<Integer,Integer> map = user.getPlayerInfoManager().getWelfareRedPackets(); GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication, build.build());
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
if(entry.getValue() != -1){
entry.setValue(0);
} }
} }
return map;
}
} }

View File

@ -249,8 +249,10 @@ public class MinuteTask extends Thread {
// 公会信息处理 // 公会信息处理
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos(); Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){ for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
try {
// 公会红包排行处理 // 公会红包排行处理
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false)); RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
LOGGER.info("{}更新公会红包完毕",guildInfoEntry.getValue().getName());
// 公会祭祀处理 // 公会祭祀处理
guildInfoEntry.getValue().reSetFete(); guildInfoEntry.getValue().reSetFete();
LOGGER.info("{}更新公会祭祀完毕",guildInfoEntry.getValue().getName()); LOGGER.info("{}更新公会祭祀完毕",guildInfoEntry.getValue().getName());
@ -258,6 +260,7 @@ public class MinuteTask extends Thread {
GuildInfo guildInfo = guildInfoEntry.getValue(); GuildInfo guildInfo = guildInfoEntry.getValue();
guildInfo.clearGuildHelpLog(); guildInfo.clearGuildHelpLog();
GuilidManager.saveOrUpdateGuildInfo(guildInfo); GuilidManager.saveOrUpdateGuildInfo(guildInfo);
LOGGER.info("{}更新公会援助日志完毕",guildInfoEntry.getValue().getName());
// 公会援助刷新 // 公会援助刷新
Set<Integer> sendUids = new HashSet<>(); Set<Integer> sendUids = new HashSet<>();
guildInfo.getMembers().values().forEach(sendUids::addAll); guildInfo.getMembers().values().forEach(sendUids::addAll);
@ -278,6 +281,9 @@ public class MinuteTask extends Thread {
}); });
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
} }
}catch (Exception e){
e.printStackTrace();
}
//入库 //入库
MongoUtil.getInstence().lastUpdate(); MongoUtil.getInstence().lastUpdate();
} }