示例#1
0
        /// <summary>
        /// 同步群信息
        /// </summary>
        /// <param name="groupList"></param>
        public void SyncGroup(IList <ContactList> groupList)
        {
            //新增
            //删除
            //修改
            List <wx_group> listGroup   = tobotDB.GetInstance().Fetch <wx_group>("select * from wx_group where RobotId=@0 ", Global.robot.Id);
            List <string>   groupIdList = listGroup.Select(n => n.GroupId).ToList(); //数据库中
            List <string>   aliasList   = groupList.Select(n => n.Alias).ToList();   //当前读取

            var delList    = groupIdList.Except(aliasList).ToList();
            var insertList = aliasList.Except(groupIdList).ToList();
            var updateList = groupIdList.Intersect(aliasList).ToList();

            string groupId = string.Join(",", delList.ToArray());

            if (!string.IsNullOrEmpty(groupId))
            {
                string delSQL = string.Format(@" update wx_group set Isdelete=1 where GroupId in({0}) ", groupId);
                int    result = tobotDB.GetInstance().Execute(delSQL);
            }

            foreach (string item in insertList)
            {
                ContactList contact = groupList.Where(n => n.Alias == item).FirstOrDefault();

                wx_group group = new wx_group();
                group.GroupId     = contact.Alias;
                group.GroupName   = contact.NickName;
                group.Isdelete    = false;
                group.Createtime  = DateTime.Now;
                group.Updatetime  = DateTime.Now;
                group.HeadImgUrl  = contact.HeadImgUrl;
                group.MemberCount = contact.MemberCount;
                group.OwnerUin    = contact.OwnerUin;
                group.PYQuanPin   = contact.PYQuanPin;
                group.RobotId     = Global.robot.Id;
                group.UserName    = contact.UserName;
                group.RobotAlias  = Global.robot.Alias;
                group.Statues     = contact.Statues;
                tobotDB.GetInstance().Insert(group);
            }

            foreach (string item in updateList)
            {
                wx_group group = listGroup.Where(n => n.GroupId == item).FirstOrDefault();
                tobotDB.GetInstance().Update(group);
            }
        }
示例#2
0
        public void SyncGroup(ContactList contact)
        {
            string sql     = @" select top 1 * from wx_group where RobotId=@robotId and IsDelete=0 and GroupId=@groupId ";
            string groupId = WechatCommon.GetTrueId(contact.UserName);

            wx_group group = tobotDB.GetInstance().Query <wx_group>(sql, new { robotId = Global.robot.Id, groupId = groupId }).FirstOrDefault();

            if (group == null)
            {
                group            = new wx_group();
                group.GroupId    = contact.Alias;
                group.Isdelete   = false;
                group.GroupName  = contact.NickName;
                group.Createtime = DateTime.Now;
                group.Updatetime = DateTime.Now;
                //group.HeadImgUrl = contact.HeadImgUrl;
                group.MemberCount = contact.MemberCount;
                group.OwnerUin    = contact.OwnerUin;
                group.PYQuanPin   = contact.PYQuanPin;
                group.RobotId     = Global.robot.Id;
                group.UserName    = contact.UserName;
                group.RobotAlias  = Global.robot.Alias;
                group.Statues     = contact.Statues;

                tobotDB.GetInstance().Insert(group);
            }
            else
            {
                group.GroupName  = contact.NickName;
                group.Updatetime = DateTime.Now;
                //group.HeadImgUrl = contact.HeadImgUrl;
                group.MemberCount = contact.MemberCount;
                group.OwnerUin    = contact.OwnerUin;
                group.PYQuanPin   = contact.PYQuanPin;
                group.RobotId     = Global.robot.Id;
                group.UserName    = contact.UserName;
                group.RobotAlias  = Global.robot.Alias;
                group.Statues     = contact.Statues;

                tobotDB.GetInstance().Update(group);
            }

            SyncGroupMember(contact.MemberList, groupId, contact.UserName);
        }