BaseController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace shop\controllers;
  3. use biz\admin\services\ShopAdminService;
  4. use biz\merchant\services\AdminService;
  5. use biz\merchant\services\MerchantExtendService;
  6. use biz\merchant\services\MerchantService;
  7. use biz\merchant\services\ShopService;
  8. use biz\wx\services\WxOpenService;
  9. use common\components\jwt;
  10. use Yii;
  11. use common\components\util;
  12. class BaseController extends PublicController
  13. {
  14. public $admin, $adminId, $adminAvatar, $account;
  15. public $merchantId = 0, $merchantName, $merchant, $merchantExtend, $merchantLogo, $signPackage, $shopId = 0;
  16. public $appId;
  17. public $isWx = false;
  18. public $isLogin = false;
  19. public $withoutLogin = [];//不需要登陆的方法名
  20. public $validate = true;
  21. //shish 2020.3.8
  22. public function beforeAction($action)
  23. {
  24. //token验证
  25. $adminId = jwt::getLoginId();
  26. $merchantId = 0;
  27. $merchant = [];
  28. $merchantExtend = [];
  29. $admin = [];
  30. if (empty($adminId)) {
  31. $this->validate = false;
  32. } else {
  33. $admin = AdminService::getById($adminId);
  34. if (empty($admin)) {
  35. util::fail('帐号无效');
  36. }
  37. $adminId = $admin['id'];
  38. $shopId = Yii::$app->redis->executeCommand('GET', ['LOGIN_ADMIN_SHOP' . $adminId]);
  39. //取不到门店id可能被清缓存,需要重新登陆,$shopId = 0 则表示非管理员,没有关联的门店,只可以访问官网
  40. if (is_numeric($shopId) == false) {
  41. util::notLogin('登陆已失效,请重新登陆');
  42. }
  43. if (!empty($shopId)) {
  44. $shop = ShopService::getById($shopId);
  45. if (empty($shop)) {
  46. util::fail('您所管理的门店已经跑到月球上去了');
  47. }
  48. $merchantId = $shop['merchantId'];
  49. $merchant = MerchantService::getMerchantById($merchantId);
  50. $merchantExtend = MerchantExtendService::getByMerchantId($merchantId);
  51. }
  52. $this->shopId = $shopId;
  53. }
  54. //游客可以访问的方法
  55. if (in_array($action->id, $this->withoutLogin)) {
  56. $this->validate = true;
  57. }
  58. if ($this->validate == false) {
  59. util::notLogin('您还没有登陆哦');
  60. }
  61. $this->admin = $admin;
  62. $this->adminId = $adminId;
  63. $this->merchantId = $merchantId;
  64. $this->merchant = $merchant;
  65. $this->merchantExtend = $merchantExtend;
  66. return parent::beforeAction($action);
  67. }
  68. }