generated from root/miduo_server
获取工会成员信息报错时加入容错,继续查询下一个工会成员
parent
cd9925a2e0
commit
ad261c8d6c
|
@ -3,13 +3,6 @@ package com.ljsd.jieling.logic.family;
|
|||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.mongo.MongoKey;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.reportBeans_37.ChatContentType;
|
||||
import com.ljsd.jieling.reportBeans_37.Repot37EventUtil;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
|
@ -17,13 +10,13 @@ import com.ljsd.jieling.exception.ErrorCode;
|
|||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
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.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.IEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
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;
|
||||
|
@ -35,13 +28,16 @@ import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
|||
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.*;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.Family;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.reportBeans_37.ChatContentType;
|
||||
import com.ljsd.jieling.util.*;
|
||||
import config.*;
|
||||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import util.StringUtil;
|
||||
import util.TimeUtils;
|
||||
|
||||
|
@ -50,6 +46,7 @@ import java.util.*;
|
|||
public class GuildLogic{
|
||||
|
||||
static GuildLogic guildLogicInstance = new GuildLogic();
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(GuildLogic.class);
|
||||
|
||||
public GuildLogic() {
|
||||
}
|
||||
|
@ -129,8 +126,6 @@ public class GuildLogic{
|
|||
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(GuildLogic.class);
|
||||
|
||||
public static int getMemberType(int targetUid, Map<Integer, Set<Integer>> members) {
|
||||
for (Map.Entry<Integer, Set<Integer>> memberEntry : members.entrySet()) {
|
||||
Integer position = memberEntry.getKey();
|
||||
|
@ -155,14 +150,27 @@ public class GuildLogic{
|
|||
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());
|
||||
|
||||
long now = TimeUtils.now();
|
||||
long offlineTime = TimeUtils.ONE_DAY * 3;
|
||||
for (Set<Integer> members : guildInfo.getMembers().values()) {
|
||||
for (int uidOfMember : members) {
|
||||
User userMember = UserManager.getUser(uidOfMember, true);
|
||||
if(userMember != null) {
|
||||
builder.addFamilyWalkIndicaiton(CBean2Proto.getFamilyWalkIndicaiton(userMember));
|
||||
} else {
|
||||
guildInfo.removeMember(guildInfo.getMemberType(user.getId()), user.getId());
|
||||
try{
|
||||
PlayerInfoCache userTmp = UserManager.getPlayerInfoCache(uidOfMember);
|
||||
if (userTmp != null) {
|
||||
long lastLoginTime = userTmp.getOffLineTime();
|
||||
//离线超过3天,不发送信息
|
||||
if((now - lastLoginTime) >= offlineTime){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
User userMember = UserManager.getUser(uidOfMember, true);
|
||||
if(userMember != null) {
|
||||
builder.addFamilyWalkIndicaiton(CBean2Proto.getFamilyWalkIndicaiton(userMember));
|
||||
} else {
|
||||
guildInfo.removeMember(guildInfo.getMemberType(user.getId()), user.getId());
|
||||
}
|
||||
}catch (Exception e){
|
||||
LOGGER.error("getFamilyInfo error uid:" + uidOfMember,e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -601,26 +609,29 @@ public class GuildLogic{
|
|||
Family.GetFamilyMemberInfoResponse.Builder builder = Family.GetFamilyMemberInfoResponse.newBuilder();
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
long now = System.currentTimeMillis();
|
||||
long offlineTime = TimeUtils.ONE_DAY * 3;
|
||||
for (Map.Entry<Integer, Set<Integer>> memberEntry : members.entrySet()) {
|
||||
Integer position = memberEntry.getKey();
|
||||
Set<Integer> value = memberEntry.getValue();
|
||||
List<Integer> removes = new ArrayList<>();
|
||||
for (Integer uidTmp : value) {
|
||||
// LOGGER.info("uidTmp={}",uidTmp);
|
||||
if(uidTmp != null) {
|
||||
User userTmp = UserManager.getUser(uidTmp, true);
|
||||
// LOGGER.info("userTmp={}", userTmp);
|
||||
if (userTmp != null) {
|
||||
long lastLoginTime = userTmp.getPlayerInfoManager().getLoginTime();
|
||||
//离线超过3天,且不是会长,踢出公会,并清除内存
|
||||
if((now - lastLoginTime) >= TimeUtils.ONE_DAY * 3 && position != GlobalsDef.CHAIRMAN ){
|
||||
try{
|
||||
User userTmp = UserManager.getUser(uidTmp, true);
|
||||
if (userTmp != null) {
|
||||
long lastLoginTime = userTmp.getPlayerInfoManager().getLoginTime();
|
||||
//离线超过3天,且不是会长,踢出公会,并清除内存
|
||||
if((now - lastLoginTime) >= offlineTime && position != GlobalsDef.CHAIRMAN ){
|
||||
removes.add(uidTmp);
|
||||
UserManager.removeUser(userTmp.getId());
|
||||
continue;
|
||||
}
|
||||
builder.addFamilyUserInfo(CBean2Proto.getFamilyUserInfo(userTmp, position));
|
||||
} else {
|
||||
removes.add(uidTmp);
|
||||
UserManager.removeUser(userTmp.getId());
|
||||
continue;
|
||||
}
|
||||
builder.addFamilyUserInfo(CBean2Proto.getFamilyUserInfo(userTmp, position));
|
||||
} else {
|
||||
removes.add(uidTmp);
|
||||
}catch (Exception e){
|
||||
LOGGER.error("getGuildMemberInfo error with uid " + uidTmp,e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue