<?php /** * Adminer.class.php * 后台管理员接口操作类 * * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @copyright Copyright (c) 2014 - ? VcySDK (http://www.vchangyi.com/) * @author zhuxun37 * @version 1.0.0 */ namespace VcySDK; use VcySDK\Logger; use VcySDK\Config; class Adminer { // 超级管理员标识 const SUPER_MANAGER = 15; // 登陆用系统(超级)管理员标识 const SUPER_MANAGER_LOGIN = 1; // 管理员没被禁用(正常) const MANAGER_ABLE_LOGIN = 1; // 管理员被禁用 const MANAGER_DISABLE_LOGIN = 2; // 返回所有管理员 const FILTER_TYPE_ALL = 1; // 返回已经补全手机号码的管理员 const FILTER_TYPE_MOBILE = 2; /** * 验证新密码是否在过去使用过 */ const CHECK_OLD_PASSWORD_TRUE = 1; const CHECK_OLD_PASSWORD_FALSE = 2; // 管理员邀请邮件模板名 const INVITE_EMAIL_TYPE_INVITE = 'yq_invite_mail'; // 管理员已激活 const IS_ACTIVATED = 1; /** * 超级管理员标识 */ const TYPE_SUPER_ADMIN = 1; /** * 管理级别:超级管理 */ const ADMIN_LEVEL_SUPER = 1; /** * 管理级别:分级管理 */ const ADMIN_LEVEL_BRANCH = 2; /** * 接口调用类 * * @var object|Service */ private $serv = null; /** * 企业管理员新增 * %s = {apiUrl}/b/{enumber}/adminer/register * * @var string */ const REGISTER_URL = '%s/adminer/register'; /** * 编辑企业管理员 * %s = {apiUrl}/b/{enumber}/adminer/modify * * @var string */ const MODIFY_URL = '%s/adminer/modify'; /** * 删除企业管理员 * %s = {apiUrl}/b/{enumber}/adminer/del * * @var string */ const DEL_URL = '%s/adminer/del'; /** * 获取企业管理员详情 * %s = {apiUrl}/b/{enumber}/adminer/detail * * @var string */ const GET_URL = '%s/adminer/detail'; /** * 获取企业管理员列表 * %s = {apiUrl}/b/{enumber}/adminer/page-list * * @var string */ const LIST_URL = '%s/adminer/page-list'; /** * 修改企业管理员密码 * %s = {apiUrl}/b/{enumber}/adminer/modify-pwd * * @var string */ const MODIFY_PWD_URL = '%s/adminer/modify-pwd'; /** * 管理员登录记录 * %s = {apiUrl}/b/{enumber}/adminer/login-log * * @var string */ const LOGIN_LOG_URL = '%s/adminer/login-log'; /** * 管理员密码验证 * %s = {apiUrl}/s/login/check-pwd * * @var string */ const CHECK_PWD_URL = '%s/login/check-pwd'; /** * 验证手机号是否已被绑定 * %s = {apiUrl}/b/{enumber}/adminer/valid-bind-mobile * * @var string */ const VALID_BIND_MOBILE = '%s/adminer/valid-bind-mobile'; /** * 验证手机号是否可以绑定(单点登录绑定手机号使用) * %s = {apiUrl}/b/{enumber}/valid-mobile-can-bind * * @var string */ const VALID_CAN_BIND_MOBILE = '%s/adminer/valid-mobile-can-bind'; /** * 管理员绑定手机号(单点登录) * %s = {apiUrl}/b/{enumber}/adminer/bind-mobile * * @var string */ const BIND_MOBILE = '%s/adminer/bind-mobile'; /** * 完善超级管理员信息 * %s = {apiUrl}/b/{enumber}/adminer/complete-owner-info * * @var string */ const COMPLETE_OWNER_INFO = '%s/adminer/complete-owner-info'; /** * 根据手机号查询所属全部企业、管理员列表 * %s = {apiUrl}/b/{enumber}/adminer/enterprise-adminer-list * * @var string */ const ENTERPRISE_ADMINER_LIST = '%s/adminer/enterprise-adminer-list'; /** * 重置管理员密码 * %s = {apiUrl}/b/{enumber}/adminer/reset-adminer-pwd * * @var string */ const RESET_ADMINER_PWD = '%s/adminer/reset-adminer-pwd'; /** * 移交超级管理员 * %s = {apiUrl}/b/{enumber}/adminer/transfer-super-admin * * @var string */ const TRANSFER_SUPER_ADMIN = '%s/adminer/transfer-super-admin'; /** * 获取微信登录URL * %s = {apiUrl}/b/{enumber}/adminer/wx-login-url * * @var string */ const WECHAT_LOGIN_URL = '%s/adminer/wx-login-url'; /** * 管理员密码验证 * %s = {apiUrl}/s/qy/login/go-wx-manager-page * * @var string */ const GOTO_WX_MANAGER_PAGE = '%s/qy/login/go-wx-manager-page'; /** * 企业管理员,角色总数 */ const ADMINER_AND_ROLE_TOTAL = '%s/statistics/manager'; /** * 企业管理员,角色总数 */ const INVITE_SEND_INVITATION = '%s/adminer/invite/send-invitation'; /** * 企业管理员邀请-验证邀请有效性 */ const INVITE_INVITATION_ACTIVE = '%s/adminer/invite/invitation-active'; /** * 企业管理员邀请-设置管理员密码(初始化管理员密码) */ const INIT_SET_PASSWORD = '%s/adminer/set-pwd'; /** * 根据用户 UID 换取绑定的管理员详情 */ const ADMINER_SECURITY_DETAIL = '%s/adminer/security/detail'; /** * 初始化 * * @param object $serv 接口调用类 */ public function __construct($serv) { $this->serv = $serv; } /** * 获取微信后台登录地址 * * @param array $data 请求参数 * * @return string * @throws Exception */ public function getWechatManagerPageUrl($data = array()) { $url = $this->serv->generateApiUrlS(self::GOTO_WX_MANAGER_PAGE); if (! empty($data) && is_array($data)) { $url = $url . (false === stripos($url, '?') ? '?' : '&') . http_build_query($data); } return $url; } /** * @param array $adminer 管理员信息 * * @return bool|mixed * @throws Exception */ public function register($adminer) { return $this->serv->postSDK(self::REGISTER_URL, $adminer, 'generateApiUrlE'); } /** * @param array $adminer 管理员信息 * * @return bool|mixed * @throws Exception */ public function modify($adminer) { return $this->serv->postSDK(self::MODIFY_URL, $adminer, 'generateApiUrlE'); } /** * 删除管理员信息 * * @param $condition * + string eaId 管理员ID * * @return bool|mixed * @throws Exception */ public function del($condition) { return $this->serv->postSDK(self::DEL_URL, $condition, 'generateApiUrlE'); } /** * @param array $condition 管理员查询条件 * * @return bool|mixed * @throws Exception */ public function fetch($condition) { return $this->serv->postSDK(self::GET_URL, $condition, 'generateApiUrlE'); } /** * 获取企业管理员列表 * * @param array $condition 查询条件数据 * @param mixed $orders 排序字段 * @param int $page 当前页码 * @param int $perpage 每页记录数 * * @return boolean|multitype: */ public function listAll($condition = array(), $page = 1, $perpage = 30, $orders = array()) { // 查询参数 $condition = $this->serv->mergeListApiParams($condition, $orders, $page, $perpage); return $this->serv->postSDK(self::LIST_URL, $condition, 'generateApiUrlE'); } /** * @param array $condition 更新信息 * * @return bool|mixed * @throws Exception */ public function modifyPWD($condition) { return $this->serv->postSDK(self::MODIFY_PWD_URL, $condition, 'generateApiUrlE'); } /** * 管理员登录记录 * * @param $condition * + string eaId 管理员ID * + int ealErrcode 登录错误码 * + string ealErrmsg 登录错误详情 * + string eaIp 最近一次登录IP * + int eaLastlogin 最近一次登录时间戳 * * @return bool|mixed * @throws Exception */ public function loginLog($condition) { return $this->serv->postSDK(self::LOGIN_LOG_URL, $condition, 'generateApiUrlE'); } /** * 管理员密码验证 * * @param $data * + string eaMobile 登录手机号, eaMobile和eaEmail不能同时为空,eaMobile不为空时,忽略eaEmail * + string eaEmail 登录邮箱,eaMobile和eaEmail不能同时为空,,eaMobile不为空时,忽略eaEmail * + string eaPassword 登录密码,非明文传递,业务md5(明文)处理一次 * * @return bool|mixed * @throws Exception */ public function checkPwd($data) { return $this->serv->postSDK(self::CHECK_PWD_URL, $data, 'generateApiUrlS'); } /** * 验证手机号是否已被绑定 * * @param $data * + string eaMobile 需要绑定的手机号 * + string epEnumber 企业帐号,不为空时,验证所传企业当前手机号是否已被绑定(单企业唯一性); 否则验证系统全局唯一性 * * @return bool|mixed * @throws Exception */ public function validMoblie($data) { return $this->serv->postSDK(self::VALID_BIND_MOBILE, $data, 'generateApiUrlS'); } /** * 绑定手机 * * @param $data * + string eaId 管理员ID * + string eaMobile 需要绑定的手机号 * + string eaPassword 管理员登录密码, 非明文,业务平台需md5(明文)一次 * * @return bool|mixed * @throws Exception */ public function bindMobile($data) { return $this->serv->postSDK(self::BIND_MOBILE, $data, 'generateApiUrlE'); } /** * 验证手机号是否可以绑定(单点登录绑定手机号使用) * * @param $data * + string eaMobile 需要绑定的手机号 * * @return bool|mixed * @throws Exception */ public function validMobileBind($data) { return $this->serv->postSDK(self::VALID_CAN_BIND_MOBILE, $data, 'generateApiUrlE'); } /** * 完善账号信息 * * @return bool|mixed * @throws Exception */ public function completeOwnerInfo($data) { return $this->serv->postSDK(self::COMPLETE_OWNER_INFO, $data, 'generateApiUrlE'); } /** * 根据手机号查询所属全部企业、管理员列表 * * @return bool|mixed * @throws Exception */ public function enterpriseAdminerList($data) { return $this->serv->postSDK(self::ENTERPRISE_ADMINER_LIST, $data, 'generateApiUrlS'); } /** * 移交超级管理员 * * @param array $data 移交目标数据 * + transferAdminType 移交超管类型 1-选择已存在的管理员, 2-新增管理员移交 * + newSuperEaId 被移交的管理员ID, transferAdminType=1时必须 * + eaMobile 新增管理员手机号, transferAdminType=2时必须 * + eaRealname 新增管理员姓名, transferAdminType=2时必须 * + eaPassword 新增管理员密码, transferAdminType=2时必须 * + eaEmail 新增管理员邮箱 * * @return array|bool * @throws Exception */ public function transferSuperAdmin($data) { return $this->serv->postSDK(self::TRANSFER_SUPER_ADMIN, $data, 'generateApiUrlE'); } /** * 重置管理员密码 * * @return bool|mixed * @throws Exception */ public function resetAdminerPwd($data) { return $this->serv->postSDK(self::RESET_ADMINER_PWD, $data, 'generateApiUrlE'); } /** * 获取登录URL * * @param array $data 请求数据 * * @return array|bool * @throws Exception */ public function wechatLoginUrl($data) { return $this->serv->postSDK(self::WECHAT_LOGIN_URL, $data, 'generateApiUrlE'); } /** * 企业管理员,角色总数 * @return array|bool * @throws Exception */ public function adminerAndRoleTotal() { return $this->serv->postSDK(self::ADMINER_AND_ROLE_TOTAL, [], 'generateApiUrlE'); } /** * 企业管理员-发送邀请邮件、短信接口(异步) * @param params * 字段名 | 是否必填 | 字段类型 | 说明 * eaId 是 String 管理员ID * aiaToken 是 String 邀请链接token, 业务自己生成,单企业唯一 * mcTplName 是 String 邮件模板名称 * mcSubject 是 String 邮件标题 * mcVars 否 Object 邮件内容变量键值 * smsMessage 是 String 短信内容,邀请链接地址需要格式成段地址 * @return array|bool * @throws Exception */ public function inviteSendInvitation($params) { return $this->serv->postSDK(self::INVITE_SEND_INVITATION, $params, 'generateApiUrlE'); } /** * 验证邀请有效性 * @param $params * + aiaToken String 邀请token * @return array|bool */ public function inviteInvitationActive($params) { return $this->serv->postSDK(self::INVITE_INVITATION_ACTIVE, $params, 'generateApiUrlE'); } /** * 设置管理员密码(初始化管理员密码) * @param $params * @return array|bool */ public function initPwd($params) { return $this->serv->postSDK(self::INIT_SET_PASSWORD, $params, 'generateApiUrlE'); } /** * 根据用户 UID 换取绑定的管理员详情 * @param $userId * @return array|bool * @throws Exception */ public function getAdminerDetailByUid($userId) { return $this->serv->postSDK(self::ADMINER_SECURITY_DETAIL, ['userId' => $userId], 'generateApiUrlE'); } }