isMch($action, $select)){ return $this->mchAdmin($select); } // $access_token = input_params('access_token'); // $saas_user = SaasUser::find()->where(['access_token' => $access_token])->select('id, mobile')->asArray()->one(); // if (empty($saas_user['mobile'])) { // \Yii::$app->response->data = Json::encode([ // 'code' => 1, // 'msg' => '获取不到用户信息。' // ]); // return false; // } $access_token = input_params('access_token'); $saas_user = SaasUser::findIdentityByAccessToken($access_token); if (empty($access_token) && $saas_user) { \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 401, 'msg' => '登陆失败' ]; return false; } if (!$saas_user) { \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 401, 'msg' => '登陆失败' ]; return false; } $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) { $StoreMiniAdmin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0, 'store_id' => get_store_id()]); } else { if (!empty($payload['admin_id'])) { $StoreMiniAdmin = \app\models\Admin::findOne(['id' => $payload['admin_id'], 'is_delete' => 0]); } } if (empty($StoreMiniAdmin)) { \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 1, 'msg' => '您不是该商城管理员。' ]; return false; } // $User = User::find()->where(['binding' => $saas_user['mobile'], 'is_delete' => 0, 'store_id' => get_store_id()])->select('id, is_admin')->one(); // if ((int)$User->is_admin === 0) { // \Yii::$app->response->data = Json::encode([ // 'code' => 1, // 'msg' => '您不是该商城管理员。' . get_user()->is_admin // ]); // return false; // } $store = Store::findOne(get_store_id()); if ($store->end_time < time() && !empty((float)$store->open_price) && !empty((float)$store->renew_price)) { \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 1, 'msg' => '商城已过期,请及时联系管理员进行续费。' ]; return false; } return true; } public function isMch($action, &$select = 0) { // $_GET['is_mch'] = 1; $key = implode('_', ['store-admin', 'isMch', get_store_id(), get_user_id()]); $keySelect = implode('_', ['store-admin', 'mch-select', get_store_id(), get_user_id()]); $is_mch = (int)input_params('is_mch'); $mch_select = (int)input_params('mch_select'); if($action->id == 'store-info'){ cache()->set($key, $is_mch); cache()->set($keySelect, $mch_select); } if(!$is_mch){ $is_mch = (int)cache()->get($key); } if($is_mch){ $mch_select = (int)cache()->get($keySelect); } $select = $mch_select; return $is_mch; } public function mchAdmin($select = 0) { $user_id = get_user_id(); $mch = \app\models\Mch::find()->where(['user_id' => $user_id, 'store_id' => get_store_id(), 'is_delete' => 0])->indexBy('id')->all(); // 这里要判断用户是不是入住商的员工 $staff = MchStaff::find()->where(['is_delete' => 0, 'user_id' => $user_id, 'store_id' => get_store_id()])->select(['mch_id'])->column(); if($staff){ $mchStaff = \app\models\Mch::find()->where(['is_delete' => 0,'store_id' => get_store_id(),'id' => $staff])->indexBy('id')->all(); $mch = array_merge($mch,$mchStaff); } if(!$mch){ \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 5, 'msg' => '您不是入驻商管理员。', ]; return false; } if(count($mch) > 1 && !$select){ \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 2, 'msg' => '请选择店铺。', 'data' => $mch, ]; return false; } $this->owner->mch = $select ? ($mch[$select] ?? array_shift($mch)) : array_shift($mch); return true; } }