Ver Fonte

relate id

shish há 6 anos atrás
pai
commit
0ab27d3bb7

+ 13 - 5
app/shop/controllers/AuthController.php

@@ -2,6 +2,7 @@
 
 namespace shop\controllers;
 
+use biz\admin\services\AdminRelateService;
 use biz\admin\services\AdminService;
 use biz\auth\services\AuthService;
 use biz\user\classes\UserClass;
@@ -157,7 +158,7 @@ class AuthController extends PublicController
 		$token = jwt::getNewToken($adminId);
 		util::success(['token' => $token, 'account' => $admin['merchantId'], 'merchantId' => $admin['merchantId']]);
 	}
-
+	
 	//静默获取小程序用户信息
 	public function actionMiniInfo()
 	{
@@ -176,6 +177,8 @@ class AuthController extends PublicController
 		$result = $curl->get($url);
 		$arr = Json::decode($result);
 		$sessionKey = isset($arr['session_key']) ? $arr['session_key'] : '';
+		$cacheKey = 'SHOP_MINI_SESSION_KEY_' . $openid;
+		Yii::$app->redis->executeCommand('SET', [$cacheKey, $sessionKey]);
 		$openid = isset($arr['openid']) ? $arr['openid'] : '';
 		if (empty($openid)) {
 			Yii::info(json_encode($arr));
@@ -184,15 +187,20 @@ class AuthController extends PublicController
 		//用户来源
 		$userSource = UserClass::$userSourceId['mini']['name'];
 		$admin = AdminService::getByMiniOpenId($openid);
+		$relateId = 0;
 		if (empty($admin)) {
 			$adminInfo = ['miniOpenId' => $openid];
 			Yii::info(json_encode($adminInfo));
 			$admin = AdminService::replaceAdmin($adminInfo, $userSource);
+			$adminId = $admin['id'];
+		} else {
+			$adminId = $admin['id'];
+			$relate = AdminRelateService::getByCondition(['adminId' => $adminId]);
+			$relateId = isset($relate['id']) ? $relate['id'] : 0;
 		}
-		$cacheKey = 'SHOP_MINI_SESSION_KEY_' . $openid;
-		Yii::$app->redis->executeCommand('SET', [$cacheKey, $sessionKey]);
-		$userId = $admin['id'];
-		$token = jwt::getNewToken($userId);
+		//管理员关联商家
+		Yii::$app->redis->executeCommand('SET', ['ADMIN_RELATION_' . $adminId, $relateId]);
+		$token = jwt::getNewToken($adminId);
 		util::success(['token' => $token, 'admin' => $admin]);
 	}
 	

+ 6 - 0
app/shop/controllers/BaseController.php

@@ -33,6 +33,12 @@ class BaseController extends PublicController
 			if (empty($admin)) {
 				util::fail('帐号无效');
 			}
+			$adminId = $admin['id'];
+			$relateId = Yii::$app->redis->executeCommand('GET', ['ADMIN_RELATION_' . $adminId]);
+			//不是数字可能被清缓存,需要重新登陆,$relateId = 0 表示没有关联商家
+			if (is_numeric($relateId) == false) {
+				util::notLogin();
+			}
 			$merchantId = $admin['merchantId'];
 			if (empty($merchantId)) {
 				util::fail('没有找到商家信息');

+ 15 - 0
biz/admin/classes/AdminRelateClass.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\admin\classes;
+
+use biz\user\classes\UserClass;
+use common\components\util;
+use Yii;
+use biz\base\classes\BaseClass;
+
+class AdminRelateClass extends BaseClass
+{
+
+	public static $baseFile = '\biz\admin\models\AdminRelate';
+
+}

+ 15 - 0
biz/admin/models/AdminRelate.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\admin\models;
+
+use biz\base\models\Base;
+
+class AdminRelate extends Base
+{
+	
+	public static function tableName()
+	{
+		return 'xhAdminRelate';
+	}
+	
+}

+ 21 - 0
biz/admin/services/AdminRelateService.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace biz\admin\services;
+
+use biz\admin\classes\AdminClass;
+use biz\auth\services\AuthService;
+use biz\base\services\BaseService;
+use biz\merchant\services\MerchantService;
+use biz\user\services\UserService;
+use common\components\error;
+use common\components\stringUtil;
+use common\components\util;
+use common\services\xhTMessageService;
+use Yii;
+
+class AdminRelateService extends BaseService
+{
+	
+	public static $baseFile = '\biz\admin\classes\AdminRelateClass';
+	
+}