'订单号', 'id' => '订单ID', ]; } public function search() { if (!$this->validate()) { return $this->getModelError(); } if($this->type == 0){ //分账记录-psOrderMulti $model = OrderUnionMeta::findOne(['ps_mer_order_no' => $this->order_no, 'type' => 'psOrderMulti', 'desc' => 'SUCCESS', 'is_delete' => 0]); if(empty($model)){ return Model::asReturnError('多次分账记录不存在'); } }elseif ($this->type == 1){ //完结记录-psOrderFinish $model = OrderUnionMeta::findOne(['ps_mer_order_no' => $this->order_no,'type' => 'psOrderFinish', 'desc' => 'SUCCESS', 'is_delete' => 0]); if(empty($model)){ return Model::asReturnError('完结分账记录不存在'); } }else{ return Model::asReturnError('非法操作!'); } $PaymentOrderUnion = PaymentOrderUnion::find()->alias('pou') ->select('pou.id,pou.out_trade_no,po.order_no,o.store_id,o.user_id,o.id as order_id') ->leftJoin(['po' => PaymentOrder::tableName()],'pou.id=po.payment_order_union_id') ->leftJoin(['o' => Order::tableName()],'po.order_no=o.order_no') ->where([ 'pou.id' => $model->payment_order_union_id, 'pou.is_pay' => 1, 'po.is_pay' => 1, ]) ->one(); if(empty($PaymentOrderUnion)){ return Model::asReturnError('合并支付订单不存在'); } $earnings = StoreEarnings::findOne([ 'user_id' => $PaymentOrderUnion->user_id, 'store_id' => $PaymentOrderUnion->store_id, 'order_id' => $PaymentOrderUnion->order_id, 'is_delete'=> 0 ]); if(empty($earnings)){ return Model::asReturnError('收益记录不存在'); } $param['merOrderNo'] = $PaymentOrderUnion->out_trade_no; $param['psMerOrderNo'] = $model->ps_mer_order_no; $param['order_no'] = $PaymentOrderUnion->order_no; $cardForm = new CardFrom(); $res = $cardForm->psResultQuery($param); if($res['code'] != '0'){ return $res; } if($res['status'] == '03'){ $status = 3; if($earnings->status != $status){ $earnings->status = $status; if(!$earnings->save()){ return Model::getModelErrorInfo($earnings); } } } if($res['status'] == '02'){ $status = 4; if($earnings->status != $status){ $earnings->status = $status; if(!$earnings->save()){ return Model::getModelErrorInfo($earnings); } } } $type = [ '00' => '分账受理成功', '01' => '分账处理中', '02' => '分账处理完成', '03' => '分账处理失败', ]; $msg = $type[$res['status']]; return ['code' => '0','msg'=> $msg]; } public function search2() { if(empty($this->id)){ return Model::asReturnError('请选择'); } $order = Order::findOne(['id' => $this->id]); if(empty($order)){ return Model::asReturnError('订单不存在'); } if($order->is_pay != 1){ return Model::asReturnError('订单未支付,请支付'); } $PaymentOrder = PaymentOrder::findOne(['order_no' => $order->order_no,'is_pay' => 1,'notify_status' => 1]); if(empty($PaymentOrder)){ return Model::asReturnError('支付数据不存在'); } $PaymentOrderUnion = PaymentOrderUnion::findOne(['id' => $PaymentOrder->payment_order_union_id,'is_pay' => 1]); if(empty($PaymentOrderUnion)){ return Model::asReturnError('合并支付数据不存在'); } $earnings = StoreEarnings::findOne([ 'user_id' => $order->user_id, 'store_id' => $order->store_id, 'order_id' => $order->id, 'is_delete'=> 0 ]); if(empty($earnings)){ return Model::asReturnError('收益记录不存在'); } //分账记录-psOrderMulti $model = OrderUnionMeta::find()->where(['payment_order_union_id' => $PaymentOrderUnion->id,'type' => 'psOrder','desc' => 'SUCCESS','is_delete' => 0])->orderBy(['id' => SORT_DESC])->limit(1)->one(); if(empty($model)){ return Model::asReturnError('分账记录不存在'); } $param['merOrderNo'] = $PaymentOrderUnion->out_trade_no; $param['psMerOrderNo'] = $model->ps_mer_order_no; $param['order_no'] = $order->order_no; $cardForm = new CardFrom(); $res = $cardForm->psResultQuery($param); if($res['code'] != '0'){ return $res; } $psResult_arr = [ '00' => '待分账', '01' => '分账成功', '02' => '分账失败', '03' => '已关闭', ]; $status_arr = [ '00' =>'分账受理成功', '01' => '分账处理中', '02' => '分账处理完成', '03' => '分账处理失败', ]; $data = $res['data']; $msg = ''; $status_cn = $status_arr[$data['status']]; $msg.= '分账订单号:'.$data['psMerOrderNo'].'
'; $msg.= '分账单状态:'.$status_cn."
"; $msg.= '分账结果备注:'.$data['resultRemark']."
"; if($data['status'] == '02'){ if($earnings->status != 3){ $earnings->status = 3; } $msg.= '分账日期:'.$data['psOrderDate']."
"; } if($data['status'] == '03'){ if($earnings->status != 2){ $earnings->status = 2; } } $msg.= "
"; $psReceivers = empty($data['psReceivers']) ? [] : $data['psReceivers']; if(!empty($psReceivers)){ foreach ($psReceivers as $index => &$item){ $item['psFinishTime'] = empty($item['psFinishTime']) ? '未完成' : $item['psFinishTime']; $nickname = '未知'; $card = CardUnion::findOne(['id' => $earnings->card_id]); if(!empty($card)){ $nickname = $card->name; } $psResult_cn = $psResult_arr[$item['psResult']]; $msg.= '分账接收方账户:'.$item['psNo']."
"; $msg.= '分账用户名:'.$nickname."
"; $msg.= '分账金额:'.$item['psAmount']."
"; $msg.= '分账备注:'.$item['psRemark']."
"; $msg.= '分账结果:'.$psResult_cn."
"; $msg.= '分账完成时间:'.$item['psFinishTime']."
"; $msg.= "
"; } } $earnings->save(); return Model::asReturnSuccess($msg); } }