protected function dealSellAction($transaction) { $transaction->status = 1; $memberStack = $transaction->getMemberStack()->one(); $memberStack->lock_volume -= $transaction->volume; $member = $transaction->getMember()->one(); $fee = round($transaction->total_price * System::loadConfig('sell_fee_rate'), 2); $member->finance_fund += $transaction->total_price - $fee; $stackOutRecord = InRecord::prepareModelForSellStack($transaction->member_id, $transaction->total_price - $fee, $member->finance_fund, $fee); $stackOutRecord->note = '系统解锁[' . $transaction->created_at . ']出售[' . $transaction->stack->code . ']' . $transaction->volume . '股'; $stackOutRecord->save(); $member->save(); $memberStack->save(); $transaction->save(); }
public function actionClear($id) { $model = $this->findTransaction($id); $model->cleared = 1; $model->cleared_at = date('Y-m-d H:i:s'); $connection = Yii::$app->db; try { $member = $model->member; $member->finance_fund += $model->investment; $inRecord = InRecord::prepareModelForSellStack($model->member_id, $model->investment, $member->finance_fund, 0); $inRecord->note = '基金[' . $model->fund->name . ']清仓'; $inRecord->type = 5; $transaction = $connection->beginTransaction(); if ($model->save() && $inRecord->save() && $member->save()) { $transaction->commit(); return $this->redirect(['history']); } else { Yii::error('Fund Clear Failed'); Yii::error(json_encode($model->getErrors())); Yii::error(json_encode($inRecord->getErrors())); Yii::error(json_encode($member->getErrors())); $transaction->rollback(); } } catch (Exception $e) { } return $this->redirect(['history']); }
public function actionUnlock() { $id = Yii::$app->request->get('id'); $stackTransaction = StackTransaction::findOne($id); $connection = Yii::$app->db; try { $transaction = $connection->beginTransaction(); if ($stackTransaction->type == 0) { $stackTransaction->status = 1; $memberStack = $stackTransaction->getMemberStack()->one(); $memberStack->sell_volume += $stackTransaction->volume; $memberStack->lock_volume -= $stackTransaction->volume; if ($memberStack->save() && $stackTransaction->save()) { $transaction->commit(); Yii::$app->session->setFlash('success', '交易自主解锁成功'); } else { $transaction->rollBack(); Yii::$app->session->setFlash('danger', '交易自主解锁失败, 请稍后再试或联系管理员'); } } else { $stackTransaction->status = 1; $memberStack = $stackTransaction->getMemberStack()->one(); $memberStack->lock_volume -= $stackTransaction->volume; $member = $stackTransaction->getMember()->one(); $fee = round($stackTransaction->total_price * System::loadConfig('sell_fee_rate'), 2); $member->stack_fund += $stackTransaction->total_price - $fee; $stackOutRecord = InRecord::prepareModelForSellStack($stackTransaction->member_id, $stackTransaction->total_price - $fee, $member->stack_fund, $fee); $stackOutRecord->account_type = 2; $stackOutRecord->note = '自主解锁[' . $stackTransaction->created_at . ']出售股票[' . $stackTransaction->stack->code . ']' . $stackTransaction->volume . '股'; if ($memberStack->save() && $stackTransaction->save() && $member->save() && $stackOutRecord->save()) { $transaction->commit(); Yii::$app->session->setFlash('success', '交易自主解锁成功'); } else { $transaction->rollBack(); Yii::$app->session->setFlash('danger', '交易自主解锁失败, 请稍后再试或联系管理员'); } } } catch (Exception $e) { $transaction->rollBack(); } $this->redirect(Yii::$app->request->referrer); return; }