玩家离线时间存redis
parent
4692f2804a
commit
e98d7b482b
|
@ -0,0 +1,19 @@
|
|||
package com.ljsd.jieling.handler.equip;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.equip.EquipLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
public class StrongthenFaxiangEquipHandler extends BaseHandler<PlayerInfoProto.StrongthenFaxiangEquipRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.STRONGTHEN_FAXIANG_EQUIP_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, PlayerInfoProto.StrongthenFaxiangEquipRequest proto) throws Exception {
|
||||
EquipLogic.getInstance().strongthenFaxiangEquip(iSession.getUid(),proto.getFaxiangID(), proto.getTargetLv(), proto.getAction());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.ljsd.jieling.handler.equip;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.equip.EquipLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
public class WearFaxiangEquipHandler extends BaseHandler<PlayerInfoProto.WearFaxiangEquipRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.WEAR_FAXIANG_EQUIP_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, PlayerInfoProto.WearFaxiangEquipRequest proto) throws Exception {
|
||||
EquipLogic.getInstance().wearFaxiangEquip(iSession.getUid(),proto.getHeroID(),proto.getFaxiangID(),proto.getAction());
|
||||
}
|
||||
}
|
|
@ -5,24 +5,16 @@ 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.arena.ArenaLogic;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
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.User;
|
||||
import com.ljsd.jieling.logic.dao.root.UserInfo;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.thrift.idl.CrossArenaManager;
|
||||
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.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -40,9 +32,9 @@ public class CrossServiceLogic {
|
|||
private CrossServiceLogic(){}
|
||||
/**
|
||||
* key有效时间,秒
|
||||
* 七天
|
||||
* 七天*2
|
||||
*/
|
||||
public static final int EXPIRE = 604800;
|
||||
public static final int EXPIRE = 604800*2;
|
||||
|
||||
public static class Instance {
|
||||
public final static CrossServiceLogic instance = new CrossServiceLogic();
|
||||
|
@ -108,12 +100,7 @@ public class CrossServiceLogic {
|
|||
|
||||
private static CSPlayer formatUserToPlayer(User user){
|
||||
CSPlayer csPlayer = RedisUtil.getInstence().getObject(getKey(user.getId()), CSPlayer.class);
|
||||
int newScore=0,oldScore =0,crossYxldMaxLevel=0 ;
|
||||
if (csPlayer != null) {
|
||||
newScore = csPlayer.getCrossYuxulundaoNewScore();
|
||||
oldScore = csPlayer.getCrossYuxulundaoOldScore();
|
||||
crossYxldMaxLevel = csPlayer.getCrossYxldMaxLevel();
|
||||
} else {
|
||||
if (csPlayer == null) {
|
||||
csPlayer = new CSPlayer();
|
||||
}
|
||||
PlayerManager p = user.getPlayerInfoManager();
|
||||
|
@ -128,10 +115,7 @@ public class CrossServiceLogic {
|
|||
csPlayer.setServerId(GameApplication.serverId);
|
||||
csPlayer.setSex(p.getSex());
|
||||
csPlayer.setUserMount(p.getUserMount());
|
||||
csPlayer.setCrossYuxulundaoNewScore(newScore);
|
||||
csPlayer.setCrossYuxulundaoOldScore(oldScore);
|
||||
csPlayer.setGuildId(p.getGuildId());
|
||||
csPlayer.setCrossYxldMaxLevel(crossYxldMaxLevel);
|
||||
//玉虚三个队伍总战力
|
||||
int force1 = user.getTeamPosManager().getTeamForceMap().getOrDefault(TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId(),0L).intValue();
|
||||
int force2 = user.getTeamPosManager().getTeamForceMap().getOrDefault(TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId(),0L).intValue();
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ljsd.jieling.logic.arena;
|
||||
|
||||
import com.ljsd.GameApplication;
|
||||
import com.ljsd.fight.ArenaRecord;
|
||||
import com.ljsd.fight.FightType;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.SArenaRobotStaticConfig;
|
||||
|
@ -37,7 +36,6 @@ import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
|||
import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent;
|
||||
import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.thrift.idl.CrossArenaManager;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.*;
|
||||
|
@ -581,16 +579,18 @@ public class ArenaLogic {
|
|||
curSeason=0;
|
||||
}
|
||||
int rank = 1;
|
||||
int nowTime =(int) (TimeUtils.now()/1000);
|
||||
for(ZSetOperations.TypedTuple<String> item : arenaRankInfo){
|
||||
String value = item.getValue();
|
||||
int uid = Integer.parseInt(value);
|
||||
User user = UserManager.getUserNotCache(uid);
|
||||
// 超7天未登录玩家,不再发奖励
|
||||
if (null == user || start - user.getPlayerInfoManager().getLoginTime() > GlobalsDef.REDIS_OVER_TIME_DAY * 7 * 1000L) {
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(uid);
|
||||
if (csPlayer.getOffLineTime() != 0 && TimeUtils.now() > (csPlayer.getOffLineTime() + GlobalsDef.REDIS_OVER_TIME_DAY * 7 * 1000L) ){
|
||||
String recordKey = RedisUtil.getInstence().getKey(RedisKey.ARENA_RRECORD, Integer.toString(uid));
|
||||
RedisUtil.getInstence().del(recordKey);
|
||||
// RedisUtil.getInstence().zsetRemoveOne(seasonKey, Integer.toString(user.getId()));
|
||||
continue;
|
||||
}
|
||||
User user = UserManager.getUserNotCache(uid);
|
||||
if (user == null){
|
||||
continue;
|
||||
}
|
||||
if(type == GlobalsDef.ARENA_DAILY_REWARD){
|
||||
|
@ -616,7 +616,7 @@ public class ArenaLogic {
|
|||
}
|
||||
String rewardByRank = getRewardByRank(rank++, type);
|
||||
if(!"".equals(rewardByRank)){
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
}
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
|
@ -665,42 +665,18 @@ public class ArenaLogic {
|
|||
public void playWithSb(ISession session,int challengeUid,int myteamId,int cross) throws Exception {
|
||||
User mine = UserManager.getUser(session.getUid());
|
||||
int myforce = HeroLogic.getInstance().calTeamTotalForce(mine, myteamId, false);
|
||||
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId,true);
|
||||
CommonProto.FightTeamInfo deffightTeamInfo;
|
||||
int deforce;
|
||||
if(cross==0){
|
||||
User defUser = UserManager.getUserNotCache(challengeUid);
|
||||
if (defUser == null){
|
||||
throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
|
||||
}
|
||||
if(!defUser.getTeamPosManager().getTeamPosForHero().containsKey(1)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("对方未设置阵容"));
|
||||
}
|
||||
deforce = HeroLogic.getInstance().calTeamTotalForce(defUser, 1, false);
|
||||
deffightTeamInfo= BehaviorUtil.getFightTeamInfo(defUser,1,false);
|
||||
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine, myteamId,true);
|
||||
|
||||
}else{
|
||||
//跨服切磋
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(challengeUid);
|
||||
if (csPlayer == null){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("当前玩家没有跨服数据"));
|
||||
}
|
||||
deforce = 0;
|
||||
CrossArenaManager crossArenaManager = null;
|
||||
if (csPlayer.getServerId() != GameApplication.serverId){
|
||||
crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer);
|
||||
if(crossArenaManager.getTotalForceByTeam().containsKey(myteamId)){
|
||||
deforce = crossArenaManager.getTotalForceByTeam().get(myteamId);
|
||||
}
|
||||
}else{
|
||||
User defUser = UserManager.getUserNotCache(challengeUid);
|
||||
if (defUser == null){
|
||||
throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
|
||||
}
|
||||
deforce = HeroLogic.getInstance().calTeamTotalForce(defUser, myteamId, false);
|
||||
}
|
||||
deffightTeamInfo = FightUtil.makeCrossPersonData(csPlayer, myteamId, null, crossArenaManager);
|
||||
User defUser = PlayerLogic.getInstance().getUserByRpc(challengeUid);
|
||||
if (defUser == null){
|
||||
throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
|
||||
}
|
||||
if(!defUser.getTeamPosManager().getTeamPosForHero().containsKey(1)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("对方未设置阵容"));
|
||||
}
|
||||
int deforce = HeroLogic.getInstance().calTeamTotalForce(defUser, myteamId, false);
|
||||
CommonProto.FightTeamInfo deffightTeamInfo= BehaviorUtil.getFightTeamInfo(defUser,1,false);
|
||||
|
||||
if(myforce<deforce){
|
||||
deffightTeamInfo = CommonProto.FightTeamInfo.newBuilder().mergeFrom(deffightTeamInfo).setFirstCamp(1).build();
|
||||
}
|
||||
|
@ -1006,13 +982,6 @@ public class ArenaLogic {
|
|||
Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(csPlayer.getUserId()));
|
||||
int proudTime = get==null?1:Integer.parseInt((String)get);
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
// 旧数据兼容
|
||||
if (csPlayer.getLuoFuForce() == 0){
|
||||
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
|
||||
if (redis != null){
|
||||
csPlayer = redis;
|
||||
}
|
||||
}
|
||||
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
|
||||
.setUid(csPlayer.getUserId())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
|
|
|
@ -83,22 +83,7 @@ public class CSPlayer {
|
|||
|
||||
private int luoFuForce = 0;
|
||||
|
||||
// public CSPlayer(User user) {
|
||||
// PlayerManager manager = user.getPlayerInfoManager();
|
||||
// this.userId = user.getId();
|
||||
// this.level = manager.getLevel();
|
||||
// this.name = manager.getNickName();
|
||||
// this.sex = manager.getSex();
|
||||
// this.head = manager.getHead();
|
||||
// this.headFrame = manager.getHeadFrame();
|
||||
// this.skin = manager.getUserSkin();
|
||||
// this.userTitle = manager.getUserTitle();
|
||||
// this.userMount = manager.getUserMount();
|
||||
// this.practiceLevel = user.getHeroManager().getPracticeLevel();
|
||||
// this.guildId = manager.getGuildId();
|
||||
// this.serverId = GameApplication.serverId;
|
||||
// this.maxFore = user.getPlayerInfoManager().getMaxForce();
|
||||
// }
|
||||
private long offLineTime;// 离线时间
|
||||
|
||||
public CSPlayer() {
|
||||
}
|
||||
|
@ -247,4 +232,12 @@ public class CSPlayer {
|
|||
public void setLuoFuForce(int luoFuForce) {
|
||||
this.luoFuForce = luoFuForce;
|
||||
}
|
||||
|
||||
public long getOffLineTime() {
|
||||
return offLineTime;
|
||||
}
|
||||
|
||||
public void setOffLineTime(long offLineTime) {
|
||||
this.offLineTime = offLineTime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,19 +14,18 @@ import com.ljsd.jieling.logic.dao.FriendManager;
|
|||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.help.HelpHeroLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.util.*;
|
||||
import config.SSpecialConfig;
|
||||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.MathUtils;
|
||||
import util.StringUtil;
|
||||
|
||||
|
@ -105,7 +104,7 @@ public class FriendLogic {
|
|||
}
|
||||
friendList.add(friend);
|
||||
}
|
||||
PlayerInfoProto.GetFriendInfoResponse getFriendInfoResponse = PlayerInfoProto.GetFriendInfoResponse
|
||||
PlayerInfoProto.GetFriendInfoResponse getFriendInfoResponse = PlayerInfoProto.GetFriendInfoResponse
|
||||
.newBuilder().addAllFriends(friendList)
|
||||
.build();
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_FRIEND_INFO_REPONSE_VALUE, getFriendInfoResponse, true);
|
||||
|
@ -143,7 +142,7 @@ public class FriendLogic {
|
|||
continue;
|
||||
}
|
||||
int minLevel = level - randomLevel;
|
||||
minLevel = minLevel <= 5 ? 5 : minLevel;
|
||||
minLevel = Math.max(minLevel, 5);
|
||||
int maxLevel = level + randomLevel;
|
||||
int recommandLevel = recommandIdUser.getPlayerInfoManager().getLevel();
|
||||
if(recommandLevel < minLevel || recommandLevel > maxLevel){
|
||||
|
@ -640,7 +639,7 @@ public class FriendLogic {
|
|||
}
|
||||
|
||||
if(reward.length()!=0){
|
||||
rewardStr = reward.toString().substring(0,reward.toString().length()-1);
|
||||
rewardStr = reward.substring(0,reward.toString().length()-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -678,7 +678,7 @@ public class PlayerLogic {
|
|||
return oneInfo;
|
||||
}
|
||||
|
||||
public PlayerInfoProto.GetPlayerOneTeamInfoResponse getOneTeamInfo( int id,int teamId,CrossArenaEnemy info) throws Exception {
|
||||
public PlayerInfoProto.GetPlayerOneTeamInfoResponse getOneTeamInfo(int id,int teamId,CrossArenaEnemy info) throws Exception {
|
||||
if(id==0){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
|
@ -1082,6 +1082,7 @@ public class PlayerLogic {
|
|||
}
|
||||
|
||||
//获取跨服玩家信息
|
||||
@Deprecated
|
||||
public CommonProto.TeamOneInfo getCrossYxldOneTeamInfoNew(int id,List<Integer> team) throws Exception {
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
|
||||
if(csPlayer==null){
|
||||
|
@ -2035,93 +2036,95 @@ public class PlayerLogic {
|
|||
}
|
||||
|
||||
//获取跨服非玉虚玩家队伍信息
|
||||
@Deprecated
|
||||
public PlayerInfoProto.GetPlayerOneTeamInfoResponse getCrossOneTeamInfo(int id,int teamId) throws Exception {
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
|
||||
if(csPlayer==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
//如果是本服玩家 直接本服调用数据
|
||||
if(GameApplication.serverId == csPlayer.getServerId()){
|
||||
User user = UserManager.getUserNotCache(id);
|
||||
if (user == null){
|
||||
throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
|
||||
}
|
||||
return PlayerLogic.getInstance().getOneTeamInfo(id, teamId);
|
||||
}
|
||||
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
CommonProto.TeamOneInfo.Builder oneTeamInfo = CommonProto.TeamOneInfo.newBuilder()
|
||||
.setHead(csPlayer.getHead())
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserTitle(csPlayer.getUserTitle())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
.setName(csPlayer.getName())
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse("")) //csPlayer.getGuildName()
|
||||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setUid(id).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
|
||||
.setServerName(serverName);
|
||||
|
||||
CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
|
||||
if(crossArenaManager == null){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
//rpc 数据调用测试
|
||||
CommonProto.TeamOneTeamInfo.Builder teamOneTeamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
|
||||
List<com.ljsd.jieling.thrift.idl.TeamPosHeroInfo> teamPosHeroInfos = crossArenaManager.getTeams().get(teamId);
|
||||
if(teamPosHeroInfos!=null){
|
||||
for (com.ljsd.jieling.thrift.idl.TeamPosHeroInfo heroInfo:teamPosHeroInfos) {
|
||||
com.ljsd.jieling.thrift.idl.ArenaOfHero hero = crossArenaManager.getHeros().get(heroInfo.getHeroId());
|
||||
teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
|
||||
.setHeroid(hero.getId())
|
||||
.setHeroTid(hero.getTemplateId())
|
||||
.setLevel(hero.getLevel())
|
||||
.setStar(hero.getStar())
|
||||
.setPosition(heroInfo.getPosition())
|
||||
.setSkinId(hero.getSkin())
|
||||
.setGodSoulLv(hero.getGodSoulLv())
|
||||
.setPropertyId(hero.getPropertyId())
|
||||
.build());
|
||||
}
|
||||
}
|
||||
if(crossArenaManager.getPokemons()!=null){
|
||||
Map<String, com.ljsd.jieling.thrift.idl.Pokemon> pokemonMap = crossArenaManager.getPokemons();
|
||||
Map<Integer, String> teamMap = crossArenaManager.getPokemonTeamMap();
|
||||
for(Map.Entry<Integer, String> entry :teamMap.entrySet()){
|
||||
// clone 深度复制
|
||||
com.ljsd.jieling.thrift.idl.Pokemon pokemon = pokemonMap.get(entry.getValue());
|
||||
pokemon.setTmpId(pokemon.getTmpId());
|
||||
pokemon.setId(pokemon.getId());
|
||||
pokemon.setLevel(pokemon.getLevel());
|
||||
pokemon.setStar(pokemon.getStar());
|
||||
teamOneTeamInfo.addPokemonInfos(CBean2Proto.getSimpleTeamInfoByPokeMon(pokemon, entry.getKey()));
|
||||
}
|
||||
}
|
||||
LOGGER.info("=====================跨服获取阵容:{}",teamId);
|
||||
Integer integer = crossArenaManager.getTotalForceByTeam().getOrDefault(teamId,0);
|
||||
teamOneTeamInfo.setTotalForce(integer);
|
||||
if(crossArenaManager.getSeals()!= null){
|
||||
for(Map.Entry<Integer, com.ljsd.jieling.thrift.idl.PurpleMansionSeal> entry:crossArenaManager.getSeals().entrySet()){
|
||||
com.ljsd.jieling.thrift.idl.PurpleMansionSeal value = entry.getValue();
|
||||
com.ljsd.jieling.thrift.idl.ArenaOfHero arenaOfHero = crossArenaManager.getHeros().get(value.getSubId());
|
||||
if(value.getState()==0){
|
||||
continue;
|
||||
}
|
||||
teamOneTeamInfo.addSealShow(CommonProto.PurpleSealShowInfo.newBuilder().setType(value.getType()).setId(value.getSealId()).setHeroTId(arenaOfHero==null?0:arenaOfHero.getTemplateId()));
|
||||
}
|
||||
}
|
||||
//builder.setTeam(teamOneTeamInfo.build());
|
||||
//builder.addCrossTeam(teamOneTeamInfo.build());
|
||||
//四象心法数据
|
||||
teamOneTeamInfo.addAllSixiangxinfaInfo(RpcData2sixiangData(crossArenaManager.getSixiangInfos()));
|
||||
//命格
|
||||
teamOneTeamInfo.addAllLifeGridInfo(RpcData2LifeGridInfos(crossArenaManager));
|
||||
//玩家坐骑信息
|
||||
teamOneTeamInfo.addAllUserMountInfo(getUserMountList(crossArenaManager.getUserMountValidTime()));
|
||||
//身外化身
|
||||
teamOneTeamInfo.addAllTransformationCardInfo(getTransformationInfoListFromRpc(crossArenaManager.getTransformationList()));
|
||||
oneTeamInfo.setTeam(teamOneTeamInfo);
|
||||
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(oneTeamInfo);
|
||||
return playerTeamInfo.build();
|
||||
// CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
|
||||
// if(csPlayer==null){
|
||||
// throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
// }
|
||||
// //如果是本服玩家 直接本服调用数据
|
||||
// if(GameApplication.serverId == csPlayer.getServerId()){
|
||||
// User user = UserManager.getUserNotCache(id);
|
||||
// if (user == null){
|
||||
// throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
|
||||
// }
|
||||
// return PlayerLogic.getInstance().getOneTeamInfo(id, teamId);
|
||||
// }
|
||||
// //基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
// String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
// GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
// CommonProto.TeamOneInfo.Builder oneTeamInfo = CommonProto.TeamOneInfo.newBuilder()
|
||||
// .setHead(csPlayer.getHead())
|
||||
// .setHeadFrame(csPlayer.getHeadFrame())
|
||||
// .setUserTitle(csPlayer.getUserTitle())
|
||||
// .setLevel(csPlayer.getLevel())
|
||||
// .setName(csPlayer.getName())
|
||||
// .setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse("")) //csPlayer.getGuildName()
|
||||
// .setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
// .setUid(id).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
|
||||
// .setServerName(serverName);
|
||||
//
|
||||
// CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
|
||||
// if(crossArenaManager == null){
|
||||
// throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
// }
|
||||
// //rpc 数据调用测试
|
||||
// CommonProto.TeamOneTeamInfo.Builder teamOneTeamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
|
||||
// List<com.ljsd.jieling.thrift.idl.TeamPosHeroInfo> teamPosHeroInfos = crossArenaManager.getTeams().get(teamId);
|
||||
// if(teamPosHeroInfos!=null){
|
||||
// for (com.ljsd.jieling.thrift.idl.TeamPosHeroInfo heroInfo:teamPosHeroInfos) {
|
||||
// com.ljsd.jieling.thrift.idl.ArenaOfHero hero = crossArenaManager.getHeros().get(heroInfo.getHeroId());
|
||||
// teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
|
||||
// .setHeroid(hero.getId())
|
||||
// .setHeroTid(hero.getTemplateId())
|
||||
// .setLevel(hero.getLevel())
|
||||
// .setStar(hero.getStar())
|
||||
// .setPosition(heroInfo.getPosition())
|
||||
// .setSkinId(hero.getSkin())
|
||||
// .setGodSoulLv(hero.getGodSoulLv())
|
||||
// .setPropertyId(hero.getPropertyId())
|
||||
// .build());
|
||||
// }
|
||||
// }
|
||||
// if(crossArenaManager.getPokemons()!=null){
|
||||
// Map<String, com.ljsd.jieling.thrift.idl.Pokemon> pokemonMap = crossArenaManager.getPokemons();
|
||||
// Map<Integer, String> teamMap = crossArenaManager.getPokemonTeamMap();
|
||||
// for(Map.Entry<Integer, String> entry :teamMap.entrySet()){
|
||||
// // clone 深度复制
|
||||
// com.ljsd.jieling.thrift.idl.Pokemon pokemon = pokemonMap.get(entry.getValue());
|
||||
// pokemon.setTmpId(pokemon.getTmpId());
|
||||
// pokemon.setId(pokemon.getId());
|
||||
// pokemon.setLevel(pokemon.getLevel());
|
||||
// pokemon.setStar(pokemon.getStar());
|
||||
// teamOneTeamInfo.addPokemonInfos(CBean2Proto.getSimpleTeamInfoByPokeMon(pokemon, entry.getKey()));
|
||||
// }
|
||||
// }
|
||||
// LOGGER.info("=====================跨服获取阵容:{}",teamId);
|
||||
// Integer integer = crossArenaManager.getTotalForceByTeam().getOrDefault(teamId,0);
|
||||
// teamOneTeamInfo.setTotalForce(integer);
|
||||
// if(crossArenaManager.getSeals()!= null){
|
||||
// for(Map.Entry<Integer, com.ljsd.jieling.thrift.idl.PurpleMansionSeal> entry:crossArenaManager.getSeals().entrySet()){
|
||||
// com.ljsd.jieling.thrift.idl.PurpleMansionSeal value = entry.getValue();
|
||||
// com.ljsd.jieling.thrift.idl.ArenaOfHero arenaOfHero = crossArenaManager.getHeros().get(value.getSubId());
|
||||
// if(value.getState()==0){
|
||||
// continue;
|
||||
// }
|
||||
// teamOneTeamInfo.addSealShow(CommonProto.PurpleSealShowInfo.newBuilder().setType(value.getType()).setId(value.getSealId()).setHeroTId(arenaOfHero==null?0:arenaOfHero.getTemplateId()));
|
||||
// }
|
||||
// }
|
||||
// //builder.setTeam(teamOneTeamInfo.build());
|
||||
// //builder.addCrossTeam(teamOneTeamInfo.build());
|
||||
// //四象心法数据
|
||||
// teamOneTeamInfo.addAllSixiangxinfaInfo(RpcData2sixiangData(crossArenaManager.getSixiangInfos()));
|
||||
// //命格
|
||||
// teamOneTeamInfo.addAllLifeGridInfo(RpcData2LifeGridInfos(crossArenaManager));
|
||||
// //玩家坐骑信息
|
||||
// teamOneTeamInfo.addAllUserMountInfo(getUserMountList(crossArenaManager.getUserMountValidTime()));
|
||||
// //身外化身
|
||||
// teamOneTeamInfo.addAllTransformationCardInfo(getTransformationInfoListFromRpc(crossArenaManager.getTransformationList()));
|
||||
// oneTeamInfo.setTeam(teamOneTeamInfo);
|
||||
// PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(oneTeamInfo);
|
||||
// return playerTeamInfo.build();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -274,13 +274,6 @@ public abstract class AbstractRank implements IRank {
|
|||
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
// 兼容
|
||||
if (csPlayer.getMainLineForce() == 0){
|
||||
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
|
||||
if (redis != null){
|
||||
csPlayer = redis;
|
||||
}
|
||||
}
|
||||
return CommonProto.UserRank.newBuilder()
|
||||
.setUid(csPlayer.getUserId())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
|
|
|
@ -76,13 +76,6 @@ public class CrossArenaRank extends AbstractRank {
|
|||
if (query == null){
|
||||
return;
|
||||
}
|
||||
// 旧数据兼容
|
||||
if (query.getLuoFuForce() == 0){
|
||||
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(query.getUserId(), false);
|
||||
if (redis != null){
|
||||
query = redis;
|
||||
}
|
||||
}
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(query.getLuoFuForce())
|
||||
|
@ -96,13 +89,6 @@ public class CrossArenaRank extends AbstractRank {
|
|||
@Override
|
||||
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
|
||||
CommonProto.UserRank.Builder oneUserRank = super.getCrossOneUserRank(csPlayer, everyRankInfo);
|
||||
// 旧数据兼容
|
||||
if (csPlayer.getLuoFuForce() == 0){
|
||||
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
|
||||
if (redis != null){
|
||||
csPlayer = redis;
|
||||
}
|
||||
}
|
||||
oneUserRank.setForce(csPlayer.getLuoFuForce());
|
||||
return oneUserRank;
|
||||
}
|
||||
|
|
|
@ -8,20 +8,18 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
|
|||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
||||
import com.ljsd.jieling.logic.GlobalDataManaager;
|
||||
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.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.explorerMap.ExplorerMapLogic;
|
||||
import com.ljsd.jieling.logic.family.GuildLogic;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
|
@ -29,15 +27,15 @@ import com.ljsd.jieling.netty.server.IChannel;
|
|||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocol.INetConnet;
|
||||
import com.ljsd.jieling.protocol.INetReceived;
|
||||
import com.ljsd.jieling.protocol.INetWorkHandler;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.protocol.INetSession;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.protocol.INetWorkHandler;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.NetUtils;
|
||||
import util.StringUtil;
|
||||
import util.TimeUtils;
|
||||
|
@ -46,7 +44,6 @@ import java.lang.reflect.Type;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Description: session管理器
|
||||
|
@ -433,6 +430,10 @@ public class SessionManager implements INetSession<ISession>, INetReceived<ISess
|
|||
// 在线时间戳
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
playerInfoManager.setOffLineTime(TimeUtils.now());
|
||||
|
||||
CSPlayer player = CrossServiceLogic.getPlayerByRedis(user.getId());
|
||||
player.setOffLineTime(TimeUtils.now());
|
||||
CrossServiceLogic.update(player);
|
||||
// 总在线时间
|
||||
long onlineTime = playerInfoManager.getOffLineTime() - session.getUserLoginTime();
|
||||
playerInfoManager.addOnlineTime(onlineTime);
|
||||
|
|
Loading…
Reference in New Issue