| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- <?php
- namespace backend\controllers;
- use common\components\httpUtil;
- use common\components\jwt;
- use Yii;
- use yii\web\Controller;
- use yii\helpers\Json;
- use common\services\xhAdminService;
- use common\services\xhCommonService;
- use common\services\xhMerchantService;
- use common\components\util;
- use common\components\stringUtil;
- use common\components\qrCodeUtil;
- use common\services\xhAdminToMerchantService;
- class AdminController extends BackendController
- {
-
- public $withoutLogin = ['check-mobile'];
-
- /**
- * 生成管理员
- */
- public function actionGenerate()
- {
- $get = Yii::$app->request->get();
- $newAccountKey = isset($get['newAccount']) ? $get['newAccount'] : '';
- //解密获取新帐号
- $newAccount = urldecode(stringUtil::authcode($newAccountKey, 'DECODE'));
- if (empty($newAccount)) {
- util::stop('链接已经失效,请重新授权');
- }
- $session = Yii::$app->session;
- $session['usable_new_account'] = $newAccount;
- $relation = xhAdminToMerchantService::getByAdminId($this->adminId);
- if (!empty($relation)) {
- $this->redirect(['admin/result', 'account' => $this->merchant['id']]);
- util::end();
- }
- return $this->renderPartial('generate', ['admin' => $this->admin, 'merchant' => $this->merchant]);
- }
-
- /**
- * 检查手机是否已经生成管理员
- */
- public function actionCheckMobile()
- {
- $get = Yii::$app->request->get();
- $mobile = isset($get['mobile']) ? $get['mobile'] : '';
- $admin = xhAdminService::getByMobile($mobile);
- if (empty($admin)) {
- util::successInfo('可以使用');
- }
- util::failInfo('手机号已使用');
- }
-
- /**
- * 生成管理员,生成验证码
- */
- public function actionGenerateCode()
- {
- $get = Yii::$app->request->get();
- $mobile = isset($get['mobile']) ? $get['mobile'] : '';
- if (preg_match("/^1[0-9]\d{9}$/", $mobile) == false) {
- util::failInfo('手机号填写有误');
- }
- $admin = xhAdminService::getByMobile($mobile);
- if (!empty($admin)) {
- util::failInfo('这个手机号已经使用过了');
- }
- $session = Yii::$app->session;
- $now = time();
- if (isset($session['authCode']) == false || ($now - $session['authCodeTime']) > 120) {
- $num = stringUtil::getRandNum(5);
- $session['authCode'] = $num;
- $session['authCodeTime'] = time();
- $msg = "您正在设置管理员,验证码:" . $num;
- xhCommonService::sendMobileMsg($mobile, $msg);
- util::successInfo();
- }
- }
-
- /**
- * 检测验证码
- */
- public function actionCheckCode()
- {
- $get = Yii::$app->request->get();
- $authCode = isset($get['authCode']) ? $get['authCode'] : '';
- $session = Yii::$app->session;
- if (isset($session['authCode']) && $authCode == $session['authCode']) {
- util::successInfo('');
- }
- util::failInfo('验证号不正确');
- }
-
- public function actionResult()
- {
- return $this->renderPartial('result', ['merchant' => $this->merchant]);
- }
-
- /**
- * 绑定
- */
- public function actionBinding()
- {
- $post = Yii::$app->request->post();
- $session = Yii::$app->session;
- if (isset($session['usable_new_account']) == false || empty($session['usable_new_account'])) {
- util::failInfo('授权已经失效,请重新授权');
- }
- if (isset($session['authCode']) == false) {
- util::failInfo('没有验证码');
- }
- $code = isset($post['code']) ? $post['code'] : '';
- if ($code != $session['authCode']) {
- util::failInfo('验证码不正确');
- }
- $mobile = isset($post['mobile']) ? $post['mobile'] : '';
- if (stringUtil::isMobieNumber($mobile) == false) {
- util::failInfo('手机号填写有误');
- }
- $admin = xhAdminService::getByMobile($mobile);
- if (!empty($admin)) {
- util::failInfo('手机号已经被使用');
- }
- $relation = xhAdminToMerchantService::getByAdminId($this->adminId);
- if (!empty($relation)) {
- util::failInfo('管理员已经绑定商家');
- }
- $newAccount = $session['usable_new_account'];
- $newMerchant = xhMerchantService::getByAccount($newAccount);
- if (empty($newMerchant)) {
- util::failInfo('商家信息不完整');
- }
- $merchantId = $this->merchant['id'];
- $account = $this->merchant['id'];
- $adminId = $this->adminId;
- $data['mobile'] = $mobile;
- $data['password'] = md5($post['password']);
- xhAdminService::updateById($adminId, $data);
- $addAdminData = ['merchantId' => $newMerchant['id'], 'adminId' => $this->adminId, 'receiveMsg' => 1, 'createTime' => date("Y-m-d H:i:s")];
- xhAdminToMerchantService::add($addAdminData);
- unset($session['usable_new_account']);
- util::successInfo('设置成功');
- }
-
- public function actionGetReplaceQrCode()
- {
- $get = Yii::$app->request->get();
- $url = Yii::$app->params['adminUrl'] . '/admin/replace?account=' . $this->merchant['id'];
- $logo = Yii::getAlias("@app") . '/../images' . $this->merchant['logo'];//取商家的logo
- $imgUrl = qrCodeUtil::generateFixQrCode($url, 'backend_replace_admin_url_' . $this->merchant['id'], $logo);
- xhAdminService::logout();
- echo Json::encode(['code' => 'A0001', 'msg' => 'success', 'data' => ['url' => $imgUrl]]);
- }
-
- /**
- * 替换页
- */
- public function actionReplace()
- {
- if ($this->isWeixin == false) {
- util::stop('请使用微信访问');
- }
- $preAdmin = xhAdminToMerchantService::getAdminByMerchantId($this->merchantId);
- $preAdminId = $preAdmin['id'];
- $newAdminId = $this->adminId;
- if ($newAdminId == $preAdminId) {
- util::stop('您已经绑定过了');
- }
- $relation = xhAdminToMerchantService::getByAdminId($newAdminId);
- if (!empty($relation)) {
- util::stop('您的微信已经绑定商家,请先解除绑定');
- }
- return $this->renderPartial('replace', ['preAdmin' => $preAdmin]);
- }
-
- /**
- * 显示新管理员页
- */
- public function actionExecReplace()
- {
- $get = Yii::$app->request->get();
- $replaceAdminAuthCode = isset($get['replaceAdminAuthCode']) ? $get['replaceAdminAuthCode'] : '';
- $admin = $this->admin;
- return $this->renderPartial('execReplace', ['replaceAdminAuthCode' => $replaceAdminAuthCode, 'admin' => $admin]);
- }
-
- /**
- * 更换管理员生成验证码
- */
- public function actionRelaceAdminGenerateCode()
- {
- $get = Yii::$app->request->get();
- $preAdmin = xhAdminToMerchantService::getAdminByMerchantId($this->merchantId);
- $mobile = $preAdmin['mobile'];
- $session = Yii::$app->session;
- $now = time();
- if (isset($session['replaceAdminAuthCode']) == false || ($now - $session['replaceAdminAuthCodeTime']) > 120) {
- $num = stringUtil::getRandNum(5);
- $session['replaceAdminAuthCode'] = $num;
- $session['replaceAdminAuthCodeTime'] = time();
- $msg = "您正在更换管理员,验证码:" . $num;
- xhCommonService::sendMobileMsg($mobile, $msg);
- util::successInfo();
- }
- }
-
- /**
- * 检查验证码
- */
- public function actionCheckRelaceAdminGenerateCode()
- {
- $get = Yii::$app->request->get();
- $authCode = isset($get['authCode']) ? $get['authCode'] : '';
- $session = Yii::$app->session;
- if (isset($session['replaceAdminAuthCode']) && $authCode == $session['replaceAdminAuthCode']) {
- util::successInfo('');
- }
- util::failInfo('验证号不正确');
- }
-
- public function actionAjaxExecReplace()
- {
- $post = Yii::$app->request->post();
- $replaceAdminAuthCode = isset($post['replaceAdminAuthCode']) ? $post['replaceAdminAuthCode'] : '';
- $code = isset($post['code']) ? $post['code'] : '';
- $mobile = isset($post['mobile']) ? $post['mobile'] : '';
- $password = isset($post['password']) ? $post['password'] : '';
- $session = Yii::$app->session;
- if (isset($session['replaceAdminAuthCode']) == false || $session['replaceAdminAuthCode'] != $replaceAdminAuthCode) {
- util::stop('验证码已经失效了');
- }
- if (isset($session['authCode']) == false || $session['authCode'] != $code) {
- util::stop('验证码已经失效');
- }
- $preAdmin = xhAdminToMerchantService::getAdminByMerchantId($this->merchantId);
- $preAdminId = $preAdmin['id'];
- $newAdminId = $this->adminId;
- $relation = xhAdminToMerchantService::getByAdminId($newAdminId);
- if (!empty($relation)) {
- util::stop('您的微信已经绑定商家了,请先解除绑定');
- }
- //删除原有管理关系
- xhAdminToMerchantService::delByAdminId($preAdminId);
- //更新原管理员信息
- xhAdminService::updateById($preAdminId, ['mobile' => '', 'password' => '']);
- //添加新管理员
- xhAdminToMerchantService::add(['adminId' => $newAdminId, 'merchantId' => $this->merchantId, 'createTime' => date("Y-m-d H:i:s"), 'receiveMsg' => 1]);
- //更新管理员的信息
- xhAdminService::updateById($newAdminId, ['mobile' => $mobile, 'password' => md5($password)]);
- unset($session['replaceAdminAuthCode']);
- unset($session['authCode']);
- util::successInfo();
- }
-
- public function actionReplaceResult()
- {
- return $this->renderPartial('replaceResult');
- }
-
- //退出 shish 2019.11.24
- public function actionLogout()
- {
- $token = httpUtil::getToken();
- $r = jwt::delToken($token, $this->adminId);
- if ($r) {
- util::ok();
- }
- util::fail('没有退出');
- }
-
- }
|