db->beginTransaction(); $paymentOrder = \app\models\PaymentOrder::findOne(['order_no' => $paymentOrder->orderNo, 'notify_status' => [0,2]]); if($paymentOrder == null){ return $this->apiReturnError('支付回调已经处理或不存在'); } $paymentOrder->notify_status = 1; if(!$paymentOrder->save()){ $t->rollBack(); return $this->getModelError($paymentOrder); } //订单状态 $order = Order::findOne(['order_no' => $paymentOrder->order_no]); if($order == null){ $t->rollBack(); return $this->apiReturnError('订单不存在'); } $order->pay_type = $paymentOrder->pay_type; $order->is_pay = 1; $order->pay_time = time(); $order->total_pay_price = $paymentOrder->amount; $order->status = 1; if(!$order->save()){ $t->rollBack(); \Yii::info("订单错误error:{$this->getModelError($order)['msg']}",'earnings'); return $this->getModelError($order); } $detail = OrderDetail::findOne(['order_id' => $order->id]); if(!$detail){ $t->rollBack(); \Yii::info("订单错误error:获取订单球车信息失败",'earnings'); return $this->apiReturnError('获取订单球车信息失败'); } $ball_cart = BallCart::find()->andWhere(['ball_number' => $detail->goods_id,'is_delete'=>0])->orderBy(['id'=>SORT_DESC])->one(); if (empty($ball_cart)) { $t->rollBack(); \Yii::info("订单错误error:球车信息不存在,请更换一辆",'earnings'); return $this->apiReturnError('球车信息不存在,请更换一辆'); } if ($ball_cart->status == 1) { $t->rollBack(); \Yii::info("订单错误error:球车正在租赁中,请更换一辆",'earnings'); return $this->apiReturnError('球车正在租赁中,请更换一辆'); } $ball_cart->status = 1; if (!$ball_cart->save()) { $t->rollBack(); \Yii::info("球车错误error:{$this->getModelError($ball_cart)['msg']}",'earnings'); return $this->apiReturnError('球车错误:'.$this->getModelError($ball_cart)); } $earnings = StoreEarnings::get_earnings($order); if($earnings['code'] != 0){ \Yii::info("计算门店收入error:{$earnings['msg']}",'earnings'); $t->rollBack(); return $this->apiReturnError($earnings['msg']); } $user = ApiHelper::findOneUser($order->user_id); if($user != null){ $ball_mark = BallMark::findOne(['id' => $ball_cart->mark_id]); $array = ['ball_mark' => $ball_mark->name, 'ball_cart' => $ball_cart->name, 'start_date' => time(), 'end_date' => 0, 'price' => $order->total_price, 'object_id' => $order->id]; MsgCentreForm::add($ball_cart->store_id, 1, $array); $store = Store::findOne($ball_cart->store_id); \Yii::info($order->id . '__' . $ball_cart->ball_number . '__' . json_encode($user->bindWxmp) . '__' . $ball_cart->store_id . '__进入下单模板通知' . '__小程序下单模板通知', 'wx_applet_msg'); if ($user->bindWxmp && $store != null) { \Yii::info($order->id . '__' . $ball_cart->ball_number . '__进入下单模板通知' . '__小程序下单模板通知', 'wx_applet_msg'); MsgCentreForm::sendWxAppletLeaseMsg($user, $store, $order, ['ball_number' => $ball_cart->ball_number, 'price' => $order->total_pay_price]); } }else{ \Yii::info($order->order_no . '__' . $ball_cart->ball_number . '__支付回调发送消息失败_user信息未找到' . '__小程序下单模板通知', 'wxpay'); } $t->commit(); return $this->apiReturnSuccess(); } }