25.5 用户管理

04-13Ctrl+D 收藏本站

关灯 直达底部

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方法将新用户记录一次性插入数据库表。