|
@@ -10,9 +10,11 @@
|
|
|
//use Shopnc\Tpl;
|
|
|
|
|
|
defined('InShopNC') or exit('Access Invalid!');
|
|
|
+
|
|
|
class goodsControl extends mobileHomeControl
|
|
|
{
|
|
|
- public function __construct() {
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
parent::__construct();
|
|
|
}
|
|
|
|
|
@@ -20,7 +22,7 @@ class goodsControl extends mobileHomeControl
|
|
|
/**
|
|
|
* 商品列表
|
|
|
*/
|
|
|
- public function goods_listOp()
|
|
|
+ public function goods_listOp()
|
|
|
{
|
|
|
echo __FUNCTION__;
|
|
|
|
|
@@ -29,7 +31,7 @@ class goodsControl extends mobileHomeControl
|
|
|
|
|
|
//查询条件
|
|
|
$condition = array();
|
|
|
- if(!empty($_GET['gc_id']) && intval($_GET['gc_id']) > 0) {
|
|
|
+ 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'] . '%');
|
|
@@ -45,17 +47,17 @@ class goodsControl extends mobileHomeControl
|
|
|
$order = $this->_goods_list_order($_GET['key'], $_GET['order']);
|
|
|
|
|
|
//优先从全文索引库里查找
|
|
|
- list($indexer_ids,$indexer_count) = $model_search->indexerSearch($_GET,$this->page);
|
|
|
+ list($indexer_ids, $indexer_count) = $model_search->indexerSearch($_GET, $this->page);
|
|
|
if (is_array($indexer_ids)) {
|
|
|
//商品主键搜索
|
|
|
- $goods_list = $model_goods->getGoodsOnlineList(array('goods_id'=>array('in',$indexer_ids)), $fieldstr, 0, $order, $this->page, null, false);
|
|
|
+ $goods_list = $model_goods->getGoodsOnlineList(array('goods_id' => array('in', $indexer_ids)), $fieldstr, 0, $order, $this->page, null, false);
|
|
|
|
|
|
//如果有商品下架等情况,则删除下架商品的搜索索引信息
|
|
|
if (count($goods_list) != count($indexer_ids)) {
|
|
|
$model_search->delInvalidGoods($goods_list, $indexer_ids);
|
|
|
}
|
|
|
- pagecmd('setEachNum',$this->page);
|
|
|
- pagecmd('setTotalNum',$indexer_count);
|
|
|
+ pagecmd('setEachNum', $this->page);
|
|
|
+ pagecmd('setTotalNum', $indexer_count);
|
|
|
} else {
|
|
|
$goods_list = $model_goods->getGoodsListByColorDistinct($condition, $fieldstr, $order, $this->page);
|
|
|
}
|
|
@@ -76,7 +78,7 @@ class goodsControl extends mobileHomeControl
|
|
|
if (!empty($key)) {
|
|
|
|
|
|
$sequence = 'desc';
|
|
|
- if($order == 1) {
|
|
|
+ if ($order == 1) {
|
|
|
$sequence = 'asc';
|
|
|
}
|
|
|
|
|
@@ -106,7 +108,7 @@ class goodsControl extends mobileHomeControl
|
|
|
//获取商品列表编号数组
|
|
|
$commonid_array = array();
|
|
|
$goodsid_array = array();
|
|
|
- foreach($goods_list as $key => $value) {
|
|
|
+ foreach ($goods_list as $key => $value) {
|
|
|
$commonid_array[] = $value['goods_commonid'];
|
|
|
$goodsid_array[] = $value['goods_id'];
|
|
|
}
|
|
@@ -149,6 +151,7 @@ class goodsControl extends mobileHomeControl
|
|
|
public function goods_detailOp()
|
|
|
{
|
|
|
$goods_id = intval($_GET ['goods_id']);
|
|
|
+ $from = $_GET['from'];
|
|
|
|
|
|
// 商品详细信息
|
|
|
$model_goods = Model('goods');
|
|
@@ -157,6 +160,7 @@ class goodsControl extends mobileHomeControl
|
|
|
output_error('商品不存在');
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//推荐商品
|
|
|
$model_store = Model('store');
|
|
|
$hot_sales = $model_store->getHotSalesList($goods_detail['goods_info']['store_id'], 6);
|
|
@@ -184,51 +188,52 @@ class goodsControl extends mobileHomeControl
|
|
|
//商品详细信息处理
|
|
|
$goods_detail = $this->_goods_detail_extend($goods_detail);
|
|
|
|
|
|
- //v3-b11 抢购商品是否开始
|
|
|
- $goods_info=$goods_detail['goods_info'];
|
|
|
- //print_r($goods_info);
|
|
|
- $IsHaveBuy=0;
|
|
|
- if(!empty($_COOKIE['username']))
|
|
|
- {
|
|
|
- $model_member = Model('member');
|
|
|
- $member_info= $model_member->getMemberInfo(array('member_name'=>$_COOKIE['username']));
|
|
|
- $buyer_id=$member_info['member_id'];
|
|
|
-
|
|
|
- $promotion_type=$goods_info["promotion_type"];
|
|
|
-
|
|
|
- if($promotion_type=='groupbuy')
|
|
|
- {
|
|
|
- //检测是否限购数量
|
|
|
- $upper_limit=$goods_info["upper_limit"];
|
|
|
- if($upper_limit>0)
|
|
|
- {
|
|
|
- //查询些会员的订单中,是否已买过了
|
|
|
- $model_order= Model('order');
|
|
|
- //取商品列表
|
|
|
- $order_goods_list = $model_order->getOrderGoodsList(array('goods_id'=>$goods_id,'buyer_id'=>$buyer_id,'goods_type'=>2));
|
|
|
- if($order_goods_list)
|
|
|
- {
|
|
|
- //取得上次购买的活动编号(防一个商品参加多次团购活动的问题)
|
|
|
- $promotions_id=$order_goods_list[0]["promotions_id"];
|
|
|
- //用此编号取数据,检测是否这次活动的订单商品。
|
|
|
- $model_groupbuy = Model('groupbuy');
|
|
|
- $groupbuy_info = $model_groupbuy->getGroupbuyInfo(array('groupbuy_id' => $promotions_id));
|
|
|
- if($groupbuy_info)
|
|
|
- {
|
|
|
- $IsHaveBuy=1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $IsHaveBuy=0;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- $goods_detail['IsHaveBuy']=$IsHaveBuy;
|
|
|
- //v3-b11 end
|
|
|
-
|
|
|
- output_data($goods_detail);
|
|
|
+ if ($from === 'app') {
|
|
|
+ $goods_detail['goods_info']['spec'] = $this->_parse_spec($goods_detail['goods_info']['spec_name'], $goods_detail['goods_info']['spec_value'], $goods_detail['spec_image'], $goods_detail['spec_list']);
|
|
|
+ $goods_detail['goods_info']['attributes'] = $this->_parse_attributes($goods_detail['goods_info']['goods_attr']);
|
|
|
+ $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'])) {
|
|
|
+ $model_member = Model('member');
|
|
|
+ $member_info = $model_member->getMemberInfo(array('member_name' => $_COOKIE['username']));
|
|
|
+ $buyer_id = $member_info['member_id'];
|
|
|
+
|
|
|
+ $promotion_type = $goods_info["promotion_type"];
|
|
|
+
|
|
|
+ if ($promotion_type == 'groupbuy') {
|
|
|
+ //检测是否限购数量
|
|
|
+ $upper_limit = $goods_info["upper_limit"];
|
|
|
+ if ($upper_limit > 0) {
|
|
|
+ //查询些会员的订单中,是否已买过了
|
|
|
+ $model_order = Model('order');
|
|
|
+ //取商品列表
|
|
|
+ $order_goods_list = $model_order->getOrderGoodsList(array('goods_id' => $goods_id, 'buyer_id' => $buyer_id, 'goods_type' => 2));
|
|
|
+ if ($order_goods_list) {
|
|
|
+ //取得上次购买的活动编号(防一个商品参加多次团购活动的问题)
|
|
|
+ $promotions_id = $order_goods_list[0]["promotions_id"];
|
|
|
+ //用此编号取数据,检测是否这次活动的订单商品。
|
|
|
+ $model_groupbuy = Model('groupbuy');
|
|
|
+ $groupbuy_info = $model_groupbuy->getGroupbuyInfo(array('groupbuy_id' => $promotions_id));
|
|
|
+ if ($groupbuy_info) {
|
|
|
+ $IsHaveBuy = 1;
|
|
|
+ } else {
|
|
|
+ $IsHaveBuy = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $goods_detail['IsHaveBuy'] = $IsHaveBuy;
|
|
|
+ //v3-b11 end
|
|
|
+
|
|
|
+ joutput_data($goods_detail);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -278,34 +283,101 @@ class goodsControl extends mobileHomeControl
|
|
|
return $goods_detail;
|
|
|
}
|
|
|
|
|
|
+ private function _parse_spec($spec_name, $spec_value, $spec_image = [], $spec_list = [])
|
|
|
+ {
|
|
|
+ $spec = [];
|
|
|
+ foreach ($spec_name as $key => $value) {
|
|
|
+ $spec_item = [];
|
|
|
+ $spec_item['spec_id'] = $key;
|
|
|
+ $spec_item['spec_name'] = $value;
|
|
|
+ if (!empty($spec_value[$key])) {
|
|
|
+ $spec_item['value_list'] = [];
|
|
|
+ foreach ($spec_value[$key] as $v_key => $v) {
|
|
|
+ $value_item = [];
|
|
|
+ $value_item['value_id'] = $v_key;
|
|
|
+ $value_item['value_name'] = $v;
|
|
|
+ $value_item['value_image'] = empty($spec_image[$v_key]) ? '' : $spec_image[$v_key];
|
|
|
+ $value_item['value_goods_id'] = empty($spec_list[$v_key]) ? '' : $spec_list[$v_key];
|
|
|
+ array_push($spec_item['value_list'], $value_item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ array_push($spec, $spec_item);
|
|
|
+ }
|
|
|
+ return $spec;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function _parse_attributes($goods_attr)
|
|
|
+ {
|
|
|
+ $attributes = [];
|
|
|
+ foreach ($goods_attr as $key => $value) {
|
|
|
+ $attribute_item = [];
|
|
|
+ $attribute_item['goods_attr_id'] = $key;
|
|
|
+ if (!empty($value)) {
|
|
|
+ foreach ($value as $v_key => $v) {
|
|
|
+ if ($v_key === 'name') {
|
|
|
+ $attribute_item['goods_attr_name'] = $v;
|
|
|
+ } else {
|
|
|
+ $attribute_item['goods_attr_value'] = [];
|
|
|
+ $attribute_item['goods_attr_value']['value_id'] = $v_key;
|
|
|
+ $attribute_item['goods_attr_value']['value_name'] = $v;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ array_push($attributes, $attribute_item);
|
|
|
+ }
|
|
|
+ return $attributes;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function _parse_goods_spec($goods_spec)
|
|
|
+ {
|
|
|
+ $goods_spec_obj = [];
|
|
|
+ foreach ($goods_spec as $key => $value) {
|
|
|
+ $spec_item = [];
|
|
|
+ $spec_item['spec_value'] = $key;
|
|
|
+ $spec_item['spec_name'] = $value;
|
|
|
+ array_push($goods_spec_obj, $spec_item);
|
|
|
+ }
|
|
|
+ return $goods_spec_obj;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 商品详细页
|
|
|
*/
|
|
|
public function goods_bodyOp()
|
|
|
{
|
|
|
- $goods_id = intval($_GET['goods_id']);
|
|
|
-
|
|
|
+ $goods_id = intval($_GET ['goods_id']);
|
|
|
+ $out_type = $_GET ['type'];
|
|
|
$model_goods = Model('goods');
|
|
|
|
|
|
$goods_info = $model_goods->getGoodsInfoByID($goods_id, 'goods_commonid');
|
|
|
$goods_common_info = $model_goods->getGoodeCommonInfoByID($goods_info['goods_commonid']);
|
|
|
|
|
|
- Tpl::output('goods_common_info', $goods_common_info);
|
|
|
- Tpl::showpage('goods_body');
|
|
|
+ if ($out_type === 'json') {
|
|
|
+ $goods_common_info['goods_attr'] = $this->_parse_attributes(unserialize($goods_common_info['goods_attr']));
|
|
|
+ $goods_common_info['spec_name'] = unserialize($goods_common_info['spec_name']);
|
|
|
+ $goods_common_info['spec_value'] = unserialize($goods_common_info['spec_value']);
|
|
|
+ $goods_common_info['spec'] = $this->_parse_spec($goods_common_info['spec_name'], $goods_common_info['spec_value']);
|
|
|
+ $goods_common_info['goods_body'] = base64_encode($goods_common_info['goods_body']);;
|
|
|
+ joutput_data($goods_common_info);
|
|
|
+ } else {
|
|
|
+ Tpl::output('goods_common_info', $goods_common_info);
|
|
|
+ Tpl::showpage('goods_body');
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ /**
|
|
|
* 手机商品详细页
|
|
|
*/
|
|
|
- public function wap_goods_bodyOp()
|
|
|
+ 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);
|
|
|
+ $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');
|
|
|
}
|
|
|
}
|