|
@@ -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);
|