public function saveStudentsToOneClass($classId, $classDetailId, $students)
 {
     try {
         $tId = session('instId');
         $class = new \Home\Model\ClassModel();
         $class->startTrans();
         $result = $class->showStudentsFromClassDetail((int) $classDetailId, $tId);
         for ($i = 0; $i < count($result); $i++) {
             $oldStudentIds[] = $result[$i]['student_id'];
         }
         //students
         if ($students == null || $students == "") {
             $newStudentIds = array();
         } else {
             $newStudentIds = explode('|', $students);
         }
         //find $deleteIds[] and $addIds[]
         if (!empty($oldStudentIds)) {
             if (empty($newStudentIds)) {
                 $deleteIds = $oldStudentIds;
             } else {
                 for ($i = 0; $i < count($oldStudentIds); $i++) {
                     $shouldDelete = true;
                     for ($j = 0; $j < count($newStudentIds); $j++) {
                         if ((int) $oldStudentIds[$i] == (int) $newStudentIds[$j]) {
                             $shouldDelete = false;
                         }
                     }
                     if ($shouldDelete) {
                         $deleteIds[] = $oldStudentIds[$i];
                     }
                 }
             }
         }
         if (!empty($newStudentIds)) {
             if (empty($oldStudentIds)) {
                 $addIds = $newStudentIds;
             } else {
                 for ($i = 0; $i < count($newStudentIds); $i++) {
                     $shouldAdd = true;
                     for ($j = 0; $j < count($oldStudentIds); $j++) {
                         if ((int) $newStudentIds[$i] == (int) $oldStudentIds[$j]) {
                             $shouldAdd = false;
                         }
                     }
                     if ($shouldAdd) {
                         $addIds[] = $newStudentIds[$i];
                     }
                 }
             }
         }
         $class = new \Home\Model\ClassModel();
         $classInfo = $class->getClassById((int) $classId, $tId);
         $tuition = $classInfo[0]['tuition_per_class'];
         if (!empty($deleteIds)) {
             for ($i = 0; $i < count($deleteIds); $i++) {
                 $class->updateStudentStatusFromClassDetail($tId, (int) $classId, $classDetailId, (int) $deleteIds[$i], 1);
                 $result = $class->selectStudentInfoFromClass($tId, (int) $classId, (int) $deleteIds[$i]);
                 $class->updateStudentStatusFromClass($tId, (int) $classId, (int) $deleteIds[$i], 1, -$result[0]['tuition_per_class']);
             }
         }
         if (!empty($addIds)) {
             for ($i = 0; $i < count($addIds); $i++) {
                 //try update first
                 $result = $class->selectStudentInfoFromClass($tId, (int) $classId, (int) $addIds[$i]);
                 if ($result == null || count($result) == 0) {
                     $class->saveClassAndStudentRela((int) $classId, (int) $addIds[$i], $tuition, 1, $tId, $tuition, 0);
                 } else {
                     $class->updateStudentStatusFromClass($tId, (int) $classId, (int) $addIds[$i], 1, $result[0]['tuition_per_class']);
                     $tuition = $result[0]['tuition_per_class'];
                 }
                 $class->saveClassDetailAndStudentRela($classDetailId, (int) $classId, (int) $addIds[$i], $tuition, $tId);
             }
         }
         $class->commit();
         $data = "true";
     } catch (Exception $e) {
         $class->rollback();
         $data = "false";
     }
     $this->ajaxReturn($data);
 }