|
@@ -18,6 +18,9 @@ class goodsControl extends mobileHomeControl
|
|
|
parent::__construct();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 初始化分页
|
|
|
+ */
|
|
|
public function _initpage()
|
|
|
{
|
|
|
if (!empty($_GET['page'])) {
|
|
@@ -37,50 +40,40 @@ class goodsControl extends mobileHomeControl
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 商品列表
|
|
|
+ * 商品列表接口
|
|
|
+ *
|
|
|
+ * 请求参数:
|
|
|
+ * key:
|
|
|
+ * order: 1-升序 2-降序
|
|
|
+ * page: 每页数量
|
|
|
+ * curpage: 当前页码
|
|
|
+ * gc_id: 分类编码
|
|
|
+ * keyword:搜索关键字
|
|
|
+ * brand_id: 品牌
|
|
|
+ * efficacy_id:功效查询
|
|
|
+ *
|
|
|
*/
|
|
|
public function goods_listOp()
|
|
|
{
|
|
|
$model_goods = Model('goods');
|
|
|
-
|
|
|
$this->_initpage();
|
|
|
-
|
|
|
$condition = array();
|
|
|
- if (!empty($_GET['gc_id'])) {
|
|
|
+ if (!empty(trim($_GET['gc_id']))) {
|
|
|
$condition['gc_id'] = intval($_GET['gc_id']);
|
|
|
}
|
|
|
-
|
|
|
- // 关键字git
|
|
|
- if (!empty($_GET['keyword'])) {
|
|
|
+ // 关键字
|
|
|
+ if (!empty(trim($_GET['keyword']))) {
|
|
|
$condition['goods_name|goods_jingle'] = array('like', '%' . urldecode($_GET['keyword']) . '%');
|
|
|
}
|
|
|
-
|
|
|
// 品牌查询
|
|
|
- if (!empty($_GET['brand_id'])) {
|
|
|
+ if (!empty(trim($_GET['brand_id']))) {
|
|
|
$condition['brand_id'] = intval($_GET['brand_id']);
|
|
|
}
|
|
|
-
|
|
|
// 功效查询
|
|
|
- if (!empty($_GET['efficacy_id'])) {
|
|
|
+ if (!empty(trim($_GET['efficacy_id']))) {
|
|
|
$condition['efficacy_id'] = intval($_GET['efficacy_id']);
|
|
|
}
|
|
|
|
|
|
- // 彩妆护肤查询
|
|
|
-// if (!empty($_GET['gc_id']) && !empty($_GET['type_id'])) {
|
|
|
-//
|
|
|
-// $type_id = intval($_GET['type_id']);
|
|
|
-// $gc_id = intval($_GET['gc_id']);
|
|
|
-//
|
|
|
-// $goods_id_list = Model()->table('goods_attr_index')->field('distinct goods_id as goods_id')->where(array('type_id' => $type_id, 'gc_id' => $gc_id))->select();
|
|
|
-//
|
|
|
-// $array_list = array();
|
|
|
-// foreach ($goods_id_list as $value) {
|
|
|
-// array_push($array_list, $value['goods_id']);
|
|
|
-// }
|
|
|
-//
|
|
|
-// $condition['goods_id'] = array('in',$array_list);
|
|
|
-// }
|
|
|
-
|
|
|
//所需字段
|
|
|
$fieldstr = "goods_id,goods_commonid,store_id,brand_id,gc_id,goods_name,goods_price,goods_marketprice,goods_image,goods_salenum,evaluation_good_star,evaluation_count,goods_storage,goods_storage_alarm";
|
|
|
|
|
@@ -152,7 +145,6 @@ class goodsControl extends mobileHomeControl
|
|
|
*/
|
|
|
private function _goods_list_extend($goods_list)
|
|
|
{
|
|
|
- //获取商品列表编号数组
|
|
|
$commonid_array = array();
|
|
|
$goodsid_array = array();
|
|
|
foreach ($goods_list as $key => $value) {
|
|
@@ -160,7 +152,7 @@ class goodsControl extends mobileHomeControl
|
|
|
$goodsid_array[] = $value['goods_id'];
|
|
|
|
|
|
// image 切换为goods_common 表中数据
|
|
|
- $condition['goods_commonid']=$value['goods_commonid'];
|
|
|
+ $condition['goods_commonid'] = $value['goods_commonid'];
|
|
|
$goods_image = Model()->table('goods_common')->where($condition)->field('goods_image')->select();
|
|
|
$goods_list[$key]['goods_image'] = $goods_image[0]['goods_image'];
|
|
|
}
|
|
@@ -189,7 +181,7 @@ class goodsControl extends mobileHomeControl
|
|
|
$goods_list[$key]['goods_image_url'] = cthumb($value['goods_image'], 360, $value['store_id']);
|
|
|
|
|
|
unset($goods_list[$key]['store_id']);
|
|
|
-// unset($goods_list[$key]['goods_commonid']);
|
|
|
+ //unset($goods_list[$key]['goods_commonid']);
|
|
|
unset($goods_list[$key]['nc_distinct']);
|
|
|
unset($goods_list[$key]['gc_id']);
|
|
|
unset($goods_list[$key]['goods_marketprice']);
|
|
@@ -204,24 +196,22 @@ class goodsControl extends mobileHomeControl
|
|
|
unset($goods_list[$key]['group_flag']);
|
|
|
unset($goods_list[$key]['xianshi_flag']);
|
|
|
|
|
|
- // 增加 品牌名
|
|
|
+ // 品牌名
|
|
|
$brand = Model()->table("brand")->find($value['brand_id']);
|
|
|
if (!empty($brand)) {
|
|
|
$value['brand_name'] = $brand['brand_name'];
|
|
|
}
|
|
|
|
|
|
- // 增加分类
|
|
|
+ // 分类
|
|
|
$gc_info = Model()->table('goods_class')->find($value['gc_id']);
|
|
|
if (!empty($gc_info)) {
|
|
|
$value['gc_name'] = $gc_info['gc_name'];
|
|
|
}
|
|
|
|
|
|
- // 增加功效列表
|
|
|
+ // 功效列表
|
|
|
$goods_common = Model('goods');
|
|
|
$goods_common_info = $goods_common->getGoodeCommonInfoByID($value['goods_commonid']);
|
|
|
if (!empty($goods_common_info)) {
|
|
|
-
|
|
|
- // 仅获取功效
|
|
|
$value['goods_attr'] = $this->_parse_for_efficacy(unserialize($goods_common_info['goods_attr']));
|
|
|
}
|
|
|
}
|
|
@@ -231,22 +221,23 @@ class goodsControl extends mobileHomeControl
|
|
|
|
|
|
/**
|
|
|
* 商品详细页扩展
|
|
|
+ *
|
|
|
+ * 输入参数:
|
|
|
+ * goods_id:商品id
|
|
|
+ *
|
|
|
*/
|
|
|
public function goods_commonOp()
|
|
|
{
|
|
|
$goods_id = intval($_GET ['goods_id']);
|
|
|
- if(empty($_GET ['goods_id']) || $goods_id < 0) {
|
|
|
- return joutput_error(errcode::ErrParamter,"goods_id = {$goods_id} must be > 0.");
|
|
|
+ if (empty($_GET ['goods_id']) || $goods_id < 0) {
|
|
|
+ return joutput_error(errcode::ErrParamter, "goods_id = {$goods_id} must be > 0.");
|
|
|
}
|
|
|
-
|
|
|
// 商品详细信息
|
|
|
$model_goods = Model('goods')->cls();
|
|
|
$goods_detail = $model_goods->getGoodsSku($goods_id);
|
|
|
if (empty($goods_detail)) {
|
|
|
- Log::record("goods_commonOp return NULL 1",Log::DEBUG);
|
|
|
- return joutput_error(errcode::ErrGoodsNotExist,'商品不存在');
|
|
|
+ return joutput_error(errcode::ErrGoodsNotExist);
|
|
|
}
|
|
|
-
|
|
|
//推荐商品
|
|
|
$model_store = Model('store')->cls();
|
|
|
$store_info = $model_store->getStoreInfoByID($goods_detail['goods_info']['store_id']);
|
|
@@ -283,7 +274,7 @@ class goodsControl extends mobileHomeControl
|
|
|
unset($goods_detail['goods_info']['brand_name']);
|
|
|
unset($goods_detail['goods_info']['type_id']);
|
|
|
unset($goods_detail['goods_info']['goods_image']);
|
|
|
-// unset($goods_detail['goods_info']['goods_body']);
|
|
|
+ //unset($goods_detail['goods_info']['goods_body']);
|
|
|
unset($goods_detail['goods_info']['mobile_body']);
|
|
|
unset($goods_detail['goods_info']['goods_state']);
|
|
|
unset($goods_detail['goods_info']['goods_stateremark']);
|
|
@@ -301,7 +292,7 @@ class goodsControl extends mobileHomeControl
|
|
|
unset($goods_detail['goods_info']['spec_value']);
|
|
|
unset($goods_detail['goods_info']['spec_name']);
|
|
|
unset($goods_detail['goods_info']['goods_spec']);
|
|
|
-// unset($goods_detail['goods_info']['goods_attr']);
|
|
|
+ //unset($goods_detail['goods_info']['goods_attr']);
|
|
|
|
|
|
unset($goods_detail['groupbuy_info']);
|
|
|
unset($goods_detail['xianshi_info']);
|
|
@@ -311,6 +302,10 @@ class goodsControl extends mobileHomeControl
|
|
|
|
|
|
/**
|
|
|
* 商品详细页
|
|
|
+ *
|
|
|
+ * 输入参数:
|
|
|
+ * goods_id: 商品id
|
|
|
+ * from:目前说明是来自app还是h5
|
|
|
*/
|
|
|
public function goods_detailOp()
|
|
|
{
|
|
@@ -321,10 +316,10 @@ class goodsControl extends mobileHomeControl
|
|
|
$model_goods = Model('goods');
|
|
|
$goods_detail = $model_goods->getGoodsDetail($goods_id);
|
|
|
if (empty($goods_detail)) {
|
|
|
- return joutput_error(errcode::ErrGoodsNotExist,'商品不存在');
|
|
|
+ return joutput_error(errcode::ErrGoodsNotExist);
|
|
|
}
|
|
|
|
|
|
- //推荐商品
|
|
|
+ // 推荐商品
|
|
|
$model_store = Model('store');
|
|
|
$hot_sales = $model_store->getHotSalesList($goods_detail['goods_info']['store_id'], 6);
|
|
|
$goods_commend_list = array();
|
|
@@ -357,14 +352,11 @@ class goodsControl extends mobileHomeControl
|
|
|
$goods_detail['goods_info']['goods_spec_obj'] = $this->_parse_goods_spec($goods_detail['goods_info']['goods_spec']);
|
|
|
$goods_detail['UPLOAD_SITE_URL'] = $GLOBALS['setting_config']['upload_site_url'];
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
//v3-b11 抢购商品是否开始
|
|
|
$goods_info = $goods_detail['goods_info'];
|
|
|
//print_r($goods_info);
|
|
|
$IsHaveBuy = 0;
|
|
|
- if (!empty($_COOKIE['username']))
|
|
|
- {
|
|
|
+ if (!empty($_COOKIE['username'])) {
|
|
|
$model_member = Model('member');
|
|
|
$member_info = $model_member->getMemberInfo(array('member_name' => $_COOKIE['username']));
|
|
|
$buyer_id = $member_info['member_id'];
|
|
@@ -396,7 +388,6 @@ class goodsControl extends mobileHomeControl
|
|
|
}
|
|
|
$goods_detail['IsHaveBuy'] = $IsHaveBuy;
|
|
|
//v3-b11 end
|
|
|
-
|
|
|
joutput_data($goods_detail);
|
|
|
}
|
|
|
|
|
@@ -443,11 +434,20 @@ class goodsControl extends mobileHomeControl
|
|
|
unset($goods_detail['goods_info']['cart']);
|
|
|
unset($goods_detail['goods_info']['buynow_text']);
|
|
|
unset($goods_detail['groupbuy_info']);
|
|
|
-// unset($goods_detail['xianshi_info']);
|
|
|
+ //unset($goods_detail['xianshi_info']);
|
|
|
|
|
|
return $goods_detail;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 解析spec字段
|
|
|
+ *
|
|
|
+ * @param $spec_name
|
|
|
+ * @param $spec_value
|
|
|
+ * @param array $spec_image
|
|
|
+ * @param array $spec_list
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
private function _parse_spec($spec_name, $spec_value, $spec_image = [], $spec_list = [])
|
|
|
{
|
|
|
$spec = [];
|
|
@@ -471,6 +471,12 @@ class goodsControl extends mobileHomeControl
|
|
|
return $spec;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 解析商品属性字段
|
|
|
+ *
|
|
|
+ * @param $goods_attr
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
private function _parse_attributes($goods_attr)
|
|
|
{
|
|
|
$attributes = [];
|
|
@@ -495,14 +501,17 @@ class goodsControl extends mobileHomeControl
|
|
|
return $attributes;
|
|
|
}
|
|
|
|
|
|
- // 从 attribute 中取得功效
|
|
|
+ /**
|
|
|
+ * 解析功效
|
|
|
+ *
|
|
|
+ * @param $goods_attr
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
private function _parse_for_efficacy($goods_attr)
|
|
|
{
|
|
|
foreach ($goods_attr as $key => $val) {
|
|
|
-
|
|
|
$attr_item['goods_attr_id'] = intval($key);
|
|
|
$attr_item['goods_attr_name'] = $val['name'];
|
|
|
-
|
|
|
if ($attr_item['goods_attr_name'] === '功效') {
|
|
|
$goods_attr_value = array();
|
|
|
foreach ($val as $id => $name) {
|
|
@@ -513,13 +522,18 @@ class goodsControl extends mobileHomeControl
|
|
|
}
|
|
|
}
|
|
|
$attr_item['goods_attr_value'] = $goods_attr_value;
|
|
|
-
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return $attr_item;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 商品规格序列化解析
|
|
|
+ *
|
|
|
+ * @param $goods_spec
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
private function _parse_goods_spec($goods_spec)
|
|
|
{
|
|
|
$goods_spec_obj = [];
|
|
@@ -533,12 +547,13 @@ class goodsControl extends mobileHomeControl
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 商品详细页
|
|
|
+ * 商品详细页(未启用)
|
|
|
*/
|
|
|
public function goods_bodyOp()
|
|
|
{
|
|
|
- $goods_id = intval($_GET ['goods_id']);
|
|
|
+ return joutput_error(errcode::ErrProtocolDisabled);
|
|
|
|
|
|
+ $goods_id = intval($_GET ['goods_id']);
|
|
|
$out_type = $_GET ['type'];
|
|
|
$model_goods = Model('goods');
|
|
|
|
|
@@ -564,102 +579,30 @@ class goodsControl extends mobileHomeControl
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 手机商品详细页
|
|
|
- *
|
|
|
+ * 获取detail(未启用)
|
|
|
*/
|
|
|
- public function wap_goods_bodyOp()
|
|
|
- {
|
|
|
- $goods_id = intval($_GET ['goods_id']);
|
|
|
-
|
|
|
- $model_goods = Model('goods');
|
|
|
-
|
|
|
- $goods_info = $model_goods->getGoodsInfoByID($goods_id, 'goods_id');
|
|
|
- $goods_common_info = $model_goods->getMobileBodyByCommonID($goods_info['goods_commonid']);
|
|
|
- Tpl:
|
|
|
- output('goods_common_info', $goods_common_info);
|
|
|
- Tpl::showpage('goods_body');
|
|
|
- }
|
|
|
-
|
|
|
- // 通过品牌列表获取商品
|
|
|
- public function goods_list_by_brand()
|
|
|
- {
|
|
|
- $model_goods = Model('goods');
|
|
|
-
|
|
|
- if (!empty($_GET['curpage'])) {
|
|
|
- pagecmd('setnowpage', $_GET['curpage']);
|
|
|
- }
|
|
|
-
|
|
|
- //查询条件
|
|
|
- $condition = array();
|
|
|
- if (!empty($_GET['gc_id']) && intval($_GET['gc_id']) > 0) {
|
|
|
- $condition['gc_id'] = $_GET['gc_id'];
|
|
|
- } elseif (!empty($_GET['keyword'])) {
|
|
|
- $condition['goods_name|goods_jingle'] = array('like', '%' . $_GET['keyword'] . '%');
|
|
|
- }
|
|
|
-
|
|
|
- //所需字段
|
|
|
- $fieldstr = "goods_id,goods_commonid,goods_commonid,store_id,brand_id,gc_id,goods_name,goods_price,goods_marketprice,goods_image,goods_salenum,evaluation_good_star,evaluation_count";
|
|
|
-
|
|
|
- // 添加3个状态字段
|
|
|
- $fieldstr .= ',is_virtual,is_presell,is_fcode,have_gift';
|
|
|
-
|
|
|
- //排序方式
|
|
|
- $order = $this->_goods_list_order($_GET['key'], $_GET['order']);
|
|
|
-
|
|
|
- //优先从全文索引库里查找
|
|
|
-
|
|
|
- $goods_list = $model_goods->getGoodsListByColorDistinct($condition, $fieldstr, $order, $this->page);
|
|
|
- $page_count = $model_goods->gettotalpage();
|
|
|
-
|
|
|
- //处理商品列表(抢购、限时折扣、商品图片)
|
|
|
- $goods_list = $this->_goods_list_extend($goods_list);
|
|
|
-
|
|
|
- joutput_data(array('goods_list' => $goods_list, 'mobile_page' => mobile_page($page_count)));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public function goods_searchOp()
|
|
|
- {
|
|
|
- // 属性ID,类型ID
|
|
|
- $attr_value_id = intval($_GET['attr_value_id']);
|
|
|
- $type_id = intval($_GET['type_id']);
|
|
|
-
|
|
|
- $fields = "distinct goods_commonid as goods_commonid";
|
|
|
-
|
|
|
- // 功效
|
|
|
- $goods_attr = Model()->table('goods_attr_index')->field($fields)->where(array('type_id' => $type_id, 'attr_value_id' => $attr_value_id))->select();
|
|
|
-
|
|
|
- foreach ($goods_attr as $value) {
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public function detailOp()
|
|
|
{
|
|
|
+ return joutput_error(errcode::ErrProtocolDisabled);
|
|
|
+
|
|
|
$goods_id = intval($_GET['goods_id']);
|
|
|
- if(empty($_GET['goods_id']) || $goods_id <= 0)
|
|
|
- {
|
|
|
- if(!empty($_GET['goods_commonid'])) {
|
|
|
+ if (empty($_GET['goods_id']) || $goods_id <= 0) {
|
|
|
+ if (!empty($_GET['goods_commonid'])) {
|
|
|
$commonid = intval($_GET['goods_commonid']);
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
$items = Model()->table('goods')->field('goods_commonid')->where(array('goods_id' => $goods_id))->limit(1)->select();
|
|
|
- if(!empty($items) && count($items) > 0) {
|
|
|
+ if (!empty($items) && count($items) > 0) {
|
|
|
$commonid = intval($items[0]['goods_commonid']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- if(isset($commonid) && $commonid > 0)
|
|
|
- {
|
|
|
+ if (isset($commonid) && $commonid > 0) {
|
|
|
$items = Model()->table('goods_common')->field('goods_body')->where(array('goods_commonid' => $commonid))->select();
|
|
|
- if(!empty($items) && count($items) > 0) {
|
|
|
- Tpl::output('goods_body',$items[0]['goods_body']);
|
|
|
+ if (!empty($items) && count($items) > 0) {
|
|
|
+ Tpl::output('goods_body', $items[0]['goods_body']);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
Tpl::showpage('goods_detail');
|
|
|
}
|
|
|
}
|