ilogin.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/4/27
  6. * Time: 下午5:25
  7. */
  8. namespace login;
  9. use account_helper;
  10. use session;
  11. use session_helper;
  12. use member_info;
  13. require_once (BASE_ROOT_PATH . '/helper/model/member_info.php');
  14. abstract class ILogin
  15. {
  16. const mobile_login = 1;
  17. const wxopen_login = 2;
  18. const fields = 'member_id,member_mobile,member_wxunionid,member_wxopenid,member_name,member_truename,member_signname,' .
  19. 'member_nickname,member_avatar,member_sex,member_birthday,member_passwd,member_paypwd,member_email,member_mobile_bind,member_state';
  20. protected $mMemberId;
  21. protected $mMemberInfo;
  22. public function __construct()
  23. {
  24. $this->mMemberId = 0;
  25. }
  26. public function memberid() {
  27. return $this->mMemberId;
  28. }
  29. abstract public function ismember();
  30. abstract public function register($passwd,$user_info,$relay_id = null);
  31. public function login()
  32. {
  33. if($this->mMemberId <= 0) return false;
  34. $mod_member = Model('member');
  35. $this->mMemberInfo = $mod_member->getMemberInfo(['member_id' => $this->mMemberId],ILogin::fields,true);
  36. if(empty($this->mMemberInfo)) return false;
  37. if(session_helper::logined())
  38. {
  39. $mod_member->createSession($this->mMemberInfo);
  40. session::instance()->set_cookie($_SESSION['MPHPSESSID']);
  41. }
  42. else
  43. {
  44. $mod_member->createSession($this->mMemberInfo);
  45. Model('cart')->mergecart($this->mMemberInfo, $_SESSION['store_id']);
  46. Model('goods_browse')->mergebrowse($this->mMemberId, $_SESSION['store_id']);
  47. account_helper::onLogin($this->mMemberId);
  48. session::instance()->set_cookie($_SESSION['MPHPSESSID']);
  49. }
  50. return true;
  51. }
  52. public function bind($user_info,$fUseOpenid = true)
  53. {
  54. if($this->mMemberId <= 0) return false;
  55. $mod_member = Model('member');
  56. $update['member_nickname'] = $user_info['nickname'];
  57. $update['member_wxunionid'] = $user_info['unionid'];
  58. if($fUseOpenid) {
  59. $update['member_wxopenid'] = $user_info['openid'];
  60. }
  61. $update['member_avatar'] = $user_info['headimgurl'];
  62. $update['member_sex'] = intval($user_info['sex']);
  63. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), $update);
  64. return $ret;
  65. }
  66. public function unbind()
  67. {
  68. if($this->mMemberId <= 0) return false;
  69. $mod_member = Model('member');
  70. $tmp_info = $this->mMemberInfo;
  71. $tmp_info['member_nickname'] = '';
  72. $tmp_info['member_avatar'] = '';
  73. $tmp_info['member_sex'] = '';
  74. $member = new member_info($tmp_info);
  75. $update['member_nickname'] = $member->nickname();
  76. $update['member_wxunionid'] = '';
  77. $update['member_wxopenid'] = '';
  78. $update['member_avatar'] = $member->avatar();
  79. $update['member_sex'] = $member->sex();
  80. $this->mMemberInfo['member_nickname'] = $member->nickname();
  81. $this->mMemberInfo['member_wxunionid'] = '';
  82. $this->mMemberInfo['member_wxopenid'] = '';
  83. $this->mMemberInfo['member_avatar'] = $member->avatar();
  84. $this->mMemberInfo['member_sex'] = $member->sex();
  85. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), $update);
  86. return $ret;
  87. }
  88. public function unbind_mobile($mobile,$member_id)
  89. {
  90. if($this->mMemberId <= 0) return false;
  91. $mod_member = Model('member');
  92. $ret = $mod_member->delete(['member_id' => $member_id]);
  93. if($ret)
  94. {
  95. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), ['member_mobile' => $mobile]);
  96. if($ret && $mod_member->affected_rows > 0) {
  97. $this->login();
  98. }
  99. }
  100. return $ret;
  101. }
  102. }