stanley-king 9 rokov pred
rodič
commit
a504c4d3b0
4 zmenil súbory, kde vykonal 140 pridanie a 67 odobranie
  1. 2 1
      data/config/config.ini.php
  2. 2 2
      fooder.php
  3. 135 63
      mobile/control/goods.php
  4. 1 1
      mobile/control/index.php

+ 2 - 1
data/config/config.ini.php

@@ -1,6 +1,6 @@
 <?php
-// defined('InShopNC') or exit('Access Invalid!');
 
+//defined('InShopNC') or exit('Access Invalid!');
 $config = array();
 $config['base_site_url']        = 'http://shopnc.yage.com';
 $config['shop_site_url'] 		= 'http://shopnc.yage.com/shop';
@@ -59,4 +59,5 @@ $config['queue']['open'] = false;
 $config['queue']['host'] = '127.0.0.1';
 $config['queue']['port'] = 6379;
 $config['cache_open'] = true;
+
 $config['delivery_site_url']    = 'http://shopnc.yage.com/delivery';

+ 2 - 2
fooder.php

@@ -32,7 +32,7 @@ require_once(BASE_CORE_PATH . '/framework/libraries/validate.php');
 require_once(BASE_CORE_PATH.'/framework/libraries/resizeimage.php');
 
 
-define('OS_TYPE','MAC');
-//define('OS_TYPE','LINUX');
+//define('OS_TYPE','MAC');
+define('OS_TYPE','LINUX');
 
 ?>

+ 135 - 63
mobile/control/goods.php

@@ -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');
     }
 }

+ 1 - 1
mobile/control/index.php

@@ -21,7 +21,7 @@ class indexControl extends mobileHomeControl{
 	public function indexOp() {
         $model_mb_special = Model('mb_special'); 
         $data = $model_mb_special->getMbSpecialIndex();
-        var_dump($data);
+        //var_dump($data);
        		
         $this->_output_special($data, $_GET['type']);
 	}