Răsfoiți Sursa

Merge branch 'master' of e.coding.net:zdap/weixiu/weixiu_api into m--tmp

liugc 1 an în urmă
părinte
comite
f44e861d9e

+ 9 - 4
app/api/logic/GroupActivityLogic.php

@@ -109,7 +109,7 @@ class GroupActivityLogic extends BaseLogic
      * @notes 用户订单详情
      */
     public static function userOrderDetail($order_id,$userId){
-        $detail = GroupUserOrder::with('groupOrder')->where(['id'=>$order_id, 'user_id' => $userId])->field('id,status,pay_way,pay_time,pay_status,refund_status,remark,create_time,group_order_id,user_equity_id,area,address')->findOrEmpty()->toArray();
+        $detail = GroupUserOrder::with('groupOrder')->where(['id'=>$order_id, 'user_id' => $userId])->field('id,status,pay_way,pay_time,pay_status,refund_status,remark,create_time,group_order_id,group_activity_id,user_equity_id,area,address')->findOrEmpty()->toArray();
         if ($detail) {
             $detail['is_refund'] = 0;
             if ($detail['pay_status'] == 1 && $detail['refund_status'] == 0) {
@@ -119,7 +119,12 @@ class GroupActivityLogic extends BaseLogic
                     $detail['is_refund'] = 1;
                 }
             }
-            $detail['goods'] = EquityConfig::where('id', $detail['groupOrder']['equity_id'])->field('id,equity_name,number,day_num')->findOrEmpty()->toArray();
+            $detail['activity'] = GroupActivity::with('goods')->where(['id'=>$detail['group_activity_id']])->visible([
+                'id','title','image','start_time','end_time','type','equity_id',
+                'participant_num','origin_price','price','form_time_limit','area'
+            ])->findOrEmpty()->toArray();
+            
+            $detail['activity']['area'] = explode(",",$detail['activity']['area']);
             $detail['timestamp'] = time();
         }
         return $detail;
@@ -201,11 +206,11 @@ class GroupActivityLogic extends BaseLogic
 
             //生成用户拼单订单
             $data = [
-                'sn' => $groupOrder['sn'],
+                'sn' => generate_sn(groupUserOrder::class, 'sn'),
                 'group_order_id' => $groupOrder['id'],
                 'group_activity_id' => $params['group_activity_id'],
                 'user_id' => $params['user_id'],
-                'remark' => isset($params['remark']) ?? '',
+                'remark' => isset($params['remark']) ? $params['remark'] : '',
                 'order_amount' => $order_amount,
                 'order_terminal' => $params['terminal'],
             ];

+ 14 - 4
app/common/service/pay/WeChatPayService.php

@@ -22,6 +22,7 @@ use app\common\logic\PayNotifyLogic;
 use app\common\model\recharge\RechargeOrder;
 use app\common\model\user\UserAuth;
 use app\common\model\works\ServiceWork;
+use app\common\model\group_activity\GroupUserOrder;
 use app\common\service\wechat\WeChatConfigService;
 use EasyWeChat\Pay\Application;
 use EasyWeChat\Pay\Message;
@@ -378,15 +379,20 @@ class WeChatPayService extends BasePayService
                 $extra['transaction_id'] = $message['transaction_id'];
                 $attach = $message['attach'];
                 $message['out_trade_no'] = mb_substr($message['out_trade_no'], 0, 18);
-                $order = RechargeOrder::where(['sn' => $message['out_trade_no']])->findOrEmpty();
-                if($order->isEmpty() || $order->pay_status == PayEnum::ISPAID) {
-                    return true;
-                }
+                
                 switch ($attach) {
                     case 'recharge':
+                        $order = RechargeOrder::where(['sn' => $message['out_trade_no']])->findOrEmpty();
+                        if($order->isEmpty() || $order->pay_status == PayEnum::ISPAID) {
+                            return true;
+                        }
                         PayNotifyLogic::handle('recharge', $message['out_trade_no'], $extra);
                         break;
                     case 'goods':
+                        $order = RechargeOrder::where(['sn' => $message['out_trade_no']])->findOrEmpty();
+                        if($order->isEmpty() || $order->pay_status == PayEnum::ISPAID) {
+                            return true;
+                        }
                         $res = PayNotifyLogic::handle('goods', $message['out_trade_no'], $extra);
                         if($res === true){
                             // 用户下单后,给订单运营专员(配置固定ID)发送公众号提醒(订单信息)
@@ -427,6 +433,10 @@ class WeChatPayService extends BasePayService
                         }
                         break;
                     case 'group':
+                        $order = GroupUserOrder::where(['sn' => $message['out_trade_no']])->findOrEmpty();
+                        if($order->isEmpty() || $order->pay_status == PayEnum::ISPAID) {
+                            return true;
+                        }
                         PayNotifyLogic::handle('group', $message['out_trade_no'], $extra);
                         break;
                 }