文件
xionggeshop/addons/shopro_huifu/library/onboard/HuifuOnboardReceiverSync.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]);
}
}
}