浏览代码

补字段

gorden 6 月之前
父节点
当前提交
da74a14d79

+ 65 - 6
app/admin/controller/order/PayDetailController.php

@@ -33,6 +33,8 @@ class PayDetailController extends Curd
         if ($where['pay_category'] == 'OTHER') {
             $where['pay_status'] = 'SUCCESS';
             $where['pay_category'] = ['<>', 'RECHARGE'];
+        } elseif ($where['pay_category'] == 'RECHARGE') {
+            $where['pay_category'] = ['in', ['RECHARGE', 'VIP']];
         }
         if (!empty($where['pay_addtimes'])) {
             $where['pay_addtimes'][0] = !empty($where['pay_addtimes'][0]) ? strtotime($where['pay_addtimes'][0]) : '';
@@ -91,7 +93,7 @@ class PayDetailController extends Curd
         }
         if (empty($params['type'])) {
             $model = $model->where(function ($query) {
-                $query->whereIn('pay_prepayid', ['ALIPAY', 'WXPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY'])
+                $query->whereIn('pay_prepayid', ['ALIPAY', 'WXPAY', 'OFFLINE', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY'])
                     ->orWhere('pay_prepayid', 'like', '%CASH%')
                     ->orWhere('pay_prepayid', 'like', '%WELFARE%');
             });
@@ -101,6 +103,10 @@ class PayDetailController extends Curd
                     $query->whereIn('pay_prepayid', ['ALIPAY', 'WXPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY'])
                         ->orWhere('pay_prepayid', 'like', '%CASH%');
                 });
+            } else if ($params['type'] == 'VIP') {
+                $model = $model->where(function ($query) {
+                    $query->orWhere('pay_category', 'VIP');
+                });
             } else {
                 $model = $model->where(function ($query) {
                     $query->orWhere('pay_prepayid', 'like', '%WELFARE%');
@@ -186,6 +192,8 @@ class PayDetailController extends Curd
             $item->type = 'NORMAL';
             if (isset($prepayId[1]) && $prepayId[1] == 'WELFARE') {
                 $item->type = 'WELFARE';
+            } else if ($item->pay_category == 'VIP') {
+                $item->type = 'VIP';
             }
             $memberAccount = [];
             if (!empty($item->memberAccount)) {
@@ -204,11 +212,52 @@ class PayDetailController extends Curd
                     $item->premises_name = $payExtendJson['remark']['premises_name'] ?? '';
                 }
             }
+            $item->to_account_amount = $item->pay_amount;
+            if (in_array($item['join_pay_order_id'], ['COMBINE', 'PARTNER']) && !empty($item->join_pay_object_json)) {
+                $payObjectJson = json_decode($item->join_pay_object_json, true);
+                if (isset($payObjectJson['recharge_order_id'])) {
+                    $payDetails = PayDetail::whereJsonContains('join_pay_object_json->order_id', $payObjectJson['recharge_order_id'])
+                        ->where('pay_status', 'SUCCESS')
+                        ->get()
+                        ->toArray();
+                    if (count($payDetails) > 1){
+                        $item->pay_prepayid = 'BY_STAGES';
+                    }else if (count($payDetails) == 1){
+                        $item->pay_prepayid = $payDetails[0]['pay_prepayid'];
+                    }
+
+                    $item->pay_amount = PayDetail::whereJsonContains('join_pay_object_json->order_id', $payObjectJson['recharge_order_id'])
+                        ->where('pay_status', 'SUCCESS')
+                        ->sum('pay_amount');
+                    $orderStatus = OrderSheet::where('join_sheet_order_id', $payObjectJson['recharge_order_id'])->value('order_sheet_status');
+                    if ($orderStatus == 'BEING') {
+                        $item->pay_status = 'BEING';
+                    }
+                }
 
-            if (in_array($item['join_pay_order_id'], ['COMBINE', 'PARTNER'])) {
-                $item->pay_amount = PayDetail::where('join_pay_member_id',$item->join_pay_member_id)
-                    ->where('pay_category',$item['join_pay_order_id'])
-                    ->value('pay_amount');
+//                $payDetail = PayDetail::where('join_pay_member_id', $item->join_pay_member_id)
+//                    ->where('pay_category', $item['join_pay_order_id'])
+//                    ->select('pay_amount', 'join_pay_object_json')
+//                    ->first();
+//                $item->pay_amount = $payDetail->pay_amount ?? 0;
+//                if (!empty($payDetail->join_pay_object_json)) {
+//                    $payObjectJson = json_decode($payDetail->join_pay_object_json, true);
+//                    if (isset($payObjectJson['order_id'])) {
+//                        $orderStatus = OrderSheet::where('join_sheet_order_id', $payObjectJson['order_id'])->value('order_sheet_status');
+//                        if ($orderStatus == 'BEING') {
+//                            $item->pay_status = 'BEING';
+//                        }
+//                    }
+//                }
+            }
+            if ($item->pay_category == 'VIP') {
+                $payObjectJson = json_decode($item->join_pay_object_json, true);
+                if (isset($payObjectJson['order_id'])) {
+                    $orderStatus = OrderSheet::where('join_sheet_order_id', $payObjectJson['order_id'])->value('order_sheet_status');
+                    if ($orderStatus == 'BEING') {
+                        $item->pay_status = 'BEING';
+                    }
+                }
             }
         }
 
@@ -243,7 +292,17 @@ class PayDetailController extends Curd
             ->get()
             ->toArray();
 
-        return json_success('', $orderSheet);
+        $payDetails = PayDetail::whereJsonContains('join_pay_object_json->order_id',$orderId)
+            ->where('pay_status','SUCCESS')
+            ->select('pay_status','pay_amount','pay_paytimes','pay_prepayid')
+            ->get();
+
+        $data = [
+            'payDetails'=>$payDetails,
+            'goodsOrder' => $orderSheet
+        ];
+
+        return json_success('', $data);
     }
 
     /**

+ 2 - 0
app/admin/service/order/CommissionService.php

@@ -101,6 +101,7 @@ class CommissionService
             // 直属提成
             if (!empty($member1) && ($member1->member_is_partner == 'Y' || $member1->member_is_referrer == 'Y') && !empty($configParams1)) {
                 $accountListJson['identity'] = MemberService::getIdentity($member1->member_is_partner, $member1->member_is_referrer);
+                $accountListJson['line'] = 'direct';
                 $member1CommissionAmount = $configParams1['commission']['direct'] * $amount;
                 self::commissionToMember($member1->member_id, $accountListJson, $member1CommissionAmount, $accountListCategory);
                 Log::info("直属提成参数", ['member_id' => $member1->member_id, 'account_list_json' => $accountListJson, 'amount' => $member1CommissionAmount, 'category' => $accountListCategory]);
@@ -109,6 +110,7 @@ class CommissionService
             // 间属提成
             if (!empty($member2) && ($member2->member_is_partner == 'Y' || $member2->member_is_referrer == 'Y') && !empty($configParams2)) {
                 $accountListJson['identity'] = MemberService::getIdentity($member2->member_is_partner, $member2->member_is_referrer);
+                $accountListJson['line'] = 'indirect';
                 $member2CommissionAmount = $configParams2['commission']['indirect'] * $amount;
                 self::commissionToMember($member2->member_id, $accountListJson, $member2CommissionAmount, $accountListCategory);
                 Log::info("间属提成参数", ['member_id' => $member2->member_id, 'account_list_json' => $accountListJson, 'amount' => $member2CommissionAmount, 'category' => $accountListCategory]);

+ 69 - 0
app/command/NewCustomCommand.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace app\command;
+
+use app\model\Member;
+use app\model\MemberAccount;
+use app\model\Order;
+use app\model\PayDetail;
+use support\Db;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class NewCustomCommand extends Command
+{
+
+    protected static $defaultName = 'NewCustomCommand';
+    protected static $defaultDescription = 'NewCustomCommand';
+
+    /**
+     * @return void
+     */
+    protected function configure()
+    {
+        // $this->addArgument('name', InputArgument::OPTIONAL, '余额账户转福利账户');
+        $this->addArgument('name', InputArgument::OPTIONAL, '新客专享回填订单号');
+    }
+
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $payDetails = PayDetail::where('pay_category', 'COMBINE')->get()->toArray();
+        try {
+
+            foreach ($payDetails as $payDetail) {
+                if (!empty($payDetail['join_pay_object_json'])) {
+                    $payObjectJson = json_decode($payDetail['join_pay_object_json'], true);
+                }
+                // 查订单号
+                $payDetailOrder = PayDetail::where('join_pay_order_id', 'COMBINE')
+                    ->where('join_pay_member_id', $payDetail['join_pay_member_id'])
+                    ->first();
+                if (!empty($payDetailOrder->join_pay_object_json)) {
+                    $payObjectJson2 = json_decode($payDetailOrder->join_pay_object_json, true);
+                    if (isset($payObjectJson2['recharge_order_id'])) {
+                        continue;
+                    }
+                    if (isset($payObjectJson['order_id'])) {
+                        $payObjectJson['recharge_order_id'] = $payObjectJson['order_id'];
+                        PayDetail::where('pay_id', $payDetailOrder->pay_id)->update([
+                            'join_pay_object_json' => json_encode($payObjectJson)
+                        ]);
+                    }
+                }
+
+                echo "支付记录【" . $payDetail['pay_id'] . "】已处理完成\n";
+            }
+            Db::commit();
+
+            return self::SUCCESS;
+        } catch (\Exception $e) {
+            dump($e->getMessage());
+
+            Db::rollBack();
+            return self::SUCCESS;
+        }
+
+    }
+}

+ 1 - 0
app/event/order/NewCustomerEvent.php

@@ -44,6 +44,7 @@ class NewCustomerEvent
                         'join_pay_member_id' => $params['member_id'],
                         'join_pay_order_id' => 'COMBINE',
                         'join_pay_object_json' => json_encode([
+                            'recharge_order_id' => $params['orderId'],
                             'recharge_config' => ['nbr' => 0],
                             'recharge_goods_id' => $goods->goods_id,
                             'recharge_goods_name' => $goods->goods_name

+ 1 - 0
app/event/order/PartnerEvent.php

@@ -48,6 +48,7 @@ class PartnerEvent
                     'join_pay_member_id' => $params['member_id'],
                     'join_pay_order_id' => 'PARTNER',
                     'join_pay_object_json' => json_encode([
+                        'recharge_order_id' => $params['orderId'],
                         'recharge_config' => [
                             'nbr' => round($params['order_amount_total'] * $configParams['account']['added'], 2)
                         ],