/// <summary> /// 创建数据库 /// </summary> /// <param name="databaseName">数据库文件路径</param> public static void CreateDataBase() { MyLogUtil.ToLogFotTest("建立sqllite数据库时的文件路径:" + databaseName); if (!File.Exists(databaseName)) { SQLiteConnection.CreateFile(databaseName); } }
/// <summary> /// 处理群成员数量减少事件 /// </summary> /// <param name="subType">事件类型。1为群员离开;2为群员被踢为;3为自己(即登录号)被踢</param> /// <param name="sendTime">事件发生时间的时间戳</param> /// <param name="fromGroup">事件来源群号</param> /// <param name="fromQq">事件来源QQ</param> /// <param name="target">被操作的QQ</param> /// <returns></returns> public override int ProcessGroupMemberDecrease(int subType, int sendTime, long fromGroup, long fromQq, long target) { MyLogUtil.ToLogFotTest("处理群员减少" + fromGroup + "_" + fromQq + "_" + target); if (CacheData.IsAutoAddGroupMemberJifen && CacheData.IsInitComplete && fromGroup == CacheData.CurrentSelectedGroupId) { try { lock (Obj) { MyLogUtil.ToLogFotTest("处理群员减少1"); //先查询是否已经有他的数据了 GroupMemberInfoWithBocai g = CacheData.SearchMemberInfo.GetValue(CacheData.GroupMemberInfoDic, target); if (g != null)//移除该qq会员在列表中的显示 { MyLogUtil.ToLogFotTest("处理群员减少2,选中的用户的索引:" + g.ArrIndex + "_昵称" + CacheData.GroupMemberInfoList[g.ArrIndex].GroupMemberBaseInfo.NickName + "_target:" + target); List <GroupMemberInfoWithBocai> list = new List <GroupMemberInfoWithBocai>(); for (int i = 0; i < CacheData.GroupMemberInfoList.Count; i++) { GroupMemberInfoWithBocai groupMember = CacheData.GroupMemberInfoList[i]; if (groupMember.GroupMemberBaseInfo.Number != target) { groupMember.ArrIndex = list.Count; list.Add(groupMember); } } CacheData.GroupMemberInfoList = list; CacheData.SearchMemberInfo.Remove(CacheData.GroupMemberInfoDic, target); CacheData.MainFrom.RefreshGroupMemberList(); /* * CacheData.GroupMemberInfoList[g.ArrIndex] = null;//由于每个成员对象中存了在当前列表中的索引(以免每次查找都要遍历列表),为了避免重建每个对象的索引,直接置为空 * CacheData.SearchMemberInfo.Remove(CacheData.GroupMemberInfoDic, target); * CacheData.MainFrom.RefreshGroupMemberList(); */ } else { MyLogUtil.ToLogFotTest("处理群员减少2"); } } } catch (Exception ex) { MyLogUtil.ToLogFotTest("当群员退群后,自动删减用户时出现异常,原因:" + ex); //CacheData.CoolQApi.AddLog(40, CoolQLogLevel.Debug, "当群员退群后,自动删减用户时出现异常,原因" + ex); } } return(base.ProcessGroupMemberDecrease(subType, sendTime, fromGroup, fromQq, target)); }
/// <summary> /// 进入主界面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { try { if (radioButton1.Checked) { CacheData.IsAutoAddGroupMemberJifen = true; } if (comboBox1.Text == "" || comboBox2.Text == "") { MessageBox.Show("请选择qq群和数据库!"); return; } //缓存当前选中的QQ群 CacheData.SelectedGroupIndex = comboBox2.SelectedIndex; //webChat.grox[comboBox2.SelectedIndex].seq = comboBox1.Text; CacheData.Seq = comboBox1.Text; //加载当前选中群的群员信息 label1.Text = "正在加载选中群的群员信息"; MyLogUtil.ToLogFotTest("选中的索引值:" + CacheData.SelectedGroupIndex); GroupInfo currentSelectedGroup = CacheData.CurrentGroupList[CacheData.SelectedGroupIndex]; CacheData.CurrentSelectedGroupId = currentSelectedGroup.GroupId; //MyLogUtil.ToLogFotTest("#####进入主界面前,选中的群:"+currentSelectedGroup.GroupName+"____"+currentSelectedGroup.GroupId + "___" + comboBox2.SelectedIndex); CoolQApiExtend.GetGroupMemberListAndCache(CacheData.CoolQApi, currentSelectedGroup.GroupId); Form1 qr = new Form1(currentSelectedGroup, this.Text); CacheData.MainFrom = qr; qr.Show(); Hide(); }catch (Exception ex) { CacheData.CoolQApi.AddLog(40, Newbe.CQP.Framework.CoolQLogLevel.Debug, "qrCode类中button3_Click方法出错,异常信息:" + ex); MyLogUtil.ErrToLog("进入主界面时出现错误,原因:" + ex); MessageBox.Show("进入主界面出现错误"); } }
/// <summary> /// 处理群成员添加事件 /// </summary> /// <param name="subType">事件类型。1为管理员已同意;2为管理员邀请</param> /// <param name="sendTime">事件发生时间的时间戳</param> /// <param name="fromGroup">事件来源群号</param> /// <param name="fromQq">事件来源QQ</param> /// <param name="target">被操作的QQ</param> /// <returns></returns> public override int ProcessGroupMemberIncrease(int subType, int sendTime, long fromGroup, long fromQq, long target) { //MyLogUtil.ToLogFotTest("群员增加事件:" + fromGroup + "_fromQQ;" + target + "__"+ CacheData.IsAutoAddGroupMemberJifen+"__"+ CacheData.IsInitComplete); if (CacheData.IsAutoAddGroupMemberJifen && CacheData.IsInitComplete && fromGroup == CacheData.CurrentSelectedGroupId) { lock (Obj) { //MyLogUtil.ToLogFotTest("1111111:"); try { //先查询是否已经有他的数据了 GroupMemberInfoWithBocai g = CacheData.SearchMemberInfo.GetValue(CacheData.GroupMemberInfoDic, target); if (g == null)//说明第一次建立此用户信息 { //win7下,CoolApiExtensions.GetGroupMemberInfoV2也会崩 /* * ModelWithSourceString<GroupMemberInfo> model = CoolApiExtensions.GetGroupMemberInfoV2(CacheData.CoolQApi, fromGroup, target, true); * //MyLogUtil.ToLogFotTest("获取的群会员信息1:" + model); * //MyLogUtil.ToLogFotTest("获取的群会员信息12:" + model.Model.NickName); * if (model != null) * { * GroupMemberInfo groupMemberInfo = model.Model; * //MyLogUtil.ToLogFotTest("获取的群会员信息:"+ groupMemberInfo.NickName); * GroupMemberInfoWithBocai temp = new GroupMemberInfoWithBocai(groupMemberInfo, CacheData.GroupMemberInfoList.Count); * CacheData.GroupMemberInfoList.Add(temp); * CacheData.GroupMemberInfoDic.Add(target, temp); * * //将数据展示在软件列表中,并添加数据到数据库 * * CacheData.MainFrom.dgv2(temp); * } * */ //方案二 GroupMemberInfo groupMemberInfo = new GroupMemberInfo(); groupMemberInfo.NickName = "" + target; groupMemberInfo.Number = target; groupMemberInfo.GroupId = fromGroup; GroupMemberInfoWithBocai temp = new GroupMemberInfoWithBocai(groupMemberInfo, CacheData.GroupMemberInfoList.Count); temp.IsAutoAddGroupMember = true; CacheData.GroupMemberInfoList.Add(temp); CacheData.GroupMemberInfoDic.Add(target, temp); //将数据展示在软件列表中,并添加数据到数据库 CacheData.MainFrom.dgv2(temp); } else { MyLogUtil.ToLogFotTest("5555555555,此qq信息已经缓存:" + target); } }catch (Exception ex) { MyLogUtil.ToLogFotTest("当群员入群后,自动添加用户时出现异常,原因:" + ex); //CacheData.CoolQApi.AddLog(40,CoolQLogLevel.Debug, "当群员入群后,自动添加用户时出现异常,原因:"+ex); } } //MyLogUtil.ToLogFotTest("3333333:"); } return(base.ProcessGroupMemberIncrease(subType, sendTime, fromGroup, fromQq, target)); }