Browse Source

增加上传手机通讯录的逻辑

zhouzhijian 8 năm trước cách đây
mục cha
commit
6776d9c85d
2 tập tin đã thay đổi với 71 bổ sung0 xóa
  1. 39 0
      data/logic/queue.logic.php
  2. 32 0
      mobile/control/member_info.php

+ 39 - 0
data/logic/queue.logic.php

@@ -476,4 +476,43 @@ class queueLogic
         return true;
     }
 
+    /**
+     * 根据上传的通讯录生成好友关系
+     */
+    public function generateFriendRelationship($param)
+    {
+        if (empty($param["member_id"])) {
+            return false;
+        }
+
+        try {
+            $ret = Model()->table("mobile_contacts")->field('member_id,origin_contacts')->where(array("member_id"=>$param["member_id"],"task_status"=>0))->find();
+            if (!empty($ret)) {
+                $member_id = $ret["member_id"];
+                $origin_contacts = unserialize($ret["origin_contacts"]);
+
+                $mobilelist = array();
+                $namelist = array();
+                foreach($origin_contacts as $obj) {
+                    $mobilelist[] = $obj["mobile"];
+                    $namelist[$obj["mobile"]] = $obj["name"];
+                }
+
+                $member_nameids = array();
+                $member_ids = Model("member")->field("member_id,member_mobile")->where(array('member_mobile'=>array('in', $mobilelist)))->select();
+                if(!empty($member_ids)) {
+                    foreach($member_ids as $key => $val) {
+                        $member_nameids[] = array("member_id"=>$val["member_id"],"name"=>$namelist[$val["member_mobile"]]);
+                    }
+
+                    $data = array("task_status"=>1,"friend_contacts"=>serialize($member_nameids));
+                    Model()->table("mobile_contacts")->where(array("member_id"=>$member_id))->update($data);
+                }
+            }
+        } catch (Exception $e) {
+            Log::record("generateFriendRelationship: fall error\treturn:" . $e->getMessage());
+        }
+
+        return true;
+    }
 }

+ 32 - 0
mobile/control/member_info.php

@@ -86,6 +86,38 @@ class member_infoControl extends mbMemberControl
         }
     }
 
+    public function upcontactsOp(){
+        $member_id = $_SESSION['member_id'];
+        if (!isset($member_id)) {
+            return self::outerr(errcode::ErrUnLogin);
+        }
+
+        $contacts = $_POST["contact_list"];
+        if ((isset($contacts) && !empty($contacts)) == false) {
+            return self::outerr(errcode::ErrParamter);
+        }
+
+        $contacts = json_decode(base64_decode(urldecode($contacts)),true);
+        if (empty($contacts)) {
+            return self::outerr(errcode::ErrParamter);
+        }
+
+        foreach ($contacts as $obj) {
+            if (count($obj) != 2 || !array_key_exists("mobile",$obj) || !array_key_exists("name",$obj))
+            {
+                return self::outerr(errcode::ErrParamter);
+            }
+        }
+
+        $ret = Model()->table('mobile_contacts')->insert(array('member_id'=>$member_id,'origin_contacts'=>serialize($contacts),'task_status'=>0), true);
+        if ($ret == false) {
+            return self::outerr(errcode::ErrDB);
+        }
+
+        QueueClient::push('generateFriendRelationship',array('member_id'=>$member_id));
+        return self::outsuccess(NULL);
+    }
+
     public function updateinfoOp()
     {
         $this->editOp();