public function courses() { $courses = Course::orderBy('created_at', 'desc')->get(); $return_data = []; foreach ($courses as $course) { $return_data[] = ["id" => $course->id, "linkId" => convert_vi_to_en($course->name), 'name' => "Khoá học " . $course->name, "icon_url" => $course->icon_url, "description" => $course->description, "avatar_url" => $course->image_url, "price" => currency_vnd_format($course->price)]; } return $this->respond($return_data); }
public function store_transaction(Request $request) { $money = $request->money; $note = $request->note; $type = $request->type; if ($money == null || $type == null) { Session::flash('message', '<strong class="red-text">Bạn cần nhập số tiền và chọn loại giao dịch</strong>'); return redirect('manage/spendmoney'); } $current_money = $this->user->money; if ($type == 2) { if ($current_money < $money) { Session::flash('message', '<strong class="red-text">Bạn không thể chi nhiều hơn số tiền mình có</strong>'); } else { Session::flash('message', '<strong class="blue-text">Bạn đã chi ' . currency_vnd_format($money) . '</strong>'); $this->user->money = $current_money - $money; $this->user->save(); $transaction = new Transaction(); $transaction->money = $money; $transaction->note = $note; $transaction->type = $type; $transaction->status = 1; $transaction->sender_id = $this->user->id; $transaction->sender_money = $current_money; $transaction->save(); } } else { Session::flash('message', '<strong class="green-text">Bạn đã thêm ' . currency_vnd_format($money) . '</strong>'); $this->user->money = $current_money + $money; $this->user->save(); $transaction = new Transaction(); $transaction->money = $money; $transaction->note = $note; $transaction->type = $type; $transaction->status = 1; $transaction->sender_id = $this->user->id; $transaction->sender_money = $current_money; $transaction->save(); } return redirect('manage/spendmoney'); }
public function transform($notification) { $data = ['id' => $notification->id, 'receiver' => ['id' => $notification->receiver->id, 'avatar_url' => $notification->receiver->avatar_url == null ? url('img/user.png') : $notification->receiver->avatar_url, 'name' => $notification->receiver->name, 'username' => $notification->receiver->username], 'actor' => ['id' => $notification->actor->id, 'avatar_url' => $notification->actor->avatar_url == null ? url('img/user.png') : $notification->actor->avatar_url, 'name' => $notification->actor->name, 'username' => $notification->actor->username], 'created_at' => time_elapsed_string(strtotime($notification->created_at)), 'seen' => $notification->seen == 1]; if ($notification->type <= 2 && $notification->type >= 0) { // if ($notification->product == null) { // $notification->delete(); // } $data['product'] = ['id' => $notification->product->id, 'linkId' => $notification->product->name ? convert_vi_to_en($notification->product->name) . "-" . $notification->product->id : "bai-tap-colorme-" . $notification->product->id]; } else { if ($notification->type == 3 || $notification->type == 4) { $data['transaction'] = ['id' => $notification->transaction->id, 'status' => $notification->transaction->status, 'money' => currency_vnd_format($notification->transaction->money)]; if ($notification->transaction->status != 0 && $notification->type == 3) { $notification->type = 4; $notification->save(); } } else { if ($notification->type == 5) { $data['topic'] = ['id' => $notification->topic->id]; } } } $data['type'] = notification_type($notification->type); return $data; }
public function confirm_transaction(Request $request) { $transaction_id = $request->id; $status = $request->status; $transaction = Transaction::find($transaction_id); if ($transaction->status != 0) { return json_encode(['error' => 'Giao dịch không ở trạng thái pending', 'status' => transaction_status($transaction->status), 'money' => currency_vnd_format($transaction->receiver->money)]); } $transaction->status = $status; $transaction->sender->status = 0; if ($status == 1) { $transaction->sender->money = $transaction->sender->money - $transaction->money; $transaction->receiver->money = $transaction->receiver->money + $transaction->money; } $transaction->save(); $transaction->sender->save(); $transaction->receiver->save(); $notification = new Notification(); $notification->product_id = $transaction->id; $notification->actor_id = $transaction->receiver->id; $notification->receiver_id = $transaction->sender->id; $notification->type = 4; $notification->save(); $data = array("message" => "Bạn chuyển tiền cho " . $transaction->receiver->name . " " . transaction_status_raw($transaction->status), "link" => "", 'transaction' => ['id' => $transaction->id, 'sender' => $transaction->sender->name, 'receiver' => $transaction->receiver->name, 'status' => transaction_status_raw($transaction->status), 'money' => $transaction->money], 'created_at' => format_date_full_option($notification->created_at), "receiver_id" => $notification->receiver_id); $publish_data = array("event" => "notification", "data" => $data); Redis::publish('colorme-channel', json_encode($publish_data)); $publish_data = array("event" => "notification", "data" => ["notification" => $this->notificationTransformer->transform($notification)]); Redis::publish('colorme-channel', json_encode($publish_data)); $return_data = array('status' => transaction_status($transaction->status), 'money' => currency_vnd_format($transaction->receiver->money)); return json_encode($return_data); }