微信用户列表

This commit is contained in:
JaguarJack 2020-06-21 10:48:55 +08:00
parent cd8ff84f02
commit 448154f363
4 changed files with 138 additions and 20 deletions

View File

@ -10,40 +10,29 @@
*/ */
namespace catchAdmin\wechat\controller; namespace catchAdmin\wechat\controller;
use catchAdmin\wechat\model\WechatUsers;
use catcher\base\CatchController; use catcher\base\CatchController;
use catcher\CatchResponse; use catcher\CatchResponse;
use catcher\library\WeChat;
use catcher\Utils; use catcher\Utils;
class Users extends CatchController class Users extends CatchController
{ {
protected $user; protected $user;
public function __construct(WeChat $weChat) public function __construct(WechatUsers $users)
{ {
$this->user = $weChat->officialAccount()->user; $this->user = $users;
} }
/** /**
* 列表 * 列表
* *
* @time 2020年06月19日 * @time 2020年06月19日
* @param null $nextOpenid
* @return \think\response\Json * @return \think\response\Json
*/ */
public function index($nextOpenid = null) public function index()
{ {
$openIds = $this->user->list($nextOpenid); return CatchResponse::paginate($this->user->getList());
if ($openIds['count']) {
$users = $this->user->select($openIds['data']['openid']);
$openIds['users'] = $users;
return CatchResponse::success($openIds);
}
return CatchResponse::success($openIds);
} }
/** /**
@ -94,4 +83,14 @@ class Users extends CatchController
{ {
return CatchResponse::success($this->user->unblock(Utils::stringToArrayBy($openId))); return CatchResponse::success($this->user->unblock(Utils::stringToArrayBy($openId)));
} }
public function subscribe()
{
}
public function unsubscribe()
{
}
} }

View File

@ -28,7 +28,7 @@ class WechatUsers extends Migrator
*/ */
public function change() public function change()
{ {
$table = $this->table('wechat_users',array('engine'=>'Innodb', 'comment' => ' 微信用户表', 'signed' => false)); $table = $this->table('wechat_users',array('engine'=>'Innodb', 'collation' => 'utf8mb4_general_ci', 'comment' => ' 微信用户表', 'signed' => false));
$table->addColumn('nickname', 'string',array('limit' => 30,'default'=>'','comment'=>'用户名')) $table->addColumn('nickname', 'string',array('limit' => 30,'default'=>'','comment'=>'用户名'))
->addColumn('avatar', 'string',array('limit' => 255,'comment'=>'用户头像')) ->addColumn('avatar', 'string',array('limit' => 255,'comment'=>'用户头像'))
->addColumn('openid', 'string',array('limit' => 35, 'comment'=>'openid')) ->addColumn('openid', 'string',array('limit' => 35, 'comment'=>'openid'))
@ -39,12 +39,11 @@ class WechatUsers extends Migrator
->addColumn('subscribe', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'用户状态 0 取消订阅 1 订阅')) ->addColumn('subscribe', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'用户状态 0 取消订阅 1 订阅'))
->addColumn('block', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'拉黑状态 1 正常 2 拉黑')) ->addColumn('block', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'拉黑状态 1 正常 2 拉黑'))
->addColumn('subscribe_time', 'integer',array('default'=>0,'comment'=>'订阅时间', 'signed' => false)) ->addColumn('subscribe_time', 'integer',array('default'=>0,'comment'=>'订阅时间', 'signed' => false))
->addColumn('subscribe_scene', 'string', ['limit' => 50, 'comment' => '订阅场景']) ->addColumn('subscribe_scene', 'string', ['limit' => 50, 'comment' => '订阅场景 ADD_SCENE_SEARCH 公众号搜索ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移ADD_SCENE_PROFILE_CARD 名片分享ADD_SCENE_QR_CODE 扫描二维码ADD_SCENE_PROFILE_LINK 图文页内名称点击ADD_SCENE_PROFILE_ITEM 图文页右上角菜单ADD_SCENE_PAID 支付后关注ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告ADD_SCENE_OTHERS 其他'])
->addColumn('unionid', 'string', ['limit' => 255, 'comment' => '用户平台唯一身份认证']) ->addColumn('unionid', 'string', ['limit' => 255, 'comment' => '用户平台唯一身份认证'])
->addColumn('sex', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'用户状态 1 男 2 女 0 未知')) ->addColumn('sex', 'boolean',array('limit' => 1,'default'=> 1,'comment'=>'用户状态 1 男 2 女 0 未知'))
->addColumn('remark', 'string', ['limit' => 255, 'comment' => '备注']) ->addColumn('remark', 'string', ['limit' => 255, 'comment' => '备注'])
->addColumn('groupid', 'integer', ['limit' => 0, 'comment' => '分组ID']) ->addColumn('groupid', 'integer', ['limit' => 0, 'comment' => '分组ID'])
->addColumn('remark', 'string', ['limit' => 255, 'comment' => '备注'])
->addColumn('tagid_list', 'string',['limit' => 50, 'default'=>0,'comment'=>'标签列表']) ->addColumn('tagid_list', 'string',['limit' => 50, 'default'=>0,'comment'=>'标签列表'])
->addColumn('created_at', 'integer', array('default'=>0,'comment'=>'创建时间', 'signed' => false )) ->addColumn('created_at', 'integer', array('default'=>0,'comment'=>'创建时间', 'signed' => false ))
->addColumn('updated_at', 'integer', array('default'=>0,'comment'=>'更新时间', 'signed' => false)) ->addColumn('updated_at', 'integer', array('default'=>0,'comment'=>'更新时间', 'signed' => false))

View File

@ -0,0 +1,47 @@
<?php
// +----------------------------------------------------------------------
// | CatchAdmin [Just Like ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
// +----------------------------------------------------------------------
// | Author: JaguarJack [ njphper@gmail.com ]
// +----------------------------------------------------------------------
namespace catchAdmin\wechat\model;
use catchAdmin\wechat\model\search\UserSearchTrait;
use catcher\base\CatchModel;
use catcher\traits\db\BaseOptionsTrait;
class WechatUsers extends CatchModel
{
use UserSearchTrait;
protected $name = 'wechat_users';
protected $field = [
'id', //
'nickname', // 用户名
'avatar', // 用户头像
'openid', // openid
'language', // 语言
'country', // 国家
'province', // 省份
'city', // 城市
'subscribe', // 用户状态 0 取消订阅 1 订阅
'block', // 拉黑状态 1 正常 2 拉黑
'subscribe_time', // 订阅时间
'subscribe_scene', // 订阅场景 ADD_SCENE_SEARCH 公众号搜索ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移ADD_SCENE_PROFILE_CARD 名片分享ADD_SCENE_QR_CODE 扫描二维码ADD_SCENE_PROFILE_LINK 图文页内名称点击ADD_SCENE_PROFILE_ITEM 图文页右上角菜单ADD_SCENE_PAID 支付后关注ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告ADD_SCENE_OTHERS 其他
'unionid', // 用户平台唯一身份认证
'sex', // 用户状态 1 男 2 女 0 未知
'remark', // 备注
'groupid', // 分组ID
'tagid_list', // 标签列表
'created_at', // 创建时间
'updated_at', // 更新时间
'deleted_at', // 删除状态0未删除 >0 已删除
];
}

View File

@ -7,4 +7,77 @@
* @author JaguarJack <njphper@gmail.com> * @author JaguarJack <njphper@gmail.com>
* @copyright By CatchAdmin * @copyright By CatchAdmin
* @license https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt * @license https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt
*/ */
namespace catchAdmin\wechat\model\search;
trait UserSearchTrait
{
/**
* 昵称搜索
* @time 2020年06月21日
* @param $query
* @param $value
* @param $data
* @return mixed
*/
public function searchNicknameAttr($query, $value, $data)
{
return $query->whereLike('nickname', $value);
}
/**
* 拉黑
*
* @time 2020年06月21日
* @param $query
* @param $value
* @param $data
* @return mixed
*/
public function searchBlockAttr($query, $value, $data)
{
return $query->where('block', $value);
}
/**
* 订阅
*
* @time 2020年06月21日
* @param $query
* @param $value
* @param $data
* @return mixed
*/
public function searchSubscribeAttr($query, $value, $data)
{
return $query->where('subscribe', $value);
}
/**
* 订阅开始
*
* @time 2020年06月21日
* @param $query
* @param $value
* @param $data
* @return mixed
*/
public function searchStartAtAttr($query, $value, $data)
{
return $query->where('subscribe_time', '>=', strtotime($value . ' 00:00:00'));
}
/**
* 订阅结束
*
* @time 2020年06月21日
* @param $query
* @param $value
* @param $data
* @return mixed
*/
public function searchEndAtAttr($query, $value, $data)
{
return $query->where('subscribe_time', '<=', strtotime($value . ' 23:59:59'));
}
}