dever 6 years ago
parent
commit
9bda9097e5
4 changed files with 51 additions and 6 deletions
  1. 22 1
      vip/database/time.php
  2. 26 0
      vip/lib/Member.php
  3. 2 4
      vip/lib/Pay.php
  4. 1 1
      vip/src/Buy.php

+ 22 - 1
vip/database/time.php

@@ -6,6 +6,14 @@ $type = array
     2 => '超值价格',
 );
 
+$time_type = array
+(
+    1 => '天',
+    2 => '周',
+    3 => '月',
+    4 => '年',
+);
+
 # 获取小刊分类权限
 $auth = Dever::tops();
 $cate = function() use ($auth)
@@ -70,12 +78,25 @@ return array
             'update'    => 'text',
             'list'		=> true,
         ),
+
+        'time_type'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '时长单位设置',
+            'default'   => '1',
+            'desc'      => '时长单位设置',
+            'match'     => 'is_numeric',
+            'option'    => $time_type,
+            'search'    => 'select',
+            'update'    => 'select',
+            //'list'        => true,
+        ),
         
         'time'       => array
         (
             'type'      => 'int-11',
             'default'   => '',
-            'name'      => '时长设置-以天为单位,直接填写数字即可,如1年则填写365',
+            'name'      => '时长设置-以时长单位为准,直接填写数字即可,如时长单位设置为天,填写7就是7天,请注意,如果时长单位设置为天,这里定义365天,与一年是不同的,有的年份并不是365天,时长单位设置请选择年',
             'match'     => 'is_numeric',
             'desc'      => '时长设置',
             'update'    => 'text',

+ 26 - 0
vip/lib/Member.php

@@ -29,4 +29,30 @@ class Member
 		# 未开通
 		return -1;
 	}
+
+	public function getEnd($time, $type, $start)
+	{
+        $key = 'days';
+        if ($type == 1) {
+            $key = 'days';
+        } elseif ($type == 2) {
+            $key = 'weeks';
+        } elseif ($type == 3) {
+            $key = 'months';
+        } elseif ($type == 4) {
+            $key = 'years';
+        }
+        $value = strtotime('+' . $time . $key, $start);
+        return $value;
+	}
+
+	public function test_api()
+	{
+		$time = Dever::input('time');
+		$type = Dever::input('type');
+		$start = time();
+		$value = $this->getEnd($time, $type, $start);
+
+		return date('Y-m-d H:i:s', $value);
+	}
 }

+ 2 - 4
vip/lib/Pay.php

@@ -49,14 +49,12 @@ class Pay
                         $insert['mobile'] = $order['mobile'];
                         $insert['uid'] = $order['uid'];
                         $time = time();
-                        $insert['end'] = $buy['time'] * 86400;
-
                         if ($member) {
-                            $insert['end'] = $member['end'] + $insert['end'];
+                            $insert['end'] = Dever::load('vip/lib/member')->getEnd($buy['time'], $buy['time_type'], $member['end']);
                             $insert['where_id'] = $member['id'];
                             Dever::db('vip/member')->update($insert);
                         } else {
-                            $insert['end'] = $time + $insert['end'];
+                            $insert['end'] = Dever::load('vip/lib/member')->getEnd($buy['time'], $buy['time_type'], $time);
                             $insert['start'] = $time;
                             Dever::db('vip/member')->insert($insert);
                         }

+ 1 - 1
vip/src/Buy.php

@@ -109,7 +109,7 @@ class Buy extends Base
 
         # 仅供参考 以实际支付时间为准
         $order_data['start'] = time();
-        $order_data['end'] = $order_data['start'] + ($buy['time'] * 86400);
+        $order_data['end'] = Dever::load('vip/lib/member')->getEnd($buy['time'], $buy['time_type'], $order_data['start']);
 
         $order_data['system'] = 2;
         if ($this->source) {