dever il y a 6 ans
Parent
commit
eb9e589524

+ 16 - 2
act/lib/Pay.php

@@ -90,8 +90,22 @@ class Pay
                     }
 
                     if ($buy && $buy['num']) {
-                    	# 增加本数
-                    	Dever::load('act/lib/num')->submit($order['product_id'], $uid, $buy['num']);
+
+                        $active = Dever::load('act/order')->getActive($order['product_id']);
+                        $active_state = true;
+                        if (!$active) {
+                            $active_state = false;
+                        }
+                        if ($active && $active['status'] == 2) {
+                            $active_state = false;
+                        }
+                        if ($active && time() > $active['end']) {
+                            $active_state = false;
+                        }
+                        if ($active_state) {
+                            # 增加本数
+                            Dever::load('act/lib/num')->submit($order['product_id'], $uid, $buy['num']);
+                        }
                     }
                 }
                 # 积分

+ 39 - 0
act/src/Order.php

@@ -7,6 +7,45 @@ use Main\Lib\Core;
 
 class Order extends Core
 {
+    public function setCache($id, $type)
+    {
+        # 清空缓存,重新生成
+        if ($type == 1) {
+            $key = 'journal_info_' . $id;
+            $journal = Dever::db('journal/info')->one($id);
+            Dever::cache($key, $journal);
+        } elseif ($type == 2) {
+            $key = 'journal_buy_' . $id;
+            $buy = Dever::db('journal/buy_num')->one($id);
+
+            if (!$buy['name']) {
+                $buy['name'] = '购买' . $buy['num'] . '本';
+            }
+            Dever::cache($key, $buy);
+        } elseif ($type == 3) {
+            $key = 'journal_active_' . $id;
+            $active = Dever::db('journal/active')->one($id);
+            Dever::cache($key, $active);
+        }
+    }
+
+    # 获取电子刊信息,走缓存,先不走接口
+    public function getActive($journal_id = false)
+    {
+        $journal_id = Dever::input('journal_id', $journal_id, '> 0', '请传入正确的小刊ID');
+
+        $key = 'journal_active_' . $journal_id;
+
+        $active = Dever::cache($key);
+
+        if (!$active) {
+            $active = Dever::db('journal/active')->one(array('info_id' => $journal_id, 'state' => 1));
+
+            Dever::cache($key, $active);
+        }
+        return $active;
+    }
+
 	# 获取电子刊信息,走缓存,先不走接口
 	public function getJournal($journal_id = false)
 	{

+ 2 - 2
journal/database/active.php

@@ -14,8 +14,8 @@ return array
     'menu' => false,
     'end' => array
     (
-        //'update' => 'service/lib/manage.feedback',
-        //'insert' => 'service/lib/manage.feedback',
+        'insert' => 'journal/lib/manage.setActiveCache',
+        'update' => 'journal/lib/manage.setActiveCache',
     ),
     # 数据结构
     'struct' => array

+ 5 - 0
journal/database/buy_num.php

@@ -15,6 +15,11 @@ return array
     'lang' => '购买本数设置',
     'order' => 100,
     'menu' => false,
+    'end' => array
+    (
+        'insert' => 'journal/lib/manage.setBuyCache',
+        'update' => 'journal/lib/manage.setBuyCache',
+    ),
     # 数据结构
     'struct' => array
     (

+ 5 - 0
journal/database/info.php

@@ -58,6 +58,11 @@ $config = array
 	# 显示给用户看的名称
 	'lang' => '小刊管理',
 	'order' => 100,
+	'end' => array
+	(
+		'insert' => 'journal/lib/manage.setJournalCache',
+		'update' => 'journal/lib/manage.setJournalCache',
+	),
 
 	# 同步更新另外一个或多个表的数据 小刊不需要同步到审核页面
 	/*

+ 15 - 0
journal/lib/Manage.php

@@ -472,6 +472,21 @@ class Manage
         Dever::location($file);
     }
 
+    public function setJournalCache($id, $name, $param)
+    {
+        Dever::load('act/order')->setCache($id, 1);
+    }
+
+    public function setBuyCache($id, $name, $param)
+    {
+        Dever::load('act/order')->setCache($id, 2);
+    }
+
+    public function setActiveCache($id, $name, $param)
+    {
+        Dever::load('act/order')->setCache($id, 3);
+    }
+
     /**
      * 导入用户
      *