Exemplo n.º 1
0
 /// <summary>
 /// 插入数据 : 在数据库中,指定的表中插入数据,
 ///反馈 自增id : 反馈插入后的自增id
 /// </summary>
 /// <param name="_msgCmd">操作语句</param>
 /// <param name="_tableName">要插入数据的表名</param>
 /// <param name="_sendback">反馈接口</param>
 public static void fns_insertMsg(string _msgCmd, string _tableName, I_sendBackClient _sendback)
 {
     if (_sendback == null)
     {
         return;
     }
     new Task(() => {
         string t_cmd            = _msgCmd;
         string t_tablename      = _tableName;
         I_sendBackClient t_back = _sendback;
         //向表中插入数据
         Task <uint> t_insert = new Task <uint>(() =>
         {
             return(S_sql.M_instance.fn_insert(_msgCmd, _tableName));
         });
         t_insert.Start();
         uint t_id = t_insert.Result;
         //组装反馈信息
         N_msg_reordID t_backid = new N_msg_reordID(t_id, _tableName);
         string t_jsondata      = JsonMapper.ToJson(t_backid);
         //反馈给客服端
         if (t_back != null)
         {
             t_back.fn_sendback(t_jsondata);
         }
         else
         {
             Console.WriteLine("有数据丢失");
         }
     }).Start();
 }
Exemplo n.º 2
0
    //private static readonly object m_lock02 = new object();
    /// <summary>
    /// 用户退出请求
    /// </summary>
    /// <param name="_obj"></param>
    /// <param name="_sendback"></param>
    public static void fns_clientExit(string _obj, I_sendBackClient _sendback)
    {
        //lock (m_lock02)
        //{
        I_sendBackClient t_send    = _sendback;
        N_msg_userExit   t_userout = JsonMapper.ToObject <N_msg_userExit>(_obj);

        if (t_userout != null)
        {
            new Task(() =>
            {
                //做些退出处理
                I_RemoveClient t_removeClient = S_ClientSocket.M_instance;
                if (t_removeClient != null)
                {
                    t_removeClient.fni_remove(t_userout.m_username);
                    I_checkIsLoaded t_checkIsLoaded = S_sql.M_instance;
                    t_checkIsLoaded.fni_remove(t_userout.m_username);
                }
            }).Start();
        }


        //}
    }
Exemplo n.º 3
0
    /// <summary>
    /// 学员登陆成功后,写入登陆记录
    /// </summary>
    /// <param name="_obj">收到的json数据</param>
    /// <param name="_sendback">反馈接口</param>
    public static void fns_loadStart(string _obj, I_sendBackClient _sendback)
    {
        //lock (m_lock02)
        //{

        new Task(() =>
        {
            I_sendBackClient t_send     = _sendback;
            N_msg_loadStart t_userstart = JsonMapper.ToObject <N_msg_loadStart>(_obj);
            if (t_userstart != null)
            {
                //组装写入信息语句,
                Task <string> t_makeCmd = new Task <string>(() =>
                {
                    return(S_makeCmd.fns_insert_load_record("xian_user_load_record_1", "studentID", t_userstart.m_studentID));
                });
                t_makeCmd.Start();
                //写入登陆记录
                string t_cmd = t_makeCmd.Result;
                new Task(() =>
                {
                    S_useMysql.fns_insertMsg(t_cmd, "xian_user_load_record_1", t_send);
                }).Start();
            }
        }).Start();
    }
Exemplo n.º 4
0
    /// <summary>
    /// 创建数据库连接
    /// </summary>
    //private static A_connectTodata m_dataBase = new N_connectTodata();
    //private static readonly object m_locker01 = new object();
    /// <summary>
    /// 查询表,用户名,和密码,返回登陆是否成功
    /// </summary>
    /// <param name="_sendback"></param>
    public static void fns_canLoad(string _name, string _pass, string _macID, I_sendBackClient _sendback)
    {
        //lock (m_locker01)
        //{
        string           t_name = _name;
        string           t_pass = _pass;
        I_sendBackClient t_send = _sendback;
        //查询数据库
        string        t_cmd;
        Task <string> t_getCmd = new Task <string>(() => {
            return(S_makeCmd.fns_readCmd2("xian_user_1", "studentID", t_name, "password", _pass));
        });

        t_getCmd.Start();
        t_cmd = t_getCmd.Result;
        //Console.WriteLine("cmd:" + t_cmd);
        //反馈结果
        N_msg_canLoad t_canload = null;

        //检查数据库中有没有账号信息
        if (S_sql.M_instance.fn_read(t_cmd))
        {    //这里还差限制一个账号只能登陆一次
            I_checkIsLoaded t_checkIsLoaded = S_sql.M_instance;
            if (!t_checkIsLoaded.fni_check(t_name))
            {     //没有发现登陆信息
                if (t_checkIsLoaded.fni_addIn(_macID, t_name))
                { //加入登陆队列成功
                    t_canload = new N_msg_canLoad(true);
                }
                else
                {
                    t_canload = new N_msg_canLoad(false);
                }
            }
            else      //登陆失败
            {
                t_canload = new N_msg_canLoad(false);
            }
            //t_canload = new N_msg_canLoad(true);
        }
        else
        {
            t_canload = new N_msg_canLoad(false);
        }

        if (t_canload != null)
        {
            if (t_send != null)
            {
                t_send.fn_sendback(JsonMapper.ToJson(t_canload));
            }
        }


        //}
    }
Exemplo n.º 5
0
 /// <summary>
 /// 学习,练习,考试场景开始记录
 /// </summary>
 /// <param name="_obj">json 数据</param>
 /// <param name="_sendback">反馈接口</param>
 /// <param name="_tableName">要写入数据的表名</param>
 public static void fns_SPT_start(string _obj, I_sendBackClient _sendback, string _tableName)
 {
     if (_obj == "" || _sendback == null || _tableName == "")
     {
         return;
     }
     new Task(() =>
     {
         string t_jsondata                 = _obj;
         string t_table                    = _tableName;
         I_sendBackClient t_send           = _sendback;
         N_msg_SPT_start t_userstudy_start = JsonMapper.ToObject <N_msg_SPT_start>(t_jsondata);
         if (t_userstudy_start != null)
         {
             //组装写入信息语句,
             Task <string> t_makeCmd = new Task <string>(() =>
             {
                 if (_tableName == "study_load_1" || _tableName == "practise_load_1")
                 {
                     return(S_makeCmd.fns_study_insert <string, UInt16, Byte>(t_table,
                                                                              "studentID", t_userstudy_start.m_studentID,
                                                                              "chapterID", t_userstudy_start.m_chapterID,
                                                                              "lastStepID", t_userstudy_start.m_lastStepID,
                                                                              "allStep", t_userstudy_start.m_allStep,
                                                                              "progress", t_userstudy_start.m_progress
                                                                              ));
                 }
                 else if (_tableName == "test_load_1")
                 {
                     return(S_makeCmd.fns_study_insert <string, UInt16, Byte>(t_table,
                                                                              "studentID", t_userstudy_start.m_studentID,
                                                                              "chapterID", t_userstudy_start.m_chapterID,
                                                                              "lastStepID", t_userstudy_start.m_lastStepID,
                                                                              "allStep", t_userstudy_start.m_allStep,
                                                                              "score", t_userstudy_start.m_score
                                                                              ));
                 }
                 else
                 {
                     return("");
                 }
             });
             t_makeCmd.Start();
             //写入登陆记录
             string t_cmd = t_makeCmd.Result;
             new Task(() =>
             {
                 S_useMysql.fns_insertMsg(t_cmd, t_table, t_send);
             }).Start();
         }
     }).Start();
 }
Exemplo n.º 6
0
 public override void fn_init(I_sendBackClient _sendClient)
 {
     m_stop = false;
     if (_sendClient != null)
     {
         mi_sendBackClient = _sendClient;
     }
     else
     {
         mi_sendBackClient = null;
         m_stop            = true;
     }
 }
Exemplo n.º 7
0
    /// <summary>
    /// 学员退出登录
    /// </summary>
    /// <param name="_obj"></param>
    /// <param name="_sendback"></param>
    public static void fns_studentExit(string _obj, I_sendBackClient _sendback)
    {
        I_sendBackClient  t_send    = _sendback;
        N_msg_studentExit t_userout = JsonMapper.ToObject <N_msg_studentExit>(_obj);

        if (t_userout != null)
        {
            new Task(() =>
            {
                //做些学员退出处理
                //I_RemoveClient t_removeClient = S_ClientSocket.M_instance;
                //if (t_removeClient != null)
                //{
                //    t_removeClient.fni_remove(t_userout.m_username);
                //    I_checkIsLoaded t_checkIsLoaded = S_sql.M_instance;
                //    t_checkIsLoaded.fni_remove(t_userout.m_username);
                //}
                I_checkIsLoaded t_checkIsLoaded = S_sql.M_instance;
                t_checkIsLoaded.fni_remove(t_userout.m_username);
            }).Start();
        }
    }
Exemplo n.º 8
0
 /// <summary>
 /// 学员退出登录,更新学员的登陆记录
 /// </summary>
 /// <param name="_obj">退出</param>
 /// <param name="_sendback"></param>
 public static void fns_loadEnd(string _obj, I_sendBackClient _sendback)
 {
     new Task(() =>
     {
         //I_sendBackClient t_send = _sendback;
         N_msg_loadEnd t_userend = JsonMapper.ToObject <N_msg_loadEnd>(_obj);
         if (t_userend != null)
         {
             //组装写入信息语句,
             Task <string> t_makeCmd = new Task <string>(() =>
             {
                 return(S_makeCmd.fns_update_load_record("xian_user_load_record_1", "id", t_userend.m_id));
             });
             t_makeCmd.Start();
             //写入登陆记录
             string t_cmd = t_makeCmd.Result;
             new Task(() =>
             {
                 S_useMysql.fns_updateMsg(t_cmd);
             }).Start();
         }
     }).Start();
 }
Exemplo n.º 9
0
    //private static readonly object m_lock01 = new object();
    /// <summary>
    /// 用户登录验证
    /// </summary>
    /// <param name="_obj">json数据</param>
    /// <param name="_sendback"></param>
    public static void fns_load(string _obj, I_sendBackClient _sendback)
    {
        //Console.WriteLine("user loading...");
        //lock (m_lock01)
        //{
        I_sendBackClient t_send = _sendback;
        N_msg_userload   t_user = JsonMapper.ToObject <N_msg_userload>(_obj);

        if (t_user == null)
        {
            N_msg_canLoad t_canload = new N_msg_canLoad(false);
            t_send.fn_sendback(JsonMapper.ToJson(t_canload));
        }
        else
        {  //去数据库查找相应的用户名和密码信息
            new Task(() =>
            {
                S_useMysql.fns_canLoad(t_user.m_username, t_user.m_password, t_user.m_machineID, t_send);
            }).Start();
            Console.WriteLine("user id= " + t_user.m_username);
        }

        //}
    }
Exemplo n.º 10
0
 /// <summary>
 /// 初始化处理消息类
 /// </summary>
 /// <param name="反馈接口"></param>
 public abstract void fn_init(I_sendBackClient _sendClient);