where($where)->order('subscribeTime desc,userId desc')->paginate(input('post.limit/d'))->toArray(); } /** * 获取指定对象 */ public function getById($id){ return $this->where(['userId'=>$id])->find(); } /** * 与微信用户管理同步 */ public function synchroWx(){ $this->where('userId>0')->delete(); $wx = WXAdmin(); $data = $wx->wxUserGet(); if(isset($data['errcode'])){ if($data['errcode']!=0)return WSTReturn('与微信同步失败,请清除缓存重试'); } if(isset($data['data']) && count($data['data']['openid'])>0){ $dataList = []; foreach($data['data']['openid'] as $key=>$v){ $datas = []; $datas['openId'] = $v; $datas['userFill'] = -1; $dataList[] = $datas; } $this->insertAll($dataList); return WSTReturn("共".$data['total']."个用户需同步", 1,$dataList); } } public function wxLoad(){ $openId = input('post.id'); $wx = WXAdmin(); $userInfo = $wx->wxUserInfo($openId); if(isset($userInfo['errcode'])){ if($userInfo['errcode']!=0)return WSTReturn('与微信同步失败,请清除缓存重试'); } $data = []; $data['userName'] = $userInfo['nickname']; $data['userSex'] = $userInfo['sex']; $data['userAreas'] = $userInfo['country'].$userInfo['province'].$userInfo['city']; $data['userPhoto'] = $userInfo['headimgurl']; $data['userRemark'] = $userInfo['remark']; $data['subscribeTime'] = date('Y-m-d H:i:s',$userInfo['subscribe_time']); $data['groupId'] = $userInfo['groupid']; $data['openId'] = $userInfo['openid']; $data['userFill'] = 1; $result = $this->update($data,['openId'=>$openId,'userFill'=>-1]); if(false !== $result){ return WSTReturn("", 1); }else{ return WSTReturn($this->getError(),-1); } } /** * 编辑 */ public function edit(){ $userId = input('post.id/d'); $data = input('post.'); WSTUnset($data,'userId,userName,userSex,userAreas,userPhoto,subscribeTime,groupId,openId'); $result = $this->allowField(true)->save($data,['userId'=>$userId]); if(false !== $result){ $info = $this->getById($userId); $wdata = []; $wdata["openid"] = $info["openId"]; $wdata["remark"] = $info["userRemark"]; $wdata = json_encode($wdata,JSON_UNESCAPED_UNICODE); $wx = WXAdmin(); $data = $wx->wxUpdateremark($wdata); return WSTReturn("修改成功", 1); }else{ return WSTReturn($this->getError(),-1); } } /** * 写入unionId */ public function recodeUnionId(){ $m = new \wstmart\common\model\Users; // 取出已关联微信的账号 $rs = $m->field('userId,wxOpenId')->where(['wxOpenId'=>['<>','']])->where("isNull(wxUnionId)")->select(); if(empty($rs))return WSTReturn('无需写入unionId'); // 写入UnionId $wx = WXAdmin(); $update = []; foreach($rs as $k=>$v){ $data = $wx->wxUserInfo($v['wxOpenId']); $item = ['userId'=>$v['userId'],'wxUnionId'=>$data['unionid']]; array_push($update, $item); } $flag = $m->saveAll($update); if($flag!==false)return WSTReturn('unionId写入完成',1); return WSTReturn($this->getError(),-1); } }