完成了基本调整调整
This commit is contained in:
@@ -87,12 +87,31 @@ class NotifyQueue extends Command
|
||||
return false;
|
||||
}
|
||||
$partnersOil = new PartnersOil();
|
||||
$optType = (string)($data['optType'] ?? '');
|
||||
|
||||
// 加油:一单可多次加油,每笔单独通知。消息里带 consume_id 时推这一笔的占用金额和消费单号;
|
||||
// 老消息没有 consume_id(上线前入队的)则沿用旧口径推订单金额
|
||||
$consume = null;
|
||||
if ($optType == 'add_oil' && !empty($data['consume_id'])) {
|
||||
$consume = Db::name('qyt_consume')->where('id', (int)$data['consume_id'])->find();
|
||||
}
|
||||
if ($optType == 'refund') {
|
||||
$amount = $order['refund_amount'];
|
||||
} elseif ($consume) {
|
||||
$amount = number_format((int)$consume['consume_amount'] / 100, 2, '.', '');
|
||||
} else {
|
||||
$amount = $order['total_price'];
|
||||
}
|
||||
|
||||
$data = [
|
||||
'oilCardNo' => $order['oilCardNo'],
|
||||
'amount' => $order['total_price'],
|
||||
'shareNo' => $order['shareNo'],
|
||||
'type' => $data['optType'] == 'share_oil' ? 'add' : 'sub',
|
||||
'optType' => $data['optType'],
|
||||
// 分油:订单金额;加油:本次加油占用金额;退款:退款金额
|
||||
'amount' => $amount,
|
||||
// 订单实付金额(即分油金额),所有场景都带,方便对接方拿 amount 对照参考
|
||||
'orderAmount' => number_format((float)$order['total_price'], 2, '.', ''),
|
||||
'shareNo' => $consume && $consume['order_code'] !== '' ? $consume['order_code'] : $order['shareNo'],
|
||||
'type' => $optType == 'share_oil' ? 'add' : 'sub',
|
||||
'optType' => $optType,
|
||||
];
|
||||
$header['method'] = 'syb.notify.oilCard.change';
|
||||
$res = $partnersOil->sendRequest($partners, $partners['callback'], $data, $header);
|
||||
@@ -103,11 +122,16 @@ class NotifyQueue extends Command
|
||||
'oil_callback' => 1,
|
||||
'oil_callback_time' => time(),
|
||||
]);
|
||||
}else{
|
||||
}elseif($data['optType'] == 'add_oil'){
|
||||
// 退款通知成功不记 use_callback,避免把「加油已回调」标错
|
||||
$order->save([
|
||||
'use_callback' => 1,
|
||||
'use_callback_time' => time(),
|
||||
]);
|
||||
// 逐笔记录这一笔加油已通知
|
||||
if ($consume) {
|
||||
Db::name('qyt_consume')->where('id', $consume['id'])->update(['notify_status' => 1, 'notify_time' => time()]);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user