/// <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(); }
//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(); } //} }
/// <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(); }
/// <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)); } } //} }
/// <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(); }
public override void fn_init(I_sendBackClient _sendClient) { m_stop = false; if (_sendClient != null) { mi_sendBackClient = _sendClient; } else { mi_sendBackClient = null; m_stop = true; } }
/// <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(); } }
/// <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(); }
//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); } //} }
/// <summary> /// 初始化处理消息类 /// </summary> /// <param name="反馈接口"></param> public abstract void fn_init(I_sendBackClient _sendClient);