| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace app\modules\client\behaviors;
- use app\models\SaasUser;
- use app\models\TeamGrades;
- use app\models\TeamGradesLevel;
- use app\models\User;
- use yii\base\ActionFilter;
- use yii\web\Response;
- class TeamGradesAuth extends ActionFilter
- {
- // 接口白名单
- public static $allow_list = [
- 'client/v1/team_grades/team-user-level/apply-submit',
- 'client/v1/team_grades/team-user-level/get-audit-info',
- 'client/v1/team_grades/team-user-level/get-upgrade-condition'
- ];
- public function beforeAction($action)
- {
- $params_r = $_REQUEST['r'];
- $store_id = get_params('store_id') ?: post_params('store_id');
- $access_token = get_params('access_token') ?: post_params('access_token');
- if (!$access_token) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => 'access_token 不能为空'
- ];
- return false;
- }
- $saasUser = SaasUser::findIdentityByAccessToken($access_token);
- if (!$saasUser) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败 获取不到用户信息'
- ];
- return false;
- }
- $user = User::findOne(['store_id' => $store_id, 'binding' => $saasUser->mobile, 'is_delete' => 0]);
- if (!$user) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败 获取不到商城用户信息'
- ];
- return false;
- }
- $teamGrades = TeamGrades::getUserTeamGrades($user->id);
- if (!empty($teamGrades['id'])) {
- $action->controller->teamGrades = $teamGrades;
- return true;
- }
- $teamGradesLevelList = TeamGradesLevel::getLevelList($store_id);
- if (empty($teamGradesLevelList)) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 1,
- 'msg' => '错误 系统未设置团队业绩分红等级'
- ];
- return false;
- }
- $is_open_apply = $teamGradesLevelList[0]['is_open_apply'];
- if ($is_open_apply) {
- if (in_array($params_r, self::$allow_list)) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 0,
- 'msg' => '错误 需要申请成为团队业绩分红会员',
- 'data' => [
- 'is_open_apply' => 1
- ]
- ];
- return false;
- }
- }
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 1,
- 'msg' => '错误 请先申请或升级成为团队业绩分红会员'
- ];
- return false;
- }
- }
|