goodsAgentAuth.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace app\modules\alliance\behaviors;
  3. use app\models\Admin;
  4. use app\models\AgentApply;
  5. use app\models\AgentBind;
  6. use app\models\SaasUser;
  7. use yii\base\ActionFilter;
  8. use yii\helpers\Json;
  9. use yii\web\Response;
  10. class goodsAgentAuth extends ActionFilter
  11. {
  12. // 不验证登录白名单
  13. const ALLOW_LIST = [];
  14. public function beforeAction($action)
  15. {
  16. $access_token = input_params('access_token');
  17. if (!$access_token && in_array(\Yii::$app->controller->getRoute(), self::ALLOW_LIST)) {
  18. return true;
  19. }
  20. $saas_user = SaasUser::findIdentityByAccessToken($access_token);
  21. if (empty($access_token) && $saas_user) {
  22. \Yii::$app->response->format = Response::FORMAT_JSON;
  23. \Yii::$app->response->data = [
  24. 'code' => 401,
  25. 'msg' => '登陆失败'
  26. ];
  27. return false;
  28. }
  29. if (!$saas_user) {
  30. \Yii::$app->response->format = Response::FORMAT_JSON;
  31. \Yii::$app->response->data = [
  32. 'code' => 401,
  33. 'msg' => '登陆失败'
  34. ];
  35. return false;
  36. }
  37. $admin = Admin::findOne(['type' => 'goods_agent', 'is_delete' => 0, 'saas_user_id' => $saas_user->id]);
  38. $agent_bind = AgentBind::findOne(['id' => $admin->type_id, 'type' => 1]);
  39. if (empty($admin) || empty($agent_bind)) {
  40. $agent_apply = AgentApply::findOne(['saas_user_id' => $saas_user->id, 'is_delete' => 0, 'agent_type' => 2]);
  41. if ($agent_apply) {
  42. if ((int)$agent_apply->status === 0) {
  43. \Yii::$app->response->format = Response::FORMAT_JSON;
  44. \Yii::$app->response->data = [
  45. 'code' => 1,
  46. 'msg' => '产品代理申请单信息审核中'
  47. ];
  48. return false;
  49. }
  50. if ((int)$agent_apply->status === 2) {
  51. \Yii::$app->response->format = Response::FORMAT_JSON;
  52. \Yii::$app->response->data = [
  53. 'code' => 1,
  54. 'msg' => '产品代理申请单信息审核未通过'
  55. ];
  56. return false;
  57. }
  58. }
  59. \Yii::$app->response->format = Response::FORMAT_JSON;
  60. \Yii::$app->response->data = [
  61. 'code' => 1,
  62. 'msg' => '当前用户没有申请产品代理信息'
  63. ];
  64. return false;
  65. } else {
  66. \Yii::$app->jwt->setAdmin($admin);
  67. \Yii::$app->response->format = Response::FORMAT_JSON;
  68. \Yii::$app->response->data = [
  69. 'code' => 0,
  70. 'msg' => '获取成功'
  71. ];
  72. return true;
  73. }
  74. }
  75. }