登陆文件

master_zzxx
grimm 2024-05-24 17:44:11 +08:00
parent d94a14e846
commit 82656eeda1
7 changed files with 44 additions and 26 deletions

View File

@ -59,6 +59,7 @@ public class CarDelayFunction implements FunctionManager {
LOGGER.error("跨服车迟斗法,发奖, key{} 跨服分组 ={},锁状态:{},未获取到锁",lockKey, crossGroup, lock); LOGGER.error("跨服车迟斗法,发奖, key{} 跨服分组 ={},锁状态:{},未获取到锁",lockKey, crossGroup, lock);
return; return;
} }
RedisUtil.getInstence().expireMills(lockKey, TimeUtils.ONE_HOUR);
personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(personRank.getCrossRedisKey(), "", 0, -1, false); personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(personRank.getCrossRedisKey(), "", 0, -1, false);
guildRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(guildRank.getCrossRedisKey(), "", 0, -1, false); guildRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(guildRank.getCrossRedisKey(), "", 0, -1, false);
}else { }else {

View File

@ -3,13 +3,11 @@ package com.ljsd.jieling.handler;
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.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.ktbeans.KTDataUtil;
import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType; import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.ktbeans.parmsBean.ParamDataBean; import com.ljsd.jieling.ktbeans.parmsBean.ParamDataBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEnvironmentBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEnvironmentSimpleBean; import com.ljsd.jieling.ktbeans.parmsBean.ParamEnvironmentSimpleBean;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.UserRecentLoginInfo; import com.ljsd.jieling.logic.dao.UserRecentLoginInfo;
@ -39,7 +37,7 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
@Override @Override
public void processWithProto(ISession iSession, PlayerInfoProto.LoginRequest loginRequest) throws Exception { public void processWithProto(ISession iSession, PlayerInfoProto.LoginRequest loginRequest) throws Exception {
long now = TimeUtils.now();
int userId = iSession.getUid(); int userId = iSession.getUid();
if(!Blocker.checkFlow(iSession)){ if(!Blocker.checkFlow(iSession)){
return; return;
@ -47,9 +45,9 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
InetSocketAddress remoteAddress = iSession.getChannel().getRemoteAddress(); InetSocketAddress remoteAddress = iSession.getChannel().getRemoteAddress();
loginRequest = loginRequest.toBuilder().setIpS(remoteAddress.getAddress().getHostAddress()).build(); loginRequest = loginRequest.toBuilder().setIpS(remoteAddress.getAddress().getHostAddress()).build();
ReportUtil.saveBaseInfo(userId,loginRequest); ReportUtil.saveBaseInfo(userId,loginRequest);
ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean(); // ParamEnvironmentBean paramEnvironmentBean = new ParamEnvironmentBean();
paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS()); // paramEnvironmentBean.setDevice_id_s(loginRequest.getDeviceIdS());
paramEnvironmentBean.setIp_s(loginRequest.getIpS()); // paramEnvironmentBean.setIp_s(loginRequest.getIpS());
ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("", "", ParamEnvironmentSimpleBean paramEnvironmentSimpleBean = new ParamEnvironmentSimpleBean("", "",
loginRequest.getDeviceIdS(), loginRequest.getDeviceIdS(),
loginRequest.getBrandS(), loginRequest.getBrandS(),
@ -71,16 +69,13 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
break; break;
default: default:
break; break;
} }
ParamDataBean paramDataBean = new ParamDataBean(); ParamDataBean paramDataBean = new ParamDataBean();
paramDataBean.setChannel_s(loginRequest.getChannelS()); paramDataBean.setChannel_s(loginRequest.getChannelS());
KTDataUtil.addUserDataInfo(userId,paramDataBean);
// KTDataUtil.addUserDataInfo(userId,paramDataBean);
// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean); // KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
// KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean); // KTEnvironmentUtil.addUserSimpleEnviromentInfo(userId,paramEnvironmentSimpleBean);
// KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean); // KTEnvironmentUtil.addUserEnviromentInfo(userId,paramEnvironmentBean);
int pid = 0; int pid = 0;
int gid = 0; int gid = 0;
String channle_id = ""; String channle_id = "";
@ -109,7 +104,6 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
} }
break; break;
} }
LOGGER.info("LOGIN_REQUEST the uid={},the pid={},the gid={},",userId,pid,gid); LOGGER.info("LOGIN_REQUEST the uid={},the pid={},the gid={},",userId,pid,gid);
//登陆注册入内存 //登陆注册入内存
String openIdFront = loginRequest.getOpenId(); String openIdFront = loginRequest.getOpenId();
@ -120,16 +114,16 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
String chanel = split[1]; String chanel = split[1];
UserManager.userLogin(userId,openId,chanel,pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS(),channle_id,bundle_id,ccId,pack_Id); UserManager.userLogin(userId,openId,chanel,pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS(),channle_id,bundle_id,ccId,pack_Id);
} }
now = TimeUtils.now();
User user = UserManager.userLogin(userId,openIdFront,"",pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS(),channle_id,bundle_id,ccId,pack_Id); User user = UserManager.userLogin(userId,openIdFront,"",pid,gid,loginRequest.getPlatformS(),loginRequest.getIpS(),channle_id,bundle_id,ccId,pack_Id);
LOGGER.info("登陆耗时10{}", TimeUtils.now() - now);
now = TimeUtils.now();
PlayerManager playerInfoManager = user.getPlayerInfoManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();
playerInfoManager.setLastDeviceId(loginRequest.getDeviceIdS()); playerInfoManager.setLastDeviceId(loginRequest.getDeviceIdS());
playerInfoManager.setServerId(loginRequest.getServerId()); playerInfoManager.setServerId(loginRequest.getServerId());
UserRecentLoginInfo userRecentLoginInfo = new UserRecentLoginInfo(TimeUtils.nowInt(), playerInfoManager.getLevel(), playerInfoManager.getRootId(), playerInfoManager.getNickName()); UserRecentLoginInfo userRecentLoginInfo = new UserRecentLoginInfo(TimeUtils.nowInt(), playerInfoManager.getLevel(), playerInfoManager.getRootId(), playerInfoManager.getNickName());
RedisUtil.getInstence().old_putmap(RedisKey.USER_SERVER_INFO,openIdFront,loginRequest.getServerId(),userRecentLoginInfo); RedisUtil.getInstence().old_putmap(RedisKey.USER_SERVER_INFO,openIdFront,loginRequest.getServerId(),userRecentLoginInfo);
PlayerInfoProto.LoginResponse loginResponse = PlayerInfoProto.LoginResponse.newBuilder().setResultCode(0).setNewToken(String.valueOf(iSession.getToken())).build(); PlayerInfoProto.LoginResponse loginResponse = PlayerInfoProto.LoginResponse.newBuilder().setResultCode(0).setNewToken(String.valueOf(iSession.getToken())).build();
try { try {
@ -137,8 +131,8 @@ public class LoginRequestHandler extends BaseHandler<PlayerInfoProto.LoginReques
RedisUtil.getInstence().del(key); RedisUtil.getInstence().del(key);
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.LOGIN_RESPONSE_VALUE, loginResponse, true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.LOGIN_RESPONSE_VALUE, loginResponse, true);
MapLogic.getInstance().whenLogin(user); MapLogic.getInstance().whenLogin(user);
KtEventUtils.onKtEvent(user, ParamEventBean.UserLoginOutEvent,0); // KtEventUtils.onKtEvent(user, ParamEventBean.UserLoginOutEvent,0);
KtEventUtils.onKtEvent(user, ParamEventBean.UserLogin,0); // KtEventUtils.onKtEvent(user, ParamEventBean.UserLogin,0);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -277,10 +277,13 @@ public class ActivityLogic implements IEventHandler{
} }
public void newPlayerOpenActivityMission(User user) throws Exception { public void newPlayerOpenActivityMission(User user) throws Exception {
long now = TimeUtils.now();
checkActivityOfUser(user, null); checkActivityOfUser(user, null);
LOGGER.info("初始化玩家活动耗时1{}",TimeUtils.now() - now);
ISession session = OnlineUserManager.getSessionByUid(user.getId()); ISession session = OnlineUserManager.getSessionByUid(user.getId());
if (null != session) if (null != session) {
sendLuckWheelPool(user, session); sendLuckWheelPool(user, session);
}
} }
public void checkNeedOpenStore(User user,int storeId,long startTime,long endTime) throws Exception { public void checkNeedOpenStore(User user,int storeId,long startTime,long endTime) throws Exception {
@ -347,7 +350,7 @@ public class ActivityLogic implements IEventHandler{
*/ */
public Set<Integer> checkActivityOfUser(User user, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception { public Set<Integer> checkActivityOfUser(User user, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception {
long now = TimeUtils.now(); long now = TimeUtils.now();
if(user==null){ if(user == null){
return new HashSet<>(1); return new HashSet<>(1);
} }
ActivityManager activityManager = user.getActivityManager(); ActivityManager activityManager = user.getActivityManager();
@ -461,6 +464,7 @@ public class ActivityLogic implements IEventHandler{
goRewardActivity(user, activityId, builder, isRemove); goRewardActivity(user, activityId, builder, isRemove);
} }
} }
LOGGER.info("校验活动耗时,uid{},耗时:{}",user.getId(), TimeUtils.now() - now);
return openNewActivityIds; return openNewActivityIds;
} }

View File

@ -118,7 +118,7 @@ public enum ActivityTypeEnum {
FABAO_BOOK_REWARD(ActivityType.FABAO_BOOK_REWARD,FabaoBookRewardActivity::new),//法宝图鉴宝箱 FABAO_BOOK_REWARD(ActivityType.FABAO_BOOK_REWARD,FabaoBookRewardActivity::new),//法宝图鉴宝箱
DRAW_FABAO_LV_CHEST(ActivityType.DRAW_FABAO_LV_CHEST,DrawLvChestActivity::new),//抽卡等级宝箱 DRAW_FABAO_LV_CHEST(ActivityType.DRAW_FABAO_LV_CHEST,DrawLvChestActivity::new),//抽卡等级宝箱
TIAN_JIANG_GIFT(ActivityType.TIAN_JIANG_GIFT,DefaultEmptyActivity::new),//天降礼包 TIAN_JIANG_GIFT(ActivityType.TIAN_JIANG_GIFT,DefaultEmptyActivity::new),//天降礼包
DA_NAO_TIAN_GONG(ActivityType.DA_NAO_TIAN_GONG, ExpeditionActivity::new),//大闹天宫 // DA_NAO_TIAN_GONG(ActivityType.DA_NAO_TIAN_GONG, ExpeditionActivity::new),//大闹天宫
LINGLONG_BAOJING_TASK(ActivityType.LINGLONG_BAOJING_TASK, DefaultEmptyActivity::new),//玲珑宝镜任务 LINGLONG_BAOJING_TASK(ActivityType.LINGLONG_BAOJING_TASK, DefaultEmptyActivity::new),//玲珑宝镜任务
NOVICE_GEM_CHEST(ActivityType.NOVICE_GEM_CHEST, GemChestActivity::new),//初级命石宝箱 NOVICE_GEM_CHEST(ActivityType.NOVICE_GEM_CHEST, GemChestActivity::new),//初级命石宝箱
ADVANCED_GEM_CHEST(ActivityType.ADVANCED_GEM_CHEST, GemChestActivity::new),//高级命石宝箱 ADVANCED_GEM_CHEST(ActivityType.ADVANCED_GEM_CHEST, GemChestActivity::new),//高级命石宝箱

View File

@ -106,13 +106,16 @@ public class UserManager {
} }
public static User userLogin(int uid,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception { public static User userLogin(int uid,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception {
long now = TimeUtils.now();
User user; User user;
if (!UserManager.isUserExist(uid)){ if (!UserManager.isUserExist(uid)){
user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class); user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class);
LOGGER.info("玩家登陆耗时2{}",TimeUtils.now()-now);
now = TimeUtils.now();
if (user == null) { if (user == null) {
user = registerUser(uid,openId,channel,pid,gid,platform,ip,channle_id,bundle_id,ccId,pack_Id); user = registerUser(uid,openId,channel,pid,gid,platform,ip,channle_id,bundle_id,ccId,pack_Id);
LOGGER.info("玩家登陆耗时3{}",TimeUtils.now()-now);
} }
UserManager.addUser(user);
}else{ }else{
user = getUser(uid); user = getUser(uid);
user.getPlayerInfoManager().setGid(gid); user.getPlayerInfoManager().setGid(gid);
@ -124,17 +127,22 @@ public class UserManager {
private static User registerUser(int uid,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception { private static User registerUser(int uid,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception {
long now = TimeUtils.now();
User user = new User(uid); User user = new User(uid);
UserManager.addUser(user); UserManager.addUser(user);
now = TimeUtils.now();
initPlayer(user,openId,channel,pid,gid,platform,ip,channle_id,bundle_id,ccId,pack_Id); initPlayer(user,openId,channel,pid,gid,platform,ip,channle_id,bundle_id,ccId,pack_Id);
LOGGER.info("注册玩家耗时2{}", TimeUtils.now() - now);
now = TimeUtils.now();
MongoUtil.getInstence().getMyMongoTemplate().save(user.getId(),user); MongoUtil.getInstence().getMyMongoTemplate().save(user.getId(),user);
LOGGER.info("注册玩家耗时3{}", TimeUtils.now() - now);
return user; return user;
} }
private static void initPlayer(User user,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception { private static void initPlayer(User user,String openId,String channel,int pid,int gid,String platform,String ip,String channle_id,String bundle_id,String ccId,String pack_Id) throws Exception {
long now = TimeUtils.now();
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
PlayerManager playerManager = user.getPlayerInfoManager(); PlayerManager playerManager = user.getPlayerInfoManager();
long now = TimeUtils.now();
playerManager.setNickName(Integer.toString(user.getId())); playerManager.setNickName(Integer.toString(user.getId()));
playerManager.setNameColor("F6E1B6"); playerManager.setNameColor("F6E1B6");
playerManager.setOpenId(openId); playerManager.setOpenId(openId);
@ -185,19 +193,29 @@ public class UserManager {
user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER); user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER);
user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0); user.getUserMissionManager().onGameEvent(user, GameEvent.VIP_LEVLUP, MissionType.VIP_LEVEL,0);
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1));
now = TimeUtils.now();
ActivityLogic.getInstance().newPlayerOpenActivityMission(user); ActivityLogic.getInstance().newPlayerOpenActivityMission(user);
LOGGER.info("初始化玩家耗时11{}", TimeUtils.now() - now);
now = TimeUtils.now();
Poster.getPoster().dispatchEvent(new EveryDayDiscountUnlockEvent(user.getId())); Poster.getPoster().dispatchEvent(new EveryDayDiscountUnlockEvent(user.getId()));
LOGGER.info("初始化玩家耗时12{}", TimeUtils.now() - now);
now = TimeUtils.now();
ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD);
LOGGER.info("初始化玩家耗时13{}", TimeUtils.now() - now);
HeroManager heroManager = user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
Map<String, Hero> heroMap = heroManager.getHeroMap(); Map<String, Hero> heroMap = heroManager.getHeroMap();
TeamPosManager teamPosManager = user.getTeamPosManager(); TeamPosManager teamPosManager = user.getTeamPosManager();
List<Hero> teamHeros = new ArrayList<>(1); List<Hero> teamHeros = new ArrayList<>(1);
teamHeros.add(heroMap.values().iterator().next()); teamHeros.add(heroMap.values().iterator().next());
teamPosManager.addTeamOfInitPlayer(teamHeros); teamPosManager.addTeamOfInitPlayer(teamHeros);
now = TimeUtils.now();
long force = HeroLogic.getInstance().calTeamTotalForce(user, 1); long force = HeroLogic.getInstance().calTeamTotalForce(user, 1);
LOGGER.info("初始化玩家耗时15{}", TimeUtils.now() - now);
playerManager.setMaxForce(force); playerManager.setMaxForce(force);
user.getExpeditionManager().setExpeditionLeve(1); user.getExpeditionManager().setExpeditionLeve(1);
now = TimeUtils.now();
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色 CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);//初始化角色
LOGGER.info("初始化玩家耗时16{}", TimeUtils.now() - now);
ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件 ReportUtil.onReportEvent(user, ReportEventEnum.CREATE_ROLE.getType());//先发送注册事件
} }

View File

@ -8,10 +8,14 @@ import com.ljsd.jieling.jbean.gm.GmActivityManager;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import org.springframework.data.annotation.Transient; import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.CompoundIndex; import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
@Document @Document
@CompoundIndex(def = "{'playerManager.level' : 1, 'playerManager.loginTime': 1}", name = "level_loginTime_idx") @CompoundIndexes({
@CompoundIndex(name = "unique_id", def = "{'_id': 1}"),
@CompoundIndex(name = "level_loginTime_idx", def = "{'playerManager.level' : 1, 'playerManager.loginTime': 1}")
})
public class User { public class User {
public static final String _COLLECTION_NAME = "user"; public static final String _COLLECTION_NAME = "user";

View File

@ -62,9 +62,6 @@ public class RankLogic {
LOGGER.info("获取排行榜信息type={},activityId={}",type,activityId); LOGGER.info("获取排行榜信息type={},activityId={}",type,activityId);
String rkey = activityId==0 ? "" : String.valueOf(activityId); String rkey = activityId==0 ? "" : String.valueOf(activityId);
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
if (crossGroup < 0){
LOGGER.error("服务器验证未跨服跨服id{}",crossGroup);
}
PlayerInfoProto.RankResponse rankResponse; PlayerInfoProto.RankResponse rankResponse;
AbstractRank rank = RankContext.getRankEnum(type); AbstractRank rank = RankContext.getRankEnum(type);
if(RankContext.isCrossRank(type) && isCross == 1 && crossGroup > 0){//跨服 if(RankContext.isCrossRank(type) && isCross == 1 && crossGroup > 0){//跨服