Explorar o código

Merge branch 'goods' of 121.43.114.153:/home/git/repositories/shopnc into goods

stanley-king %!s(int64=9) %!d(string=hai) anos
pai
achega
a2db9e8d00

+ 3 - 3
admin/templates/default/mb_special_item.module_home5.php

@@ -37,9 +37,9 @@
       <?php foreach($item_data['item'] as $item_key => $item_value) {?>
         <div nctype="item_image" class="item"> <img nctype="image" src="<?php echo getMbSpecialImageUrl($item_value['image']);?>" alt="">
           <?php if($item_edit_flag) { ?>
-            <input nctype="image_name" name="item_data[item][<?php echo $item_key;?>][image]" type="hidden" value="<?php echo $item_data['image'];?>">
-            <input nctype="image_type" name="item_data[item][<?php echo $item_key;?>][type]" type="hidden" value="<?php echo $item_data['type'];?>">
-            <input nctype="image_data" name="item_data[item][<?php echo $item_key;?>][data]" type="hidden" value="<?php echo $item_data['data'];?>">
+            <input nctype="image_name" name="item_data[item][<?php echo $item_key;?>][image]" type="hidden" value="<?php echo $item_value['image'];?>">
+            <input nctype="image_type" name="item_data[item][<?php echo $item_key;?>][type]" type="hidden" value="<?php echo $item_value['type'];?>">
+            <input nctype="image_data" name="item_data[item][<?php echo $item_key;?>][data]" type="hidden" value="<?php echo $item_value['data'];?>">
             <a nctype="btn_del_item_image" href="javascript:;"><i class="icon-trash"></i>删除</a>
           <?php } ?>
         </div>

+ 2 - 0
core/framework/libraries/model.php

@@ -669,6 +669,8 @@ class ModelDb
      	static $_cache = array();
 		$sql = $this->buildSelectSql($options);
 
+        Log::record("Select Sql: ".$sql, Log::ERR);
+
         //if ($options['cache'] !== false)
         if ($options['cache'] === true)
         {

+ 8 - 0
data/logic/buy.logic.php

@@ -75,6 +75,7 @@ class buyLogic {
 
         //取得POST ID和购买数量
         $buy_items = $this->_parseItems($cart_id);
+        Log::record('Buy item '. json_encode($buy_items),Log::ERR);
         if (empty($buy_items)) {
             return callback(false, '所购商品无效');
         }
@@ -380,6 +381,7 @@ class buyLogic {
 
         //取得商品ID和购买数量
         $input_buy_items = $this->_parseItems($post['cart_id']);
+        Log::record('Input buy item '. json_encode($input_buy_items),Log::ERR);
         if (empty($input_buy_items)) {
             throw new Exception('所购商品无效');
         }
@@ -400,6 +402,7 @@ class buyLogic {
 
         //是否开增值税发票
         $input_if_vat = $this->buyDecrypt($post['vat_hash'], $this->_member_info['member_id']);
+        Log::record('Input if vat '. json_encode($input_if_vat),Log::ERR);
         if (!in_array($input_if_vat,array('allow_vat','deny_vat'))) {
             throw new Exception('订单保存出现异常[值税发票出现错误],请重试');
         }
@@ -732,6 +735,7 @@ class buyLogic {
                     $promotion_value = floor($goods_total*($promotion_rate));
                     $order_goods[$i]['goods_pay_price'] = $goods_total - $promotion_value;
                     $promotion_sum += $promotion_value;
+                    $order_goods[$i]['goods_spec'] = $goods_info['goods_spec'];
                     $i++;
 
                     //存储库存报警数据
@@ -742,6 +746,8 @@ class buyLogic {
                         $notice_list['goods_storage_alarm'][$goods_info['store_id']] = $param;
                     }
 
+
+
                 } elseif (!empty($goods_info['bl_goods_list']) && is_array($goods_info['bl_goods_list'])) {
 
                     //优惠套装
@@ -765,6 +771,8 @@ class buyLogic {
                         $promotion_value = floor($goods_total*($promotion_rate));
                         $order_goods[$i]['goods_pay_price'] = $goods_total - $promotion_value;
                         $promotion_sum += $promotion_value;
+
+                        $order_goods[$i]['goods_spec'] = $goods_info['goods_spec'];
                         $i++;
     
                         //存储库存报警数据

+ 6 - 0
data/logic/buy_1.logic.php

@@ -970,6 +970,12 @@ class buy_1Logic {
                 }
                 $cart_list[$key]['groupbuy_info'] = $goods_online_info['groupbuy_info'];
                 $cart_list[$key]['xianshi_info'] = $goods_online_info['xianshi_info'];
+                $goods_spec = unserialize($goods_online_info['goods_spec']);
+                $goods_spec_array = array();
+                foreach ($goods_spec as $value) {
+                    array_push($goods_spec_array, $value);
+                }
+                $cart_list[$key]['goods_spec'] = implode(',', $goods_spec_array);
             } else {
                 //如果商品下架
                 $cart_list[$key]['state'] = false;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 337 - 175
data/model/goods.model.php


+ 141 - 114
data/model/mb_special.model.php

@@ -8,6 +8,7 @@
  */
 
 defined('InShopNC') or exit('Access Invalid!');
+
 class mb_specialModel extends Model
 {
     //专题项目不可用状态
@@ -17,47 +18,51 @@ class mb_specialModel extends Model
     //首页特殊专题编号
     const INDEX_SPECIAL_ID = 0;
 
-    public function __construct() {
+    public function __construct()
+    {
         parent::__construct('mb_special');
     }
 
-	/**
-	 * 读取专题列表
-	 * @param array $condition
-	 *
-	 */
-	public function getMbSpecialList($condition, $page='', $order='special_id desc', $field='*') {
+    /**
+     * 读取专题列表
+     * @param array $condition
+     *
+     */
+    public function getMbSpecialList($condition, $page = '', $order = 'special_id desc', $field = '*')
+    {
         $list = $this->table('mb_special')->field($field)->where($condition)->page($page)->order($order)->select();
         return $list;
-	}
+    }
 
-	/*
-	 * 增加专题
-	 * @param array $param
-	 * @return bool
+    /*
+     * 增加专题
+     * @param array $param
+     * @return bool
      *
-	 */
-    public function addMbSpecial($param){
+     */
+    public function addMbSpecial($param)
+    {
         return $this->table('mb_special')->insert($param);
     }
 
-	/*
-	 * 更新专题
-	 * @param array $update
-	 * @param array $condition
-	 * @return bool
+    /*
+     * 更新专题
+     * @param array $update
+     * @param array $condition
+     * @return bool
      *
-	 */
-    public function editMbSpecial($update, $special_id) {
+     */
+    public function editMbSpecial($update, $special_id)
+    {
         $special_id = intval($special_id);
-        if($special_id <= 0) {
+        if ($special_id <= 0) {
             return false;
         }
 
         $condition = array();
         $condition['special_id'] = $special_id;
         $result = $this->table('mb_special')->where($condition)->update($update);
-        if($result) {
+        if ($result) {
             //删除缓存
             $this->_delMbSpecialCache($special_id);
             return $special_id;
@@ -66,15 +71,16 @@ class mb_specialModel extends Model
         }
     }
 
-	/*
-	 * 删除专题
-	 * @param int $special_id
-	 * @return bool
+    /*
+     * 删除专题
+     * @param int $special_id
+     * @return bool
      *
-	 */
-    public function delMbSpecialByID($special_id) {
+     */
+    public function delMbSpecialByID($special_id)
+    {
         $special_id = intval($special_id);
-        if($special_id <= 0) {
+        if ($special_id <= 0) {
             return false;
         }
 
@@ -88,10 +94,11 @@ class mb_specialModel extends Model
 
     /**
      * 专题项目列表(用于后台编辑显示所有项目)
-	 * @param int $special_id
+     * @param int $special_id
      *
      */
-    public function getMbSpecialItemListByID($special_id) {
+    public function getMbSpecialItemListByID($special_id)
+    {
         $condition = array();
         $condition['special_id'] = $special_id;
 
@@ -100,7 +107,7 @@ class mb_specialModel extends Model
 
     /**
      * 专题可用项目列表(用于前台显示仅显示可用项目)
-	 * @param int $special_id
+     * @param int $special_id
      *
      */
     public function getMbSpecialItemUsableListByIDEx($special_id)
@@ -108,7 +115,7 @@ class mb_specialModel extends Model
         $prefix = 'mb_special';
         $item_list = rcache($special_id, $prefix);
         //缓存有效
-        if(!empty($item_list)) {
+        if (!empty($item_list)) {
             return unserialize($item_list['special']);
         }
 
@@ -117,11 +124,9 @@ class mb_specialModel extends Model
         $condition['special_id'] = $special_id;
         $condition['item_usable'] = self::SPECIAL_ITEM_USABLE;
         $item_list = $this->_getMbSpecialItemList($condition);
-        if(!empty($item_list))
-        {
+        if (!empty($item_list)) {
             $pages = array();
-            foreach ($item_list as $value)
-            {
+            foreach ($item_list as $value) {
                 //处理图片
                 $items = array();
                 $items['item_id'] = $value['item_id'];
@@ -130,14 +135,23 @@ class mb_specialModel extends Model
                 $items['item_sort'] = $value['item_sort'];
                 $item_data = $this->_formatMbSpecialData($value['item_data'], $value['item_type']);
 
-//                if($value['item_type'] === 'adv_list') {
-//                    $items['item_data'] = $item_data['item'];
-//                } else {
-//                    $items['item_data'] = $item_data;
-//                }
+                // add goods_price
+                if ($value['item_type'] === 'goods') {
+
+                    foreach ($item_data['item'] as &$item) {
+
+                        $model_goods = Model('goods');
+                        $goods_detail = $model_goods->getGoodsInfo(array('goods_id' => $item['goods_id']), 'goods_price');
+                        if (!empty($goods_detail)) {
+                            $item['goods_price'] = $goods_detail['goods_price'];
+                        } else {
+                            $item['goods_price'] = 0.0;
+                        }
+                    }
+                }
 
                 $items['item_data'] = $item_data;
-                array_push($pages,$items);
+                array_push($pages, $items);
             }
             $item_list = $pages;
         }
@@ -152,7 +166,7 @@ class mb_specialModel extends Model
 
         $item_list = rcache($special_id, $prefix);
         //缓存有效
-        if(!empty($item_list)) {
+        if (!empty($item_list)) {
             return unserialize($item_list['special']);
         }
 
@@ -161,8 +175,7 @@ class mb_specialModel extends Model
         $condition['special_id'] = $special_id;
         $condition['item_usable'] = self::SPECIAL_ITEM_USABLE;
         $item_list = $this->_getMbSpecialItemList($condition);
-        if(!empty($item_list))
-        {
+        if (!empty($item_list)) {
             $new_item_list = array();
             foreach ($item_list as $value) {
                 //处理图片
@@ -179,7 +192,8 @@ class mb_specialModel extends Model
     /**
      * 首页专题
      */
-    public function getMbSpecialIndex() {
+    public function getMbSpecialIndex()
+    {
         return $this->getMbSpecialItemUsableListByID(self::INDEX_SPECIAL_ID);
     }
 
@@ -197,10 +211,10 @@ class mb_specialModel extends Model
                 $item_data['square_image'] = getMbSpecialImageUrl($item_data['square_image']);
                 $item_data['rectangle1_image'] = getMbSpecialImageUrl($item_data['rectangle1_image']);
                 $item_data['rectangle2_image'] = getMbSpecialImageUrl($item_data['rectangle2_image']);
-            break;
+                break;
             case 'goods':
                 $new_item = array();
-                foreach ((array) $item_data['item'] as $value) {
+                foreach ((array)$item_data['item'] as $value) {
                     $value['goods_image'] = cthumb($value['goods_image']);
                     $new_item[] = $value;
                 }
@@ -208,7 +222,7 @@ class mb_specialModel extends Model
                 break;
             default:
                 $new_item = array();
-                foreach ((array) $item_data['item'] as $key => $value) {
+                foreach ((array)$item_data['item'] as $key => $value) {
                     $value['image'] = getMbSpecialImageUrl($value['image']);
                     $new_item[] = $value;
                 }
@@ -225,7 +239,7 @@ class mb_specialModel extends Model
         $item_list = $this->table('mb_special_item')->where($condition)->order($order)->select();
         foreach ($item_list as $key => $value) {
             $item_list[$key]['item_data'] = $this->_initMbSpecialItemData($value['item_data'], $value['item_type']);
-            if($value['item_usable'] == self::SPECIAL_ITEM_USABLE) {
+            if ($value['item_usable'] == self::SPECIAL_ITEM_USABLE) {
                 $item_list[$key]['usable_class'] = 'usable';
                 $item_list[$key]['usable_text'] = '禁用';
             } else {
@@ -238,12 +252,13 @@ class mb_specialModel extends Model
 
     /**
      * 检查专题项目是否存在
-	 * @param array $condition
+     * @param array $condition
      *
      */
-    public function isMbSpecialItemExist($condition) {
+    public function isMbSpecialItemExist($condition)
+    {
         $item_list = $this->table('mb_special_item')->where($condition)->select();
-        if($item_list) {
+        if ($item_list) {
             return true;
         } else {
             return false;
@@ -255,9 +270,10 @@ class mb_specialModel extends Model
      * @param int $item_id
      *
      */
-    public function getMbSpecialItemInfoByID($item_id) {
+    public function getMbSpecialItemInfoByID($item_id)
+    {
         $item_id = intval($item_id);
-        if($item_id <= 0) {
+        if ($item_id <= 0) {
             return false;
         }
 
@@ -273,10 +289,11 @@ class mb_specialModel extends Model
      * 整理项目内容
      *
      */
-    private function _initMbSpecialItemData($item_data, $item_type) {
-        if(!empty($item_data)) {
+    private function _initMbSpecialItemData($item_data, $item_type)
+    {
+        if (!empty($item_data)) {
             $item_data = unserialize($item_data);
-            if($item_type == 'goods') {
+            if ($item_type == 'goods') {
                 $item_data = $this->_initMbSpecialItemGoodsData($item_data, $item_type);
             }
         } else {
@@ -289,9 +306,10 @@ class mb_specialModel extends Model
     /**
      * 处理goods类型内容
      */
-    private function _initMbSpecialItemGoodsData($item_data, $item_type) {
+    private function _initMbSpecialItemGoodsData($item_data, $item_type)
+    {
         $goods_id_string = '';
-        if(!empty($item_data['item'])) {
+        if (!empty($item_data['item'])) {
             foreach ($item_data['item'] as $value) {
                 $goods_id_string .= $value . ',';
             }
@@ -306,7 +324,7 @@ class mb_specialModel extends Model
             //整理商品数据
             $new_goods_list = array();
             foreach ($item_data['item'] as $value) {
-                if(!empty($goods_list[$value])) {
+                if (!empty($goods_list[$value])) {
                     $new_goods_list[] = $goods_list[$value];
                 }
             }
@@ -318,33 +336,34 @@ class mb_specialModel extends Model
     /**
      * 初始化空项目内容
      */
-    private function _initMbSpecialItemNullData($item_type) {
+    private function _initMbSpecialItemNullData($item_type)
+    {
         $item_data = array();
         switch ($item_type) {
-        case 'home1':
-            $item_data = array(
-                'title' => '',
-                'image' => '',
-                'type' => '',
-                'data' => '',
-            );
-            break;
-        case 'home2':
-        case 'home4':
-            $item_data= array(
-                'title' => '',
-                'square_image' => '',
-                'square_type' => '',
-                'square_data' => '',
-                'rectangle1_image' => '',
-                'rectangle1_type' => '',
-                'rectangle1_data' => '',
-                'rectangle2_image' => '',
-                'rectangle2_type' => '',
-                'rectangle2_data' => '',
-            );
-            break;
-        default:
+            case 'home1':
+                $item_data = array(
+                    'title' => '',
+                    'image' => '',
+                    'type' => '',
+                    'data' => '',
+                );
+                break;
+            case 'home2':
+            case 'home4':
+                $item_data = array(
+                    'title' => '',
+                    'square_image' => '',
+                    'square_type' => '',
+                    'square_data' => '',
+                    'rectangle1_image' => '',
+                    'rectangle1_type' => '',
+                    'rectangle1_data' => '',
+                    'rectangle2_image' => '',
+                    'rectangle2_type' => '',
+                    'rectangle2_data' => '',
+                );
+                break;
+            default:
         }
         return $item_data;
     }
@@ -355,12 +374,13 @@ class mb_specialModel extends Model
      * @return array $item_info
      *
      */
-    public function addMbSpecialItem($param) {
+    public function addMbSpecialItem($param)
+    {
         $param['item_usable'] = self::SPECIAL_ITEM_UNUSABLE;
         $param['item_sort'] = 255;
         $result = $this->table('mb_special_item')->insert($param);
         //删除缓存
-        if($result) {
+        if ($result) {
             //删除缓存
             $this->_delMbSpecialCache($param['special_id']);
             $param['item_id'] = $result;
@@ -378,8 +398,9 @@ class mb_specialModel extends Model
      * @return bool
      *
      */
-    public function editMbSpecialItemByID($update, $item_id, $special_id) {
-        if(isset($update['item_data'])) {
+    public function editMbSpecialItemByID($update, $item_id, $special_id)
+    {
+        if (isset($update['item_data'])) {
             $update['item_data'] = serialize($update['item_data']);
         }
         $condition = array();
@@ -398,9 +419,10 @@ class mb_specialModel extends Model
      * @param int $special_id
      *
      */
-    public function editMbSpecialItemUsableByID($usable, $item_id, $special_id) {
+    public function editMbSpecialItemUsableByID($usable, $item_id, $special_id)
+    {
         $update = array();
-        if($usable == 'usable') {
+        if ($usable == 'usable') {
             $update['item_usable'] = self::SPECIAL_ITEM_USABLE;
         } else {
             $update['item_usable'] = self::SPECIAL_ITEM_UNUSABLE;
@@ -408,13 +430,14 @@ class mb_specialModel extends Model
         return $this->editMbSpecialItemByID($update, $item_id, $special_id);
     }
 
-	/*
-	 * 删除
-	 * @param array $condition
-	 * @return bool
+    /*
+     * 删除
+     * @param array $condition
+     * @return bool
      *
-	 */
-    public function delMbSpecialItem($condition, $special_id) {
+     */
+    public function delMbSpecialItem($condition, $special_id)
+    {
         //删除缓存
         $this->_delMbSpecialCache($special_id);
 
@@ -423,19 +446,21 @@ class mb_specialModel extends Model
 
     /**
      * 获取专题URL地址
-	 * @param int $special_id
+     * @param int $special_id
      *
      */
-    public function getMbSpecialHtmlUrl($special_id) {
+    public function getMbSpecialHtmlUrl($special_id)
+    {
         return UPLOAD_SITE_URL . DS . ATTACH_MOBILE . DS . 'special_html' . DS . md5('special' . $special_id) . '.html';
     }
 
     /**
      * 获取专题静态文件路径
-	 * @param int $special_id
+     * @param int $special_id
      *
      */
-    public function getMbSpecialHtmlPath($special_id) {
+    public function getMbSpecialHtmlPath($special_id)
+    {
         return BASE_UPLOAD_PATH . DS . ATTACH_MOBILE . DS . 'special_html' . DS . md5('special' . $special_id) . '.html';
     }
 
@@ -444,28 +469,30 @@ class mb_specialModel extends Model
      * @return array
      *
      */
-    public function getMbSpecialModuleList() {
+    public function getMbSpecialModuleList()
+    {
         $module_list = array();
-        $module_list['adv_list'] = array('name' => 'adv_list' , 'desc' => '广告条版块');
-        $module_list['home1'] = array('name' => 'home1' , 'desc' => '模型版块布局A');
-        $module_list['home2'] = array('name' => 'home2' , 'desc' => '模型版块布局B');
-        $module_list['home3'] = array('name' => 'home3' , 'desc' => '模型版块布局C');
-        $module_list['home4'] = array('name' => 'home4' , 'desc' => '模型版块布局D');
-        $module_list['home5'] = array('name' => 'home5' , 'desc' => '模型版块布局E');
-        $module_list['goods'] = array('name' => 'goods' , 'desc' => '商品版块');
+        $module_list['adv_list'] = array('name' => 'adv_list', 'desc' => '广告条版块');
+        $module_list['home1'] = array('name' => 'home1', 'desc' => '模型版块布局A');
+        $module_list['home2'] = array('name' => 'home2', 'desc' => '模型版块布局B');
+        $module_list['home3'] = array('name' => 'home3', 'desc' => '模型版块布局C');
+        $module_list['home4'] = array('name' => 'home4', 'desc' => '模型版块布局D');
+        $module_list['home5'] = array('name' => 'home5', 'desc' => '模型版块布局E');
+        $module_list['goods'] = array('name' => 'goods', 'desc' => '商品版块');
         return $module_list;
     }
 
     /**
      * 清理缓存
      */
-    private function _delMbSpecialCache($special_id) {
+    private function _delMbSpecialCache($special_id)
+    {
         //清理缓存
         dcache($special_id, 'mb_special');
 
         //删除静态文件
         $html_path = $this->getMbSpecialHtmlPath($special_id);
-        if(is_file($html_path)) {
+        if (is_file($html_path)) {
             @unlink($html_path);
         }
     }

+ 223 - 0
mobile/control/brand.php

@@ -0,0 +1,223 @@
+<?php
+/**
+ * 前台品牌分类
+ *
+ *
+ *
+ ***/
+
+
+defined('InShopNC') or exit('Access Invalid!');
+class brandControl extends BaseHomeControl {
+	public function indexOp(){
+		//读取语言包
+		Language::read('home_brand_index');
+		//分类导航
+		$nav_link = array(
+			0=>array(
+				'title'=>Language::get('homepage'),
+				'link'=>SHOP_SITE_URL
+			),
+			1=>array(
+				'title'=>Language::get('brand_index_all_brand')
+			)
+		);
+		Tpl::output('nav_link_list',$nav_link);
+
+        //获得品牌列表
+        $model = Model();
+        $brand_c_list = $model->table('brand')->where(array('brand_apply'=>'1'))->order('brand_sort asc')->select();
+        $brands = $this->_tidyBrand($brand_c_list);
+        extract($brands);
+        Tpl::output('brand_c',$brand_listnew);
+        Tpl::output('brand_class',$brand_class);
+        Tpl::output('brand_r',$brand_r_list);
+        Tpl::output('html_title',Language::get('brand_index_brand_list'));
+
+		//页面输出
+		Tpl::output('index_sign','brand');
+		Model('seo')->type('brand')->show();
+		Tpl::showpage('brand');
+	}
+
+	/**
+	 * 整理品牌
+	 * 所有品牌全部显示在一级类目下,不显示二三级类目
+	 * @param array $brand_c_list
+	 * @return array
+	 */
+	private function _tidyBrand($brand_c_list) {
+	    $brand_listnew = array();
+	    $brand_class = array();
+	    $brand_r_list = array();
+	    if (!empty($brand_c_list) && is_array($brand_c_list)){
+	        $goods_class = Model('goods_class')->getGoodsClassForCacheModel();
+	        foreach ($brand_c_list as $key=>$brand_c){
+                $gc_array = $this->_getTopClass($goods_class, $brand_c['class_id']);
+                if (empty($gc_array)) {
+                    if ($brand_c['show_type'] == 1){
+                        $brand_listnew[0]['text'][] = $brand_c;
+                    } else {
+                        $brand_listnew[0]['image'][] = $brand_c;
+                    }
+                    $brand_class[0]['brand_class'] = '其他';
+                } else {
+                    if ($brand_c['show_type'] == 1){
+                        $brand_listnew[$gc_array['gc_id']]['text'][] = $brand_c;
+                    } else {
+                        $brand_listnew[$gc_array['gc_id']]['image'][] = $brand_c;
+                    }
+                    $brand_class[$gc_array['gc_id']]['brand_class'] = $gc_array['gc_name'];
+                }
+	            //推荐品牌
+	            if ($brand_c['brand_recommend'] == 1){
+	                $brand_r_list[] = $brand_c;
+	            }
+	        }
+	    }
+	    krsort($brand_class);
+	    krsort($brand_listnew);
+	    return array('brand_listnew' => $brand_listnew, 'brand_class' => $brand_class, 'brand_r_list' => $brand_r_list);
+	}
+
+	/**
+	 * 获取顶级商品分类
+	 * 递归调用
+	 * @param array $goods_class
+	 * @param int $gc_id
+	 * @return array
+	 */
+	private function _getTopClass($goods_class, $gc_id) {
+	    if (!isset($goods_class[$gc_id])) {
+	        return null;
+	    }
+	    return $goods_class[$gc_id]['gc_parent_id'] == 0 ? $goods_class[$gc_id] : $this->_getTopClass($goods_class, $goods_class[$gc_id]['gc_parent_id']);
+	}
+
+	/**
+	 * 品牌商品列表
+	 */
+	public function listOp(){
+		Language::read('home_brand_index');
+		$lang	= Language::getLangContent();
+		/**
+		 * 验证品牌
+		 */
+		$model_brand = Model('brand');
+		$brand_info = $model_brand->getBrandInfo(array('brand_id' => intval($_GET['brand'])));
+		if(!$brand_info){
+			showMessage($lang['wrong_argument'],'index.php','html','error');
+		}
+
+		/**
+		 * 获得推荐品牌
+		 */
+		$brand_r_list = Model('brand')->getBrandPassedList(array('brand_recommend'=>1) ,'brand_id,brand_name,brand_pic', 0, 'brand_sort asc, brand_id desc', 10);
+		Tpl::output('brand_r',$brand_r_list);
+
+        // 得到排序方式
+        $order = 'is_own_shop desc,goods_id desc';
+        if (!empty($_GET['key'])) {
+            $order_tmp = trim($_GET['key']);
+            $sequence = $_GET['order'] == 1 ? 'asc' : 'desc';
+            switch ($order_tmp) {
+                case '1' : // 销量
+                    $order = 'goods_salenum' . ' ' . $sequence;
+                    break;
+                case '2' : // 浏览量
+                    $order = 'goods_click' . ' ' . $sequence;
+                    break;
+                case '3' : // 价格
+                    $order = 'goods_promotion_price' . ' ' . $sequence;
+                    break;
+            }
+        }
+
+        // 字段
+        $fieldstr = "goods_id,goods_commonid,goods_name,goods_jingle,store_id,store_name,goods_price,goods_promotion_price,goods_promotion_type,goods_marketprice,goods_storage,goods_image,goods_freight,goods_salenum,color_id,evaluation_good_star,evaluation_count,is_virtual,is_fcode,is_appoint,is_presell,have_gift";
+        // 条件
+        $where = array();
+        $where['brand_id'] = $brand_info['brand_id'];
+        if (intval($_GET['area_id']) > 0) {
+            $where['areaid_1'] = intval($_GET['area_id']);
+        }
+        if ($_GET['type'] == 1) {
+            $where['is_own_shop'] = 1;
+        }
+        if ($_GET['gift'] == 1) {
+            $where['have_gift'] = 1;
+        }
+        $model_goods = Model('goods');
+        $goods_list = $model_goods->getGoodsListByColorDistinct($where, $fieldstr, $order, 24);
+        Tpl::output('show_page1', $model_goods->showpage(4));
+        Tpl::output('show_page', $model_goods->showpage(5));
+        // 商品多图
+        if (!empty($goods_list)) {
+            $commonid_array = array(); // 商品公共id数组
+                $storeid_array = array();       // 店铺id数组
+            foreach ($goods_list as $value) {
+                $commonid_array[] = $value['goods_commonid'];
+                $storeid_array[] = $value['store_id'];
+            }
+            $commonid_array = array_unique($commonid_array);
+            $storeid_array = array_unique($storeid_array);
+            // 商品多图
+            $goodsimage_more = $model_goods->getGoodsImageList(array('goods_commonid' => array('in', $commonid_array)));
+            // 店铺
+            $store_list = Model('store')->getStoreMemberIDList($storeid_array);
+
+            foreach ($goods_list as $key => $value) {
+                // 商品多图
+                foreach ($goodsimage_more as $v) {
+                    if ($value['goods_commonid'] == $v['goods_commonid'] && $value['store_id'] == $v['store_id'] && $value['color_id'] == $v['color_id']) {
+                        $goods_list[$key]['image'][] = $v;
+                    }
+                }
+                // 店铺的开店会员编号
+                $store_id = $value['store_id'];
+                $goods_list[$key]['member_id'] = $store_list[$store_id]['member_id'];
+                $goods_list[$key]['store_domain'] = $store_list[$store_id]['store_domain'];
+                //将关键字置红
+                $goods_list[$key]['goods_name_highlight'] = $value['goods_name'];
+            }
+        }
+        Tpl::output('goods_list', $goods_list);
+
+        // 地区
+        $province_array = Model('area')->getTopLevelAreas();
+        Tpl::output('province_array', $province_array);
+
+        loadfunc('search');
+        /**
+         * 取浏览过产品的cookie(最大四组)
+         */
+        $viewed_goods = Model('goods_browse')->getViewedGoodsList($_SESSION['member_id'],20);
+        Tpl::output('viewed_goods',$viewed_goods);
+
+		/**
+		 * 分类导航
+		 */
+		$nav_link = array(
+			0=>array(
+				'title'=>$lang['homepage'],
+				'link'=>SHOP_SITE_URL
+			),
+			1=>array(
+				'title'=>$lang['brand_index_all_brand'],
+				'link'=>urlShop('brand', 'index')
+			),
+			2=>array(
+				'title'=>$brand_info['brand_name']
+			)
+		);
+		Tpl::output('nav_link_list',$nav_link);
+		/**
+		 * 页面输出
+		 */
+		Tpl::output('index_sign','brand');
+
+
+		Model('seo')->type('brand_list')->param(array('name'=>$brand_info['brand_name']))->show();
+		Tpl::showpage('brand_goods');
+	}
+}

+ 78 - 2
mobile/control/goods.php

@@ -144,6 +144,82 @@ class goodsControl extends mobileHomeControl
     }
 
     /**
+     * 商品详细页扩展
+     */
+    public function goods_commonOp()
+    {
+        $goods_id = intval($_GET ['goods_id']);
+
+        // 商品详细信息
+        $model_goods = Model('goods');
+        $goods_detail = $model_goods->getGoodsSku($goods_id);
+        if (empty($goods_detail)) {
+            output_error('商品不存在');
+        }
+
+        //推荐商品
+        $model_store = Model('store');
+        $store_info = $model_store->getStoreInfoByID($goods_detail['goods_info']['store_id']);
+        $goods_detail['store_info']['store_id'] = $store_info['store_id'];
+        $goods_detail['store_info']['store_name'] = $store_info['store_name'];
+        $goods_detail['store_info']['member_id'] = $store_info['member_id'];
+        //显示QQ及旺旺 好商城V3
+        $goods_detail['store_info']['store_qq'] = $store_info['store_qq'];
+        $goods_detail['store_info']['store_ww'] = $store_info['store_ww'];
+        $goods_detail['store_info']['store_phone'] = $store_info['store_phone'];
+        $goods_detail['store_info']['member_name'] = $store_info['member_name'];
+        $goods_detail['store_info']['avatar'] = getMemberAvatarForID($store_info['member_id']);
+
+        //商品详细信息处理
+        $goods_detail = $this->_goods_common_extend($goods_detail);
+
+        joutput_data($goods_detail);
+    }
+
+    /**
+     * 商品详细信息处理
+     */
+    private function _goods_common_extend($goods_detail)
+    {
+        //商品链接
+        $goods_detail['goods_info']['goods_url'] = urlShop('goods', 'index', array('goods_id' => $goods_detail['goods_info']['goods_id']));
+
+        //整理数据
+        unset($goods_detail['goods_info']['goods_commonid']);
+        unset($goods_detail['goods_info']['gc_id']);
+        unset($goods_detail['goods_info']['gc_name']);
+        unset($goods_detail['goods_info']['store_name']);
+        unset($goods_detail['goods_info']['brand_id']);
+        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']['mobile_body']);
+        unset($goods_detail['goods_info']['goods_state']);
+        unset($goods_detail['goods_info']['goods_stateremark']);
+        unset($goods_detail['goods_info']['goods_verify']);
+        unset($goods_detail['goods_info']['goods_verifyremark']);
+        unset($goods_detail['goods_info']['goods_lock']);
+        unset($goods_detail['goods_info']['goods_addtime']);
+        unset($goods_detail['goods_info']['goods_edittime']);
+        unset($goods_detail['goods_info']['goods_selltime']);
+        unset($goods_detail['goods_info']['goods_show']);
+        unset($goods_detail['goods_info']['goods_commend']);
+        unset($goods_detail['goods_info']['explain']);
+        unset($goods_detail['goods_info']['cart']);
+        unset($goods_detail['goods_info']['buynow_text']);
+        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['groupbuy_info']);
+        unset($goods_detail['xianshi_info']);
+
+        return $goods_detail;
+    }
+
+    /**
      * 商品详细页
      */
     public function goods_detailOp()
@@ -158,7 +234,6 @@ class goodsControl extends mobileHomeControl
             output_error('商品不存在');
         }
 
-
         //推荐商品
         $model_store = Model('store');
         $hot_sales = $model_store->getHotSalesList($goods_detail['goods_info']['store_id'], 6);
@@ -262,6 +337,7 @@ class goodsControl extends mobileHomeControl
         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']['mobile_body']);
         unset($goods_detail['goods_info']['goods_state']);
         unset($goods_detail['goods_info']['goods_stateremark']);
         unset($goods_detail['goods_info']['goods_verify']);
@@ -276,7 +352,7 @@ 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;
     }

+ 4 - 10
mobile/control/index.php

@@ -113,11 +113,11 @@ class indexControl extends mobileHomeControl
                 }
                 array_push($ret, $item);
             }
-            wcache($codeid,serialize($ret),$prefix);
+            wcache($codeid,array("salelist_content"=>serialize($ret)),$prefix);
         }
         else
         {
-            $ret = unserialize($ret);
+            $ret = unserialize($ret['salelist_content']);
         }
         joutput_data($ret);
     }
@@ -152,22 +152,16 @@ class indexControl extends mobileHomeControl
                     array_push($ret,$item);
                 }
             }
-            wcache($codeid,serialize($ret),$prefix);
+            wcache($codeid,array("salelist"=>serialize($ret)),$prefix);
         }
         else
         {
-            $ret = unserialize($ret);
+            $ret = unserialize($ret['salelist']);
         }
 
         return $ret;
     }
 
-    public function toplistOp()
-    {
-
-    }
-
-
     /**
      * 输出专题
      */

+ 2 - 1
mobile/control/member_buy.php

@@ -78,7 +78,8 @@ class member_buyControl extends mobileMemberControl {
     public function buy_step2Op() {
         $param = array();
         $param['ifcart'] = $_POST['ifcart'];
-        $param['cart_id'] = explode(',', $_POST['cart_id']);
+        $param['cart_id']  = explode(',', urldecode($_POST['cart_id']));
+        Log::record('Create cart_id list'. urldecode($_POST['cart_id']),Log::ERR);
         $param['address_id'] = $_POST['address_id'];
         $param['vat_hash'] = $_POST['vat_hash'];
         $param['offpay_hash'] = $_POST['offpay_hash'];

+ 21 - 0
mobile/control/member_cart.php

@@ -23,11 +23,32 @@ class member_cartControl extends mobileMemberControl
      */
     public function cart_listOp() {
         $model_cart = Model('cart');
+        $model_goods = Model('goods');
 
         $condition = array('buyer_id' => $this->member_info['member_id']);
         $cart_list	= $model_cart->listCart('db', $condition);
         $sum = 0;
         foreach ($cart_list as $key => $value) {
+            $goods_id = $value['goods_id'];
+            $goods_promotion = $model_goods->getGoodsInfoAndPromotionById($goods_id);
+            $promotion_type = '';
+            $promotion_price = '0.00';
+            if(!empty( $goods_promotion['groupbuy_info'])){
+                $promotion_type = '抢购';
+                $promotion_price = $goods_promotion['groupbuy_info']['groupbuy_price'];
+            }
+            if(!empty( $goods_promotion['xianshi_info'])){
+                $promotion_type = '限时折扣';
+                $promotion_price = $goods_promotion['xianshi_info']['xianshi_price'];
+            }
+            $goods_spec = unserialize($goods_promotion['goods_spec']);
+            $goods_spec_array = array();
+            foreach ($goods_spec as $value) {
+                array_push($goods_spec_array, $value);
+            }
+            $cart_list[$key]['goods_spec'] = implode(',', $goods_spec_array);
+            $cart_list[$key]['promotion_type'] = $promotion_type;
+            $cart_list[$key]['promotion_price'] = $promotion_price;
             $cart_list[$key]['goods_image_url'] = cthumb($value['goods_image'], $value['store_id']);
             $cart_list[$key]['goods_sum'] = ncPriceFormat($value['goods_price'] * $value['goods_num']);
             $sum += $cart_list[$key]['goods_sum'];

+ 6 - 6
mobile/control/member_order.php

@@ -82,7 +82,7 @@ class member_orderControl extends mobileMemberControl {
 
 
         //output_data(array('order_group_list' => $array_data), mobile_page($page_count));
-        output_data($array_data, mobile_page($page_count));
+        joutput_data($array_data, mobile_page($page_count));
     }
 
     /**
@@ -104,9 +104,9 @@ class member_orderControl extends mobileMemberControl {
 
         $result = $logic_order->changeOrderStateCancel($order_info,'buyer', $this->member_info['member_name'], '其它原因');
         if(!$result['state']) {
-            output_error($result['msg']);
+            joutput_error(errcode::ErrOrder, $result['msg']);
         } else {
-            output_data('1');
+            joutput_data(array('result' => '1'));
         }
     }
 
@@ -129,9 +129,9 @@ class member_orderControl extends mobileMemberControl {
 
         $result = $logic_order->changeOrderStateReceive($order_info,'buyer', $this->member_info['member_name']);
         if(!$result['state']) {
-            output_error($result['msg']);
+            joutput_error(errcode::ErrOrder, $result['msg']);
         } else {
-            output_data('1');
+            joutput_data(array('result' => '1'));
         }
     }
 
@@ -157,7 +157,7 @@ class member_orderControl extends mobileMemberControl {
         $e_name = $express[$order_info['extend_order_common']['shipping_express_id']]['e_name'];
 
         $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
-        output_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
+        joutput_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
     }
 
     /**

+ 1 - 1
queue/control/index.php

@@ -22,7 +22,7 @@ class indexControl
             $list_key = $worker->scan();
             if (!empty($list_key) && is_array($list_key)) {
                 foreach ($list_key as $key) {
-                    $content = $worker->pop($key);
+                    $content = $worker->pop($key, time());
                     if (empty($content)) continue;
                     $method = key($content);
                     $arg = current($content);