|
|
@@ -42,58 +42,60 @@ class Base
|
|
|
* 同步订单-实时
|
|
|
* @param string $account
|
|
|
* @param string $openId
|
|
|
- * @return void
|
|
|
*/
|
|
|
- protected function asyncDyOrder(string $account = "",string $openId = "")
|
|
|
+ protected function asyncDyOrder(string $account = "",string $openId = "",string $orderId = "")
|
|
|
{
|
|
|
// 同步已经下单的订单
|
|
|
if (!empty($account)) {
|
|
|
+ if (!empty($orderId)) {
|
|
|
+ $order = (new SaasOrderLife)->where("order_id",$orderId)->findOrEmpty();
|
|
|
+ if (!$order->isEmpty()) return [];
|
|
|
+ }
|
|
|
$resp = (new Client)->config($this->getDyConfig())->token()->queryOrder($account,$openId);
|
|
|
$store = (new SaasStore)->where("store_id",$account)->findOrEmpty();
|
|
|
- if (!empty($resp['data']['orders'])) {
|
|
|
- $orderData = $orderLog = [];
|
|
|
- foreach ($resp['data']['orders'] as $key=>$val) {
|
|
|
- if ($val['can_use']) {
|
|
|
- $orderEx = (new SaasOrderLife)->where("order_id",$val['order_id'])->findOrEmpty();
|
|
|
- $certificates = $val['certificates'][0];
|
|
|
- if ($orderEx->isEmpty()) {
|
|
|
- $orderData[$key] = [
|
|
|
- "open_id" => $openId,
|
|
|
- "agent_id" => $store['agent_id']??'',
|
|
|
- "store_id" => $store['store_id']??'',
|
|
|
- "order_id" => $val['order_id'],
|
|
|
- "pay_amount" => $certificates['amount']['pay_amount'],
|
|
|
- "order_amount" => $certificates['amount']['original_amount'],
|
|
|
- "expire_at" => date("Y-m-d H:i:s",$certificates['expire_time']),
|
|
|
- "out_id" => $certificates['sku_info']['sku_id'],
|
|
|
- "product_name" => $certificates['sku_info']['title'],
|
|
|
- "groupon_type" => $certificates['sku_info']['groupon_type'],
|
|
|
- "certificate_id" => $certificates['certificate_id']??'',
|
|
|
- "start_time" => date("Y-m-d H:i:s",$certificates['start_time']),
|
|
|
- ];
|
|
|
- $orderLog[$key] = [
|
|
|
- "order_id" => $val['order_id'],
|
|
|
- "title" => "发起订单",
|
|
|
- "remark" => "下单并完成支付"
|
|
|
- ];
|
|
|
- } else {
|
|
|
- $orderEx->save([
|
|
|
- "open_id" => $openId,
|
|
|
- "expire_at" => date("Y-m-d H:i:s",$certificates['expire_time']),
|
|
|
- "out_id" => $certificates['sku_info']['sku_id'],
|
|
|
- "product_name" => $certificates['sku_info']['title'],
|
|
|
- "groupon_type" => $certificates['sku_info']['groupon_type'],
|
|
|
- "certificate_id" => $certificates['certificate_id']??'',
|
|
|
- "start_time" => date("Y-m-d H:i:s",$certificates['start_time']),
|
|
|
- ]);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (!empty($orderData)) {
|
|
|
- (new SaasOrderLife)->insertAll(array_values($orderData));
|
|
|
- (new SaasOrderLog)->insertAll(array_values($orderLog));
|
|
|
+ if (empty($resp['data']['orders'])) return [];
|
|
|
+ $lifeOrder = $resp['data']['orders'][0];
|
|
|
+ $orderData = $orderLog = [];
|
|
|
+ foreach ($lifeOrder['certificates'] as $key=>$val) {
|
|
|
+ $orderEx = (new SaasOrderLife)->where("order_id",$lifeOrder['order_id'])->where("certificate_id",$val['certificate_id'])->findOrEmpty();
|
|
|
+ if ($orderEx->isEmpty()) {
|
|
|
+ $orderData[$key] = [
|
|
|
+ "open_id" => $openId,
|
|
|
+ "agent_id" => $store['agent_id']??'',
|
|
|
+ "store_id" => $store['store_id']??'',
|
|
|
+ "order_id" => $lifeOrder['order_id'],
|
|
|
+ "pay_amount" => $val['amount']['pay_amount'],
|
|
|
+ "order_amount" => $val['amount']['original_amount'],
|
|
|
+ "expire_at" => date("Y-m-d H:i:s",$val['expire_time']),
|
|
|
+ "out_id" => $val['sku_info']['sku_id'],
|
|
|
+ "product_name" => $val['sku_info']['title'],
|
|
|
+ "groupon_type" => $val['sku_info']['groupon_type'],
|
|
|
+ "certificate_id" => $val['certificate_id']??'',
|
|
|
+ "status" => 1,
|
|
|
+ "start_time" => date("Y-m-d H:i:s",$val['start_time']),
|
|
|
+ ];
|
|
|
+ $orderLog[$key] = [
|
|
|
+ "order_id" => $val['certificate_id'],
|
|
|
+ "title" => "发起订单",
|
|
|
+ "remark" => "下单并完成支付"
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ $orderEx->save([
|
|
|
+ "open_id" => $openId,
|
|
|
+ "expire_at" => date("Y-m-d H:i:s",$val['expire_time']),
|
|
|
+ "out_id" => $val['sku_info']['sku_id'],
|
|
|
+ "product_name" => $val['sku_info']['title'],
|
|
|
+ "groupon_type" => $val['sku_info']['groupon_type'],
|
|
|
+ "certificate_id" => $val['certificate_id']??'',
|
|
|
+ "start_time" => date("Y-m-d H:i:s",$val['start_time']),
|
|
|
+ ]);
|
|
|
}
|
|
|
}
|
|
|
+ if (!empty($orderData)) {
|
|
|
+ (new SaasOrderLife)->insertAll(array_values($orderData));
|
|
|
+ (new SaasOrderLog)->insertAll(array_values($orderLog));
|
|
|
+ }
|
|
|
+ return [];
|
|
|
}
|
|
|
}
|
|
|
|