C#开发微信门户及利用(10)–在治本网遭到共同微信用户分组信息

By admin in 亚洲必赢app在哪下载 on 2018年10月9日

以前几首文章被,逐步由原有微信的API封装的功底及连接至微信下平台管理网里,逐步介绍管理网被的微信数据的界面设计,以及有关的处理操作过程的逻辑和代码,希望打再胜一个层次,向大家介绍微信的利用开发过程。本篇主要介绍在管理网受,如何贯彻微信用户分组信息的同步操作。

骨子里微信会风风火火的因由,主要就是坐来用户信息,所以并并管制好微信账号的眷顾用户数据是蛮重大的。有了微信用户之数码,你可跟而别利用系统联网,实现系统-手机客户端的多少整合,还可对用户进行营销管理,如发送用户感兴趣之出品信息、服务信息等,能够好好扩大公司之影响力以及商海表现。

每当较早前的等同篇随笔《C#付出微信门户及采取(5)–用户分组信息保管》,我曾经介绍了微信分组的各种底层的API封装操作,里面要就是本着微信提供API的.NET高级分组,对富有的音置换,通过实体性进行数据交换,使得我们调用API来拍卖微信的各种事情进一步便于,从而也微信下平台的军事管制奠定基础。其中即篇稿子介绍了有微信分组管理的API封装过程,用户分组管理,包含下面几乎单方面的内容:

1)创建分组
2) 查询有分组
3) 查询用户所在分组
4) 修改分组名
5) 移动用户分组

1、用户分组,在管制体系受到的界面设计

针对以上微信分组的操作,我们可以于微信的使管理体系内部,设计一个模块,用来保管微信的分组数据,在斯模块里面,可以创造分组,修改分组,查看分组等基础操作,还可以兑现协同微信分组的操作,同步操作,主要就是是把新增的分组信息上加至微信中,修改的分组也当微信中贯彻修改功能,删除时微信不支持,所以不用无了。最后,我们得于此于微信服务器上,把修改后的数据并下来,同步的时段以避免对咱提交不成事之数,我们要对修改过的记录做好标识,这个就是是自家本着合同步操作的逻辑处理了。

在管理网间,对微信分组的列表管理界面设计如下所示。

亚洲必赢app在哪下载 1

开创分组的时段,我们就需要添加一个分组名称即使足以了,界面设计也略,但是咱把创建的ID统一规划也-1,作为无共同的初长标识。

亚洲必赢app在哪下载 2

修分组信息界面如下所示。当对分组进行编辑保存后,系统会铭记那些修改过的分组就是了。

亚洲必赢app在哪下载 3

2、分组同步操作代码展示

为重新好实现分组同步的治本,我把分组的操作代码,封装在一个MVC的控制器的法门中,页面代码通过Ajax调用就足以兑现同步操作了,同步成功,或者失败,都见面唤醒用户,让我们针对那结果开展问询。

手拉手的时刻,把当地新增的情节,在服务器上创办分组;把修改的的分组名称,在服务器上进行修改,然后进行共同列表处理,同步操作前,列表界面可能如下所示,有新加记录ID=-1的,也发出改后,记录修改标志的。

亚洲必赢app在哪下载 4 

 

用户分组的一块儿按钮操作,是调用一个剧本代码就得了,具体代码如下所示。

        //绑定提交按钮的的点击事件
        function BindSyncDataEvent() {
            $("#btnSyncData").click(function () {
                $.messager.confirm("提交确认", "您确认需要和微信服务器同步分组信息吗?", function (action) {
                    if (action) {
                        //提交数据
                        $("#loading").show();

                        $.ajax({
                            url: '/Group/SyncGroup',
                            type: 'post',
                            dataType: 'json',
                            success: function (data) {
                                if (data.Success) {
                                    $("#grid").datagrid("reload");
                                    $.messager.alert("提示", "同步成功");
                                }
                                else {
                                    $.messager.alert("提示", "同步失败:" + data.ErrorMessage);
                                }
                            },
                            data: ''
                        });

                        $("#loading").fadeOut(500);
                    }
                });
            });
        }

里面地方红色部分即使是通过Jquery调用的MVC的控制器方法,具体函数代码如下所示。

        /// <summary>
        /// 同步服务器的分组信息
        /// </summary>
        /// <returns></returns>
        public ActionResult SyncGroup()
        {
            string accessToken = GetAccessToken();
            CommonResult result = BLLFactory<Group>.Instance.SyncGroup(accessToken);
            return ToJsonContent(result);
        }

由点,我们从不看最多之逻辑,为了方便我本着他们进行了一发的包,把她坐了事情逻辑层进行拍卖了。具体我们省她的代码逻辑吧,这里为了有的数据库操作更迅速和完全,使用了业务之操作,我管相关的代码贴出,方便大家了解逻辑。

        /// <summary>
        /// 同步服务器的分组信息
        /// </summary>
        /// <returns></returns>
        public CommonResult SyncGroup(string accessToken)
        {
            CommonResult result = new CommonResult();

            try
            {
                IUserApi api = new UserApi();

                using (DbTransaction trans = baseDal.CreateTransaction())
                {
                    //先把本地标志groupId = -1未上传的记录上传到服务器,然后进行本地更新
                    string condition = string.Format("GroupID = '-1' ");
                    List<GroupInfo> unSubmitList = base.Find(condition);
                    foreach (GroupInfo info in unSubmitList)
                    {
                        GroupJson groupJson = api.CreateGroup(accessToken, info.Name);
                        if (groupJson != null)
                        {
                            info.GroupID = groupJson.id;
                            baseDal.Update(info, info.ID, trans);
                        }
                    }

                    //把标志为修改状态的记录,在服务器上修改
                    condition = string.Format("GroupID >=0 and Modified =1 ");
                    List<GroupInfo> unModifyList = base.Find(condition);
                    foreach (GroupInfo info in unModifyList)
                    {
                        CommonResult modifyed = api.UpdateGroupName(accessToken, info.GroupID, info.Name);
                        if (modifyed != null && modifyed.Success)
                        {
                            info.Modified = 0;//重置标志
                            baseDal.Update(info, info.ID, trans);
                        }
                    }    

                    //删除具有删除标志的分组
                    //condition = string.Format("GroupID >=100 and Deleted=1 ");
                    //List<GroupInfo> unDeletedList = base.Find(condition);
                    //foreach (GroupInfo info in unDeletedList)
                    //{
                    //    CommonResult deleted = api.DeleteGroup(accessToken, info.GroupID, info.Name);
                    //    if (deleted != null && deleted.Success)
                    //    {
                    //        baseDal.Delete(info.ID, trans);
                    //    }
                    //}

                    List<GroupJson> list = api.GetGroupList(accessToken);
                    foreach (GroupJson info in list)
                    {
                        UpdateGroup(info, trans);
                    }

                    try
                    {
                        trans.Commit();
                        result.Success = true;
                    }
                    catch 
                    {
                        trans.Rollback();
                        throw;
                    }                   
                }
            }
            catch (Exception ex)
            {
                result.ErrorMessage = ex.Message;
            }

            return result;
        }

当Jquery同步的时刻,我们为了避免等待时过久而一筹莫展判断程序是否正规在工作,最好搭一个四处奔波的唤起操作,因为我们应用了Ajax调用,所以我们得统一安装Ajax的繁忙和到位状态,具体装代码如下所示。

        //用来统一请求忙碌显示的设置
        $.ajaxSetup({
            beforeSend: function () {
                $("#loading").show();
            },
            complete: function () {
                $("#loading").hide();
            }
        });

 

而谢兴趣或体验相关的微信力量,可以关心我的微信询问下。具体效果好关注自己之微信门户:广州爱奇迪,也足以扫描下二维码进行关爱了解。

亚洲必赢app在哪下载 5

一经对是《C#开微信门户及以》系列感兴趣,可以关心自己之其它文章,系列随笔如下所示:

C#付出微信门户及使用(25)-微信企业号的客户端管住力量

C#开微信门户及利用(24)-微信小店货架信息保管

C#支出微信门户及用(23)-微信小店商品管理接口的包和测试

C#开发微信门户及下(22)-微信小店的付出及动

C#开微信门户及使用(21)-微信企业号的音讯及波之收取处理以及解密 

C#付出微信门户及运用(20)-微信企业号的食谱管理

C#开微信门户及以(19)-微信企业号的音信发送(文本、图片、文件、语音、视频、图文信息等)

C#开发微信门户及使用(18)-微信企业号的通讯录管理支出的成员管理

C#支付微信门户及运用(17)-微信企业号的通讯录管理支出之部门管理

C#付出微信门户及动(16)-微信企业号的安排与利用

C#开微信门户及采取(15)-微信菜单增加扫一扫、发图片、发地理位置功能

 C#付出微信门户及运用(14)-在微信菜单中运用重定向获得用户数量

C#开微信门户及动(13)-使用地理位置扩展相关以

C#付出微信门户及采取(12)-使用语音处理

C#出微信门户及应用(11)–微信菜单的多种表现方法介绍

C#支出微信门户及用(10)–在治本体系被齐声微信用户分组信息

C#开发微信门户及下(9)-微信门户菜单管理与交至微信服务器

C#支付微信门户及使用(8)-微信门户应用管理网机能介绍

C#付出微信门户及利用(7)-微信多客服功能与支出并

C#出微信门户及用(6)–微信门户菜单的管住操作

C#支付微信门户及动(5)–用户分组信息保管

C#支出微信门户及采取(4)–亚洲必赢app在哪下载关注用户列表及详细信息管理

C#出微信门户及应用(3)–文本信及图文信息之答疑

C#支付微信门户及运用(2)–微信消息之处理同应对

C#付出微信门户及以(1)–开始采用微信接口

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 亚洲必赢app官方下载 版权所有