TeamGradesAuth.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\modules\client\behaviors;
  3. use app\models\SaasUser;
  4. use app\models\TeamGrades;
  5. use app\models\TeamGradesLevel;
  6. use app\models\User;
  7. use yii\base\ActionFilter;
  8. use yii\web\Response;
  9. class TeamGradesAuth extends ActionFilter
  10. {
  11. // 接口白名单
  12. public static $allow_list = [
  13. 'client/v1/team_grades/team-user-level/apply-submit',
  14. 'client/v1/team_grades/team-user-level/get-audit-info',
  15. 'client/v1/team_grades/team-user-level/get-upgrade-condition'
  16. ];
  17. public function beforeAction($action)
  18. {
  19. $params_r = $_REQUEST['r'];
  20. $store_id = get_params('store_id') ?: post_params('store_id');
  21. $access_token = get_params('access_token') ?: post_params('access_token');
  22. if (!$access_token) {
  23. \Yii::$app->response->format = Response::FORMAT_JSON;
  24. \Yii::$app->response->data = [
  25. 'code' => 401,
  26. 'msg' => 'access_token 不能为空'
  27. ];
  28. return false;
  29. }
  30. $saasUser = SaasUser::findIdentityByAccessToken($access_token);
  31. if (!$saasUser) {
  32. \Yii::$app->response->format = Response::FORMAT_JSON;
  33. \Yii::$app->response->data = [
  34. 'code' => 401,
  35. 'msg' => '登录失败 获取不到用户信息'
  36. ];
  37. return false;
  38. }
  39. $user = User::findOne(['store_id' => $store_id, 'binding' => $saasUser->mobile, 'is_delete' => 0]);
  40. if (!$user) {
  41. \Yii::$app->response->format = Response::FORMAT_JSON;
  42. \Yii::$app->response->data = [
  43. 'code' => 401,
  44. 'msg' => '登录失败 获取不到商城用户信息'
  45. ];
  46. return false;
  47. }
  48. $teamGrades = TeamGrades::getUserTeamGrades($user->id);
  49. if (!empty($teamGrades['id'])) {
  50. $action->controller->teamGrades = $teamGrades;
  51. return true;
  52. }
  53. $teamGradesLevelList = TeamGradesLevel::getLevelList($store_id);
  54. if (empty($teamGradesLevelList)) {
  55. \Yii::$app->response->format = Response::FORMAT_JSON;
  56. \Yii::$app->response->data = [
  57. 'code' => 1,
  58. 'msg' => '错误 系统未设置团队业绩分红等级'
  59. ];
  60. return false;
  61. }
  62. $is_open_apply = $teamGradesLevelList[0]['is_open_apply'];
  63. if ($is_open_apply) {
  64. if (in_array($params_r, self::$allow_list)) {
  65. \Yii::$app->response->format = Response::FORMAT_JSON;
  66. \Yii::$app->response->data = [
  67. 'code' => 0,
  68. 'msg' => '错误 需要申请成为团队业绩分红会员',
  69. 'data' => [
  70. 'is_open_apply' => 1
  71. ]
  72. ];
  73. return false;
  74. }
  75. }
  76. \Yii::$app->response->format = Response::FORMAT_JSON;
  77. \Yii::$app->response->data = [
  78. 'code' => 1,
  79. 'msg' => '错误 请先申请或升级成为团队业绩分红会员'
  80. ];
  81. return false;
  82. }
  83. }