BaseController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace shop\controllers;
  3. use biz\admin\services\AdminShopService;
  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 common\components\jwt;
  9. use Yii;
  10. use common\components\util;
  11. class BaseController extends PublicController
  12. {
  13. public $admin, $adminId, $adminAvatar, $account;
  14. public $merchantId = 0, $merchantName, $merchant, $merchantExtend, $merchantLogo, $signPackage;
  15. public $openMerchant, $openMerchantId;
  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. }
  53. //游客可以访问的方法
  54. if (in_array($action->id, $this->withoutLogin)) {
  55. $this->validate = true;
  56. }
  57. if ($this->validate == false) {
  58. util::notLogin('您还没有登陆哦');
  59. }
  60. $this->admin = $admin;
  61. $this->adminId = $adminId;
  62. $this->merchantId = $merchantId;
  63. $this->merchant = $merchant;
  64. $this->merchantExtend = $merchantExtend;
  65. return parent::beforeAction($action);
  66. }
  67. }