dever 5 år sedan
förälder
incheckning
f4204026e8
2 ändrade filer med 71 tillägg och 3 borttagningar
  1. 28 0
      database/relation.php
  2. 43 3
      lib/Relation.php

+ 28 - 0
database/relation.php

@@ -82,6 +82,34 @@ return array
 			(
 				'uid' => 'yes',
 				'level' => array('yes', '<='),
+				'end' => array('yes-cdate', '<=')
+			),
+			'type' => 'all',
+			'order' => array('id' => 'desc'),
+			'col' => '*',
+		),
+
+		'getChildCount' => array
+		(
+			# 匹配的正则或函数 选填项
+			'where' => array
+			(
+				'uid' => 'yes',
+				'level' => array('yes', '<='),
+				'end' => array('yes-cdate', '<=')
+			),
+			'type' => 'count',
+			'order' => array('id' => 'desc'),
+			'col' => '*',
+		),
+
+		'getParent' => array
+		(
+			# 匹配的正则或函数 选填项
+			'where' => array
+			(
+				'to_uid' => 'yes',
+				'level' => array('yes', '<='),
 			),
 			'type' => 'all',
 			'order' => array('id' => 'desc'),

+ 43 - 3
lib/Relation.php

@@ -40,13 +40,53 @@ class Relation
         return Dever::db('invite/relation')->one(array('to_uid' => $uid, 'level' => $level));
     }
 
+    # 获取某个用户的所有上级数据
+    public function getParentAll($uid, $level = false)
+    {
+        $where['to_uid'] = $uid;
+        if ($level) {
+            $where['level'] = $level;
+        }
+        return Dever::db('invite/relation')->getParent($where);
+    }
+
     # 获取某个用户的下级数据
     public function getChild($uid, $level = false)
     {
-        if (!$level) {
-            $level = $this->level;
+        $where['uid'] = $uid;
+        if ($level) {
+            $where['level'] = $level;
         }
-        return Dever::db('invite/relation')->getChild(array('uid' => $uid, 'level' => $level));
+        return Dever::db('invite/relation')->getChild($where);
+    }
+
+    # 获取某个用户在x小时之内的下级数据
+    public function getChildNum($uid, $level = 1, $time = false, $curtime = false, $method = 'count')
+    {
+        $where['uid'] = $uid;
+        if ($level) {
+            $where['level'] = $level;
+        }
+        if ($time) {
+            $time = $time * 3600;
+            if ($curtime) {
+                if (strstr($curtime, '-')) {
+                    $curtime = maketime($curtime);
+                }
+                $cur = $curtime;
+            } else {
+                $cur = time();
+            }
+            $where['end'] = $cur + $time;
+        }
+
+        if ($method == 'count') {
+            $method = 'getChildCount';
+        } else {
+            $method = 'getChild';
+        }
+        
+        return Dever::db('invite/relation')->$method($where);
     }
 
     # 插入数据