讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 25.5 用戶管理 >

25.5 用戶管理

25.5.1 同步用戶關注列表

對於之前關注的用戶,在系統開發完成之後,需要將其同步到系統中。同步用戶列表的代碼如下。


 1 public function updateList{
 2     // 獲取微信用戶列表
 3     $weixin = new \weixin\Wxapi;
 4     $result = $weixin->get_user_list;
 5 
 6     // 獲取本地用戶列表
 7     $openidlist = Db::name('user')->column('openid');
 8     // dump($openidlist);
 9     
10     // 計算未更新用戶列表
11     $intersection = array_diff($result["data"]["openid"], $openidlist);
12 
13     // 同步入庫
14     $data = array;
15     foreach ($intersection as &$openid) {
16         $data = array('openid'=>$openid);
17     }
18     $insertresult = Db::name('user')->insertAll($data);
19     
20     $this->success('更新了'.count($intersection).'個用戶','index');
21 }
  

在上述代碼中,先獲取微信用戶列表,該接口中使用了遞歸方式,當用戶數超過1萬個時,再次調用下一組1萬個用戶的OpenID列表,以此類推。

接下來獲取當前系統中存儲的用戶OpenID列表,並使用array_diff函數計算出系統中未存儲的用戶OpenID列表。

最後使用Db類的insertAll方法將新用戶記錄一次性插入數據庫表。