


前回の記事では、元の WeChat API のカプセル化から WeChat アプリケーション プラットフォーム管理システムに徐々に移行し、管理システム內(nèi)の WeChat データのインターフェイス設(shè)計(jì)と、関連する処理操作のロジックとコードを徐々に紹介しました。 WeChat のアプリケーション開発プロセスをより高いレベルから紹介したいと思います。この記事では主に、管理システムで WeChat ユーザー グループ情報(bào)の同期操作を?qū)g現(xiàn)する方法を紹介します。
実際、WeChat がこれほど人気が??ある理由は主にユーザー情報(bào)にあるため、WeChat アカウントの次のユーザー データを同期して管理することが非常に重要です。 WeChat ユーザーのデータを使用して、任意のアプリケーション システムに接続して、システムとモバイルのクライアント データの統(tǒng)合を?qū)g現(xiàn)できます。また、ユーザーが興味のある製品ニュースやサービス ニュースなどを送信するなど、ユーザーのマーケティング管理を行うこともできます。 、企業(yè)の影響力と市場の行動(dòng)を十分に拡大することができます。
以前のエッセイ「WeChat ポータルとアプリケーションの C# 開発 (5) - ユーザー グループ情報(bào)管理」で、私はかつて WeChat グループのさまざまな基盤となる API カプセル化操作を紹介しました。これは主に WeChat 用の API を提供します。NET の高度なグループ化により、すべての情報(bào)が交換され、エンティティを介してデータを交換することで、さまざまな WeChat トランザクションを処理するための API の呼び出しがより便利になり、WeChat アプリケーション プラットフォームの管理の基礎(chǔ)が築かれます。この記事では、次の側(cè)面を含むすべての WeChat グループ管理、ユーザー グループ管理の API カプセル化プロセスを紹介します:
1) グループを作成する
2) すべてのグループをクエリする
3) ユーザーが屬するグループをクエリする
4) グループを変更する名前
5) モバイルユーザーのグループ化
1. ユーザーのグループ化、管理システムのインターフェース設(shè)計(jì)
上記の WeChat グループ化の操作のために、WeChat グループのデータを管理するためのモジュールを WeChat アプリケーション管理システムに設(shè)計(jì)できます。 、グループの作成、グループの変更、グループの表示、その他の基本的な操作を行うこともできます。同期操作には主に新しいグループ情報(bào)の WeChat への追加が含まれ、変更されたグループを WeChat に追加することもできます。現(xiàn)在、WeChat ではサポートされていないため、心配する必要はありません。最後に、同期中に失敗したデータが送信されるのを避けるために、変更されたデータを同期する必要があります。これが全體的な同期操作です。
管理システムにおけるWeChatグループのリスト管理インターフェイスの設(shè)計(jì)は次のとおりです。
グループを作成するときは、グループ名を追加するだけで済みます。インターフェイスのデザインもシンプルですが、作成されたIDは、新しい非同期IDとして-1になるように設(shè)計(jì)されています。
グループ情報(bào)の編集インターフェースは以下のとおりです。グループを編集して保存すると、システムはそれらの変更されたグループを記憶します。
2. グループ同期オペレーションコードの表示
グループ同期の管理をより良く実現(xiàn)するために、MVCコントローラーメソッドでグループオペレーションコードをカプセル化し、操作後にAjax呼び出しを通じてページコードを同期できるようにしました。 、同期が成功したか失敗したかにかかわらず、ユーザーは結(jié)果を通知するよう求められます。
同期する場合、新しく追加されたローカル コンテンツ用にサーバー上にグループを作成し、サーバー上で変更されたグループ名を変更してから、同期操作の前に、リスト インターフェイスは次のようになります。は ID=-1 の新規(guī)レコードであり、変更後に変更フラグが付いているレコードもあります。
ユーザーグループ化の同期ボタン操作はスクリプトコードを呼び出すだけです。 具體的なコードは以下の通りです。
????????//綁定提交按鈕的的點(diǎn)擊事件 ????????function?BindSyncDataEvent()?{ ????????????$("#btnSyncData").click(function?()?{ ????????????????$.messager.confirm("提交確認(rèn)",?"您確認(rèn)需要和微信服務(wù)器同步分組信息嗎?",?function?(action)?{ ????????????????????if?(action)?{ ????????????????????????//提交數(shù)據(jù) ????????????????????????$("#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コントローラーのメソッドです 具體的な関數(shù)コードは以下の通りです。
りー從上面,我們沒有看到太多的邏輯,為了方便我對(duì)他們進(jìn)行了進(jìn)一步的封裝,把它放到了業(yè)務(wù)邏輯層進(jìn)行處理了。具體我們看看它的代碼邏輯吧,這里為了所有的數(shù)據(jù)庫操作更加快捷和完整,使用了事務(wù)的操作,我把相關(guān)的代碼貼出來,方便大家了解邏輯。
????????///?<summary> ????????///?同步服務(wù)器的分組信息????????///?</summary> ????????///?<returns></returns> ????????public?CommonResult?SyncGroup(string?accessToken) ????????{ ????????????CommonResult?result?=?new?CommonResult();????????????try ????????????{ ????????????????IUserApi?api?=?new?UserApi();????????????????using?(DbTransaction?trans?=?baseDal.CreateTransaction()) ????????????????{????????????????????//先把本地標(biāo)志groupId?=?-1未上傳的記錄上傳到服務(wù)器,然后進(jìn)行本地更新 ????????????????????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); ????????????????????????} ????????????????????}????????????????????//把標(biāo)志為修改狀態(tài)的記錄,在服務(wù)器上修改 ????????????????????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;//重置標(biāo)志????????????????????????????baseDal.Update(info,?info.ID,?trans); ????????????????????????} ????????????????????}???? ????? ????????????????????//刪除具有刪除標(biāo)志的分組????????????????????//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同步的時(shí)候,我們?yōu)榱吮苊獾却龝r(shí)間過久而無法判斷程序是否正常在工作,最好增加一個(gè)忙碌的提示操作,因?yàn)槲覀兪褂昧薃jax調(diào)用,所以我們可以統(tǒng)一設(shè)置Ajax的忙碌和完成狀態(tài),具體設(shè)置代碼如下所示。
????????//用來統(tǒng)一請求忙碌顯示的設(shè)置 ????????$.ajaxSetup({ ????????????beforeSend:?function?()?{ ????????????????$("#loading").show(); ????????????}, ????????????complete:?function?()?{ ????????????????$("#loading").hide(); ????????????} ????????});
?
如果感興趣或者體驗(yàn)相關(guān)的微信功能,可以關(guān)注我的微信了解下。具體效果可以關(guān)注我的微信門戶:廣州愛奇迪,也可以掃描下面二維碼進(jìn)行關(guān)注了解。
更多C#開發(fā)微信門戶及應(yīng)用-在管理系統(tǒng)中同步微信用戶分組信息?相關(guān)文章請關(guān)注PHP中文網(wǎng)!

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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