|
@@ -257,69 +257,38 @@ class PartnerController extends Curd
|
|
|
$params['order_status_system'] = $systemStatus;
|
|
|
$params['order_status_payment'] = 'SUCCESS';
|
|
|
}
|
|
|
- if (($params['pay_constitute'] == 'Y' || $params['pay_category'] == 'QRCODE') && $params['settlement_now'] == 'Y' && !empty($params['qrcode_nbr'])) { // 付款码
|
|
|
- // 账户支付的金额
|
|
|
- $accountAmount = $params['order_amount_pay'];
|
|
|
- if ($params['pay_constitute'] == 'Y' && $qrcodePayAmount > 0) {
|
|
|
- // 组合支付,支付金额改成需要付款码需要支付的金额
|
|
|
- $params['order_amount_pay'] = $qrcodePayAmount;
|
|
|
- }
|
|
|
- if ($params['pay_constitute'] == 'Y' && $qrcodePayAmount <= 0) {
|
|
|
- $params['order_status_system'] = $systemStatus;
|
|
|
- $params['order_status_payment'] = 'SUCCESS';
|
|
|
- }
|
|
|
- // 不组合或者组合后需要付款码的金额>0
|
|
|
- if ($params['pay_constitute'] == 'N' || ($params['pay_constitute'] == 'Y' && $qrcodePayAmount > 0)) {
|
|
|
- $result = OrderService::qrcodePay($params);
|
|
|
- $result = json_encode($result);
|
|
|
- $params['pay_json_response'] = $result;
|
|
|
- $result = json_decode($result, true);
|
|
|
+ if ($params['pay_category'] == 'QRCODE' && $params['settlement_now'] == 'Y' && !empty($params['qrcode_nbr'])) { // 付款码
|
|
|
+ $result = OrderService::qrcodePay($params);
|
|
|
+ $result = json_encode($result);
|
|
|
+ $params['pay_json_response'] = $result;
|
|
|
+ $result = json_decode($result, true);
|
|
|
|
|
|
- $prefix = substr($params['qrcode_nbr'], 0, 2);
|
|
|
- if (in_array($prefix, [10, 11, 12, 13, 14, 15])) {
|
|
|
- $params['pay_category'] = 'WXPAY';
|
|
|
- if ((!isset($result['return_code']) || $result['return_code'] != 'SUCCESS') || (!isset($result['result_code']) || $result['result_code'] != 'SUCCESS') || (empty($result['trade_state']) || $result['trade_state'] != 'SUCCESS')) {
|
|
|
- $params['order_status_system'] = 'PAYING';
|
|
|
- $params['order_status_payment'] = 'PENDING';
|
|
|
- $params['order_is_complete'] = 'N';
|
|
|
-// Db::rollBack();
|
|
|
-// return json_fail('支付失败');
|
|
|
- } else {
|
|
|
- $params['order_status_system'] = $systemStatus;
|
|
|
- $params['order_status_payment'] = 'SUCCESS';
|
|
|
- }
|
|
|
- } else if (in_array($prefix, [25, 26, 27, 28, 29, 30])) {
|
|
|
- $params['pay_category'] = 'ALIPAY';
|
|
|
- if ((!isset($result['code']) || $result['code'] != '10000') || (empty($result['trade_status']) || $result['trade_status'] != 'TRADE_SUCCESS')) {
|
|
|
- $params['order_status_system'] = 'PAYING';
|
|
|
- $params['order_status_payment'] = 'PENDING';
|
|
|
- $params['order_is_complete'] = 'N';
|
|
|
-// Db::rollBack();
|
|
|
-// return json_fail('支付失败');
|
|
|
- } else {
|
|
|
- $params['order_status_system'] = $systemStatus;
|
|
|
- $params['order_status_payment'] = 'SUCCESS';
|
|
|
- }
|
|
|
+ $prefix = substr($params['qrcode_nbr'], 0, 2);
|
|
|
+ if (in_array($prefix, [10, 11, 12, 13, 14, 15])) {
|
|
|
+ $params['pay_category'] = 'WXPAY';
|
|
|
+ if ((!isset($result['return_code']) || $result['return_code'] != 'SUCCESS') || (!isset($result['result_code']) || $result['result_code'] != 'SUCCESS') || (empty($result['trade_state']) || $result['trade_state'] != 'SUCCESS')) {
|
|
|
+ $params['order_status_system'] = 'PAYING';
|
|
|
+ $params['order_status_payment'] = 'PENDING';
|
|
|
+ $params['order_is_complete'] = 'N';
|
|
|
} else {
|
|
|
- throw new BusinessException('付款码无效');
|
|
|
+ $params['order_status_system'] = $systemStatus;
|
|
|
+ $params['order_status_payment'] = 'SUCCESS';
|
|
|
}
|
|
|
-
|
|
|
- // 账户支付的金额
|
|
|
- $params['order_amount_pay'] = $accountAmount;
|
|
|
+ } else if (in_array($prefix, [25, 26, 27, 28, 29, 30])) {
|
|
|
+ $params['pay_category'] = 'ALIPAY';
|
|
|
+ if ((!isset($result['code']) || $result['code'] != '10000') || (empty($result['trade_status']) || $result['trade_status'] != 'TRADE_SUCCESS')) {
|
|
|
+ $params['order_status_system'] = 'PAYING';
|
|
|
+ $params['order_status_payment'] = 'PENDING';
|
|
|
+ $params['order_is_complete'] = 'N';
|
|
|
+ } else {
|
|
|
+ $params['order_status_system'] = $systemStatus;
|
|
|
+ $params['order_status_payment'] = 'SUCCESS';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new BusinessException('付款码无效');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $orderConfigJson = [];
|
|
|
- // 配送方式
|
|
|
- if (isset($params['delivery']) && ($params['delivery'] == 'PICKUP' || $params['delivery'] == 'ARRIVAL')) { // 自提/ 到店
|
|
|
- $orderConfigJson['premises'] = $params['dept_premises_id'];
|
|
|
- } else if (isset($params['delivery']) && $params['delivery'] == 'LOGISTICS') {
|
|
|
- // $params['order_express_json'] = json_encode([
|
|
|
- // 'express' => 'Y',
|
|
|
- // ]);
|
|
|
- }
|
|
|
- $params['order_config_json'] = json_encode($orderConfigJson);
|
|
|
-
|
|
|
if (empty($paidOrder)) {
|
|
|
// 写入主订单
|
|
|
$this->insertMain($params);
|
|
@@ -327,24 +296,25 @@ class PartnerController extends Curd
|
|
|
$this->insertSheet($params);
|
|
|
} else {
|
|
|
$params['orderGroupId'] = $paidOrder->order_groupby;
|
|
|
- $params['order_amount_paid'] = $paidOrder->order_amount_paid;
|
|
|
- $paidOrder->order_amount_paid = $paidOrder->order_amount_paid + $params['order_amount_pay'];
|
|
|
- $paidOrder->order_amount_pay = $paidOrder->order_amount_paid;
|
|
|
- if (floatval($paidOrder->order_amount_paid) >= $paidOrder->order_amount_total) {
|
|
|
- $paidOrder->order_is_complete = 'Y';
|
|
|
- $paidOrder->order_status_system = 'DONE';
|
|
|
- $paidOrder->order_status_payment = 'SUCCESS';
|
|
|
- // 更新sheet
|
|
|
- OrderSheet::where('join_sheet_order_id', $paidOrder->order_id)->update(['order_sheet_status' => 'DONE']);
|
|
|
+ if ($params['order_status_payment'] == 'SUCCESS') {
|
|
|
+ $params['order_amount_paid'] = $paidOrder->order_amount_paid;
|
|
|
+ $paidOrder->order_amount_paid = $paidOrder->order_amount_paid + $params['order_amount_pay'];
|
|
|
+ $paidOrder->order_amount_pay = $paidOrder->order_amount_paid;
|
|
|
+ if (floatval($paidOrder->order_amount_paid) >= $paidOrder->order_amount_total) {
|
|
|
+ $paidOrder->order_is_complete = 'Y';
|
|
|
+ $paidOrder->order_status_system = 'DONE';
|
|
|
+ $paidOrder->order_status_payment = 'SUCCESS';
|
|
|
+ // 更新sheet
|
|
|
+ OrderSheet::where('join_sheet_order_id', $paidOrder->order_id)->update(['order_sheet_status' => 'DONE']);
|
|
|
+ }
|
|
|
}
|
|
|
$paidOrder->save();
|
|
|
-
|
|
|
+ // 清除此订单的未支付记录
|
|
|
+ PayDetail::whereJsonContains('join_pay_object_json->order_id', $paidOrder->order_id)->where('pay_status', 'WAITING')->delete();
|
|
|
}
|
|
|
// 支付记录
|
|
|
$this->insertPayDetail($params);
|
|
|
|
|
|
-// $params['order_express_goods'] = json_encode(['sheet' => [$sheetId]]);
|
|
|
-
|
|
|
// 分期付完
|
|
|
if ($params['goods_classify'] == 'PARTNER' && $params['order_status_payment'] == 'SUCCESS' && (!empty($paidOrder) && floatval($paidOrder->order_amount_paid) >= $paidOrder->order_amount_total || floatval($params['order_amount_pay']) >= $params['order_amount_total'])) {
|
|
|
$params['member_id'] = $params['join_order_member_id'];
|
|
@@ -481,17 +451,11 @@ class PartnerController extends Curd
|
|
|
// 账户支付的金额
|
|
|
$params['order_amount_pay'] = $accountAmount;
|
|
|
}
|
|
|
- $orderConfigJson = [];
|
|
|
- if (!empty($order->order_config_json)) {
|
|
|
- $orderConfigJson = json_decode($order->order_config_json, true);
|
|
|
- }
|
|
|
- $orderConfigJson['preferential'] = $params['preferential'] ?? '';
|
|
|
- if (isset($orderConfigJson['tableid']) && !empty($orderConfigJson['tableid'])) {
|
|
|
- SysDept::where('dept_id', $orderConfigJson['tableid'])->where('dept_category', '桌台')->update(['dept_status' => 'ACTIVED']);
|
|
|
+ if ($order->order_status_payment == 'SUCCESS'){
|
|
|
+ $order->order_amount_paid = $order->order_amount_paid + $params['order_amount_pay'];
|
|
|
+ $order->order_amount_pay = $order->order_amount_paid;
|
|
|
}
|
|
|
- $order->order_config_json = json_encode($orderConfigJson);
|
|
|
- $order->order_amount_paid = $order->order_amount_paid + $params['order_amount_pay'];
|
|
|
- $order->order_amount_pay = $order->order_amount_paid;
|
|
|
+
|
|
|
// 分期,支付完就结束了
|
|
|
if ($order->order_status_payment == 'SUCCESS' && $params['goods_classify'] == 'PARTNER' && floatval($order->order_amount_paid) >= $order->order_amount_total) {
|
|
|
$order->order_is_complete = 'Y';
|
|
@@ -540,14 +504,16 @@ class PartnerController extends Curd
|
|
|
} else if ($params['pay_category'] == 'MONEY') {
|
|
|
$payData['pay_prepayid'] = 'MONEY';
|
|
|
}
|
|
|
- // 如果 是APP 过来的菜订单,可能没有paydetail
|
|
|
-// if (!PayDetail::where('join_pay_order_id', $order->order_groupby)->where('pay_category', '<>', 'WXPAY')->where('pay_category', '<>', 'ALIPAY')->exists()) {
|
|
|
+ // 清除此订单的未支付记录
|
|
|
+ PayDetail::whereJsonContains('join_pay_object_json->order_id', $order->order_id)->where('pay_status', 'WAITING')->delete();
|
|
|
+
|
|
|
$payData['join_pay_member_id'] = $params['join_order_member_id'];
|
|
|
$payData['join_pay_order_id'] = $order->order_groupby;
|
|
|
- $payData['pay_status'] = $payData['pay_status'] == 'SUCCESS' ? $payData['pay_status'] : 'WAITING';
|
|
|
+ $payData['pay_status'] = !empty($payData['pay_status']) && $payData['pay_status'] == 'SUCCESS' ? $payData['pay_status'] : 'WAITING';
|
|
|
$payData['pay_category'] = $params['goods_classify'] ?? '';
|
|
|
+ $payData['pay_paytimes'] = date('Y-m-d H:i:s');
|
|
|
$payData['pay_json_request'] = json_encode($params); // {"pay-result": "支付成功", "result-datetime": "2024-07-29 18:38:21"}
|
|
|
- $payData['pay_json_response'] = $payData['pay_status'] == 'SUCCESS' ? json_encode([
|
|
|
+ $payData['pay_json_response'] = !empty($payData['pay_status']) && $payData['pay_status'] == 'SUCCESS' ? json_encode([
|
|
|
'pay-result' => '支付成功', 'result-datetime' => date('Y-m-d H:i:s')
|
|
|
]) : '[]';
|
|
|
$payData['join_pay_object_json'] = !empty($params['orderId']) ? json_encode(['order_id' => $params['orderId']]) : '[]';
|
|
@@ -622,13 +588,13 @@ class PartnerController extends Curd
|
|
|
'join_order_member_id' => $params['join_order_member_id'],
|
|
|
'order_name' => date('Y-m-d H:i:s') . '-订单',
|
|
|
'order_amount_total' => $params['order_amount_total'],
|
|
|
- 'order_amount_pay' => $params['order_amount_pay'],
|
|
|
- 'order_amount_paid' => $params['order_amount_pay'],
|
|
|
+ 'order_amount_pay' => $params['order_status_payment'] == 'SUCCESS' ? $params['order_amount_pay'] : 0,
|
|
|
+ 'order_amount_paid' => $params['order_status_payment'] == 'SUCCESS' ? $params['order_amount_pay'] : 0,
|
|
|
'order_category' => $orderCategory,
|
|
|
'order_classify' => $orderCategory,
|
|
|
- 'order_is_complete' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) ? 'Y' : 'N',
|
|
|
- 'order_status_system' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) ? 'DONE' : 'PAYING',
|
|
|
- 'order_status_payment' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) ? 'SUCCESS' : 'PENDING',
|
|
|
+ 'order_is_complete' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) && $params['order_status_payment'] == 'SUCCESS' ? 'Y' : 'N',
|
|
|
+ 'order_status_system' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) && $params['order_status_payment'] == 'SUCCESS' ? 'DONE' : 'PAYING',
|
|
|
+ 'order_status_payment' => floatval($params['order_amount_pay']) >= floatval($params['order_amount_total']) && $params['order_status_payment'] == 'SUCCESS' ? 'SUCCESS' : 'PENDING',
|
|
|
'order_status_storage' => $params['order_status_storage'],
|
|
|
'order_platform' => $params['order_platform'],
|
|
|
'order_remark' => $params['order_remark'] ?? '',
|
|
@@ -683,7 +649,7 @@ class PartnerController extends Curd
|
|
|
'join_sheet_goods_id' => $goods['goods_id'],
|
|
|
'join_sheet_goods_sku_id' => $goods['sku_id'],
|
|
|
'order_sheet_status' => $orderSheetStatus,
|
|
|
- 'order_sheet_category' => (isset($params['submit_goods_classify']) && $params['submit_goods_classify'] == 'MEALS') ? 'DISHES' : 'NORMAL',
|
|
|
+ 'order_sheet_category' => 'PARTNER',
|
|
|
'order_sheet_num' => $goods['nbr'],
|
|
|
'order_sheet_price' => $goods['goods_sales_price'],
|
|
|
'order_sheet_amount' => $price * $goods['nbr'],
|