玉虚论道
parent
38c2782933
commit
0f06046daf
|
@ -317,9 +317,17 @@ public class MongoUtil {
|
|||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -172,6 +172,7 @@ public enum ErrorCode implements IErrorCode {
|
|||
REDPACKET_DAILY_LIMIT(141,"今日福利红包已达领取上限"),
|
||||
HONGMENG_ING(142,"英雄在鸿蒙阵中,操作失败"),
|
||||
CHAT_NOT_CROSS(143,"聊天检查,没有跨服分组"),
|
||||
CROSS_YXLD_OVER(144,"赛季结算中"),
|
||||
;
|
||||
private static final Set<Integer> CodeSet = new HashSet<>();
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ import rpc.protocols.MessageTypeProto;
|
|||
import util.TimeUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -60,6 +61,14 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
|
|||
@Override
|
||||
public void processWithProto(ISession session, ArenaInfoProto.CrossYuXuLunDaoChallengeRequest request) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int day = calendar.get(Calendar.DAY_OF_WEEK);
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
int minute = calendar.get(Calendar.MINUTE);
|
||||
if(day ==1 && hour ==23 && minute>30){
|
||||
throw new ErrorCodeException(ErrorCode.CROSS_YXLD_OVER);
|
||||
}
|
||||
ArenaManager arenaManager = user.getArenaManager();
|
||||
List<Integer> teamId = request.getTeamIdList();
|
||||
int defUid = request.getChallengeUid();
|
||||
|
@ -260,26 +269,33 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
|
|||
|
||||
public static int[] getFightResultByPersonToPerson(User myUser, int defUserUid, int[] myteamId, int[] defTeamId, ArenaRecord arenaRecord, ArenaInfoProto.CrossYuXuLunDaoChallengeResponse.Builder builder) throws Exception {
|
||||
int[] result = new int[3];
|
||||
//ArenaOfUser arenaOfUser = CrossServiceLogic.getInstance().query(defUserUid);
|
||||
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(defUserUid);
|
||||
|
||||
//其他服玩家
|
||||
//rpc 数据调用测试
|
||||
CrossArenaManager crossArenaManager = null;
|
||||
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
|
||||
if (!csPlayer.getRpcIp().equals(coreSettings.getIp()) && csPlayer.getRpcPort() != coreSettings.getPort()) {
|
||||
String ip1 = csPlayer.getRpcIp();
|
||||
int port1 = csPlayer.getRpcPort();
|
||||
int uid1 = csPlayer.getUserId();
|
||||
String ip = csPlayer.getRpcIp();
|
||||
int port = csPlayer.getRpcPort();
|
||||
int uid = csPlayer.getUserId();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("RPCCORE").append("|")
|
||||
.append(ip1).append("|")
|
||||
.append(port1).toString();
|
||||
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient1 = null;
|
||||
rPCClient1 = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
crossArenaManager = rPCClient1.getClient().getHeroManagerInfo(uid1);
|
||||
.append(ip).append("|")
|
||||
.append(port).toString();
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
|
||||
try{
|
||||
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
|
||||
}catch (Exception e) {
|
||||
LOGGER.info("callback=>", e);
|
||||
} finally {
|
||||
if(rPCClient != null){
|
||||
rPCClient.returnObject(sb.toString());
|
||||
}else{
|
||||
LOGGER.info("callback=> rPCClient is null ");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
arenaRecord.setCreateTime(TimeUtils.nowInt()); // 时间
|
||||
arenaRecord.setAttackId(defUserUid); //id
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.handler.crossServer;
|
||||
|
||||
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.globals.BIReason;
|
||||
|
@ -9,10 +10,7 @@ import com.ljsd.jieling.logic.GlobalDataManaager;
|
|||
import com.ljsd.jieling.logic.GlobleSystemLogic;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.arena.CrossYuxulundaoLogic;
|
||||
import com.ljsd.jieling.logic.dao.ArenaEnemy;
|
||||
import com.ljsd.jieling.logic.dao.ArenaManager;
|
||||
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
@ -26,6 +24,7 @@ import rpc.protocols.CommonProto;
|
|||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 玉虚论道 页面数据请求
|
||||
|
@ -71,14 +70,11 @@ public class CrossYuxulundaoGetInfoHandler extends BaseHandler<ArenaInfoProto.Cr
|
|||
} else {
|
||||
//赛季内第一次登陆请求
|
||||
//主线编队复制到第一队伍
|
||||
/*TeamPosManager teamPosManager = user.getTeamPosManager();
|
||||
TeamPosManager teamPosManager = user.getTeamPosManager();
|
||||
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = teamPosManager.getTeamPosForHero();
|
||||
if(teamPosForHero.containsKey(GlobalsDef.FORMATION_NORMAL)){
|
||||
if(teamPosForHero.containsKey(GlobalsDef.FORMATION_NORMAL)&&!teamPosForHero.containsKey(GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE)){
|
||||
teamPosManager.updateTeamPosByTeamId(GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, teamPosManager.getTeamPosForHero().get(GlobalsDef.FORMATION_NORMAL));
|
||||
//保存编队到跨服数据中
|
||||
CrossServiceLogic.getInstance().dispose(user);
|
||||
|
||||
}*/
|
||||
}
|
||||
builder.setIsFirst(true);
|
||||
arenaManager.setCrossYuxulundaoFirst(System.currentTimeMillis());
|
||||
//重置段位发奖
|
||||
|
|
|
@ -41,7 +41,7 @@ public class CrossServiceLogic {
|
|||
/**
|
||||
* key有效时间,秒
|
||||
*/
|
||||
private static final int EXPIRE = 60*60*6;
|
||||
private static final int EXPIRE = 604800;//七天
|
||||
|
||||
public static class Instance {
|
||||
public final static CrossServiceLogic instance = new CrossServiceLogic();
|
||||
|
@ -322,7 +322,7 @@ public class CrossServiceLogic {
|
|||
return null;
|
||||
}
|
||||
// 连接跨服游戏库,获取玩家信息
|
||||
MongoTemplate game = MongoUtil.getInstence().getMonogTemplate(Integer.parseInt(userInfo.getServerId()));
|
||||
MongoTemplate game = MongoUtil.getInstence().getMonogTemplate2(Integer.parseInt(userInfo.getServerId()));
|
||||
User user = game.findOne(query, User.class);
|
||||
if (user == null){
|
||||
return null;
|
||||
|
|
|
@ -288,28 +288,6 @@ public class CrossYuxulundaoLogic {
|
|||
if (csPlayer == null) {
|
||||
return null;
|
||||
}
|
||||
/*CrossArenaManager crossArenaManager = null;
|
||||
try {
|
||||
//本服和其他服
|
||||
crossArenaManager=PlayerLogic.getCrossArenaManager(csPlayer) ;
|
||||
|
||||
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
|
||||
if(csPlayer.getRpcIp().equals(coreSettings.getIp())&&csPlayer.getRpcPort() == coreSettings.getPort()){
|
||||
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, false);
|
||||
int force2 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_TWO, false);
|
||||
int force3 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_THREE, false);
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
}
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
if(crossArenaManager == null){
|
||||
return null;
|
||||
}*/
|
||||
|
||||
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(enemyId);
|
||||
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
|
||||
.setUid(enemyId)
|
||||
|
@ -386,7 +364,6 @@ public class CrossYuxulundaoLogic {
|
|||
.setUserName(arenaRecord.getUserName())
|
||||
.setHeadFrame(arenaRecord.getHeadFrame()).setFightData1(fightDataProto1).setFightData2(fightDataProto2).setFightData3(fightDataProto3)
|
||||
.setPower(arenaRecord.getAttackForce()).setType(arenaRecord.getYxldBattleType()).build();
|
||||
|
||||
}else{
|
||||
return CommonProto.crossYxldPlayerRecordInfo.newBuilder().setTime(arenaRecord.getCreateTime())
|
||||
.setUid(arenaRecord.getAttackId())
|
||||
|
|
|
@ -860,24 +860,34 @@ public class PlayerLogic {
|
|||
}
|
||||
|
||||
public static CrossArenaManager getCrossArenaManager(CSPlayer csPlayer )throws Exception{
|
||||
//CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
|
||||
if(csPlayer==null){
|
||||
return null;
|
||||
//throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId());
|
||||
// String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId());
|
||||
//rpc 数据调用测试
|
||||
String ip1 =csPlayer.getRpcIp();
|
||||
int port1 = csPlayer.getRpcPort();
|
||||
int uid1 = csPlayer.getUserId();
|
||||
String ip =csPlayer.getRpcIp();
|
||||
int port = csPlayer.getRpcPort();
|
||||
int uid = csPlayer.getUserId();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("RPCCORE").append("|")
|
||||
.append(ip1).append("|")
|
||||
.append(port1).toString();
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient1 = null;
|
||||
rPCClient1 = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
CrossArenaManager crossArenaManager= rPCClient1.getClient().getHeroManagerInfo(uid1);
|
||||
.append(ip).append("|")
|
||||
.append(port).toString();
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
|
||||
CrossArenaManager crossArenaManager = null ;
|
||||
try{
|
||||
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
|
||||
}catch (Exception e) {
|
||||
LOGGER.info("callback=>", e);
|
||||
} finally {
|
||||
if(rPCClient != null){
|
||||
rPCClient.returnObject(sb.toString());
|
||||
}else{
|
||||
LOGGER.info("callback=> rPCClient is null ");
|
||||
}
|
||||
}
|
||||
return crossArenaManager;
|
||||
}
|
||||
|
||||
|
@ -977,21 +987,29 @@ public class PlayerLogic {
|
|||
return PlayerLogic.getInstance().getCrossYxldMyTeamInfo(user, team);
|
||||
}
|
||||
//rpc 数据调用测试
|
||||
String ip1 =csPlayer.getRpcIp();
|
||||
int port1 = csPlayer.getRpcPort();
|
||||
int uid1 = csPlayer.getUserId();
|
||||
String ip =csPlayer.getRpcIp();
|
||||
int port = csPlayer.getRpcPort();
|
||||
int uid = csPlayer.getUserId();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("RPCCORE").append("|")
|
||||
.append(ip1).append("|")
|
||||
.append(port1).toString();
|
||||
.append(ip).append("|")
|
||||
.append(port).toString();
|
||||
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient1 = null;
|
||||
rPCClient1 = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
|
||||
|
||||
CrossArenaManager crossArenaManager= rPCClient1.getClient().getHeroManagerInfo(uid1);
|
||||
if(crossArenaManager == null){
|
||||
LOGGER.info("hehhhhhhhhhhh");
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
CrossArenaManager crossArenaManager = null ;
|
||||
try{
|
||||
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
|
||||
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
|
||||
}catch (Exception e) {
|
||||
LOGGER.info("callback=>", e);
|
||||
} finally {
|
||||
if(rPCClient != null){
|
||||
rPCClient.returnObject(sb.toString());
|
||||
}else{
|
||||
LOGGER.info("callback=> rPCClient is null ");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
for(int teamId: team){
|
||||
|
|
|
@ -76,20 +76,21 @@ public class CrossYuXuLunDaoRank extends AbstractRank{
|
|||
.setSex(0).setCrossScore(mapEntry.getEnemyStatus());
|
||||
builder.addRanks(everyRank);
|
||||
}else{
|
||||
ArenaOfUser query = CrossServiceLogic.getInstance().query(Integer.valueOf(data.getValue()));
|
||||
//ArenaOfUser query = CrossServiceLogic.getInstance().query(Integer.valueOf(data.getValue()));
|
||||
CSPlayer cPlayer = CrossServiceLogic.getPlayerByRedis(Integer.valueOf(data.getValue()));
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(query.getHeroManager().getTotalForce())
|
||||
.setParam1(cPlayer.getMaxFore())
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
//CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(query,everyRankInfo);
|
||||
CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(Integer.valueOf(data.getValue()),everyRankInfo);
|
||||
CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(cPlayer,everyRankInfo);
|
||||
builder.addRanks(everyRank);
|
||||
}
|
||||
}
|
||||
public static CommonProto.UserRank.Builder getCrossOneUserRank(int uid , CommonProto.RankInfo.Builder everyRankInfo){
|
||||
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(uid);
|
||||
CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
|
||||
public static CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
|
||||
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(player.getUserId());
|
||||
//CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
|
||||
return CommonProto.UserRank.newBuilder()
|
||||
.setUid(player.getUserId())
|
||||
.setLevel(player.getLevel())
|
||||
|
@ -105,7 +106,7 @@ public class CrossYuXuLunDaoRank extends AbstractRank{
|
|||
.setUserTitle(player.getUserTitle())
|
||||
.setPracticeLevel(player.getPracticeLevel())
|
||||
.setServerName(serverName)
|
||||
.setCrossScore(player.getCrossYuxulundaoNewScore());
|
||||
.setCrossScore(everyRankInfo.getParam2());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -203,8 +203,8 @@ public class MinuteTask extends Thread {
|
|||
try {
|
||||
GlobleSystemLogic.getInstence().calCulRank();
|
||||
ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_DAILY_REWARD);
|
||||
if(calendar.get(Calendar.DAY_OF_WEEK)==1){
|
||||
CrossYuxulundaoLogic.getInstance().initRank();//玉虚论道重置
|
||||
if(calendar.get(Calendar.DAY_OF_WEEK) == 2){ //玉虚论道重置
|
||||
CrossYuxulundaoLogic.getInstance().initRank();
|
||||
}
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
||||
|
|
Loading…
Reference in New Issue