예제 #1
0
 public function validate()
 {
     $return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
     try {
         //* 初始化返回数据 */
         $return_data = array('assoc' => NULL, 'count' => 0);
         //* 收集请求数据 ==根据业务逻辑定制== */
         $request_data = $this->input->get();
         if (empty($request_data['product_id'])) {
             throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 403);
         }
         if (empty($request_data['goods']) or !is_array($request_data['goods'])) {
             throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 403);
         }
         try {
             $product = BLL_Product::get($request_data['product_id']);
         } catch (MyRuntimeException $ex) {
             throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 403);
         }
         foreach ($request_data['goods'] as $index => $good) {
             if (isset($good['sku'])) {
                 empty($good['id']) and $good['id'] = 0;
                 if (BLL_Product_Type_Assembly::good_sku_exists($good['sku'], $good['id'])) {
                     throw new MyRuntimeException(sprintf(Kohana::lang('o_product.good_sku_has_exists'), $index), 403);
                 }
             } else {
                 throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 403);
             }
         }
         //* 补充&修改返回结构体 */
         $return_struct['status'] = 1;
         $return_struct['code'] = 200;
         $return_struct['msg'] = '';
         $return_struct['content'] = $return_data;
         //* 请求类型 */
         if ($this->is_ajax_request()) {
             // ajax 请求
             // json 输出
             $this->template->content = $return_struct;
         } else {
             //* html 输出 ==根据业务逻辑定制== */
             $this->template = new View('layout/commonfix_html');
             //* 模板输出 */
             $this->template->return_struct = $return_struct;
             $content = new View($this->package_name . '/product/merge/list');
             //* 变量绑定 */
             $this->template->title = Kohana::config('site.name');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->request_data = $request_data;
             //* 返回结构体绑定 */
             $this->template->content->return_struct = $return_struct;
         }
         // end of request type determine
     } catch (MyRuntimeException $ex) {
         $this->_ex($ex, $return_struct, $request_data);
     }
 }
예제 #2
0
 /**
  * 编辑商品
  *
  * @param array $product
  * @return boolean
  */
 public static function set($product)
 {
     //isset($product['point'])        AND BLL_Product_Point::set($product, $product['point']);
     if (empty($product['uri_name'])) {
         $product['uri_name'] = self::crt_uri_name($product);
     }
     switch ($product['type']) {
         case ProductService::PRODUCT_TYPE_ASSEMBLY:
             BLL_Product_Type_Assembly::save($product);
             break;
         case ProductService::PRODUCT_TYPE_CONFIGURABLE:
             BLL_Product_Type_Configurable::save($product);
             break;
         case ProductService::PRODUCT_TYPE_GOODS:
         default:
             BLL_Product_Type_Simple::save($product);
             break;
     }
     BLL_Product_Feature::set_fetuoptrs($product);
     BLL_Product_Detail::set($product);
     BLL_Product_Relation::set($product);
     BLL_Product_Wholesale::set($product);
     BLL_Product_Search::set($product);
     return TRUE;
 }