StoreUserAdmin.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace app\modules\alliance\behaviors;
  3. use app\models\Admin;
  4. use app\models\SaasUser;
  5. use app\models\Supplier;
  6. use yii\base\ActionFilter;
  7. use yii\helpers\Json;
  8. use Yii;
  9. use yii\web\Response;
  10. class StoreUserAdmin extends ActionFilter
  11. {
  12. // 接口白名单
  13. public static $allow_list = [
  14. 'alliance/store-admin/get-cash-method',
  15. 'alliance/store-admin/add-cash-method',
  16. 'alliance/store-admin/cash-detail',
  17. 'alliance/store-admin/cash-detail-info'
  18. ];
  19. public function beforeAction($action)
  20. {
  21. $params_r = $_REQUEST['r'];
  22. if (in_array($params_r, self::$allow_list)) {
  23. return true;
  24. }
  25. try {
  26. $payload = Yii::$app->jwt->getPayload();
  27. } catch (\Exception $e) {
  28. \Yii::$app->response->format = Response::FORMAT_JSON;
  29. Yii::$app->response->data = [
  30. 'code' => 0,
  31. 'msg' => $e->getMessage(),
  32. 'status' => 401
  33. ];
  34. return false;
  35. }
  36. $store_admin_id = $payload['store_admin_id'];
  37. if ($store_admin_id > 0) {
  38. $store_admin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0]);
  39. if (empty($store_admin)) {
  40. \Yii::$app->response->format = Response::FORMAT_JSON;
  41. Yii::$app->response->data = [
  42. 'code' => 1,
  43. 'msg' => '登陆状态异常,请重新登陆'
  44. ];
  45. return false;
  46. }
  47. $where = [
  48. 'type' => Admin::ADMIN_TYPE_MINI_ADMIN, 'type_id' => $store_admin_id
  49. ];
  50. } else {
  51. $admin_id = $payload['admin_id'];
  52. $where = [
  53. 'type' => Admin::ADMIN_TYPE_STORE, 'id' => $admin_id
  54. ];
  55. }
  56. $admin = Admin::findOne(array_merge($where, ['is_delete' => 0]));
  57. Yii::$app->jwt->setAdmin($admin);
  58. return parent::beforeAction($action);
  59. }
  60. }