目次
1. ユーザーのグループ化、管理システムのインターフェース設計
2. グループ同期オペレーションコードの表示
ホームページ WeChat アプレット WeChatの開発 WeChat ポータルとアプリケーションの C# 開発 - 管理システム内の WeChat ユーザー グループ情報の同期

WeChat ポータルとアプリケーションの C# 開発 - 管理システム内の WeChat ユーザー グループ情報の同期

Feb 17, 2017 pm 03:11 PM

前回の記事では、元の WeChat API のカプセル化から WeChat アプリケーション プラットフォーム管理システムに徐々に移行し、管理システム内の WeChat データのインターフェイス設計と、関連する処理操作のロジックとコードを徐々に紹介しました。 WeChat のアプリケーション開発プロセスをより高いレベルから紹介したいと思います。この記事では主に、管理システムで WeChat ユーザー グループ情報の同期操作を実現する方法を紹介します。

実際、WeChat がこれほど人気が​​ある理由は主にユーザー情報にあるため、WeChat アカウントの次のユーザー データを同期して管理することが非常に重要です。 WeChat ユーザーのデータを使用して、任意のアプリケーション システムに接続して、システムとモバイルのクライアント データの統合を実現できます。また、ユーザーが興味のある製品ニュースやサービス ニュースなどを送信するなど、ユーザーのマーケティング管理を行うこともできます。 、企業の影響力と市場の行動を十分に拡大することができます。

以前のエッセイ「WeChat ポータルとアプリケーションの C# 開発 (5) - ユーザー グループ情報管理」で、私はかつて WeChat グループのさまざまな基盤となる API カプセル化操作を紹介しました。これは主に WeChat 用の API を提供します。NET の高度なグループ化により、すべての情報が交換され、エンティティを介してデータを交換することで、さまざまな WeChat トランザクションを処理するための API の呼び出しがより便利になり、WeChat アプリケーション プラットフォームの管理の基礎が築かれます。この記事では、次の側面を含むすべての WeChat グループ管理、ユーザー グループ管理の API カプセル化プロセスを紹介します:

1) グループを作成する
2) すべてのグループをクエリする
3) ユーザーが属するグループをクエリする
4) グループを変更する名前
5) モバイルユーザーのグループ化

1. ユーザーのグループ化、管理システムのインターフェース設計

上記の WeChat グループ化の操作のために、WeChat グループのデータを管理するためのモジュールを WeChat アプリケーション管理システムに設計できます。 、グループの作成、グループの変更、グループの表示、その他の基本的な操作を行うこともできます。同期操作には主に新しいグループ情報の WeChat への追加が含まれ、変更されたグループを WeChat に追加することもできます。現在、WeChat ではサポートされていないため、心配する必要はありません。最後に、同期中に失敗したデータが送信されるのを避けるために、変更されたデータを同期する必要があります。これが全体的な同期操作です。

管理システムにおけるWeChatグループのリスト管理インターフェイスの設計は次のとおりです。

C#开发微信门户及应用-在管理系统中同步微信用户分组信息

グループを作成するときは、グループ名を追加するだけで済みます。インターフェイスのデザインもシンプルですが、作成されたIDは、新しい非同期IDとして-1になるように設計されています。

C#开发微信门户及应用-在管理系统中同步微信用户分组信息

グループ情報の編集インターフェースは以下のとおりです。グループを編集して保存すると、システムはそれらの変更されたグループを記憶します。

C#开发微信门户及应用-在管理系统中同步微信用户分组信息

2. グループ同期オペレーションコードの表示

グループ同期の管理をより良く実現するために、MVCコントローラーメソッドでグループオペレーションコードをカプセル化し、操作後にAjax呼び出しを通じてページコードを同期できるようにしました。 、同期が成功したか失敗したかにかかわらず、ユーザーは結果を通知するよう求められます。

同期する場合、新しく追加されたローカル コンテンツ用にサーバー上にグループを作成し、サーバー上で変更されたグループ名を変更してから、同期操作の前に、リスト インターフェイスは次のようになります。は ID=-1 の新規レコードであり、変更後に変更フラグが付いているレコードもあります。

C#开发微信门户及应用-在管理系统中同步微信用户分组信息

ユーザーグループ化の同期ボタン操作はスクリプトコードを呼び出すだけです。 具体的なコードは以下の通りです。

        //绑定提交按钮的的点击事件
        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 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();
            }
        });
ログイン後にコピー

 

如果感兴趣或者体验相关的微信功能,可以关注我的微信了解下。具体效果可以关注我的微信门户:广州爱奇迪,也可以扫描下面二维码进行关注了解。

C#开发微信门户及应用-在管理系统中同步微信用户分组信息

更多C#开发微信门户及应用-在管理系统中同步微信用户分组信息 相关文章请关注PHP中文网!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)