stanley-king 6 年 前
コミット
5d96346faf

+ 6 - 13
data/model/member.model.php

@@ -28,6 +28,11 @@ class memberModel extends Model
     {
         return $this->table('member')->field($field)->where($condition)->master($master)->find();
     }
+    public function getBindedMemberByMobile($mobile, $field = '*', $master = false)
+    {
+        $cond = ['member_mobile' => $mobile,'member_mobile_bind' => 1];
+        return $this->table('member')->field($field)->where($cond)->master($master)->find();
+    }
 
     /**
      * 取得会员详细信息(优先查询缓存)
@@ -288,19 +293,7 @@ class memberModel extends Model
             $mobile = $info['member_mobile'];
             $unionid = $info['member_wxunionid'];
 
-//            if(!empty($mobile))
-//            {
-//                $member = $this->getMemberInfo(['member_mobile' => $mobile,'member_mobile_bind' => 1]);
-//                if(!empty($member)) return false;
-//            }
-//
-//            if(!empty($unionid))
-//            {
-//                $member = $this->getMemberInfo(['member_wxunionid' => $unionid,'member_wechat_bind' => 1]);
-//                if(!empty($member)) return false;
-//            }
-
-            if(empty($mobile) || empty($unionid)) return false;
+            if(empty($mobile) && empty($unionid)) return false;
         }
 
         try

+ 1 - 1
helper/bonus/manager.php

@@ -351,7 +351,7 @@ class manager
             foreach ($items as &$bonus)
             {
                 $user_mobile = $mobiles[$index];
-                $infos = $mod_member->getMemberInfo(['member_mobile' => $user_mobile,'member_mobile_bind' => 1]);
+                $infos = $mod_member->getBindedMemberByMobile($user_mobile);
                 if(!empty($infos)) {
                     $minfo = new member_info($infos);
                     $bonus['user_id'] = $minfo->member_id();

+ 1 - 0
helper/bonus_helper.php

@@ -343,6 +343,7 @@ class bonus_helper
             }
             elseif(!empty($mobile)) {
                 $cond['member_mobile'] = $mobile;
+                $cond['member_mobile_bind'] = 1;
             }
             else {
                 return true;

+ 1 - 1
helper/employee_award.php

@@ -69,7 +69,7 @@ class employee_award
             $mobile = $item['mobile'];
             if($member_id <= 0)
             {
-                $info = $mod_member->getMemberInfo(['member_mobile' => $mobile]);
+                $info = $mod_member->getBindedMemberByMobile($mobile);
                 if(!empty($info)) {
                     $item['member_id'] = $info['member_id'];
                 }

+ 9 - 1
helper/login/ilogin.php

@@ -67,8 +67,16 @@ abstract class ILogin
 
         $mod_member = Model('member');
         $insert_id = $mod_member->addMember($info);
-        if($insert_id != false) {
+        if($insert_id != false)
+        {
             $this->mMemberId = $insert_id;
+
+            if($info['member_mobile_bind'] === 1) {
+                $this->unbind_mobile($mobile);
+            }
+            if($info['member_wechat_bind'] === 1) {
+                $this->unbind_wechat($user_info['unionid']);
+            }
         }
 
         return $insert_id;

+ 5 - 4
mobile/control/login.php

@@ -374,6 +374,7 @@ class loginControl extends mobileHomeControl
             return self::outerr($ret['code'], $ret['msg']);
         }
 
+        //绑定逻辑,以微信Unionid优先级为高。
         //cur-> mobile
         $mobile_loginner = new login\mobile_log($mobile);
         if($mobile_loginner->ismember())
@@ -518,7 +519,7 @@ class loginControl extends mobileHomeControl
 
         if($ret['code'] == 200)
         {
-            $items = Model('member')->getMemberInfo(array('member_mobile' => $mobile));
+            $items = Model('member')->getBindedMemberByMobile($mobile);
             if(empty($items)) {
                 $isMember = false;
             } else {
@@ -657,7 +658,7 @@ class loginControl extends mobileHomeControl
         }
 
         $model = Model('member');
-        $ret =$model->getMemberInfo(array('member_mobile' => $mobile));
+        $ret =$model->getBindedMemberByMobile($mobile);
         if (!empty($ret)) {
             return self::outerr(errcode::ErrUserExisted, "用户已经存在.");
         }
@@ -713,7 +714,7 @@ class loginControl extends mobileHomeControl
         $ret = $model->editMember(array('member_mobile' => $mobile),array('member_passwd' => md5($password)));
         if($ret == false || $model->affected_rows() <= 0)
         {
-            $ret = $model->getMemberInfo(array('member_mobile' => $mobile));
+            $ret = $model->getBindedMemberByMobile($mobile);
             if (empty($ret)) {
                 return self::outerr(errcode::ErrMemberNotExist, "该手机号未注册");
             }
@@ -753,7 +754,7 @@ class loginControl extends mobileHomeControl
 
         // 判断是否处理
         $model = Model('member');
-        $ret = $model->getMemberInfo(array('member_mobile' => $mobile));
+        $ret = $model->getBindedMemberByMobile($mobile);
         if (empty($ret))
         {
             $passwd = $_POST['passwd'];

+ 1 - 1
test/TestMeeting.php

@@ -47,7 +47,7 @@ class TestMeeting extends PHPUnit_Framework_TestCase
                     $name = $item['employee_name'];
                     $workno = $item['workno'];
 
-                    $info = $mod_member->getMemberInfo(['member_mobile' => $mobile]);
+                    $info = $mod_member->getBindedMemberByMobile($mobile);
                     $minfo = new member_info($info);
                     $member_id = $minfo->member_id();
                     $mod_employee->table('employee')->where(['mobile' => $mobile])->update(['member_id' => $member_id]);