Bladeren bron

fix activity publish and subcribe

james 8 jaren geleden
bovenliggende
commit
ba83c41799
3 gewijzigde bestanden met toevoegingen van 83 en 20 verwijderingen
  1. 34 12
      helper/activity/limitime.php
  2. 24 4
      helper/activity/recommend_combo.php
  3. 25 4
      helper/activity/recommend_goods.php

+ 34 - 12
helper/activity/limitime.php

@@ -44,6 +44,7 @@ class limitime
     const XIANSHI_STATE_CLOSE = 2;
     const XIANSHI_STATE_CANCEL = 3;
 
+    const cache_name = 'all_limitime';
     const STORE_ID = 6;
 
     static private $stInstance = null;
@@ -69,15 +70,30 @@ class limitime
 
     private function init()
     {
+        $data = $this->read_cache();
+        $this->limit_list = $data['limit_list'];
+        $this->mGoodsidLimitGoods = $data['goodsidLimitGoods'];
+        $this->mLimitGoods = $data['limitGoods'];
+    }
+
+    private function read_cache()
+    {
+        $prefix = 'mb_activity';
+        $items = rcache(self::cache_name, $prefix);
+
+        if (!empty($items)) {
+            return unserialize($items['data']);
+        }
+
+        $limit_list = [];
+        $goodsidLimitGoods = [];
+        $limitGoods = [];
+
         $mod = Model('p_xianshi');
         $condition = array();
         $condition['store_id'] = self::STORE_ID;
         $condition['state'] = self::XIANSHI_STATE_NORMAL;
 
-        $this->limit_list = array();
-        $this->mGoodsidLimitGoods = array();
-        $this->mLimitGoods = [];
-
         $list = $mod->getXianshiList($condition);
         foreach ($list as $val)
         {
@@ -89,21 +105,27 @@ class limitime
             $goods_list = Model('p_xianshi_goods')->getXianshiGoodsList(array('xianshi_id' => $xianshi_id));
             foreach ($goods_list as $xianshi_goods) {
                 $goods_id = intval($xianshi_goods['goods_id']);
-                $this->add_limitgoods($goods_id,$xianshi_goods);
+                self::add_limitgoods($goodsidLimitGoods,$goods_id,$xianshi_goods);
                 $gids[] = $goods_id;
             }
-            $this->mLimitGoods[$xianshi_id] = $gids;
-            $this->limit_list[$xianshi_id]['goods_list'] = $gids;
+            $mLimitGoods[$xianshi_id] = $gids;
+            $limit_list[$xianshi_id]['goods_list'] = $gids;
         }
+
+        $data = array('limit_list' => $limit_list,'goodsidLimitGoods' => $goodsidLimitGoods, 'limitGoods' => $limitGoods);
+        wcache(self::cache_name, array('data' => serialize($data)), $prefix);
+
+        return $data;
+
     }
 
-    private function add_limitgoods($goods_id,$limit_goods)
+    private static function add_limitgoods(&$goodsidLimitGoods,$goods_id,$limit_goods)
     {
-        if(isset($this->mGoodsidLimitGoods[$goods_id])) {
-            $this->mGoodsidLimitGoods[$goods_id][] = $limit_goods;
+        if(isset($goodsidLimitGoods[$goods_id])) {
+            $goodsidLimitGoods[$goods_id][] = $limit_goods;
         } else {
-            $this->mGoodsidLimitGoods[$goods_id] = [];
-            $this->mGoodsidLimitGoods[$goods_id][] = $limit_goods;
+            $goodsidLimitGoods[$goods_id] = [];
+            $goodsidLimitGoods[$goods_id][] = $limit_goods;
         }
     }
 

+ 24 - 4
helper/activity/recommend_combo.php

@@ -16,6 +16,7 @@ class recommend_combo
     static private $stInstance = null;
     //goods_id 可能包含多个商品形成一个组合
     private $goods_combos;
+    const cache_name = 'all_recommend_combo';
 
     private function __construct() {
     }
@@ -34,8 +35,22 @@ class recommend_combo
 
     private function init()
     {
+       $data = $this->read_cache();
+        $this->goods_combos = $data['goods_combos'];
+    }
+
+    private function read_cache()
+    {
+        $prefix = 'mb_activity';
+        $items = rcache(self::cache_name, $prefix);
+
+        if (!empty($items)) {
+            return unserialize($items['data']);
+        }
+
+        $goods_combos = [];
+
         $mod = Model('goods_combo');
-        $this->goods_combos = array();
 
         $list = $mod->getGoodsComboList(array());
         foreach ($list as $val)
@@ -43,12 +58,17 @@ class recommend_combo
             $gid = intval($val['goods_id']);
             $cgid   = intval($val['combo_goodsid']);
 
-            if(isset($this->goods_combos[$gid])) {
-                array_push($this->goods_combos[$gid],$cgid);
+            if(isset($goods_combos[$gid])) {
+                array_push($goods_combos[$gid],$cgid);
             } else {
-                $this->goods_combos[$gid] = array($cgid);
+                $goods_combos[$gid] = array($cgid);
             }
         }
+
+        $data = array('goods_combos' => $goods_combos);
+        wcache(self::cache_name, array('data' => serialize($data)), $prefix);
+
+        return $data;
     }
 
     public function have_combo($goods_id)

+ 25 - 4
helper/activity/recommend_goods.php

@@ -18,6 +18,8 @@ class recommend_goods
     static private $stInstance = null;
     const STORE_ID = 6;
     private $goods_ids;
+    const cache_name = 'all_recommend_goods';
+
 
     static public function instance()
     {
@@ -53,15 +55,34 @@ class recommend_goods
 
     public function init()
     {
+        $data = $this->read_cache();
+        $this->goods_ids = $data['goods_ids'];
+    }
+
+    private function read_cache()
+    {
+        $prefix = 'mb_activity';
+        $items = rcache(self::cache_name, $prefix);
+
+        if (!empty($items)) {
+            return unserialize($items['data']);
+        }
+
+        $goods_ids = [];
+
         $mod = Model('p_booth');
-        $this->common_combos = array();
+
         $list = $mod->getBoothGoodsList(array('store_id' => self::STORE_ID), 'goods_id');
-        $this->goods_ids = array();
         foreach ($list as $val)
         {
             $goods_id = intval($val['goods_id']);
-            array_push($this->goods_ids,$goods_id);
+            array_push($goods_ids,$goods_id);
         }
-        sort($this->goods_ids);
+        sort($goods_ids);
+
+        $data = array('goods_ids' => $goods_ids);
+        wcache(self::cache_name, array('data' => serialize($data)), $prefix);
+
+        return $data;
     }
 }