瀏覽代碼

订单分账-共富区订单分账

sunxbiao 5 月之前
父節點
當前提交
e98ca0064d
共有 1 個文件被更改,包括 49 次插入0 次删除
  1. 49 0
      app/common/repositories/store/order/StoreOrderRepository.php

+ 49 - 0
app/common/repositories/store/order/StoreOrderRepository.php

@@ -12531,6 +12531,9 @@ class StoreOrderRepository extends BaseRepository
12531 12531
                                 // 精彩生活区 走宝塔定时任务 调用 great_life_order_independent_account 命令
12532 12532
                             } elseif ($storeOrderEntity->getMerId() == CommonEnum::DESIGN_MERCHANT_ID['Repurchase']['code']) {
12533 12533
                                 // 复购区不用分账,没有现金支付 只用复购金支付
12534
+                            } elseif ($storeOrderEntity->getMerId() == CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code']) {
12535
+                                // 共富区分账
12536
+                                $storeOrderRepository->sharedProsperityOrderIndependentAccount($storeOrderEntity->getOrderSn(), $storeOrderEntity->getPayType());
12534 12537
                             } else {
12535 12538
                                 // 商贸区 走宝塔定时任务 调用 commercial_area_order_independent_account 命令
12536 12539
                             }
@@ -12544,6 +12547,52 @@ class StoreOrderRepository extends BaseRepository
12544 12547
         }
12545 12548
     }
12546 12549
 
12550
+    /**
12551
+     * 共富区订单分账
12552
+     *
12553
+     * @param $merId
12554
+     * @param $timeLimit
12555
+     * @return void
12556
+     * @throws \think\db\exception\DataNotFoundException
12557
+     * @throws \think\db\exception\DbException
12558
+     * @throws \think\db\exception\ModelNotFoundException
12559
+     */
12560
+    private function sharedProsperityOrderIndependentAccount($orderSn, $payType)
12561
+    {
12562
+        $dst_mer_id = CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code'];
12563
+        // 商户信息
12564
+        $merchants = [];
12565
+        // 已支付、未结算  注意,会员专区之前可能没有去及时 更新结算状态 'is_settlement' => 1,
12566
+        $where = ['paid' => 1, 'is_del' => 0, 'is_system_del' => 0, 'is_independentaccount' => 0, 'order_sn' => $orderSn];
12567
+        // 订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付 6已取消'
12568
+        // $status = [2, 3]; ->whereIn('status', $status)
12569
+        // 普通订单
12570
+        $cursor = Db::table('rrx_store_order')->where($where)->where('pay_type', '=', $payType)
12571
+            ->where('fzone_pay_price', '>', 0.00)
12572
+            ->whereIn('mer_id', CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code'])->cursor();
12573
+        /** @var StoreOrderRepository $storeOrderRepository */
12574
+        $storeOrderRepository = app()->make(StoreOrderRepository::class);
12575
+        foreach ($cursor as $key => $value) {
12576
+            if (!isset($merchants[$value['mer_id']])) {
12577
+                $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
12578
+            }
12579
+            $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
12580
+
12581
+            $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
12582
+
12583
+            $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
12584
+                $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_platform_member_id'], '', $value['fzone_pay_price'], 0
12585
+            );
12586
+            if ($isSuccessed) {
12587
+                Db::name("log")->insert(array('data' => '共富区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));// 日志记录
12588
+
12589
+                $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
12590
+                $order->is_independentaccount = 1;
12591
+                $order->save();
12592
+            }
12593
+        }
12594
+    }
12595
+
12547 12596
     public function useKillOrderRewards($groupOrderId, $orderId, $uid,$adminId)
12548 12597
     {
12549 12598
         if (empty($orderId) || empty($groupOrderId) || empty($uid)) {