公会代码格式优化
parent
b1b66941ba
commit
99a9bc9b1e
|
@ -18,12 +18,13 @@ import com.ljsd.jieling.logic.family.GuildDef;
|
|||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
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 config.SGuildHelpConfig;
|
||||
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.Map;
|
||||
|
@ -116,7 +117,7 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler<Family.GuildHe
|
|||
}
|
||||
|
||||
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());
|
||||
guildInfo.addGuildHelpLog(guildHelpLog);
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
|
|
|
@ -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.User;
|
||||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
import config.SGuildHelpConfig;
|
||||
import manager.STableManager;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.Family;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import config.SGuildHelpConfig;
|
||||
import manager.STableManager;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -90,7 +90,7 @@ public class GuildSendHelpRequestHandler extends BaseHandler<Family.GuildSendHel
|
|||
|
||||
|
||||
long time =System.currentTimeMillis();
|
||||
boolean b = (time - guildMyInfo.getGuildHelpSendTime()) > 1000 * sGuildHelpConfig.getRecourseCD();
|
||||
boolean b = (time - guildMyInfo.getGuildHelpSendTime()) > 1000L * sGuildHelpConfig.getRecourseCD();
|
||||
if(proto.getSendMessage()&&b){
|
||||
guildMyInfo.setGuildHelpSendTime(time);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import config.SGuildSetting;
|
|||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -39,8 +40,7 @@ public class GuilidManager {
|
|||
}
|
||||
|
||||
public static GuildInfo getGuildInfo(int guildId){
|
||||
GuildInfo mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", Integer.toString(guildId), GuildInfo.class);
|
||||
return mapEntry;
|
||||
return RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_INFO, "", Integer.toString(guildId), GuildInfo.class);
|
||||
}
|
||||
|
||||
public static GuildInfo getGuildInfoByName(String guildName){
|
||||
|
@ -48,8 +48,7 @@ public class GuilidManager {
|
|||
if (guildId == null || guildId.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
GuildInfo guildInfo = getGuildInfo(Integer.parseInt(guildId));
|
||||
return guildInfo;
|
||||
return getGuildInfo(Integer.parseInt(guildId));
|
||||
}
|
||||
|
||||
public static Map<Integer, GuildInfo> getAllGuildInfos(){
|
||||
|
@ -133,23 +132,15 @@ public class GuilidManager {
|
|||
}
|
||||
|
||||
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);
|
||||
for (BaseCrossHandler baseBehavior : beansOfType.values()) {
|
||||
baseCrossHandlerHashMap.put(baseBehavior.getOpsType(), baseBehavior);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void checkNeedReleaseGuild() throws Exception {
|
||||
int now = (int)(System.currentTimeMillis()/1000);
|
||||
int now = TimeUtils.nowInt();
|
||||
int round=0;
|
||||
boolean needContinue = true;
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@ 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;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import config.SGuildSetting;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
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 java.util.*;
|
||||
|
@ -79,10 +79,8 @@ public class GuildInfo extends MongoBase {
|
|||
this.id = ((Long)RedisUtil.getInstence().increment(RedisKey.FAMILY_ID)).intValue();
|
||||
this.name = name;
|
||||
this.announce = announce;
|
||||
members = new ConcurrentHashMap();
|
||||
if(!members.containsKey(GlobalsDef.CHAIRMAN)){
|
||||
members.put(GlobalsDef.CHAIRMAN,new HashSet<>());
|
||||
}
|
||||
members = new ConcurrentHashMap<>();
|
||||
members.put(GlobalsDef.CHAIRMAN, new HashSet<>());
|
||||
members.get(GlobalsDef.CHAIRMAN).add(creator);
|
||||
this.createTime = System.currentTimeMillis();
|
||||
this.init(id,"");
|
||||
|
|
|
@ -637,15 +637,6 @@ public class DeathPathLogic {
|
|||
// 删除rediskey
|
||||
String pattern = serverId+":DEATH_PATH.*";
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
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.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.GuildDef;
|
||||
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.session.ISession;
|
||||
import com.ljsd.jieling.util.AyncWorkerRunnable;
|
||||
import com.ljsd.jieling.util.AyyncWorker;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.Family;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -20,7 +20,7 @@ import java.util.Map;
|
|||
public class KickOutGuildHandler extends BaseCrossHandler {
|
||||
@Override
|
||||
public int getOpsType() {
|
||||
return GuildDef.UPDATE_YUANZHU;
|
||||
return GuildDef.UPDATE_KICK_OUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -28,21 +28,30 @@ public class KickOutGuildHandler extends BaseCrossHandler {
|
|||
AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, new AyncWorkerRunnable() {
|
||||
@Override
|
||||
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
|
||||
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()));
|
||||
}
|
||||
|
||||
private Map<Integer,Integer> clearRedPacketMap(User user){
|
||||
Map<Integer,Integer> map = user.getPlayerInfoManager().getWelfareRedPackets();
|
||||
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
|
||||
if(entry.getValue() != -1){
|
||||
entry.setValue(0);
|
||||
}
|
||||
int guildId = thisUser.getPlayerInfoManager().getGuildId();
|
||||
build.setName(otherUser.getPlayerInfoManager().getNickName()).setUid(otherUser.getId()).setPracticeLevel(otherUser.getHeroManager().getPracticeLevel());
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication, build.build());
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,57 +1,43 @@
|
|||
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.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.family.GuildDef;
|
||||
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.util.AyncWorkerRunnable;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.AyyncWorker;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
import util.TimeUtils;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.Family;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class UpdateYuanZhuHandler extends BaseCrossHandler {
|
||||
|
||||
@Override
|
||||
public int getOpsType() {
|
||||
return GuildDef.UPDATE_KICK_OUT;
|
||||
return GuildDef.UPDATE_YUANZHU;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(User thisUser, User otherUser) {
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, new AyncWorkerRunnable() {
|
||||
@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);
|
||||
}
|
||||
});
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(thisUser, true, user -> user.getGuildMyInfo().setGuidHelpInfo(otherUser.getGuildMyInfo().getGuidHelpInfo()));
|
||||
// 更新mongo
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
|
||||
private Map<Integer,Integer> clearRedPacketMap(User user){
|
||||
Map<Integer,Integer> map = user.getPlayerInfoManager().getWelfareRedPackets();
|
||||
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
|
||||
if(entry.getValue() != -1){
|
||||
entry.setValue(0);
|
||||
// 玩家在线,通知玩家
|
||||
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());
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.getGuildInfo(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication, build.build());
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -249,34 +249,40 @@ public class MinuteTask extends Thread {
|
|||
// 公会信息处理
|
||||
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));
|
||||
// 公会祭祀处理
|
||||
guildInfoEntry.getValue().reSetFete();
|
||||
LOGGER.info("{}更新公会祭祀完毕",guildInfoEntry.getValue().getName());
|
||||
// 公会援助日志处理
|
||||
GuildInfo guildInfo = guildInfoEntry.getValue();
|
||||
guildInfo.clearGuildHelpLog();
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
// 公会援助刷新
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
guildInfo.getMembers().values().forEach(sendUids::addAll);
|
||||
for (Integer sendUid : sendUids) {
|
||||
User target = UserManager.getUserNotCache(sendUid);
|
||||
if (target == null){
|
||||
continue;
|
||||
try {
|
||||
// 公会红包排行处理
|
||||
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
|
||||
LOGGER.info("{}更新公会红包完毕",guildInfoEntry.getValue().getName());
|
||||
// 公会祭祀处理
|
||||
guildInfoEntry.getValue().reSetFete();
|
||||
LOGGER.info("{}更新公会祭祀完毕",guildInfoEntry.getValue().getName());
|
||||
// 公会援助日志处理
|
||||
GuildInfo guildInfo = guildInfoEntry.getValue();
|
||||
guildInfo.clearGuildHelpLog();
|
||||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
LOGGER.info("{}更新公会援助日志完毕",guildInfoEntry.getValue().getName());
|
||||
// 公会援助刷新
|
||||
Set<Integer> sendUids = new HashSet<>();
|
||||
guildInfo.getMembers().values().forEach(sendUids::addAll);
|
||||
for (Integer sendUid : sendUids) {
|
||||
User target = UserManager.getUserNotCache(sendUid);
|
||||
if (target == null){
|
||||
continue;
|
||||
}
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(target, true, user -> {
|
||||
GuildLogic.sendGuildHelpRewardEmail(target);
|
||||
GuildMyInfo guildMyInfo = target.getGuildMyInfo();
|
||||
guildMyInfo.setGuidHelpInfo(new HashMap<>());
|
||||
guildMyInfo.setGuidHelpHadTakeInfo(new HashMap<>());
|
||||
guildMyInfo.setGuildHelpSendTime(0);
|
||||
guildMyInfo.setGuildHelpReward(false);
|
||||
guildMyInfo.setGuildHelpTime(0);
|
||||
LOGGER.info("公会援助刷新uid=>{}", sendUid);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(target, true, user -> {
|
||||
GuildLogic.sendGuildHelpRewardEmail(target);
|
||||
GuildMyInfo guildMyInfo = target.getGuildMyInfo();
|
||||
guildMyInfo.setGuidHelpInfo(new HashMap<>());
|
||||
guildMyInfo.setGuidHelpHadTakeInfo(new HashMap<>());
|
||||
guildMyInfo.setGuildHelpSendTime(0);
|
||||
guildMyInfo.setGuildHelpReward(false);
|
||||
guildMyInfo.setGuildHelpTime(0);
|
||||
LOGGER.info("公会援助刷新uid=>{}", sendUid);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
//入库
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
|
|
Loading…
Reference in New Issue