dever 6 年之前
父節點
當前提交
5cb0cbb67d
共有 4 個文件被更改,包括 26 次插入22 次删除
  1. 14 14
      act/lib/Num.php
  2. 1 1
      act/lib/Pay.php
  3. 1 0
      config/env/localhost/default.php
  4. 10 7
      main/src/Journal_v1.php

+ 14 - 14
act/lib/Num.php

@@ -78,24 +78,24 @@ class Num
     }
 
     # 订阅数计数器
-    public function increment($id, $num = 0)
+    public function setCounter($id, $num = 0)
     {
-        $key = 'journal_buy_num_' . $id;
-        $buy_num = Dever::cache($key);
-        if (!$buy_num) {
-            if ($num > 0) {
-                $journal = Dever::db('journal/info')->one($id);
-                $num = $journal['num_ding'] + $num;
-            } else {
-                return $buy_num;
-            }
-        } elseif ($num <= 0) {
-            return $buy_num;
-        }
-        Dever::increment($key, $num);
+        $key = 'journal_buy_num2_' . $id;
+        $callback = function() use($id) {
+            $journal = Dever::db('journal/info')->one($id);
+            return $journal['num_ding'];
+        };
+        Dever::counter($key, $num, $callback);
         return true;
     }
 
+    # 订阅数计数器
+    public function getCounter($id)
+    {
+        $key = 'journal_buy_num2_' . $id;
+        return Dever::counter($key);
+    }
+
     /**
      * 导出成excel
      *

+ 1 - 1
act/lib/Pay.php

@@ -225,7 +225,7 @@ class Pay
                         }
 
                         # 增加订阅数
-                        Dever::load('act/lib/num')->increment($order['product_id'], $buy['num']);
+                        Dever::load('act/lib/num')->setCounter($order['product_id'], $buy['num']);
                     }
                 }
                 # 积分

+ 1 - 0
config/env/localhost/default.php

@@ -120,6 +120,7 @@ $config['cache'] = array
         'buy_codedetail' => 0,
         'buy.pay' => 0,
         'journal_v1.top' => 600,
+        //'journal_v1.getList' => 0,
     ),
 
     # 哪些路由中的参数不参与生成缓存的key

+ 10 - 7
main/src/Journal_v1.php

@@ -68,22 +68,25 @@ class Journal_v1 extends Core
     public function getList_noCache($data)
     {
         if ($data['push'] && $data['push']['hot'] == 1) {
-            $data['push']['num_ding'] = Dever::load('act/lib/num')->increment($data['push']['id']);
-            $data['push'] = $this->ding($data['push']);
+            $num_ding = Dever::load('act/lib/num')->getCounter($data['push']['id']);
+            if ($num_ding) {
+                $data['push']['num_ding'] = $num_ding;
+                $data['push'] = $this->ding($data['push']);
+            }
         }
 
         if ($data['journal']) {
             foreach ($data['journal'] as $k => $v) {
                 if ($v['hot'] == 1) {
-                    $data['journal'][$k]['num_ding'] = Dever::load('act/lib/num')->increment($v['id']);
-                    $data['journal'][$k] = $this->ding($data['journal'][$k]);
+                    $num_ding = Dever::load('act/lib/num')->getCounter($v['id']);
+                    if ($num_ding) {
+                        $data['journal'][$k]['num_ding'] = $num_ding;
+                        $data['journal'][$k] = $this->ding($data['journal'][$k]);
+                    }
                 }
             }
         }
 
-        Dever::load('act/lib/num')->increment(2, 10);
-
-        print_r($data);die;
         return $data;
     }