Bläddra i källkod

好友关系中增加是否已经关注等信息

stanley-king 8 år sedan
förälder
incheckning
427657f4ca

+ 2 - 10
data/model/member_relation.model.php

@@ -13,17 +13,9 @@ class member_relationModel extends Model
         parent::__construct('member_relation');
     }
 
-    public function findByID($member_id)
+    public function getRelationList($condition = array(), $field = '*', $page = 0, $order = '', $limit = '')
     {
-        $member = Model('member');
-        $info = $member->getMemberInfoByID($member_id);
-        if(!empty($info)) {
-            $mobile = $info['member_mobile'];
-            return $this->findByMobile($mobile);
-        }
-        else {
-            return array();
-        }
+        return $this->table('member')->field($field)->where($condition)->page($page)->order($order)->limit($limit)->select();
     }
 
     public function findByMobile($mobile)

+ 33 - 0
helper/relation/mem_relation.php

@@ -41,6 +41,12 @@ class mem_relation
     {
         $this->dirty = false;
 
+        if(is_array($member_id)) {
+            $info = $member_id;
+            $this->init($info);
+            return;
+        }
+
         $this->mod_relation = Model('member_relation');
         $member_id = intval($member_id);
 
@@ -169,13 +175,24 @@ class mem_relation
         $someone->save();
         return $someone->member_id;
     }
+    public function member_id()
+    {
+        return $this->member_id;
+    }
 
     public function subscriber() {
         return $this->subscriber;
     }
+    public function subscriber_count() {
+        return count($this->subscriber);
+    }
     public function follower() {
         return $this->follower;
     }
+    public function follower_count() {
+        return count($this->follower);
+    }
+
     public function unfollower() {
         return $this->unbuild_mobiles;
     }
@@ -234,6 +251,22 @@ class mem_relation
         return true;
     }
 
+    public function is_follower($other_id)
+    {
+        if($this->member_id == $other_id) {
+            return false;
+        }
+        else
+        {
+            $pos = algorithm_helper::bsearch($other_id,$this->follower);
+            if($pos == -1) {
+                return false;
+            } else {
+                return true;
+            }
+        }
+    }
+
     private function subscribed($mobile)
     {
         if(algorithm_helper::bsearch($mobile,$this->build_mobiles) != -1) {

+ 40 - 12
mobile/control/member_relation.php

@@ -11,14 +11,18 @@ require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
 
 class member_relationControl extends mbMemberControl
 {
-    //mem
+    //subscriber TEXT COMMENT '订阅我为好友的人。',
+    //follower TEXT COMMENT '我订阅别人成为好友通过的人。'
+
     public function subscriberOp()
     {
-        $follower = relation_helper::follower($_SESSION['member_id']);
-        $count = count($follower);
+        $iRelation = new \relation\mem_relation($_SESSION['member_id']);
+        $follower = $iRelation->follower();
 
-        $desc = array();
+        $mem_desc = array();
         $pages = 0;
+        $follower_infos = array();
+
         if(!empty($follower))
         {
             $follower = self::separate_page($follower,$pages);
@@ -26,32 +30,56 @@ class member_relationControl extends mbMemberControl
 
             foreach ($members as $val) {
                 $info = new member_info($val);
-                array_push($desc,$info->filter());
+                array_push($mem_desc,$info->filter());
+            }
+
+            $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follower)));
+            foreach ($f_infos as $val) {
+                $relation = new \relation\mem_relation($val);
+                $item = array('fcount' =>$relation->subscriber_count(),
+                    'member_id' => $relation->member_id(),
+                    'subscribed' => true);
+                array_push($follower_infos,$item);
             }
         }
 
-        return self::outsuccess(array('followers' => $follower,'count' => $count,'mem_desc' => $desc, 'mobile_page' => mobile_page($pages)));
+        return self::outsuccess(array('followers' => $follower_infos,
+            'count' => $iRelation->follower_count(),
+            'mem_desc' => $mem_desc,
+            'mobile_page' => mobile_page($pages)));
     }
 
+    //我的粉丝
     public function followersOp()
     {
-        $follower = relation_helper::subscriber($_SESSION['member_id']);
-        $count = count($follower);
+        $iRelation = new \relation\mem_relation($_SESSION['member_id']);
+        $follower = $iRelation->subscriber();
 
-        $desc = array();
+        $mem_desc = array();
         $pages = 0;
+        $follower_infos = array();
         if(!empty($follower))
         {
             $follower = self::separate_page($follower,$pages);
             $members = Model('member')->getMemberList(array('member_id' => array('in',$follower)));
-
             foreach ($members as $val) {
                 $info = new member_info($val);
-                array_push($desc,$info->filter());
+                array_push($mem_desc,$info->filter());
+            }
+            $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follower)));
+            foreach ($f_infos as $val) {
+                $relation = new \relation\mem_relation($val);
+                $item = array('fcount' => $relation->subscriber_count(),
+                    'member_id' => $relation->member_id(),
+                    'subscribed' => $iRelation->is_follower($relation->member_id()));
+                array_push($follower_infos,$item);
             }
         }
 
-        return self::outsuccess(array('subscriber' => $follower,'count' => $count,'mem_desc' => $desc, 'mobile_page' => mobile_page($pages)));
+        return self::outsuccess(array('subscriber' => $follower,
+            'count' => $iRelation->subscriber_count(),
+            'mem_desc' => $mem_desc,
+            'mobile_page' => mobile_page($pages)));
     }
 
     public function subscribeOp()

+ 0 - 34
mobile/control/task.php

@@ -1,34 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/3/17
- * Time: 下午2:09
- */
-
-defined('InShopNC') or exit('Access Invalid!');
-
-class taskControl extends mobileHomeControl
-{
-    public function __construct()
-    {
-        parent::__construct();
-    }
-
-    public function indexOp()
-    {
-        TPL::showpage("task_home");
-    }
-
-    public function addOp()
-    {
-        $task = $_POST['task'];
-        if(!empty($task)) {
-            if(!is_array($_SESSION['task'])) {
-                $_SESSION['task'] = array();
-            }
-            $_SESSION['task'][] = $task;
-        }
-        self::outsuccess(NULL,"task_home");
-    }
-}