|
|
@@ -75,12 +75,15 @@ class AdminClass extends BaseClass
|
|
|
AdminRoleClass::valid($role, $merchantId);
|
|
|
|
|
|
//验证关联的微信
|
|
|
- $userId = $data['userId'];
|
|
|
- $user = UserClass::getById($userId);
|
|
|
- UserClass::valid($user, $merchantId);
|
|
|
+ $adminId = $data['admin'];
|
|
|
+ $admin = self::getById($adminId);
|
|
|
+ if (empty($admin)) {
|
|
|
+ util::fail('没有找到管理员信息');
|
|
|
+ }
|
|
|
+ AdminClass::valid($admin, $merchantId);
|
|
|
|
|
|
$relateUserIdList = self::getAdminShopUserId($merchantId);
|
|
|
- if (in_array($userId, $relateUserIdList)) {
|
|
|
+ if (in_array($adminId, $relateUserIdList)) {
|
|
|
util::fail('您选择的微信已经绑定别的帐号');
|
|
|
}
|
|
|
|
|
|
@@ -140,7 +143,7 @@ class AdminClass extends BaseClass
|
|
|
self::updateById($id, ['delStatus' => 1]);
|
|
|
}
|
|
|
|
|
|
- //更新员工 shish 2019.12
|
|
|
+ //更新员工信息 shish 2019.12
|
|
|
public static function updateAdmin($admin, $data)
|
|
|
{
|
|
|
$id = $admin['id'];
|
|
|
@@ -153,13 +156,12 @@ class AdminClass extends BaseClass
|
|
|
}
|
|
|
|
|
|
//验证关联的微信
|
|
|
- $userId = $data['userId'];
|
|
|
- if ($userId != $admin['userId']) {
|
|
|
- $user = UserClass::getById($userId);
|
|
|
- UserClass::valid($user, $merchantId);
|
|
|
-
|
|
|
+ $adminId = $data['userId'];
|
|
|
+ if ($adminId != $admin['userId']) {
|
|
|
+ $admin = self::getById($adminId);
|
|
|
+ self::valid($admin, $merchantId);
|
|
|
$relateUserIdList = self::getAdminShopUserId($merchantId);
|
|
|
- if (in_array($userId, $relateUserIdList)) {
|
|
|
+ if (in_array($adminId, $relateUserIdList)) {
|
|
|
util::fail('您选择的微信已经绑定别的帐号');
|
|
|
}
|
|
|
}
|
|
|
@@ -180,52 +182,63 @@ class AdminClass extends BaseClass
|
|
|
}
|
|
|
self::updateById($id, $data);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static function getByMiniOpenId($miniOpenId)
|
|
|
{
|
|
|
return self::getByCondition(['miniOpenId' => $miniOpenId]);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ public static function getByUnionId($unionId)
|
|
|
+ {
|
|
|
+ return self::getByCondition(['unionId' => $unionId]);
|
|
|
+ }
|
|
|
+
|
|
|
//创建以及更新用户 shish 2020.2.7
|
|
|
public static function replaceAdmin($adminInfo, $source)
|
|
|
{
|
|
|
$adminInfo = self::switchAdminInfo($adminInfo, $source);
|
|
|
- $userSource = UserClass::$userSourceId;
|
|
|
-
|
|
|
+ $adminSource = UserClass::$userSourceId;
|
|
|
+ $unionId = isset($adminInfo['unionId']) && !empty($adminInfo['unionId']) ? $adminInfo['unionId'] : '';
|
|
|
+ $unionAdmin = [];
|
|
|
+ if (!empty($unionId)) {
|
|
|
+ $unionAdmin = self::getByUnionId($unionId);
|
|
|
+ }
|
|
|
switch ($source) {
|
|
|
- case $userSource['mini']['name']:
|
|
|
- $sourceId = $userSource['mini']['id'];
|
|
|
+ case $adminSource['mini']['name']:
|
|
|
+ $sourceId = $adminSource['mini']['id'];
|
|
|
$miniOpenId = $adminInfo['miniOpenId'];
|
|
|
- $user = self::getByMiniOpenId($miniOpenId);
|
|
|
+ $admin = self::getByMiniOpenId($miniOpenId);
|
|
|
break;
|
|
|
- case $userSource['official']['name']:
|
|
|
- $sourceId = $userSource['official']['id'];
|
|
|
+ case $adminSource['official']['name']:
|
|
|
+ $sourceId = $adminSource['official']['id'];
|
|
|
$openId = isset($adminInfo['openId']) ? $adminInfo['openId'] : '';
|
|
|
- $user = [];
|
|
|
+ $admin = [];
|
|
|
if (!empty($openId)) {
|
|
|
- $user = self::getByOpenId($openId);
|
|
|
+ $admin = self::getByOpenId($openId);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
throw new \Exception('未知来源的用户');
|
|
|
}
|
|
|
- if (empty($user)) {
|
|
|
- $adminInfo['source'] = $sourceId;
|
|
|
- $user = self::generateAdmin($adminInfo);
|
|
|
+ if (empty($admin)) {
|
|
|
+ if (!empty($unionAdmin)) {
|
|
|
+ //1、在小程序端已经授权用户信息和unionId之后,关注公众号时走这里
|
|
|
+ //2、关注了公众号或者H5已经授权时,并首次访问小程序
|
|
|
+ $admin = self::updateAdmin($unionAdmin, $adminInfo);
|
|
|
+ } else {
|
|
|
+ $adminInfo['sourceType'] = $sourceId;
|
|
|
+ $admin = self::generateAdmin($adminInfo);
|
|
|
+ }
|
|
|
} else {
|
|
|
- $user = self::updateAdminInfo($user, $adminInfo);
|
|
|
- }
|
|
|
- //存在相同unionId进行合并
|
|
|
- $unionId = isset($adminInfo['unionId']) ? $adminInfo['unionId'] : '';
|
|
|
- if (!empty($unionId)) {
|
|
|
- $same = self::getSameUnionId($unionId);
|
|
|
- if (count($same) == 2) {
|
|
|
- $delUser = $same[0];
|
|
|
- $retainUser = $same[1];
|
|
|
- $user = self::mergeAdmin($delUser, $retainUser);
|
|
|
+ if (!empty($unionAdmin)) {
|
|
|
+ if (isset($unionAdmin['id']) && isset($admin['id']) && $admin['id'] != $unionAdmin['id']) {
|
|
|
+ //合并相同客户
|
|
|
+ $admin = self::mergeAdmin($unionAdmin, $admin);
|
|
|
+ }
|
|
|
}
|
|
|
+ $admin = self::updateAdmin($admin, $adminInfo);
|
|
|
}
|
|
|
- return $user;
|
|
|
+ return $admin;
|
|
|
}
|
|
|
|
|
|
public static function updateAdminInfo($originalUser, $getUserInfo)
|
|
|
@@ -357,12 +370,12 @@ class AdminClass extends BaseClass
|
|
|
unset($info['openId']);
|
|
|
}
|
|
|
if (!empty($openId)) {
|
|
|
- $userSource = UserClass::$userSourceId;
|
|
|
+ $adminSource = UserClass::$adminSourceId;
|
|
|
switch ($source) {
|
|
|
- case $userSource['mini']['name']:
|
|
|
+ case $adminSource['mini']['name']:
|
|
|
$info['miniOpenId'] = $openId;
|
|
|
break;
|
|
|
- case $userSource['official']['name']:
|
|
|
+ case $adminSource['official']['name']:
|
|
|
$info['openId'] = $openId;
|
|
|
break;
|
|
|
default:
|