public function actionWinner($id) { $auction = Auction::findOne($id); if ($auction) { $auction->status = 'INACTIVE'; if ($auction->save()) { $return = $id . '-'; if (!$auction->user_id) { $return .= '/'; } elseif ($auction->user_id == Yii::$app->user->id) { $return .= '+'; } else { $return .= $auction->user_id; } echo $return; } else { echo "no save " . $id; } } else { echo "no auction " . $id; } }
private function composeRankInfo($auctionId, $price) { $user = Yii::$app->session->get('user'); if (empty($user)) { $this->goHome(); } $lang = Util::getLanguage(); $bidOnce = Bid::find()->where(['auction_id' => $auctionId, 'user_id' => $user->id])->exists(); if (!$bidOnce && !$price) { $rank = 0; $class = 'init'; $message = $lang == 'en' ? 'I am not bidding!' : '我未出价!'; return [$rank, $class, $message]; } $rank = Bid::find()->where(['auction_id' => $auctionId])->andWhere(['>=', 'offer', $price])->andWhere(['not', ['user_id' => $user->id]])->count(1) + 1; $auction = Auction::findOne($auctionId); if ($rank == 1) { $class = 'success'; $message = $lang == 'en' ? 'I am winning!' : '恭喜,领先!'; } elseif ($rank < $auction->seats) { $class = 'warning'; $message = $lang == 'en' ? "I am ranking {$rank}" : '我排在第' . $rank . '名!'; } else { $class = 'fail'; $message = $lang == 'en' ? ' I am out of bid!' : '我已出局!'; } return [$rank, $class, $message]; }