Browse Source

还原登录

johnclot69 3 months ago
parent
commit
fcfa16c261

+ 42 - 34
incubator-game/src/main/java/com/incubator/game/handler/login/LoginGameHandler.java

@@ -18,11 +18,9 @@ import com.incubator.game.player.Player;
 import com.incubator.game.util.ProtoUtil;
 import com.incubator.game.util.PlayerUtil;
 import com.incubator.message.proto.CommonProto;
-import org.apache.commons.lang3.StringUtils;
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.UUID;
 
 /**
  * 登录游戏服
@@ -38,55 +36,65 @@ public class LoginGameHandler extends NetHandler {
 
 		// 判断参数
 		String token = request.getDataValue("token", String.class, "");
-//		if (token == null) {
-//			//如果token为空则重新登录
-//			Log.info("登录token为空");
-//			response.setCode(CommonProto.Code.SYSTEM_ERR_VALUE);
-//			return;
-//		}
+//		String userId = request.getDataValue("userId", String.class, "");
+		if (token==null) {
+			//如果token为空则重新登录
+			Log.info("登录token为空");
+			response.setCode(CommonProto.Code.SYSTEM_ERR_VALUE);
+			return;
+		}
+		final JWT jwt = JWTUtil.parseToken(token);
+		JSONObject payloads = jwt.getPayloads();
+		System.out.println("payloads.get(\"userId\") = " + payloads.get("userId"));
+		String userId = (String) payloads.get("userId");
+		// 根据token获取用户信息
+		String userInfo = RedisUtil.get(RedisKeyConstant.USER_BASE + userId);
+		JSONObject jsonObject = JSONUtil.parseObj(userInfo);
+		Object lobbyUserObj = jsonObject.get("lobbyUser");
+		ZjUserLobbyPo lobbyUser = JSONUtil.toBean((JSONObject) lobbyUserObj, ZjUserLobbyPo.class);
+		System.out.println("用户信息为 ============== " + userInfo);
+		System.out.println("大厅信息为 ============== " + lobbyUserObj);
 
-		String username = request.getDataValue("username", String.class, "");
-		String userId = request.getDataValue("userId", String.class, "");
-		userId = StringUtils.isNotBlank(userId) ? userId : "";;
+//		String username = request.getDataValue("username", String.class, "");
 
 		// 创建player
-		String player_id = UUID.randomUUID().toString();
+//		String player_id = UUID.randomUUID().toString();
 		PlayerInfoPO playerInfoPO = new PlayerInfoPO();
-		playerInfoPO.playerId = player_id;
-		playerInfoPO.name = username;
-		playerInfoPO.avatarUrl = "";
-		playerInfoPO.sex = 1;
+		playerInfoPO.playerId = lobbyUser.getUserId();
+		playerInfoPO.name = lobbyUser.getNickName();
+		playerInfoPO.avatarUrl = lobbyUser.getAvatarUrl();
+		playerInfoPO.sex = lobbyUser.getSex().equals("密")?0:1;
 		playerInfoPO.exp = 3000;
 		playerInfoPO.vipLevel = 1;
-		playerInfoPO.masterScore = 0;
-		playerInfoPO.masterScoreLevel = 0;
-		playerInfoPO.gold = 1000;
-		playerInfoPO.diamond = 2000;
+		playerInfoPO.masterScore = lobbyUser.getMasterScore();
+		playerInfoPO.masterScoreLevel = lobbyUser.getHonorLevel();
+		playerInfoPO.gold = lobbyUser.getGoldCoin();
+		playerInfoPO.diamond = lobbyUser.getDiamond();
 		playerInfoPO.accumulatedPoints = 10000L;
 		playerInfoPO.startTimeVip = "";
 		playerInfoPO.endTimeVip = "";
 		playerInfoPO.gps = "";
 		playerInfoPO.gpsAddr = "";
-		playerInfoPO.foca = 0;
-		playerInfoPO.ranking = 2;
+		playerInfoPO.foca = lobbyUser.getFoca();
+		playerInfoPO.ranking = lobbyUser.getRanking();
 		playerInfoPO.figureId = 1;
-		playerInfoPO.realName = "李晓强";
+		playerInfoPO.realName = lobbyUser.getName();
 		playerInfoPO.phoneNum = "13800000001";
-		playerInfoPO.idCard = "42010000000000000X";
-		playerInfoPO.friendMasterNum = 0;
-		playerInfoPO.friendMasterRate = 0;
-		playerInfoPO.tradPoints = 0;
-		playerInfoPO.tradPointsRate = 0;
-		playerInfoPO.tradMatchNum = 0;
-		playerInfoPO.tradMatchRate = 0;
-		playerInfoPO.noReshNum = 0;
-		playerInfoPO.noReshRate = 0;
+		playerInfoPO.idCard = lobbyUser.getCertNo();
+		playerInfoPO.friendMasterNum = lobbyUser.getFriendNum();
+		playerInfoPO.friendMasterRate = lobbyUser.getFriendChance();
+		playerInfoPO.tradPoints = lobbyUser.getTraditionMark();
+		playerInfoPO.tradPointsRate = lobbyUser.getTraditionChance();
+		playerInfoPO.tradMatchNum = lobbyUser.getNormalMark();
+		playerInfoPO.tradMatchRate = lobbyUser.getNormalChance();
+		playerInfoPO.noReshNum = lobbyUser.getNoShufflingNum();
+		playerInfoPO.noReshRate = lobbyUser.getNoShufflingChance();
 		playerInfoPO.matchPoints = 0;
 //		playerInfoPO.token = token;
 		Player player = PlayerUtil.createPlayer(playerInfoPO);
 
 		// 绑定session
-		player.bind(session, userId, player.getId(), token);
+		player.bind(session, lobbyUser.getUserId(), player.getId(), token);
 		Log.info("玩家进入游戏 playerId={}", player.getId());
 
 		// 登录数据
@@ -100,7 +108,7 @@ public class LoginGameHandler extends NetHandler {
 		// 玩家绑定的官方比赛id
 		map.put("contestId", player.data.contestId);
 		// 官方比赛信息列表
-		map.put("contestInfo", ProtoUtil.contestListByRunToMessage());
+		map.put("contestInfo", ProtoUtil.contestListToMessage());
 
 		//奖励弹窗
 		String eventStr = RedisUtil.get(RedisKeyConstant.ZJ_USER_EVENT_KEY + userId);