| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace app\modules\alliance\behaviors;
- use app\models\Admin;
- use app\models\SaasUser;
- use app\models\Supplier;
- use yii\base\ActionFilter;
- use yii\helpers\Json;
- use Yii;
- use yii\web\Response;
- class StoreUserAdmin extends ActionFilter
- {
- // 接口白名单
- public static $allow_list = [
- 'alliance/store-admin/get-cash-method',
- 'alliance/store-admin/add-cash-method',
- 'alliance/store-admin/cash-detail',
- 'alliance/store-admin/cash-detail-info'
- ];
- public function beforeAction($action)
- {
- $params_r = $_REQUEST['r'];
- if (in_array($params_r, self::$allow_list)) {
- return true;
- }
- try {
- $payload = Yii::$app->jwt->getPayload();
- } catch (\Exception $e) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- Yii::$app->response->data = [
- 'code' => 0,
- 'msg' => $e->getMessage(),
- 'status' => 401
- ];
- return false;
- }
- $store_admin_id = $payload['store_admin_id'];
- if ($store_admin_id > 0) {
- $store_admin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0]);
- if (empty($store_admin)) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- Yii::$app->response->data = [
- 'code' => 1,
- 'msg' => '登陆状态异常,请重新登陆'
- ];
- return false;
- }
- $where = [
- 'type' => Admin::ADMIN_TYPE_MINI_ADMIN, 'type_id' => $store_admin_id
- ];
- } else {
- $admin_id = $payload['admin_id'];
- $where = [
- 'type' => Admin::ADMIN_TYPE_STORE, 'id' => $admin_id
- ];
- }
- $admin = Admin::findOne(array_merge($where, ['is_delete' => 0]));
- Yii::$app->jwt->setAdmin($admin);
- return parent::beforeAction($action);
- }
- }
|