瀏覽代碼

付款码轮询

gorden 8 月之前
父節點
當前提交
d51d935b87
共有 2 個文件被更改,包括 322 次插入308 次删除
  1. 243 243
      app/admin/controller/order/WholeController.php
  2. 79 65
      app/admin/service/order/OrderService.php

文件差異過大導致無法顯示
+ 243 - 243
app/admin/controller/order/WholeController.php


+ 79 - 65
app/admin/service/order/OrderService.php

@@ -39,7 +39,7 @@ class OrderService
                 Order::where('order_id', $order->order_id)->update([
                     'order_is_complete' => 'Y',
                     'order_status_system' => 'CONFIRM',
-                    'order_status_storage'=> 'DONE'
+                    'order_status_storage' => 'DONE'
                 ]);
                 // 订单详情表
                 OrderSheet::where('join_sheet_order_id', $order->order_id)->update(['order_sheet_status' => 'DONE']);
@@ -71,15 +71,15 @@ class OrderService
             $key = Order::AUTOMATIC_COMPLETE_PREFIX . date('Ymd');
             $orderIds = $redis->smembers($key);
 
-            foreach ($orderIds as $orderId){
-                $order = Order::where('order_id',$orderId)
-                    ->select('order_is_complete','order_category','order_status_system')
+            foreach ($orderIds as $orderId) {
+                $order = Order::where('order_id', $orderId)
+                    ->select('order_is_complete', 'order_category', 'order_status_system')
                     ->first();
-                if ($order && $order->order_is_complete != 'Y' && $order->order_category != 'RETURN' && in_array($order->order_status_system,['RECVING','SIGNED','CONFIRM'])){
+                if ($order && $order->order_is_complete != 'Y' && $order->order_category != 'RETURN' && in_array($order->order_status_system, ['RECVING', 'SIGNED', 'CONFIRM'])) {
                     // 更新主表
-                    Order::where('order_id',$orderId)->update(['order_is_complete'=>'Y','order_status_system'=>'CONFIRM','order_status_storage'=>'DONE']);
+                    Order::where('order_id', $orderId)->update(['order_is_complete' => 'Y', 'order_status_system' => 'CONFIRM', 'order_status_storage' => 'DONE']);
                     // sheet表
-                    OrderSheet::where('join_sheet_order_id',$orderId)->update(['order_sheet_status'=>'DONE']);
+                    OrderSheet::where('join_sheet_order_id', $orderId)->update(['order_sheet_status' => 'DONE']);
                 }
             }
 
@@ -98,10 +98,10 @@ class OrderService
             Db::beginTransaction();
             $timeUnix = strtotime("-30 minutes");
             $orders = Order::where('order_status_system', 'PAYING')
-                ->where('order_category','<>','DISHES')     // 点餐不自动取消
+                ->where('order_category', '<>', 'DISHES')     // 点餐不自动取消
                 // ->where('order_platform','<>','SYSTEM')     // 后台产生的订单不自动取消
-                ->where(function($query){
-                    $query->where('order_platform','<>','SYSTEM')->orWhereNull('order_platform');
+                ->where(function ($query) {
+                    $query->where('order_platform', '<>', 'SYSTEM')->orWhereNull('order_platform');
                 })
                 ->where('order_addtimes', '<', $timeUnix)
                 ->get();
@@ -113,12 +113,12 @@ class OrderService
                     'order_status_payment' => 'CANCEL'
                 ]);
                 $sheets = OrderSheet::where('join_sheet_order_id', $order->order_id)->get();
-                foreach ($sheets as $sheet){
+                foreach ($sheets as $sheet) {
                     // 还原库存
-                    $goodsSku = GoodsSku::where('goods_sku_id',$sheet->join_sheet_goods_sku_id)->first();
-                    if (!empty($goodsSku) && !empty($goodsSku->goods_sku_storage_json)){
-                        $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
-                        if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])){
+                    $goodsSku = GoodsSku::where('goods_sku_id', $sheet->join_sheet_goods_sku_id)->first();
+                    if (!empty($goodsSku) && !empty($goodsSku->goods_sku_storage_json)) {
+                        $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json, true);
+                        if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])) {
                             $skuStorageJson['storage'] = $skuStorageJson['storage'] + $sheet->order_sheet_num;
                             $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
                             $goodsSku->save();
@@ -126,8 +126,8 @@ class OrderService
                     }
 
 
-                    $goodsRunning = GoodsRunning::where('join_running_goods_id',$sheet->join_sheet_goods_id)->first();
-                    if(!empty($goodsRunning)){
+                    $goodsRunning = GoodsRunning::where('join_running_goods_id', $sheet->join_sheet_goods_id)->first();
+                    if (!empty($goodsRunning)) {
                         $goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage + $sheet->order_sheet_num;
                         $goodsRunning->goods_running_sale = $goodsRunning->goods_running_sale - $sheet->order_sheet_num;
                         $goodsRunning->save();
@@ -138,10 +138,10 @@ class OrderService
                 OrderSheet::where('join_sheet_order_id', $order->order_id)->update(['order_sheet_status' => 'CANCEL']);
                 // 支付表
                 $payDetail = PayDetail::where('join_pay_order_id', $order->order_groupby)->first();
-                if(!empty($payDetail)){
+                if (!empty($payDetail)) {
                     $payExtendJson = [];
-                    if (!empty($payDetail->pay_extend_json)){
-                        $payExtendJson = json_decode($payDetail->pay_extend_json,true);
+                    if (!empty($payDetail->pay_extend_json)) {
+                        $payExtendJson = json_decode($payDetail->pay_extend_json, true);
                     }
                     $payExtendJson['cancel_times'] = date('Y-m-d H:i:s');
                     PayDetail::where('join_pay_order_id', $order->order_groupby)->update([
@@ -172,13 +172,13 @@ class OrderService
 
     public static function generateAppointmentApplyData($params)
     {
-        $member = Member::with('cert','info')
-            ->where('member_id',$params['join_order_member_id'])
+        $member = Member::with('cert', 'info')
+            ->where('member_id', $params['join_order_member_id'])
             ->first();
         $name = '';
-        if (!empty($member) && !empty($member->cert) && !empty($member->cert->member_cert_name)){
+        if (!empty($member) && !empty($member->cert) && !empty($member->cert->member_cert_name)) {
             $name = $member->cert->member_cert_name;
-        }else if (!empty($member) && !empty($member->info) && !empty($member->info->member_info_nickname)){
+        } else if (!empty($member) && !empty($member->info) && !empty($member->info->member_info_nickname)) {
             $name = $member->info->member_info_nickname;
         }
 
@@ -197,10 +197,10 @@ class OrderService
     public static function qrcodePay($params)
     {
         $log = SupportLog::channel('pay');
-        $log->info("PAY_PARAMS",json_decode(json_encode($params),true));
+        $log->info("PAY_PARAMS", json_decode(json_encode($params), true));
         $params['order_amount_pay'] = floatval($params['order_amount_pay']);
         $qrcodeNbr = $params['qrcode_nbr'];
-        $prefix = substr($qrcodeNbr,0,2);
+        $prefix = substr($qrcodeNbr, 0, 2);
         // 模拟数据
         // $result = [
         //     'return_code'=>'SUCCESS',
@@ -208,65 +208,79 @@ class OrderService
         // ];
         // return $result;
         // 微信支付
-        if(in_array($prefix,[10,11,12,13,14,15])){
+        if (in_array($prefix, [10, 11, 12, 13, 14, 15])) {
             $payData = [
                 'out_trade_no' => $params['orderGroupId'],
-                'body'         => '万悦康养订单',
-                'total_fee'    => $params['order_amount_pay']*100,
-                'auth_code'    => $params['qrcode_nbr'],
+                'body' => '万悦康养订单',
+                'total_fee' => $params['order_amount_pay'] * 100,
+                'auth_code' => $params['qrcode_nbr'],
             ];
-            try{
-                $result = Pay::wechat(config('payment.wxpay'))->pos($payData);
-            }catch(\Exception $e){
-                $log->error("WXPAY",['msg'=>$e->getMessage()]);
+            try {
+//                $result = Pay::wechat(config('payment.wxpay'))->pos($payData);
+                $result = self::findWxpay('OD20240816113023HNSQDI',0);
+            } catch (\Exception $e) {
+                $log->error("WXPAY", ['msg' => $e->getMessage()]);
                 throw new BusinessException("支付失败");
             }
 
-            $log->info("WXPAY_RETURN",json_decode(json_encode($result),true));
+            $log->info("WXPAY_RETURN", json_decode(json_encode($result), true));
 
-        }else if(in_array($prefix,[25,26,27,28,29,30])){
+        } else if (in_array($prefix, [25, 26, 27, 28, 29, 30])) {
             $payData = [
                 'out_trade_no' => $params['orderGroupId'],
                 'total_amount' => $params['order_amount_pay'],
-                'subject'      => '万悦康养订单',
-                'auth_code'    => $params['qrcode_nbr'],
+                'subject' => '万悦康养订单',
+                'auth_code' => $params['qrcode_nbr'],
             ];
-            try{
+            try {
                 $result = Pay::alipay(config('payment.alipay'))->pos($payData);
-            }catch(\Exception $e){
-                $log->error("ALIPAY",['msg'=>$e->getMessage()]);
+            } catch (\Exception $e) {
+                $log->error("ALIPAY", ['msg' => $e->getMessage()]);
                 throw new BusinessException("支付失败");
             }
 
-            $log->info("ALIPAY_RETURN",json_decode(json_encode($result),true));
+            $log->info("ALIPAY_RETURN", json_decode(json_encode($result), true));
 
-        }else{
+        } else {
             throw new BusinessException("二维码无效");
         }
 
         return $result;
     }
 
+    public static function findWxpay($orderId, $nbr = 0)
+    {
+        dump('进来了');
+        $order = [
+            'out_trade_no' => $orderId,
+        ];
+
+        $result = Pay::wechat(config('payment.wxpay'))->find($orderId);
+        dump($result);
+
+        return $result;
+    }
+
     /**
      * 验证产品库存
      */
     public static function checkGoodsStorage($params)
     {
-        foreach($params['goodsContentList'] as $goods){
+        foreach ($params['goodsContentList'] as $goods) {
             // 减库存,规格和总库存
-            if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
-                $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
-                $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
-                if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])){
+            if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS') {
+                $goodsSku = GoodsSku::where('goods_sku_id', $goods['sku_id'])->first();
+                $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json, true);
+                if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])) {
                     $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
                 }
-                if (!isset($skuStorageJson['storage']) || (!empty($skuStorageJson['storage']) && $skuStorageJson['storage'] < 0)){
+                if (!isset($skuStorageJson['storage']) || (!empty($skuStorageJson['storage']) && $skuStorageJson['storage'] < 0)) {
                     throw new BusinessException('库存不足');
                 }
             }
-            $goodsRunning = GoodsRunning::where('join_running_goods_id',$goods['goods_id'])->first();
+            $goodsRunning = GoodsRunning::where('join_running_goods_id', $goods['goods_id'])->first();
             $goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
-            if ($goodsRunning->goods_running_storage < 0){
+            if ($goodsRunning->goods_running_storage < 0) {
                 throw new BusinessException('库存不足');
             }
         }
@@ -278,15 +292,15 @@ class OrderService
     public static function createPayDetail($params)
     {
         $insertPayDetailData = [
-            'join_pay_member_id'=>$params['join_order_member_id'],
-            'join_pay_order_id'=>$params['orderGroupId'],
-            'pay_status'=>'SUCCESS',
+            'join_pay_member_id' => $params['join_order_member_id'],
+            'join_pay_order_id' => $params['orderGroupId'],
+            'pay_status' => 'SUCCESS',
             'pay_category' => !empty($params['submit_goods_classify']) ? $params['submit_goods_classify'] : $params['goods_classify'],
-            'pay_amount'=> $params['order_amount_pay'],
-            'pay_paytimes'=>date('Y-m-d H:i:s'),
-            'pay_prepayid'=>$params['pay_category'],
+            'pay_amount' => $params['order_amount_pay'],
+            'pay_paytimes' => date('Y-m-d H:i:s'),
+            'pay_prepayid' => $params['pay_category'],
             'pay_json_request' => json_encode($params),
-            'pay_json_response'=> $params['pay_json_response'] ?? '[]',
+            'pay_json_response' => $params['pay_json_response'] ?? '[]',
             'pay_addtimes' => time()
         ];
 
@@ -296,13 +310,13 @@ class OrderService
     /**
      * 组合支付,PayDetail
      */
-    public static function createPayConstituteDetail($params,$payDetail)
+    public static function createPayConstituteDetail($params, $payDetail)
     {
         $qrcodePrepayId = '';
-        if(in_array($params['pay_category'],['WXPAY','ALIPAY'])){
-            $qrcodePrepayId = $params['join_order_member_id'].'-QRCODE';
+        if (in_array($params['pay_category'], ['WXPAY', 'ALIPAY'])) {
+            $qrcodePrepayId = $params['join_order_member_id'] . '-QRCODE';
         }
-        if (!$payDetail || ($payDetail->pay_prepayid != $params['pay_category'] && $payDetail->pay_prepayid != $qrcodePrepayId)){
+        if (!$payDetail || ($payDetail->pay_prepayid != $params['pay_category'] && $payDetail->pay_prepayid != $qrcodePrepayId)) {
             $payDetail = new PayDetail();
             $payDetail->join_pay_member_id = $params['join_order_member_id'];
             $payDetail->join_pay_order_id = $params['orderGroupId'];
@@ -310,15 +324,15 @@ class OrderService
             $payDetail->pay_prepayid = $params['pay_category'];
             $payDetail->pay_json_request = json_encode($params);
             $payDetail->pay_json_response = $params['pay_json_response'] ?? json_encode([
-                'pay-result'=>'支付成功','result-datetime'=>date('Y-m-d H:i:s')
+                'pay-result' => '支付成功', 'result-datetime' => date('Y-m-d H:i:s')
             ]);
             $payDetail->pay_addtimes = time();
         }
-        if ($payDetail->pay_prepayid == $qrcodePrepayId){
+        if ($payDetail->pay_prepayid == $qrcodePrepayId) {
             $payDetail->pay_prepayid = $params['pay_category'];
         }
         $payDetail->pay_json_response = $params['pay_json_response'] ?? json_encode([
-            'pay-result'=>'支付成功','result-datetime'=>date('Y-m-d H:i:s')
+            'pay-result' => '支付成功', 'result-datetime' => date('Y-m-d H:i:s')
         ]);
         $payDetail->pay_amount = $params['order_amount_pay'];
         $payDetail->pay_paytimes = date('Y-m-d H:i:s');

部分文件因文件數量過多而無法顯示