亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

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

Feb 17, 2017 pm 03:11 PM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

?

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

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

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

從上面,我們沒有看到太多的邏輯,為了方便我對他們進行了進一步的封裝,把它放到了業(yè)務(wù)邏輯層進行處理了。具體我們看看它的代碼邏輯吧,這里為了所有的數(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ù)器,然后進行本地更新
????????????????????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同步的時候,我們?yōu)榱吮苊獾却龝r間過久而無法判斷程序是否正常在工作,最好增加一個忙碌的提示操作,因為我們使用了Ajax調(diào)用,所以我們可以統(tǒng)一設(shè)置Ajax的忙碌和完成狀態(tài),具體設(shè)置代碼如下所示。

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

?

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

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(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 教程
1597
29
PHP教程
1488
72