ソースを参照

优化分账代码

sunxbiao 1 年間 前
コミット
8f13a8834d
共有2 個のファイルを変更した33 個の追加50 個の削除を含む
  1. 16 21
      app/command/CommercialAreaOrderIndependentAccount.php
  2. 17 29
      app/command/GreatLifeOrderIndependentAccount.php

+ 16 - 21
app/command/CommercialAreaOrderIndependentAccount.php

@@ -44,36 +44,31 @@ class CommercialAreaOrderIndependentAccount extends Command
44 44
         /** @var StoreOrderRepository $storeOrderRepository */
45 45
         $storeOrderRepository = app()->make(StoreOrderRepository::class);
46 46
 
47
-        $time = time();
48 47
         // 订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付 6已取消'
49 48
         $status = [2, 3];
50 49
         // 已支付、未结算
51
-        $where = ['paid' => 1, 'is_independentaccount' => 0, 'is_del' => 0, 'is_system_del' => 0];
50
+        $where = ['paid' => 1, 'is_independentaccount' => 0, 'is_del' => 0, 'is_system_del' => 0, 'is_settlement' => 1];
52 51
         // 普通订单 @todo 排除 特殊商户{$excludeMerId}:精彩生活区、会员区、复购区
53 52
         $cursor = Db::table('rrx_store_order')->where($where)->where('pay_type', 'in', '1,2,4')->whereIn('status', $status)
54 53
             ->whereNotIn('mer_id', $excludeMerId)->cursor();
55 54
         foreach ($cursor as $key => $value) {
56
-            $settlement_period_time = strtotime($value['create_time']) + $timeLimit * 24 * 3600;
57
-            // @todo 下单后第{$timeLimit}天后可分账
58
-            if ($settlement_period_time >= $time) {
59
-                if (!isset($merchants[$value['mer_id']])) {
60
-                    $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
61
-                }
62
-                $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
63
-                // @todo 分账账号 496:表示{会员专区}账户;商贸区分账如下:成本分账到商户,利润分账到{会员专区}账户
64
-                $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
55
+            if (!isset($merchants[$value['mer_id']])) {
56
+                $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
57
+            }
58
+            $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
59
+            // @todo 分账账号 496:表示{会员专区}账户;商贸区分账如下:成本分账到商户,利润分账到{会员专区}账户
60
+            $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
65 61
 
66
-                // @todo 预分账处理
67
-                $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
68
-                    $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_member_id'], $independentAccount['hf_platform_member_id'], $value['cost'], $value['con_pri']
69
-                );
70
-                if ($isSuccessed) {
71
-                    Db::name("log")->insert(array('data' => '商贸区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));//日志记录
62
+            // @todo 预分账处理
63
+            $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
64
+                $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_member_id'], $independentAccount['hf_platform_member_id'], $value['cost'], $value['con_pri']
65
+            );
66
+            if ($isSuccessed) {
67
+                Db::name("log")->insert(array('data' => '商贸区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));// 日志记录
72 68
 
73
-                    $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
74
-                    $order->is_independentaccount = 1;
75
-                    $order->save();
76
-                }
69
+                $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
70
+                $order->is_independentaccount = 1;
71
+                $order->save();
77 72
             }
78 73
         }
79 74
     }

+ 17 - 29
app/command/GreatLifeOrderIndependentAccount.php

@@ -3,19 +3,11 @@
3 3
 namespace app\command;
4 4
 
5 5
 use app\common\model\store\order\StoreOrder;
6
-use app\common\model\user\UserCertification;
7
-use app\common\repositories\merchant\order\OrderGzcRepository;
8
-use app\common\repositories\merchant\order\OrderMerchantRepository;
9 6
 use app\common\repositories\store\order\StoreOrderRepository;
10
-use app\common\repositories\store\order\StoreOrderStatusRepository;
11
-use app\common\repositories\user\UserBillRepository;
12
-use app\common\repositories\user\UserRepository;
13
-use Carbon\Carbon;
14 7
 use think\console\Command;
15 8
 use think\console\Input;
16 9
 use think\console\Output;
17 10
 use think\facade\Db;
18
-use think\facade\Log;
19 11
 
20 12
 class GreatLifeOrderIndependentAccount extends Command
21 13
 {
@@ -49,9 +41,8 @@ class GreatLifeOrderIndependentAccount extends Command
49 41
         // 商户信息
50 42
         $merchants = [];
51 43
 
52
-        $time = time();
53 44
         // 已支付、未结算
54
-        $where = ['paid' => 1, 'is_independentaccount' => 0, 'is_del' => 0, 'is_system_del' => 0];
45
+        $where = ['paid' => 1, 'is_independentaccount' => 0, 'is_del' => 0, 'is_system_del' => 0, 'is_settlement' => 1];
55 46
         // 订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付 6已取消'
56 47
         $status = [2, 3];
57 48
         // 普通订单
@@ -62,30 +53,27 @@ class GreatLifeOrderIndependentAccount extends Command
62 53
         $storeOrderRepository = app()->make(StoreOrderRepository::class);
63 54
 
64 55
         foreach ($cursor as $key => $value) {
65
-            $settlement_period_time = strtotime($value['create_time']) + $timeLimit * 24 * 3600;
66
-            // @todo 下单后第{$timeLimit}天后可分账
67
-            if ($settlement_period_time >= $time) {
68
-                if (!isset($merchants[$value['mer_id']])) {
69
-                    $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
70
-                }
71
-                $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
56
+            if (!isset($merchants[$value['mer_id']])) {
57
+                $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
58
+            }
59
+            $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
72 60
 
73
-                // 分账账号 496:表示{会员专区}账户,精彩生活区分账到{会员专区}账户
74
-                $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
61
+            // 分账账号 496:表示{会员专区}账户,精彩生活区分账到{会员专区}账户
62
+            $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
75 63
 
76
-                // @todo 预分账处理 496:表示{会员专区}账户,精彩生活区分账到{会员专区}账户,故:hf_platform_member_id 为入账账户
77
-                $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
78
-                    $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_platform_member_id'], '', $value['pay_price'], 0
79
-                );
80
-                if ($isSuccessed) {
81
-                    Db::name("log")->insert(array('data' => '精彩生活区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));//日志记录
64
+            // @todo 预分账处理 496:表示{会员专区}账户,精彩生活区分账到{会员专区}账户,故:hf_platform_member_id 为入账账户
65
+            $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
66
+                $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_platform_member_id'], '', $value['pay_price'], 0
67
+            );
68
+            if ($isSuccessed) {
69
+                Db::name("log")->insert(array('data' => '精彩生活区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));// 日志记录
82 70
 
83
-                    $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
84
-                    $order->is_independentaccount = 1;
85
-                    $order->save();
86
-                }
71
+                $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
72
+                $order->is_independentaccount = 1;
73
+                $order->save();
87 74
             }
88 75
         }
76
+
89 77
     }
90 78
 
91 79
 }