AuthController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace addons\Happiness\client\controllers;
  3. use addons\Happiness\common\models\HappinessStoreAdmin;
  4. use common\models\backend\Admin;
  5. use common\models\mall\Mall;
  6. use common\traits\BaseControllerTrait;
  7. use common\traits\ErrorTrait;
  8. use Yii;
  9. use yii\filters\AccessControl;
  10. use yii\web\Controller;
  11. /**
  12. * 管理员
  13. * @Author bing
  14. * @DateTime 2021-08-11 17:22:39
  15. * @copyright: Copyright (c) 2020 广东七件事集团
  16. */
  17. class AuthController extends Controller
  18. {
  19. public $layout = false;
  20. use ErrorTrait;
  21. use BaseControllerTrait;
  22. public $mall = null;
  23. public $mall_id = 0;
  24. public $store_id = 0;
  25. public $admin = null;
  26. public $enableCsrfValidation = false;
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public function behaviors()
  31. {
  32. return [
  33. 'access' => [
  34. 'class' => AccessControl::class,
  35. 'rules' => [
  36. [
  37. 'actions' => ['login','logout', 'error', 'captcha','register','register-sms-code'],
  38. 'allow' => true,
  39. ],
  40. ],
  41. ],
  42. ];
  43. }
  44. public function actions()
  45. {
  46. return [
  47. 'error' => [
  48. 'class' => 'yii\web\ErrorAction',
  49. ],
  50. 'captcha' => [
  51. 'class' => 'common\components\CaptchaAction',
  52. 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
  53. 'maxLength' => 5, // 最大显示个数
  54. 'minLength' => 5, // 最少显示个数
  55. 'padding' => 5, // 间距
  56. 'height' => 32, // 高度
  57. 'width' => 100, // 宽度
  58. 'offset' => 4, // 设置字符偏移量
  59. 'backColor' => 0xffffff, // 背景颜色
  60. 'foreColor' => 0x2F4F4F, // 字体颜色
  61. ]
  62. ];
  63. }
  64. /**
  65. * 登录
  66. * @Author bing
  67. * @DateTime 2021-08-11 18:45:46
  68. * @copyright: Copyright (c) 2020 广东七件事集团
  69. * @return void
  70. */
  71. public function actionLogin()
  72. {
  73. if (!Yii::$app->happiness_store_user->isGuest) {
  74. // 记录行为日志
  75. // Yii::$app->services->actionLog->create('login', '自动登录', false);
  76. $sign = Yii::$app->request->get('sign');
  77. $route = 'happiness/client/index/index';
  78. if(!empty($sign)){
  79. $redirect_url = \Yii::$app->urlManager->createAbsoluteUrl([$route,'sign'=>$sign]);
  80. }else{
  81. $redirect_url = \Yii::$app->urlManager->createAbsoluteUrl($route);
  82. }
  83. return $this->redirect($redirect_url);
  84. }
  85. if(Yii::$app->request->isPost){
  86. $post = Yii::$app->request->post();
  87. $res = self::checkRequireParam($post,['captcha','username','admin_type','sign','is_remember']);
  88. if($res === false) return $this->error(self::getStaticError());
  89. if (YII_ENV != 'dev'){
  90. if (!$this->createAction('captcha')->validate($post['captcha'], false)) return $this->error('验证码错误');
  91. }
  92. $mall = Mall::findOne(['mall_sign'=>$post['sign']]);
  93. if(empty($mall)) $this->error('门店商城不存在');
  94. $post['mall_id'] = $mall['id'];
  95. $data = HappinessStoreAdmin::login($post);
  96. if($data === false) return $this->error(Admin::getStaticError());
  97. return $this->success('登录成功',$data);
  98. }
  99. $system = \Yii::$app->services->setting->platform->get('system',true);
  100. return $this->render($this->action->id,compact('system'));
  101. }
  102. /**
  103. * 退出登录
  104. * @Author bing
  105. * @DateTime 2021-08-11 18:45:57
  106. * @copyright: Copyright (c) 2020 广东七件事集团
  107. * @return void
  108. */
  109. public function actionLogout()
  110. {
  111. $mall_id = Yii::$app->happiness_store_user->identity->mall_id;
  112. $mall = Mall::findOne(['id'=>$mall_id]);
  113. Yii::$app->store_user->logout();
  114. Yii::$app->session->set('mall',null);
  115. $redirect_url = \Yii::$app->urlManager->createAbsoluteUrl(['happiness/client/auth/login','sign'=>$mall['mall_sign'] ]);
  116. return $this->success('操作成功',['url'=>$redirect_url]);
  117. }
  118. }