'选择项', ]; } //取消 public function cancel() { if (!$this->validate()) { return $this->getModelError(); } foreach ($this->ids as $item) { $model = Order::findOne(['id' => $item, 'is_delete' => 0, 'is_pay' => 0]); if ($model == null) { return Model::asReturnError('该订单不存在或已被清理'); } if ($model->cancel_status == 1) { continue; } $model->cancel_status = 1; $model->cancel_time = time(); $model->updated_at = time(); if (!$model->save()) { return Model::getModelErrorInfo($model); } } return Model::asReturnSuccess('操作成功'); } //删除 public function delete() { if (!$this->validate()) { return $this->getModelError(); } $t = \Yii::$app->db->beginTransaction(); foreach ($this->ids as $item) { $model = Order::findOne(['id' => $item, 'is_delete' => 0]); if ($model == null) { $t->rollBack(); return Model::asReturnError('该订单不存在或已被清理'); } if ($model->is_delete == 1) { continue; } $model->is_delete = 1; $model->deleted_at = time(); $model->updated_at = time(); if (!$model->save()) { $t->rollBack(); return Model::getModelErrorInfo($model); } $earings = StoreEarnings::find()->where(['order_id' => $model->id, 'is_delete' => 0])->count(); if (!empty($earings)) { $r = \Yii::$app->db->createCommand()->update(StoreEarnings::tableName(), ['is_delete' => 1], ['order_id' => $model->id, 'is_delete' => 0])->execute(); if (!$r) { $t->rollBack(); return Model::asReturnError('操作失败'); } } } $t->commit(); return Model::asReturnSuccess('操作成功'); } //变更完成 public function finish() { if (!$this->validate()) { return $this->getModelError(); } $t = \Yii::$app->db->beginTransaction(); foreach ($this->ids as $item) { $model = Order::findOne(['id' => $item, 'is_delete' => 0]); if ($model == null) { $t->rollBack(); return Model::asReturnError('该订单不存在或已被清理'); } if ($model->status == 0) { continue; } $model->status = 0; $model->updated_at = time(); if (!$model->save()) { $t->rollBack(); return Model::getModelErrorInfo($model); } } $t->commit(); return Model::asReturnSuccess('操作成功'); } //发起分账 public function multi() { if (!$this->validate()) { return $this->getModelError(); } $item = $this->ids[0]; if(empty($item)){ return Model::asReturnError('选择项不能为空'); } $model = Order::findOne(['id' => $item, 'is_delete' => 0, 'is_pay' => 1, 'cancel_status' => 0]); if ($model == null) { return Model::asReturnError('该订单不存在或已被清理'); } $paymentOrder = PaymentOrder::findOne(['order_no' => $model->order_no, 'is_pay' => 1, 'notify_status' => 1]); if (empty($paymentOrder)) { return Model::asReturnError('该订单支付数据不存在或已被清理'); } if (empty($model->store_id)) { return Model::asReturnError('该订单未选择门店!'); } $store = Store::findOne(['id' => $model->store_id, 'is_delete' => 0]); if (empty($store)) { return Model::asReturnError("选择门店【{$model->store_id}】不存在或已被清理!"); } $card_id = $store->card_id; $earnings = StoreEarnings::findOne(['order_id' => $model->id, 'user_id' => $model->user_id, 'is_delete' => 0]); if (empty($earnings) || empty($earnings->id) || empty($card_id) || empty($earnings->money)) { return Model::asReturnError("请检查预收益是否存在且门店是否绑定银行卡!"); } $param['id'] = $earnings->id; $param['card_id'] = $card_id; $param['money'] = $earnings->money; $param['tranDate'] = date('Ymd', $model->pay_time); $cardForm = new CardFrom(); //单次分账 $multi = $cardForm->psOrder($paymentOrder, $param); if ($multi['code'] != 0) { \Yii::info("银联单次分账-ERROR-{$paymentOrder->order_no}-主动发起-{$multi['msg']}",'union_pay'); return Model::asReturnError($multi['msg']); } if($earnings->status != 1){ $earnings->status = 1; } $earnings->card_id = $card_id; if (!$earnings->save()) { return Model::getModelErrorInfo($earnings); } //完结记录-psOrderFinish /* $meta2 = OrderUnionMeta::findOne(['payment_order_union_id' => $paymentOrder->payment_order_union_id, 'type' => 'psOrderFinish', 'desc' => 'SUCCESS', 'is_delete' => 0]); if (empty($meta2)) { $finish = $cardForm->psOrderFinish($paymentOrder); if ($finish['code'] != 0) { \Yii::info("银联分账完结-ERROR-{$paymentOrder->order_no}-主动发起-{$finish['msg']}",'union_pay'); if ($is_multi) { if (!$earnings->save()) { \Yii::info("银联分账完结-ERROR-{$paymentOrder->order_no}-主动发起-收益记录状态更新失败-触发多次分账",'union_pay'); return Model::getModelErrorInfo($earnings); } } return Model::asReturnError($finish['msg']); } $earnings->status = 2; if (!$earnings->save()) { \Yii::info("银联分账完结-SUCCESS-{$paymentOrder->order_no}-主动发起-收益记录状态更新失败",'union_pay'); return Model::getModelErrorInfo($earnings); } } */ return Model::asReturnSuccess('操作成功'); } }