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); } }
/** * 编辑商品 * * @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; }