Exemple #1
0
 /**
  * 首页
  */
 public function index()
 {
     // 初始化返回数据
     $return_data = array();
     //请求结构体
     $request_data = array();
     try {
         /* 清空商品搜索表中的脏数据 */
         /* 初始化默认查询结构体 */
         $query_struct = array('where' => array(), 'like' => array(), 'orderby' => array(), 'limit' => array('per_page' => 100, 'page' => 1));
         /* 清理已经删除的产品 */
         do {
             $productsearches = ProductsearchService::get_instance()->query_assoc($query_struct);
             if (is_array($productsearches) && count($productsearches) > 0) {
                 foreach ($productsearches as $value) {
                     try {
                         $product = ProductService::get_instance()->get($value['product_id']);
                         if (!is_array($product) || $product['id'] < 1) {
                             ProductsearchService::get_instance()->delete_by_productsearch_id($value['id']);
                         }
                     } catch (MyRuntimeException $ex) {
                         Kohana::log('error', 'Productsearch error:' . $value['product_id'] . ' product not found.');
                     }
                 }
                 $query_struct['limit']['page']++;
             } else {
                 break;
             }
         } while (1);
         //更新产品内容到产品搜索快照  获取产品描述
         $query_struct = array('where' => array());
         $productdescsections = array();
         $descsections = Product_detailService::get_instance()->query_assoc($query_struct);
         if (!empty($descsections)) {
             foreach ($descsections as $val) {
                 if (!empty($productdescsections[$val['product_id']])) {
                     $productdescsections[$val['product_id']] .= ' ' . $val['content'];
                 } else {
                     $productdescsections[$val['product_id']] = $val['content'];
                 }
             }
         }
         /* 初始化默认查询结构体 */
         $query_struct = array('where' => array(), 'like' => array(), 'orderby' => array(), 'limit' => array('per_page' => 100, 'page' => 1));
         do {
             $products = ProductService::get_instance()->query_assoc($query_struct);
             if (is_array($products) && count($products) > 0) {
                 foreach ($products as $key => $value) {
                     $productsearch = ProductsearchService::get_instance()->get_by_product_id($value['id']);
                     $productsearch_data = array();
                     $productsearch_data['product_id'] = $value['id'];
                     $productsearch_data['category_id'] = $value['category_id'];
                     $productsearch_data['brand_id'] = $value['brand_id'];
                     $productsearch_data['title'] = $value['title'];
                     $productsearch_data['brief'] = $value['brief'];
                     if (!empty($productdescsections[$value['id']])) {
                         $productsearch_data['description'] = $productdescsections[$value['id']];
                     }
                     if ($productsearch['id'] > 0) {
                         ProductsearchService::get_instance()->set($productsearch['id'], $productsearch_data);
                     } else {
                         ProductsearchService::get_instance()->add($productsearch_data);
                     }
                 }
                 $query_struct['limit']['page']++;
             } else {
                 break;
             }
         } while (1);
         remind::set(Kohana::lang('o_global.set_success'), '/index/desktop', 'success');
     } catch (MyRuntimeException $ex) {
         $return_struct['status'] = 0;
         $return_struct['code'] = $ex->getCode();
         $return_struct['msg'] = $ex->getMessage();
         //TODO 异常处理
         if ($this->is_ajax_request()) {
             $this->template->content = $return_struct;
         } else {
             $this->template->return_struct = $return_struct;
             $content = new View('info');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->request_data = $request_data;
             //* 返回结构体绑定 */
             $this->template->content->return_struct = $return_struct;
         }
     }
 }
Exemple #2
0
 /**
  * 设置商品检索信息
  *
  * @param array $product
  * @return boolean
  */
 public static function set(&$product)
 {
     $data = array('product_id' => $product['id'], 'category_id' => $product['category_id'], 'brand_id' => $product['brand_id'], 'title' => $product['title'], 'brief' => $product['brief'], 'description' => empty($product['descsections'][0]) ? '' : $product['descsections'][0]['content']);
     ProductsearchService::get_instance()->set_single($data);
     return TRUE;
 }