Пример #1
0
 public static function query($search_id = '', $is_count = false)
 {
     if (!$searches) {
         return null;
     }
     $record = self::find($search_id);
     if (!$record) {
         return null;
     }
     $arr_query = json_decode($record->query);
     // Build query ads
     $ad_query = 'null';
     $ad_params = array();
     foreach ($arr_query as $param => $value) {
         switch ($param) {
             case 'price_min':
                 $ad_query .= 'price >= ?';
                 $ad_params[] = $value;
                 break;
             case 'price_max':
                 $ad_query .= 'price <= ?';
                 $ad_params[] = $value;
                 break;
             case 'area_min':
                 $ad_query .= 'area >= ?';
                 $ad_params[] = $value;
                 break;
             case 'area_max':
                 $ad_query .= 'area <= ?';
                 $ad_params[] = $value;
                 break;
             case 'user_id':
                 $ad_query .= 'user_id = ?';
                 $ad_params[] = $value;
                 break;
             case 'category_id':
                 $ad_query .= 'category_id = ?';
                 $ad_params[] = $value;
                 break;
             case 'ad_type_id':
                 $ad_query .= 'ad_type_id = ?';
                 $ad_params[] = $value;
                 break;
         }
     }
     if (!$is_count) {
         $results = Ad::whereRaw($ad_query, $ad_params)->paginate(10)->get();
     } else {
         $results = Ad::whereRaw($ad_query, $ad_params)->count();
     }
     return $results;
 }
Пример #2
0
 public function postAdQuick()
 {
     $data = post();
     $default = array('category_id' => '', 'type_id' => 2, 'address' => '', 'lat' => '', 'lng' => '', 'price' => 0, 'area' => 0);
     $merge = array_merge($default, $data);
     $merge = \DLNLab\Classified\Classes\HelperClassified::trim_value($merge);
     extract($merge);
     $user = Auth::getUser();
     // Kiem tra user hien tai da > 3 ad draft chua
     $counts = Ad::whereRaw('user_id = ? AND status = 0', array($user->id))->count();
     if ($counts >= CLF_LIMIT_AD_PRIVATE) {
         return Response::json(array('status' => 'error', 'message' => trans(CLF_LANG_MESSAGE . 'not_create_ad')), 500);
     }
     $rules = ['category_id' => 'required|numeric|min:1', 'type_id' => 'required|numeric|min:1', 'address' => 'required', 'price' => 'required|numeric', 'area' => 'numeric'];
     $error = HelperClassified::valid($rules);
     if ($error != null) {
         return Response::json(array('status' => 'error', 'message' => $error), 500);
     }
     // Format lai tag ids
     if ($tag_ids) {
         foreach ($tag_ids as $id) {
             if (!empty($id) || intval($id) > 0 || !in_array($id, $tags)) {
                 $tags[] = $id;
             }
         }
         if (!count($tags)) {
             return Response::json(array('status' => 'error', 'message' => trans(CLF_LANG_MESSAGE . 'not_create_ad')), 500);
         }
     }
     $name = Ad::gen_auto_ad_name($merge);
     $slug = HelperClassified::slug_utf8($name);
     try {
         DB::beginTransaction();
         $record = new Ad();
         $record->name = $name;
         $record->slug = $slug;
         $record->address = $address;
         $record->category_id = $category_id;
         $record->type_id = $type_id;
         $record->price = $price;
         $record->lat = $lat;
         $record->lng = $lng;
         $record->save();
         // Them vao bang ads_tags
         /*$arr_insert = array();
           if (! empty($tags)) {
               foreach ($tags as $id) {
                   $arr_insert[] = array('ad_id' => $record->id, 'tag_id' => $id);
               }
               DB::table('dlnlab_classified_ads_tags')->insert($arr_insert);
           }*/
         if ($area) {
             $record = new AdInfor();
             $record->area = $area;
             $record->save();
         }
         DB::commit();
         return Response::json(array('status' => 'success', 'data' => $record->id));
     } catch (Exception $ex) {
         DB::rollback();
         return Response::json(array('status' => 'error', 'message' => $error), 500);
     }
 }
Пример #3
0
 protected function listAdsUser()
 {
     $user = Auth::getUser();
     $ads = Ad::whereRaw('user_id = ?')->listUser(['page' => $this->propertyOrParam('pageParam'), 'perPage' => $this->property('AdsPerPage')]);
 }