예제 #1
0
        public static void Do(ClientInfo clientInfo, string data)
        {
            S2C_Bag s2c = new S2C_Bag();

            s2c.Tag  = CSParam.NetTag.Bag.ToString();
            s2c.Code = (int)CSParam.CodeType.Ok;
            try
            {
                C2S_Bag c2s    = JsonConvert.DeserializeObject <C2S_Bag>(data);
                int     UserId = c2s.UserId;

                List <KeyData> keylist = new List <KeyData>()
                {
                    new KeyData("id", UserId)
                };

                MySqlUtil.getInstance().addCommand(CmdType.query, "bag", keylist, null, (CmdReturnData cmdReturnData) =>
                {
                    if (cmdReturnData.result == CmdResult.OK)
                    {
                        s2c.Code = (int)CSParam.CodeType.Ok;

                        List <Object> list        = cmdReturnData.listData;
                        List <Table_Bag> dataList = new List <Table_Bag>();
                        if (list != null && list.Count > 0)
                        {
                            dataList = Table_Bag.init(list);
                        }
                        s2c.data = JsonConvert.SerializeObject(dataList);
                        Socket_S.getInstance().Send(clientInfo, s2c);
                    }
                    else
                    {
                        s2c.Code = (int)CSParam.CodeType.ServerError;
                        Socket_S.getInstance().Send(clientInfo, s2c);
                        return;
                    }
                });
            }
            catch (Exception ex)
            {
                s2c.Code = (int)CSParam.CodeType.ParamError;
                Socket_S.getInstance().Send(clientInfo, s2c);
            }
        }
예제 #2
0
        public static void Do(ClientInfo clientInfo, string data)
        {
            S2C_Register s2c = new S2C_Register();

            s2c.Tag  = CSParam.NetTag.Register.ToString();
            s2c.Code = (int)CSParam.CodeType.Ok;
            try
            {
                C2S_Register c2s      = JsonConvert.DeserializeObject <C2S_Register>(data);
                string       account  = c2s.Account;
                string       password = c2s.Password;

                // 先查询这个账号是否存在
                List <KeyData> keylist = new List <KeyData>()
                {
                    new KeyData("account", account)
                };
                MySqlUtil.getInstance().addCommand(CmdType.query, "user", keylist, null, (CmdReturnData cmdReturnData) =>
                {
                    if (cmdReturnData.result == CmdResult.OK)
                    {
                        List <Object> list = cmdReturnData.listData;

                        // 已存在,注册失败
                        if (list != null && list.Count > 0)
                        {
                            s2c.Code = (int)CSParam.CodeType.RegisterFail_Exist;
                            Socket_S.getInstance().Send(clientInfo, s2c);
                        }
                        // 不存在,先插入数据
                        else
                        {
                            List <KeyData> keylist2 = new List <KeyData>()
                            {
                                new KeyData("account", account),
                                new KeyData("password", password)
                            };
                            MySqlUtil.getInstance().addCommand(CmdType.insert, "user", null, keylist2, (CmdReturnData cmdReturnData2) =>
                            {
                                if (cmdReturnData2.result == CmdResult.OK)
                                {
                                    // 插完数据后再查询该账号,返回userId
                                    MySqlUtil.getInstance().addCommand(CmdType.query, "user", keylist, null, (CmdReturnData cmdReturnData3) =>
                                    {
                                        if (cmdReturnData3.result == CmdResult.OK)
                                        {
                                            List <Object> list3 = cmdReturnData3.listData;
                                            if (list3 != null && list3.Count > 0)
                                            {
                                                Table_User table_User = Table_User.init(list3);
                                                s2c.Code   = (int)CSParam.CodeType.Ok;
                                                s2c.UserId = table_User.id;
                                                Socket_S.getInstance().Send(clientInfo, s2c);
                                            }
                                            else
                                            {
                                                CommonUtil.Log("插入新用户数据后查询不到:account=" + account);
                                                s2c.Code = (int)CSParam.CodeType.ServerError;
                                                Socket_S.getInstance().Send(clientInfo, s2c);
                                            }
                                        }
                                        else
                                        {
                                            s2c.Code = (int)CSParam.CodeType.ServerError;
                                            Socket_S.getInstance().Send(clientInfo, s2c);
                                        }
                                    });
                                }
                                // 插入新用户数据失败
                                else
                                {
                                    CommonUtil.Log("插入新用户数据失败:account=" + account);
                                    s2c.Code = (int)CSParam.CodeType.ServerError;
                                    Socket_S.getInstance().Send(clientInfo, s2c);
                                }
                            });
                        }
                    }
                    else
                    {
                        s2c.Code = (int)CSParam.CodeType.ServerError;
                        Socket_S.getInstance().Send(clientInfo, s2c);
                        return;
                    }
                });
            }
            catch (Exception ex)
            {
                s2c.Code = (int)CSParam.CodeType.ParamError;
                Socket_S.getInstance().Send(clientInfo, s2c);
            }
        }