74 行
2.3 KiB
PHP
74 行
2.3 KiB
PHP
<?php
|
|
|
|
namespace addons\shopro_huifu\library\onboard;
|
|
|
|
use addons\shopro\model\split\Receiver;
|
|
use addons\shopro_huifu\model\Onboard;
|
|
use think\Db;
|
|
|
|
class HuifuOnboardReceiverSync
|
|
{
|
|
public static function sync(Onboard $row)
|
|
{
|
|
if ($row['onboard_status'] !== Onboard::STATUS_APPROVED || empty($row['huifu_id'])) {
|
|
return false;
|
|
}
|
|
|
|
$roleId = $row['user_id'];
|
|
if ($row['role_type'] === 'regional_agent') {
|
|
$roleId = $row['user_id'];
|
|
}
|
|
|
|
$payload = json_decode($row['payload'] ?? '', true);
|
|
$name = '用户' . $roleId;
|
|
if (is_array($payload)) {
|
|
if (($payload['account_type'] ?? 'indv') === 'ent' && !empty($payload['reg_name'])) {
|
|
$name = $payload['reg_name'];
|
|
} elseif (!empty($payload['name'])) {
|
|
$name = $payload['name'];
|
|
}
|
|
}
|
|
|
|
$existing = Receiver::where('role_type', $row['role_type'])
|
|
->where('role_id', $roleId)
|
|
->where('channel', 'huifu')
|
|
->find();
|
|
|
|
$now = time();
|
|
if ($existing) {
|
|
$existing->receiver_type = 'HUIFU_ID';
|
|
$existing->receiver_account = $row['huifu_id'];
|
|
$existing->receiver_name = $name;
|
|
$existing->status = 'normal';
|
|
$existing->updatetime = $now;
|
|
$existing->save();
|
|
return $existing;
|
|
}
|
|
|
|
return Receiver::create([
|
|
'role_type' => $row['role_type'],
|
|
'role_id' => $roleId,
|
|
'channel' => 'huifu',
|
|
'receiver_type' => 'HUIFU_ID',
|
|
'receiver_account' => $row['huifu_id'],
|
|
'receiver_name' => $name,
|
|
'relation_type' => 'USER',
|
|
'wx_status' => 0,
|
|
'status' => 'normal',
|
|
'createtime' => $now,
|
|
'updatetime' => $now,
|
|
]);
|
|
}
|
|
|
|
public static function bindOnboardId($roleType, $roleRefId, $onboardId)
|
|
{
|
|
if ($roleType === 'promoter') {
|
|
Db::name('shopro_commission_agent')->where('user_id', $roleRefId)->update(['huifu_onboard_id' => $onboardId]);
|
|
return;
|
|
}
|
|
if ($roleType === 'regional_agent') {
|
|
Db::name('shopro_regional_agent')->where('id', $roleRefId)->update(['huifu_onboard_id' => $onboardId]);
|
|
}
|
|
}
|
|
}
|