Пример #1
0
    /// <summary>
    /// 处理登录请求
    /// </summary>
    public string Login(string data, Client client, Server server)
    {
        //分隔用户名和密码
        string[] loginInfo = data.Split(',');

        string userName = loginInfo[0];
        string password = loginInfo[1];

        //校验用户登录信息
        User user = userDAO.VerifyUser(client.MysqlConnect, userName, password);

        if (user == null)
        {
            //返回执行失败结果
            return(((int)RetrunCode.Fail).ToString());
        }
        else
        {
            //获取对应用户战绩数据
            Result res = resultDAO.GetResultByUserId(client.MysqlConnect, user.Id);
            //该客户端持有该用户数据
            client.SetUserData(user, res);

            if (!server.onlineClinetList.Contains(client))
            {
                server.onlineClinetList.Add(client);
            }
            //需发送的数据进行拼接
            string allData = string.Format("{0},{1},{2},{3}", ((int)RetrunCode.Success).ToString(), user.UserName, res.TotalAmount, res.WinAmount);
            return(allData);
        }
    }
Пример #2
0
        /// <summary>
        /// 处理登陆请求
        /// </summary>
        /// <param name="data"></param>
        /// <param name="client"></param>
        /// <param name="server"></param>
        public string Login(string data, Client client, Server server)
        {
            //根据客户端传入的数据格式,拆分数据
            //string[] datas = data.Split(',');
            //string username = datas[0];
            //string password = datas[1];

            //通过LitJson插件解析Json
            JsonData jsonData = JsonMapper.ToObject(data);
            string   username = jsonData["username"].ToString();
            string   passwrod = jsonData["password"].ToString();
            //通过Dao层对象验证用户信息
            User user = userDao.VerifyUser(client.MySqlConnection, username, passwrod);

            jsonData = new JsonData();
            if (user == null)//验证失败,用户名或密码错误
            {
                jsonData["returnCode"] = ((int)ReturnCode.Fail).ToString();
                return(JsonMapper.ToJson(jsonData));
            }
            else//验证成功,
            {
                //通过用户id获取其战绩信息
                Result result = resultDao.GetResultByUserId(client.MySqlConnection, user.Id);
                jsonData["id"]         = user.Id;
                jsonData["returnCode"] = ((int)ReturnCode.Success).ToString();
                jsonData["username"]   = user.Username;
                jsonData["totalCount"] = result.TotalCount;
                jsonData["winCount"]   = result.WinCount;
                UserData userData = new UserData(user.Id, user.Username, result.TotalCount, result.WinCount);
                //将成功登录的用户信息存入连接对象中
                client.SetUserData(userData);
                return(JsonMapper.ToJson(jsonData));
            }
        }
Пример #3
0
        /// <summary>
        /// 更新数据到客户端,
        /// </summary>
        public void UpdateResultToClient()
        {
            //通过数据获取当前用户最新的战绩信息
            Result   result   = resultDao.GetResultByUserId(this.mysqlConn, userData.Id);
            JsonData jsonData = new JsonData();

            jsonData["totalCount"] = result.TotalCount;
            jsonData["winCount"]   = result.WinCount;
            //将获取到的result对象发送到客户端
            Send(ActionCode.UpdateResult, JsonMapper.ToJson(jsonData));
        }
Пример #4
0
        /// <summary>
        /// 注:  该方法是由反射调用 ControllerManager---->HandleRequest
        /// </summary>
        /// <param name="data"></param>
        /// <param name="client"></param>
        /// <param name="server"></param>
        /// <returns></returns>
        public string Login(string data, Client client, Server server)
        {
            string[] strs = data.Split(',');
            User     user = userDAO.VerifyUser(client.MySqlConnection, strs[0], strs[1]);

            if (user == null)
            {
                return(((int)ReturnCode.Fail).ToString());
            }
            else
            {
                Result result = resultDAO.GetResultByUserId(client.MySqlConnection, user.Id);
                client.SetUserData(user, result);
                return(string.Format("{0},{1},{2},{3}", ((int)ReturnCode.Success).ToString(), user.Username, result.TotalCount, result.WinCount));
            }
        }
Пример #5
0
        public string OnLogin(Client client, string data)
        {
            string[] strs = data.Split(Separator);
            User     user = userDAO.GetUser(client.MySqlConn, strs[0], strs[1]);

            if (user == null)
            {
                return(((int)ReturnCode.Fail).ToString());
            }
            else
            {
                Result result = resultDAO.GetResultByUserId(client.MySqlConn, user.Id);
                userDict.Add(client, user);
                resultDict.Add(client, result);
                return(string.Format(LoginReturnStr, ((int)ReturnCode.Success).ToString(), GetUserResult(client)));
            }
        }
Пример #6
0
        /// <summary>
        /// 登录请求
        /// </summary>
        /// <param name="data"></param>
        /// <param name="client"></param>
        /// <param name="server"></param>
        /// <returns></returns>
        private string Login(string data, Client client, Server server)
        {
            var accountStr = data.Split(':', 2);

            user = userDAO.VeifyUser(client.Conn, accountStr[0], accountStr[1]);

            this.Log($"用户登录请求 账号{accountStr[0]}, 密码{accountStr[1]}");

            if (user == null)
            {
                return(((int)ReturningCode.Fail).ToString());
            }

            result = resultDAO.GetResultByUserId(client.Conn, user.Id);
            client.SetUserData(user, result);

            return($"{(int)ReturningCode.Success}:{user.Name}:{result.TotalCount}:{result.WinCount}");
        }
        //ActionCode.Login对应的处理函数
        public string Login(string data, Client client, Server servert)
        {
            string[] strs     = data.Split(',');//分割客户端传入的用户信息
            string   username = strs[0];
            string   password = strs[1];
            //向数据库的User表发起连接并核查用户名与密码
            User user = userDAO.VerifyUser(client.MySqlConn, username, password);

            if (user == null)
            {
                //用户不存在则登陆失败
                return(((int)ReturnCode.Fail).ToString());
            }
            else
            {
                //向数据库的Result表发起连接并获取战记结果
                Result res = resultDAO.GetResultByUserId(client.MySqlConn, user.Id);
                client.SetUserData(user, res);//在服务器端保存当前客户端信息
                return(string.Format("{0},{1},{2},{3}", ((int)ReturnCode.Success).ToString(), user.UserName, res.TotalCount,
                                     res.WinCount));
            }
        }