ilogin.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 wxunion_login = 3;
  19. const fields = '*';
  20. // const fields = 'member_id,member_mobile,member_wxunionid,member_wxopenid,member_name,member_truename,member_signname,' .
  21. // 'member_nickname,member_avatar,member_sex,member_birthday,member_passwd,member_paypwd,member_email,member_mobile_bind,member_state';
  22. protected $mMemberId;
  23. protected $mMemberInfo;
  24. public function __construct() {
  25. $this->mMemberId = 0;
  26. }
  27. public function memberid() {
  28. return $this->mMemberId;
  29. }
  30. abstract public function ismember();
  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. $mod_member->createSession($this->mMemberInfo);
  39. session::instance()->set_cookie($_SESSION['MPHPSESSID']);
  40. }
  41. else {
  42. $mod_member->createSession($this->mMemberInfo);
  43. Model('cart')->mergecart($this->mMemberInfo, $_SESSION['store_id']);
  44. Model('goods_browse')->mergebrowse($this->mMemberId, $_SESSION['store_id']);
  45. session::instance()->set_cookie($_SESSION['MPHPSESSID']);
  46. }
  47. account_helper::onLogin($this->mMemberId);
  48. return true;
  49. }
  50. public function bind($user_info,$fUseOpenid = true)
  51. {
  52. if($this->mMemberId <= 0) return false;
  53. $mod_member = Model('member');
  54. $update['member_nickname'] = $user_info['nickname'];
  55. $update['member_wxunionid'] = $user_info['unionid'];
  56. if($fUseOpenid) {
  57. $update['member_wxopenid'] = $user_info['openid'];
  58. }
  59. $update['member_avatar'] = $user_info['headimgurl'];
  60. $update['member_sex'] = intval($user_info['sex']);
  61. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), $update);
  62. return $ret;
  63. }
  64. public function unbind()
  65. {
  66. if($this->mMemberId <= 0) return false;
  67. $mod_member = Model('member');
  68. $tmp_info = $this->mMemberInfo;
  69. $tmp_info['member_nickname'] = '';
  70. $tmp_info['member_avatar'] = '';
  71. $tmp_info['member_sex'] = '';
  72. $member = new member_info($tmp_info);
  73. $update['member_nickname'] = $member->nickname();
  74. $update['member_wxunionid'] = '';
  75. $update['member_wxopenid'] = '';
  76. $update['member_avatar'] = $member->avatar();
  77. $update['member_sex'] = $member->sex();
  78. $this->mMemberInfo['member_nickname'] = $member->nickname();
  79. $this->mMemberInfo['member_wxunionid'] = '';
  80. $this->mMemberInfo['member_wxopenid'] = '';
  81. $this->mMemberInfo['member_avatar'] = $member->avatar();
  82. $this->mMemberInfo['member_sex'] = $member->sex();
  83. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), $update);
  84. return $ret;
  85. }
  86. public function unbind_mobile($mobile,$member_id)
  87. {
  88. if($this->mMemberId <= 0) return false;
  89. $mod_member = Model('member');
  90. $ret = $mod_member->delete(['member_id' => $member_id]);
  91. if($ret)
  92. {
  93. $ret = $mod_member->editMember(array('member_id' => $this->mMemberId), ['member_mobile' => $mobile]);
  94. if($ret && $mod_member->affected_rows > 0) {
  95. $this->login();
  96. }
  97. }
  98. return $ret;
  99. }
  100. }