国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
1、用戶分組,在管理系統(tǒng)中的介面設計
2、分組同步操作代碼展示
首頁 微信小程式 微信開發(fā) C#開發(fā)微信入口網(wǎng)站及應用-在管理系統(tǒng)中同步微信用戶分組訊息

C#開發(fā)微信入口網(wǎng)站及應用-在管理系統(tǒng)中同步微信用戶分組訊息

Feb 17, 2017 pm 03:11 PM

在前面幾篇文章中,逐步從原有微信的API封裝的基礎上過渡到微信應用平臺管理系統(tǒng)裡面,逐步介紹管理系統(tǒng)中的微信資料的介面設計,以及相關的處理操作過程的邏輯和程式碼,希望從更高一個層次,向大家介紹微信的應用開發(fā)過程。本篇主要介紹在管理系統(tǒng)中,如何實現(xiàn)微信使用者分組資訊的同步操作。

其實微信能夠風風火火的原因,主要就是因為有用戶信息,所以同步並管理好微信帳號的關注用戶資料是非常重要的。有了微信用戶的數(shù)據(jù),你可以和你任何應用系統(tǒng)對接,實現(xiàn)系統(tǒng)-手機用戶端的數(shù)據(jù)整合,還可以對用戶進行行銷管理,如發(fā)送用戶感興趣的產(chǎn)品訊息、服務訊息等,能夠很好地擴大企業(yè)的影響力和市場行為。

在較早之前的一篇隨筆《C#開發(fā)微信門戶及應用(5)--用戶分組資訊管理》,我曾經(jīng)介紹了微信分組的各種底層的API封裝操作,裡面主要就是對微信提供API的.NET高階分組,對所有的資訊交換,透過實體性進行資料交換,使得我們呼叫API來處理微信的各種事務更加方便,從而為微信應用平臺的管理奠定基礎。其中這篇文章介紹了所有微信分組管理的API封裝過程,使用者分組管理,包含下面幾個方面的內(nèi)容:

1)建立分組
2) 查詢所有分組
3) 查詢用戶所在分組
4) 修改分組名
5) 行動用戶分組

1、用戶分組,在管理系統(tǒng)中的介面設計

針對以上微信分組的操作,我們可以在微信的應用管理系統(tǒng)裡面,設計一個模組,用來管理微信的分組數(shù)據(jù),在這個模組裡面,可以創(chuàng)建分組,修改分組,查看分組等基礎操作,還可以實現(xiàn)同步微信分組的操作,同步操作,主要就是把新增的分組信息添加到微信裡面,修改的分組也在微信中實現(xiàn)修改功能,刪除目前微信不支持,所以不用管了。最後,我們可以在此從微信伺服器上,把修改後的數(shù)據(jù)同步下來,同步的時候為了避免對我們提交不成功的數(shù)據(jù),我們需要對修改過的記錄做好標識,這個就是我對整個同步操作的邏輯處理了。

在管理系統(tǒng)裡面,將微信分組的清單管理介面設計如下圖所示。

C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息

創(chuàng)建分組的時候,我們只需要添加一個分組名稱就可以了,介面設計也簡單,但是我們把創(chuàng)建的ID統(tǒng)一設計為-1,作為未同步的新增標識。

C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息

編輯分組資訊介面如下圖所示。當分組編輯儲存後,系統(tǒng)會記住那些修改過的分組就是了。

C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息

2、分組同步操作代碼展示

為了更好實現(xiàn)分組同步的管理,我把分組的操作代碼,封裝在一個MVC的控制器的方法裡面,頁面代碼透過Ajax調(diào)用就可以實現(xiàn)同步操作了,同步成功,或失敗,都會提示用戶,讓我們對其結果進行了解。

同步的時候,把本地新增的內(nèi)容,在伺服器上建立分組;把修改的的分組名稱,在伺服器上進行修改,然後進行同步清單處理,同步操作前,清單介面可能如下所示,有新增記錄ID=-1的,也有修改後,記錄修改標誌的。

C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息 ?

?

使用者分組的同步按鈕操作,是呼叫一個腳本程式碼就可以了,具體程式碼如下圖所示。

????????//綁定提交按鈕的的點擊事件
????????function?BindSyncDataEvent()?{
????????????$("#btnSyncData").click(function?()?{
????????????????$.messager.confirm("提交確認",?"您確認需要和微信服務器同步分組信息嗎?",?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ù)程式碼如下所示。

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

從上面,我們沒有看到太多的邏輯,為了方便我對他們進行了進一步的封裝,把它放到了業(yè)務邏輯層進行處理了。具體我們看看它的代碼邏輯吧,這里為了所有的數(shù)據(jù)庫操作更加快捷和完整,使用了事務的操作,我把相關的代碼貼出來,方便大家了解邏輯。

????????///?<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);
????????????????????????}
????????????????????}????????????????????//把標志為修改狀態(tài)的記錄,在服務器上修改
????????????????????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同步的時候,我們?yōu)榱吮苊獾却龝r間過久而無法判斷程序是否正常在工作,最好增加一個忙碌的提示操作,因為我們使用了Ajax調(diào)用,所以我們可以統(tǒng)一設置Ajax的忙碌和完成狀態(tài),具體設置代碼如下所示。

????????//用來統(tǒng)一請求忙碌顯示的設置
????????$.ajaxSetup({
????????????beforeSend:?function?()?{
????????????????$("#loading").show();
????????????},
????????????complete:?function?()?{
????????????????$("#loading").hide();
????????????}
????????});

?

如果感興趣或者體驗相關的微信功能,可以關注我的微信了解下。具體效果可以關注我的微信門戶:廣州愛奇迪,也可以掃描下面二維碼進行關注了解。

C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息

更多C#開發(fā)微信門戶及應用-在管理系統(tǒng)中同步微信用戶分組信息?相關文章請關注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276