116 lines
3.5 KiB
PHP
Executable File
116 lines
3.5 KiB
PHP
Executable File
<?php
|
|
namespace wstmart\admin\model;
|
|
use think\Db;
|
|
/**
|
|
* ============================================================================
|
|
* 微信用户业务处理
|
|
*/
|
|
class WxUsers extends Base{
|
|
/**
|
|
* 分页
|
|
*/
|
|
public function pageQuery(){
|
|
$key = input('get.key');
|
|
$where = [];
|
|
if($key!='')$where['userName'] = ['like','%'.$key.'%'];
|
|
return $this->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);
|
|
}
|
|
}
|