예제 #1
0
 public function postUpdateSort($type)
 {
     try {
         if (!isset($_POST) || !isset($_POST['id']) || !isset($_POST['sort'])) {
             throw new Exception('Error request [10]');
         }
         $id = (int) Arr::get($_POST, 'id');
         $sort = (int) Arr::get($_POST, 'sort');
         $isUpdatedTime = Arr::get($_POST, 'isUpdatedTime', false);
         $lastUpdatedId = Arr::get($_POST, 'lastUpdatedId', false);
         $model = $type == 'gallery' ? WintnessGallery::find($id) : Wintness::find($id);
         if (empty($model)) {
             throw new Exception("Error request [11]");
         }
         $model->sort = $sort;
         if (!$model->save()) {
             throw new Exception("更新排序失敗,請通知工程師");
         }
         if ($isUpdatedTime) {
             $orm = $type == 'gallery' ? 'WintnessGallery' : 'Wintness';
             $cmd = $orm::where('id', '<>', $id)->where('sort', '=', $sort)->where('id', '>=', $lastUpdatedId)->orderBy('sort', 'desc')->orderBy('updated_at', 'desc');
             $items = $cmd->get();
             if (sizeof($items) > 0) {
                 $t = time();
                 foreach ($items as $key => $item) {
                     $t = $t + $key;
                     $item->updated_at = $t;
                     $item->save();
                 }
             }
         }
         return Response::json(array('status' => 'ok', 'message' => '更新排序完成'));
     } catch (Exception $e) {
         return Response::json(array('status' => 'error', 'message' => $e->getMessage()));
     }
 }