public function getClassXById(Request $request)
 {
     onlyAllowPostRequest($request);
     $id_user = intval($request->input('id'));
     /**
      * Dữ liệu trả về
      */
     $response = new stdClass();
     $users = User::all()->where('id', $id_user);
     if ($users->count() == 0) {
         //
         $response->error = true;
         $response->error_msg = 'Không tồn tại người dùng này!';
         return response()->json($response);
     }
     $user = $users->first();
     $id_class = $user->class;
     $classX = ClassX::all()->where('id', $id_class)->first();
     $response->error = false;
     $class_x = new stdClass();
     $class_x->id = $classX->id;
     $class_x->name = $classX->khoa . $classX->lop;
     $class_x->soSV = ClassX::getCountStudentByClassId($id_class);
     $response->class = $class_x;
     return response()->json($response);
 }
 /**
  * Get user object by id
  *
  * @param $id
  *
  * @return null|stdClass
  */
 public static function getInfoById($id)
 {
     $users = User::all()->where('id', intval($id));
     if ($users->count() == 0) {
         return null;
     }
     $user = $users->first();
     $u = new stdClass();
     $u->id = $user->id;
     $u->name = $user->name;
     $u->lop = ClassX::getClassName($user->class);
     $u->email = $user->email;
     $u->type = $user->type;
     if ($u->type == 'teacher') {
         $u->avatar = '0';
     } else {
         $u->avatar = '1';
     }
     if ($u->type == 'student') {
         $u->mssv = $user->msv;
     } else {
         $u->mssv = '';
     }
     return $u;
 }
 /**
  * Get id class by class name
  *
  * @param $class_name
  *
  * @return bool|int
  */
 public static function getIdByClassName($class_name)
 {
     $classXes = ClassX::all()->where('name', $class_name);
     if ($classXes->count() > 0) {
         $class = $classXes->first();
         return $class->id;
     }
     return false;
 }
 /**
  * Get id class by class name
  *
  * @param $class_name
  *
  * @return bool|int
  */
 public static function getIdByClassName($class_name)
 {
     $classXes = ClassX::all();
     foreach ($classXes as $classX) {
         $name = $classX->khoa . $classX->lop;
         $name = mb_strtolower($name);
         if (mb_strtolower($class_name) == $name) {
             return intval($classX->id);
         }
     }
     return false;
 }
 /**
  * Init data classX
  */
 public function seedDataClassX_es()
 {
     $ks = ['K60', 'K59', 'K58', 'K57'];
     $ns = ['CA', 'CAC', 'CB', 'CC', 'CD', 'CLC', 'T', 'N', 'ĐA', 'ĐB', 'M', 'V', 'H'];
     foreach ($ks as $i => $k) {
         foreach ($ns as $j => $n) {
             $class_name = $k . $n;
             $class = ClassX::all()->where('name', $class_name);
             if ($class->count() == 0) {
                 $cl = ClassX::create(['khoa' => $k, 'lop' => $n]);
             }
         }
     }
 }
 public function getPosts(Request $request)
 {
     onlyAllowPostRequest($request);
     $id_classX = $request->input('id');
     $base = $request->input('base');
     /**
      * Dữ liệu trả về
      */
     $response = new stdClass();
     /**
      * Lớp khóa học
      */
     if ($base == 'class_xes') {
         $classXes = ClassX::all()->where('id', intval($id_classX));
         if ($classXes->count() == 0) {
             //Không tồn tại lớp học này
             $response->error = true;
             $response->error_msg = 'Đã có lỗi gì đó xảy ra!';
             return response()->json($response);
         }
     }
     $postClassXes = Post::all()->where('base', $base)->where('group', intval($id_classX));
     if ($postClassXes->count() == 0) {
         //Chưa có bài viết nào
         $response->error = true;
         $response->error_msg = 'Chưa có bài viết nào trong lớp!';
         return response()->json($response);
     }
     /**
      * Danh sách các bài viết
      */
     $arrPost = [];
     foreach ($postClassXes as $index => $post) {
         /**
          * Post
          */
         $p = Post::getPostInfoById($post->id);
         $arrPost[] = $p;
     }
     $arrPost = array_reverse($arrPost);
     $response->error = false;
     $response->posts = $arrPost;
     return response()->json($response);
 }
 /**
  * Update information user
  *
  * @param Request $request
  *
  * @return \Illuminate\Http\JsonResponse
  */
 public function update(Request $request)
 {
     onlyAllowPostRequest($request);
     $all = $request->only(['email', 'name', 'mssv', 'lop']);
     /**
      * Dữ liệu trả về
      */
     $response = new stdClass();
     /**
      * Xử lý lớp khóa học
      */
     $classX = $all['lop'];
     $id_class = ClassX::getIdByClassName($classX);
     if ($id_class == false) {
         //Lớp khóa học không tồn tại
         $response->error = true;
         $response->error_msg = 'Lớp khóa học không tồn tại';
         return response()->json($response);
     }
     /**
      * Tìm user bằng email
      */
     $users = DB::table('users')->where('email', $all['email']);
     if ($users->count() == 0) {
         $response->error = true;
         $response->error_msg = 'Đã có lỗi gì đó xảy ra!';
         return response()->json($response);
     }
     $updated = $users->update(['name' => ucwords($all['name']), 'msv' => $all['mssv'], 'class' => $id_class]);
     if ($updated == 0) {
         $response->error = true;
         $response->error_msg = 'Cập nhật không có gì thay đổi!';
         return response()->json($response);
     }
     $user = $users->first();
     $response->error = false;
     $response->uid = $user->id;
     $response->user = User::getInfoById($user->id);
     return response()->json($response);
 }
 /**
  * Update information user
  *
  * @param Request $request
  *
  * @return \Illuminate\Http\JsonResponse
  */
 public function update(Request $request)
 {
     onlyAllowPostRequest($request);
     $all = $request->only(['email', 'name', 'mssv', 'lop']);
     /**
      * Dữ liệu trả về
      */
     $response = new stdClass();
     /**
      * Xử lý lớp khóa học
      */
     $classX = $all['lop'];
     $id_class = ClassX::getIdByClassName($classX);
     if ($id_class == false) {
         //Lớp khóa học không tồn tại
         $response->error = true;
         $response->error_msg = 'Lớp khóa học không tồn tại';
         return response()->json($response);
     }
     /**
      * Tìm user bằng email
      */
     $users = DB::table('users')->where('email', $all['email']);
     if ($users->count() == 0) {
         $response->error = true;
         $response->error_msg = 'Đã có lỗi gì đó xảy ra!';
         return response()->json($response);
     }
     $updated = $users->update(['name' => ucwords($all['name']), 'msv' => $all['mssv'], 'class' => $id_class]);
     if ($updated == 0) {
         $response->error = true;
         $response->error_msg = 'Cập nhật không có gì thay đổi!';
         return response()->json($response);
     }
     $user = $users->first();
     $response->error = false;
     $response->uid = $user->id;
     $user_x = new stdClass();
     $user_x->name = $user->name;
     $user_x->email = $user->email;
     $user_x->type = $user->type;
     $user_x->lop = ClassX::getClassName($user->class);
     $user_x->mssv = $user->msv;
     $user_x->created_at = date_create($user->created_at)->setTimezone(new DateTimeZone('Asia/Ho_Chi_Minh'))->format('Y-m-d H:m:i');
     $user_x->updated_at = date_create($user->updated_at)->setTimezone(new DateTimeZone('Asia/Ho_Chi_Minh'))->format('Y-m-d H:m:i');
     $response->user = $user_x;
     return response()->json($response);
 }
 public static function getArrEmail($id)
 {
     //		if ( $base == true ) {
     $class_xes = ClassX::all()->where('id', intval($id));
     if ($class_xes->count() == 0) {
         return [];
     }
     $arrEmail = [];
     $users = User::all()->where('class', intval($id));
     if ($users->count() == 0) {
         return [];
     }
     foreach ($users as $index => $u) {
         $arrEmail[] = $u->email;
     }
     return $arrEmail;
     //		}
 }