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);
 }
Esempio n. 2
0
 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;
 }
Esempio n. 4
0
 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);
 }