Esempio n. 1
0
 public 流水明细(GroupMemberInfoWithBocai gr, string zseq)
 {
     zse = zseq;
     InitializeComponent();
     linshi      = gr;
     label1.Text = "昵称:" + gr.GetNickName();
     label2.Text = "备注:" + gr.RemarkName;
     label3.Text = "总下注:" + gr.zongxiazhu.ToString();
     label4.Text = "总盈亏:" + gr.zongyingkui.ToString();
 }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        /// <summary>
        /// 获取群成员,并缓存
        /// </summary>
        /// <param name="api"></param>
        /// <param name="groupId"></param>
        /// <returns></returns>
        public static List <GroupMemberInfoWithBocai> GetGroupMemberListAndCache(ICoolQApi api, long groupId)
        {
            List <GroupMemberInfoWithBocai>                        list   = new List <GroupMemberInfoWithBocai>();
            Dictionary <long, GroupMemberInfoWithBocai>            keyVal = new Dictionary <long, GroupMemberInfoWithBocai>();
            ModelWithSourceString <IEnumerable <GroupMemberInfo> > result = CoolApiExtensions.GetGroupMemberList(api, groupId);
            IEnumerable <GroupMemberInfo> iterator = result.Model;

            if (iterator != null)
            {
                foreach (GroupMemberInfo memberInfo in iterator)
                {
                    GroupMemberInfoWithBocai groupMemberInfoWithBocai = new GroupMemberInfoWithBocai(memberInfo, list.Count);

                    //增加短名字
                    //===================2018-02===================
                    string shortName = "";// Regex.Replace(g.NickName, @"\[[^\]]*?\]", "");
                    shortName = function.filtetStingSpecial(groupMemberInfoWithBocai.GroupMemberBaseInfo.NickName);
                    //===================2018-02===================


                    shortName = shortName.Replace("'", "").Replace("/", "").Replace("\\", "").Replace("\"", "").Replace(".", "");
                    bool isHanzi = false;
                    for (int ii = 0; ii < shortName.Length; ii++)
                    {
                        if ((int)shortName[ii] > 127)
                        {
                            //是汉字
                            isHanzi = true;
                            break;
                        }
                    }
                    if (isHanzi)
                    {
                        shortName = shortName.Length > 2 ? shortName.Substring(0, 2) : shortName;
                    }
                    else
                    {
                        shortName = shortName.Length > 4 ? shortName.Substring(0, 4) : shortName;
                    }

                    groupMemberInfoWithBocai.NickNameShort = shortName;

                    list.Add(groupMemberInfoWithBocai);
                    keyVal.Add(memberInfo.Number, groupMemberInfoWithBocai);
                }
            }

            CacheData.GroupMemberInfoList = list;
            CacheData.GroupMemberInfoDic  = keyVal;
            return(list);
        }
Esempio n. 4
0
        /// <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下,Cool​Api​Extensions.GetGroupMemberInfoV2也会崩

                            /*
                             * ModelWithSourceString<GroupMemberInfo> model = Cool​Api​Extensions.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));
        }