Kaynağa Gözat

fix follow friend

stanley-king 8 yıl önce
ebeveyn
işleme
8e7958116c

+ 8 - 0
helper/relation/mem_relation.php

@@ -159,6 +159,7 @@ class mem_relation
             $this->dirty = true;
         }
     }
+
     //用户($member_id) 取消关注 我($this)
     private function unsubscribe_me($member_id)
     {
@@ -281,6 +282,13 @@ class mem_relation
                     $someone->add_build($mobile);
                 }
                 $someone->save();
+
+                if(algorithm::binary_search($this->subscriber,$someone_id) == false) {
+                    $pos = algorithm::lower_bonud($this->subscriber,$someone_id);
+                    algorithm::array_insert($this->subscriber,$pos,$someone_id);
+                    $this->dirty = true;
+                }
+
             } catch (Exception $ex) {
                 Log::record($ex->getMessage(),Log::ERR);
             }

+ 13 - 9
mobile/control/index.php

@@ -71,35 +71,39 @@ class indexControl extends specialControl
 
     public function memberOp()
     {
-        $member_id = $_GET['member_id'];
-        if(empty($member_id)) {
+        $relay_id = $_GET['member_id'];
+        if(empty($relay_id)) {
             return self::outerr(errcode::ErrParamter);
         }
 
         if(session_helper::need_wechat_author()) {
             $author = new thrid_author\wxauthor();
-            $url = BASE_SITE_URL . "/mobile/index.php?act=index&op=member&member_id={$member_id}";
+            $url = BASE_SITE_URL . "/mobile/index.php?act=index&op=member&member_id={$relay_id}";
             $author->enter($url);
             return;
         }
 
-        $member_id = urldecode($member_id);
-        $member_id = intval(util::decrypt_data($member_id));
+        $relay_id = urldecode($relay_id);
+        $relay_id = intval(util::decrypt_data($relay_id));
 
         if(session_helper::logined())
         {
-            $minfo = new member_info($member_id);
-            return self::outsuccess(array('info' => $minfo),"member/index",'wap');
+            $member_id = $_SESSION['member_id'];
+            $relateion = new \relation\mem_relation($member_id);
+            $isfriend =  $relateion->is_follower($relay_id);
+
+            $minfo = new member_info($relay_id);
+            return self::outsuccess(array('info' => $minfo,'is_friend' => $isfriend),"member/index",'wap');
         }
         else
         {
-            $type_sn = account_helper::invite_bonus($member_id);
+            $type_sn = account_helper::invite_bonus($relay_id);
             if($type_sn == false) {
                 return self::outerr(errcode::ErrBonus,"生成邀请红包失败.");
             }
             else
             {
-                $ref_url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}&relay_id={$member_id}";
+                $ref_url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}&relay_id={$relay_id}";
                 fcgi_header("location:{$ref_url}");
                 return;
             }

+ 1 - 1
mobile/control/member_index.php

@@ -12,7 +12,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
-require_once (BASE_ROOT_PATH . '/mobile/member_relation.php');
+require_once (BASE_ROOT_PATH . '/mobile/control/member_relation.php');
 
 
 class member_indexControl extends member_relationControl

+ 5 - 0
mobile/control/member_relation.php

@@ -13,6 +13,11 @@ class member_relationControl extends mbMemberControl
 {
     //subscriber TEXT COMMENT '订阅我为好友的人。',
     //follower TEXT COMMENT '我订阅别人成为好友通过的人。'
+    public function __construct()
+    {
+        parent::__construct();
+        relation_helper::onLogin($_SESSION['member_id']);
+    }
 
     //我关注的人
     public function subscriberOp()

+ 20 - 7
mobile/templates/default/member/index.php

@@ -111,6 +111,9 @@
             margin-top:50px;
             text-align: center;
         }
+        .success p{
+            margin: auto 0;
+        }
     </style>
 </head>
 <body>
@@ -133,10 +136,20 @@
         </div>
     </div>
     <div class="submit">
-        <button type="button" id="btn_add_friend" class="add_friend_btn">添加到我的好友</button>
+        <?php
+            $is_friend = $output['is_friend'];
+            if($is_friend) {
+                echo '<p class="cell_label">你已经是他的粉丝了</p>';
+            } else {
+                echo '<button type="button" id="btn_add_friend" class="add_friend_btn">关注</button>';
+            }
+        ?>
+    </div>
+    <div class="success" style="display: none">
+        <p>恭喜您,您关注他成功了</p>
     </div>
 </div>
-
+<script src="<?php echo RESOURCE_SITE_URL; ?>/mobile/bonus/js/zepto.min.js?<?php echo bonus_version(); ?>"></script>
 <script>
     var url = '<?php
                     $minfo = $output['info'];
@@ -147,12 +160,12 @@
 
     window.onload = function ()
     {
-        $("btn_add_friend").click(function()
+        $("#btn_add_friend").click(function()
         {
-            $.getJSON(url,function(result){
-                $.each(result, function(i, field){
-                    $("div").append(field + " ");
-                });
+            $.getJSON(url,function(result)
+            {
+                $(".submit").hide();
+                $(".success").show();
             });
         });
     }

+ 4 - 3
test/relation_helperTest.php

@@ -135,10 +135,11 @@ class relation_helperTest extends PHPUnit_Framework_TestCase
 
     public function testLowerbound()
     {
-        $x = array(1,3,5,9,10);
+        //$x = array(1,3,5,9,10);
+        $x = array(39625);
         $find = algorithm::binary_search($x,0);
-        $find = algorithm::binary_search($x,1);
-        $pos = algorithm::lower_bonud($x,0);
+        $find = algorithm::binary_search($x,39625);
+        $pos = algorithm::lower_bonud($x,39625);
         $pos = algorithm::lower_bonud($x,2);
         $pos = algorithm::lower_bonud($x,3);
         $pos = algorithm::lower_bonud($x,14);