Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 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']);
 }
Esempio n. 3
0
 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;
 }