Browse Source

Merge branch 'debug' into dev

gorden 6 months ago
parent
commit
56100b07b1

+ 36 - 15
app/admin/controller/order/WholeController.php

@@ -608,7 +608,7 @@ class WholeController extends Curd
                 $orderConfigJson['premises'] = $params['dept_premises_id'];
             }
             if (!empty($params['dept_table_id'])) {
-                if (isset($orderConfigJson['tableid']) && $params['dept_table_id'] != $orderConfigJson['tableid']) {
+                if (!empty($orderConfigJson['tableid']) && $params['dept_table_id'] != $orderConfigJson['tableid']) {
                     // 原桌释放
                     SysDept::where('dept_id', $orderConfigJson['tableid'])->update(['dept_status' => 'ACTIVED']);
 
@@ -757,7 +757,7 @@ class WholeController extends Curd
             Redis::del($key);
         }
         // 验证线下付款密码
-        if ($params['pay_constitute'] == 'N' && in_array($params['pay_category'], ['OFFLINE','MONEY'])) {
+        if ($params['pay_constitute'] == 'N' && in_array($params['pay_category'], ['OFFLINE', 'MONEY'])) {
             $password = $params['offline_password'];
             if ($password != '666888') {
                 return json_fail("密码错误,请重新输入");
@@ -1204,11 +1204,11 @@ class WholeController extends Curd
             }
             _syslog("订单", "订单支付成功");
             return json_success('支付成功');
-        }catch (BusinessException $e){
+        } catch (BusinessException $e) {
             dump($e->getMessage());
             Db::rollBack();
-            _syslog("订单", "订单支付失败:".$e->getMessage());
-            return json_fail("支付失败:".$e->getMessage());
+            _syslog("订单", "订单支付失败:" . $e->getMessage());
+            return json_fail("支付失败:" . $e->getMessage());
         } catch (\Exception $e) {
             dump($e->getMessage());
             Db::rollBack();
@@ -1231,7 +1231,7 @@ class WholeController extends Curd
                 $params['order_discount_amount'] = $params['order_amount_total'] - $params['order_amount_pay'];
                 $couponClassifyDesc = $couponClassify = '抹零';
             } else if (!empty($params['preferential']) && $params['preferential'] == 'custom') {
-                if (sprintf("%.2f",$params['order_amount_total']-$params['order_discount_amount']) != sprintf("%.2f",$params['order_amount_pay'])) {
+                if (sprintf("%.2f", $params['order_amount_total'] - $params['order_discount_amount']) != sprintf("%.2f", $params['order_amount_pay'])) {
                     throw new BusinessException("餐厅前台优惠后实际支付金额错误");
                 }
                 $couponClassifyDesc = $couponClassify = '餐厅前台优惠';
@@ -1242,7 +1242,7 @@ class WholeController extends Curd
                 $couponClassify = '折扣';
                 $couponClassifyDesc = $params['preferential'] . '折';
                 $params['order_discount_amount'] = $params['order_amount_total'] - $params['order_amount_pay'];
-            } else{
+            } else {
                 return $json;
             }
             $json[date('Y-m-d H:i:s')] = [
@@ -1253,7 +1253,7 @@ class WholeController extends Curd
                 'coupon_classify_en' => $params['preferential']
             ];
             return $json;
-        }catch (BusinessException $e){
+        } catch (BusinessException $e) {
             throw new BusinessException($e->getMessage());
         } catch (\Exception $e) {
             dump($e->getMessage());
@@ -1749,7 +1749,7 @@ class WholeController extends Curd
                 Redis::del($key);
             }
             // 验证线下付款密码
-            if ($params['settlement_now'] == 'Y' && $params['pay_constitute'] == 'N' && in_array($params['pay_category'], ['OFFLINE','MONEY'])) {
+            if ($params['settlement_now'] == 'Y' && $params['pay_constitute'] == 'N' && in_array($params['pay_category'], ['OFFLINE', 'MONEY'])) {
                 $password = $params['offline_password'];
                 if ($password != '666888') {
                     return json_fail("密码错误,请重新输入");
@@ -2895,7 +2895,7 @@ class WholeController extends Curd
                 $payPrepayid = $params['pay_category'];
             } else if ($params['pay_category'] == 'OFFLINE') {
                 $payPrepayid = 'OFFLINE';
-            }  else if ($params['pay_category'] == 'MONEY') {
+            } else if ($params['pay_category'] == 'MONEY') {
                 $payPrepayid = 'MONEY';
             } else {
                 $payPrepayid = $params['join_order_member_id'] . '-' . $params['pay_category'];
@@ -3866,6 +3866,7 @@ class WholeController extends Curd
     public function exportOrder(Request $request)
     {
         [$where, $format, $limit, $field, $order] = $this->selectInput($request);
+        $where['order_category'] = ['<>', 'RECHARGE'];
         if (!empty($request->get('order_ids'))) {
             $where['order_id'] = ['in', $request->get('order_ids')];
         }
@@ -4051,7 +4052,7 @@ class WholeController extends Curd
     {
         $data = [];
         foreach ($items as $key => $item) {
-            $goodsClassify = '--';
+            $goodsClassify = '';
             $goodsName = '--';
             if (!empty($item['sheet'])) {
                 $goods = Goods::where('goods_id', $item['sheet']['join_sheet_goods_id'])->first();
@@ -4064,17 +4065,35 @@ class WholeController extends Curd
             } elseif ($item['order_is_complete'] == 'R') {
                 $systemStatus = '售后已完成';
             }
-
+            $payDetails = PayDetail::where('join_pay_order_id', $item['order_groupby'])
+                ->where('pay_status', 'SUCCESS')
+                ->where('pay_category','<>','REFUND')
+                ->get()
+                ->toArray();
+            if (count($payDetails) > 1) {
+                $payWay = '组合支付';
+            } elseif (count($payDetails) == 1) {
+                $payWayEn = OrderService::getPayWayByPrepayId($payDetails[0]['pay_prepayid']);
+                $payWay = OrderService::$payWay[$payWayEn];
+            }
+            dump($goodsClassify,self::$goodsClassify[$goodsClassify]);
+            $memberName = '';
+            if ($item['member']['member_mobile'] == '0000') {
+                $memberName = '散客';
+            } else {
+                $memberName = (!empty($item['cert']) ? $item['cert']['member_cert_name'] : substr($item['member']['member_mobile'], -4) . '用户') . '-' . $item['member']['member_mobile'];
+            }
             $data[$key] = [
-                'goods_classify' => !empty($goods) && isset(self::$goodsClassify[$goods->goods_classify]) ? self::$goodsClassify[$goods->goods_classify] : '其他订单',
+                'goods_classify' => !empty($goodsClassify) && isset(self::$goodsClassify[$goodsClassify]) ? self::$goodsClassify[$goodsClassify] : '其他订单',
                 'order_id' => $item['order_id'],
-                'member' => (!empty($item['cert']) ? $item['cert']['member_cert_name'] : substr($item['member']['member_mobile'], -4) . '用户') . '-' . $item['member']['member_mobile'],
+                'member' => $memberName,
                 'goods_name' => $goodsName,
                 'nbr' => !empty($item['sheet']) ? intval($item['sheet']['order_sheet_num']) : '--',
                 'order_amount_total' => $item['order_amount_total'],
                 'order_amount_pay' => $item['order_amount_pay'],
                 'order_status_system' => !empty($systemStatus) ? $systemStatus : self::$systemStatus[$item['order_status_system']],
                 'order_status_payment' => self::$paymentStatus[$item['order_status_payment']],
+                'pay_way' => $payWay ?? '',
                 'order_addtimes' => date('Y-m-d H:i:s', strtotime($item['order_addtimes']))
             ];
         }
@@ -4210,7 +4229,9 @@ class WholeController extends Curd
         'PACKAGE' => '套包订单',
         'RECHARGE' => '充值订单',
         'OTHER' => '其他订单',
-        'DISHES' => '餐饮订单'
+        'DISHES' => '餐饮订单',
+        'MEALS' => '餐饮订单',
+        'VIP' => '康养城订单'
     ];
 
     //				systemStatus: {BEING:"待生效",PAYING:"待支付",PENDING:"待确认",WAITING:"待受理",SENDING:"待发货",RECVING:"待收货",SIGNED:"已签收",CONFIRM:"确认收货"},

+ 49 - 19
app/admin/service/order/OrderService.php

@@ -225,16 +225,17 @@ class OrderService
                 $config['notify_url'] = getenv('NOTIFY_DOMAIN_ADMIN') . '/notify/orderPay/wxpay';
                 Pay::wechat($config)->pos($payData);
                 $result = self::findWxpay($params['orderGroupId'], 0);
-            }catch (GatewayException $g){
+            } catch (GatewayException $g) {
                 $result = self::findWxpay($params['orderGroupId'], 0);
             } catch (\Exception $e) {
                 $log->error("WXPAY", ['msg' => $e->getMessage()]);
                 $result = self::findWxpay($params['orderGroupId'], 0);
 //                throw new BusinessException("支付失败");
             }
-            try{
+            try {
                 $log->info("WXPAY_RETURN", json_decode(json_encode($result), true));
-            }catch (\Exception $e){}
+            } catch (\Exception $e) {
+            }
 
 
         } else if (in_array($prefix, [25, 26, 27, 28, 29, 30])) {
@@ -246,19 +247,20 @@ class OrderService
             ];
             try {
                 $config = config('payment.alipay');
-                $config['notify_url'] = getenv('NOTIFY_DOMAIN_ADMIN').'/notify/orderPay/alipay';
+                $config['notify_url'] = getenv('NOTIFY_DOMAIN_ADMIN') . '/notify/orderPay/alipay';
                 Pay::alipay($config)->pos($payData);
                 $result = self::findAlipay($params['orderGroupId'], 0);
-            } catch (GatewayException $g){
+            } catch (GatewayException $g) {
                 $result = self::findAlipay($params['orderGroupId'], 0);
             } catch (\Exception $e) {
                 $log->error("ALIPAY", ['msg' => $e->getMessage()]);
                 throw new BusinessException("支付失败");
             }
 
-            try{
+            try {
                 $log->info("ALIPAY_RETURN", json_decode(json_encode($result), true));
-            }catch (\Exception $e){}
+            } catch (\Exception $e) {
+            }
         } else {
             throw new BusinessException("付款码无效");
         }
@@ -286,16 +288,16 @@ class OrderService
         }
 
         if (!empty($result['return_code']) && $result['return_code'] == 'SUCCESS' && !empty($result['result_code']) && $result['result_code'] == 'SUCCESS' && !empty($result['trade_state']) && $result['trade_state'] == 'SUCCESS') {
-            SupportLog::channel('pay')->info("FIND_WXPAY_SUCCESS", ['nbr' => $nbr,'order_id'=>$orderId]);
+            SupportLog::channel('pay')->info("FIND_WXPAY_SUCCESS", ['nbr' => $nbr, 'order_id' => $orderId]);
             return $result;
         } else {
             if ($nbr > 2) {
-                SupportLog::channel('pay')->error("FIND_WXPAY", ['msg' => '订单查询失败','order_id'=>$orderId]);
-                return ['msg'=>'订单查询失败'];
+                SupportLog::channel('pay')->error("FIND_WXPAY", ['msg' => '订单查询失败', 'order_id' => $orderId]);
+                return ['msg' => '订单查询失败'];
             }
-            dump('nbr-'.$nbr);
+            dump('nbr-' . $nbr);
             sleep(5);
-            SupportLog::channel('pay')->error("FIND_WXPAY", ['nbr' => $nbr,'order_id'=>$orderId]);
+            SupportLog::channel('pay')->error("FIND_WXPAY", ['nbr' => $nbr, 'order_id' => $orderId]);
             return self::findWxpay($orderId, $nbr + 1);
         }
     }
@@ -320,15 +322,15 @@ class OrderService
         }
 
         if (!empty($result['code']) && $result['code'] == '10000' && !empty($result['trade_status']) && $result['trade_status'] == 'TRADE_SUCCESS') {
-            SupportLog::channel('pay')->info("FIND_ALIPAY_SUCCESS", ['nbr' => $nbr,'order_id'=>$orderId]);
+            SupportLog::channel('pay')->info("FIND_ALIPAY_SUCCESS", ['nbr' => $nbr, 'order_id' => $orderId]);
             return $result;
         } else {
             if ($nbr > 2) {
-                SupportLog::channel('pay')->error("FIND_ALIPAY", ['msg' => '订单查询失败','order_id'=>$orderId]);
-                return ['msg'=>'订单查询失败'];
+                SupportLog::channel('pay')->error("FIND_ALIPAY", ['msg' => '订单查询失败', 'order_id' => $orderId]);
+                return ['msg' => '订单查询失败'];
             }
             sleep(5);
-            SupportLog::channel('pay')->error("FIND_ALIPAY", ['nbr' => $nbr,'order_id'=>$orderId]);
+            SupportLog::channel('pay')->error("FIND_ALIPAY", ['nbr' => $nbr, 'order_id' => $orderId]);
             return self::findAlipay($orderId, $nbr + 1);
         }
     }
@@ -412,9 +414,37 @@ class OrderService
         $payDetail->save();
     }
 
+    public static function getPayWayByPrepayId($prepayId)
+    {
+        $payWay = '';
+        $categoryArray = explode('-', $prepayId);
+        if (isset($categoryArray[1])) {
+            $payWay = $categoryArray[1];
+        } else if (in_array($categoryArray[0], ['WXPAY', 'ALIPAY'])) {
+            $payWay = $categoryArray[0];
+        } else if ($categoryArray[0] == 'OFFLINE') {
+            $payWay = $categoryArray[0];
+        } else if ($categoryArray[0] == 'MONEY') {
+            $payWay = $categoryArray[0];
+        }
+
+        return $payWay;
+    }
+
+
+    public static $couponClassify = [
+        'wipe' => '抹零',
+        'custom' => '自定义优惠金额'
+    ];
 
-    public static $couponClassify=[
-        'wipe'=>'抹零',
-        'custom'=>'自定义优惠金额'
+    public static $payWay = [
+        'WXPAY'=>'微信支付',
+        'ALIPAY' => '支付宝',
+        'CASH' => '账户余额',
+        'CARD' => '储值卡',
+        'WELFARE' => '福利账户',
+        'MONEY' => '现金',
+        'OFFLINE' => '线下支付',
+        'QRCODE' => '付款码'
     ];
 }

+ 11 - 0
app/event/order/OrderProcessEvent.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace app\event;
+
+class OrderProcessEvent
+{
+    public function insert($params)
+    {
+
+    }
+}