95992828九五至尊2

在保管系列中协同微信用户分组音信

二月 16th, 2019  |  882828九五至尊手机版

在目前几篇小说中,逐步从原始微信的API封装的基础上连片到微信应用平台管理连串内部,逐步介绍管理序列中的微信数据的界面设计,以及有关的处理操作进度的逻辑和代码,希望从更高贰个层次,向我们介绍微信的运用开发进度。本篇主要介绍在治本序列中,怎么样促成微信用户分组音讯的同步操作。

在前头几篇小说中,逐步从原来微信的API封装的底子上连接到微信应用平台管理体系之中,逐步介绍管理连串中的微信数据的界面设计,以及有关的拍卖操作进度的逻辑和代码,希望从更高3个层次,向我们介绍微信的运用开发进程。本篇主要介绍在治本种类中,怎么着落实微信用户分组消息的同步操作。
实际上微信可以风风火火的原委,首要就是因为有用户音讯,所以同步并管制好微信账号的关切用户数据是丰硕首要的。有了微信用户的多寡,你可以和你任何利用系列接入,达成系统-手机客户端的数码整合,还足以对用户实行营销管理,如发送用户感兴趣的成品音信、服务音信等,可以很好增添公司的影响力和商海作为。
在较早之前的一篇散文《C#开发微信门户及利用(5)–用户分组消息保管》,作者曾经介绍了微信分组的种种底层的API封装操作,里面首要就是对微信提供API的.NET高级分组,对富有的消息置换,通过实体性举办数据沟通,使得大家调用API来处理微信的种种业务进一步惠及,从而为微信应用平台的保管奠定基础。其中那篇小说介绍了具备微信分组管理的API封装进度,用户分组管理,包蕴上边多少个方面的内容:
1)创制分组2) 查询全数分组3) 查询用户所在分组4) 修改分组名5)
移动用户分组

事实上微信可以风风火火的来由,主要就是因为有用户消息,所以同步并保管好微信账号的敬重用户数量是特别关键的。有了微信用户的数据,你可以和你任何利用连串连接,达成系统-手机客户端的数码整合,还是能对用户展开营销管理,如发送用户感兴趣的产品新闻、服务新闻等,可以很好伸张公司的影响力和商海作为。

① 、用户分组,在治本种类中的界面设计

本着上述微信分组的操作,大家可以在微信的应用管理连串里面,设计三个模块,用来管理微信的分组数据,在那个模块里面,可以创制分组,修改分组,查看分组等基础操作,还足以兑现共同微信分组的操作,同步操作,首要就是把增产的分组信息添加到微信里面,修改的分组也在微信中落到实处修改作用,删除方今微信不协助,所以不用管了。最终,咱们得以在此从微信服务器上,把修改后的多少同步下来,同步的时候为了防止对大家提交不成功的数量,我们须求对修改过的记录做好标识,那么些就是本身对一切同步操作的逻辑处理了。
在管制种类内部,对微信分组的列表管理界面设计如下所示。

成立分组的时候,大家只需要丰硕一个分组名称就可以了,界面设计也简要,不过大家把创造的ID统一设计为-1,作为未共同的新增标识。

编排分组音讯界面如下所示。当对分组进行编辑保存后,系统会铭记那多少个修改过的分组就是了。

在较早以前的一篇小说《C#开发微信门户及运用(5)–用户分组消息保管》,小编已经介绍了微信分组的各样底层的API封装操作,里面主要就是对微信提供API的.NET高级分组,对具备的新闻交流,通过实体性进行数据沟通,使得大家调用API来拍卖微信的各样事情进一步便利,从而为微信应用平台的管住奠定基础。其中那篇文章介绍了有着微信分组管理的API封装进程,用户分组管理,包括下边多少个地点的内容:

② 、分组同步操作代码突显

为了更好落到实处分组同步的管理,作者把分组的操作代码,封装在七个MVC的控制器的章程里面,页面代码通过Ajax调用就可以落成同步操作了,同步成功,或许失利,都会提示用户,让大家对其结果开展通晓。
同步的时候,把当地新增的内容,在服务器上制造分组;把修改的的分组名称,在服务器上进行修改,然后举行共同列表处理,同步操作前,列表界面只怕如下所示,有新增记录ID=-1的,也有涂改后,记录修改标志的。

用户分组的协同按钮操作,是调用贰个本子代码就可以了,具体代码如下所示。

//绑定提交按钮的的点击事件
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同步的时候,大家为了幸免等待时间过久而一筹莫展看清程序是还是不是正规在办事,最好扩展3个繁忙的升迁操作,因为我们应用了Ajax调用,所以大家可以统一安装Ajax的劳顿和到位情状,具体设置代码如下所示。

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

假若感兴趣可能体验相关的微信功能,可以关怀自作者的微信询问下。具体作用可以关怀我的微信门户:利雅得爱奇迪,也可以扫描上面二维码举办关爱了解。

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

一 、用户分组,在管理体系中的界面设计

本着上述微信分组的操作,大家可以在微信的行使管理系列之中,设计3个模块,用来保管微信的分组数据,在这一个模块里面,可以创制分组,修改分组,查看分组等基础操作,还足以兑现同步微信分组的操作,同步操作,首要就是把新增的分组新闻添加到微信里面,修改的分组也在微信中达成修改功效,删除如今微信不接济,所以不用管了。最终,我们可以在此从微信服务器上,把修改后的数量同步下来,同步的时候为了防止对我们付出不成事的数额,大家须要对修改过的笔录做好标识,那一个就是自作者对总体同步操作的逻辑处理了。

在治本体系之中,对微信分组的列表管理界面设计如下所示。

图片 1

开创分组的时候,大家只须求加上二个分组名称就可以了,界面设计也差不离,不过大家把创造的ID统一计划为-1,作为未共同的新增标识。

图片 2

编纂分组音信界面如下所示。当对分组举办编辑保存后,系统会铭记这个修改过的分组就是了。

图片 3

② 、分组同步操作代码呈现

为了更好贯彻分组同步的军事管制,小编把分组的操作代码,封装在3个MVC的控制器的法门里面,页面代码通过Ajax调用就可以兑现同步操作了,同步成功,或许战败,都会唤醒用户,让大家对其结果开展明白。

一齐的时候,把本地新增的始末,在服务器上创制分组;把修改的的分组名称,在服务器上进行修改,然后开展同步列表处理,同步操作前,列表界面大概如下所示,有新增记录ID=-1的,也有改动后,记录修改标志的。

图片 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同步的时候,大家为了幸免等待时间过久而望洋兴叹看清程序是或不是不荒谬在工作,最好伸张3个忙于的唤起操作,因为大家利用了Ajax调用,所以大家得以统一安装Ajax的大忙和姣好情状,具体设置代码如下所示。

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

 

设若感兴趣只怕体验相关的微信效能,可以关切自己的微信询问下。具体效果可以关注自我的微信门户:斯德哥尔摩爱奇迪,也足以扫描上边二维码举行关爱精通。

图片 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)–关切用户列表及详细消息管理

C#支付微信门户及利用(3)–文本消息和图文音信的作答

C#支付微信门户及使用(2)–微信新闻的处理和回复

C#开发微信门户及采纳(1)–开头运用微信接口

 

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图