package com.metazion.jgd.action; import com.metazion.jgd.AppLogin; import com.metazion.jgd.info.ServerInfo; import com.metazion.jgd.protocal.Message; import com.metazion.jgd.protocal.cl.SelectServerLC; import com.metazion.jgd.protocal.sl.UserCandidateSL; import com.metazion.jgd.util.JgdLogger; import com.metazion.object.Server; import com.metazion.object.User; public class RAUserCandidateLS extends RequestAction { private UserCandidateSL req = new UserCandidateSL(); @Override public void setRequest(Message msg) { req = (UserCandidateSL) msg; } @Override public void execute() { final int serverId = req.serverId; final int userId = req.userId; JgdLogger.getLogger().info("User candidate ls: serverId[{}] userId[{}]", serverId, userId); Server server = AppLogin.getLogicService().getServerManager().getServer(serverId); if (server == null) { JgdLogger.getLogger().error("User candidate ls error: no server data[{}]", serverId); return; } ServerInfo serverInfo = server.getServerInfo(); if (serverInfo == null) { JgdLogger.getLogger().error("User candidate ls error: no server info[{}]", serverId); return; } SelectServerLC rsp = new SelectServerLC(); User user = AppLogin.getLogicService().getUserManager().getUser(userId); if (user == null) { JgdLogger.getLogger().warn("User candidate ls failed: user is null"); return; } AppLogin.getLogicService().getUserManager().removeUserMapping(user); JgdLogger.getLogger().info("User candidate ls successful: server id[{}] user id[{}] status[{}] host[{}] port[{}]", serverId, userId, serverInfo.serverBean.status, serverInfo.host, serverInfo.port); rsp.result = SelectServerLC.SUCCESS; rsp.userId = userId; rsp.token = user.getToken(); rsp.host = serverInfo.host; rsp.port = serverInfo.port; user.send(rsp); } }