首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》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方法将新用户记录一次性插入数据库表。