AuthController.php 4.2 KB

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