display(); } public function changepersonal() { $vid = session('vid'); $vip = D('Vip')->getFind(array('id' => $vid)); $this->assign('vip', $vip); $userInfo = session('userinfo'); $this->assign('style_model', $userInfo['style_model']); $this->display(); } public function forgetpwd() { $phone = session('userinfo')['mobile_phone']; $mobile_phone = substr($phone, 0, 4) . "****" . substr($phone, -3); $this->assign('phone', $mobile_phone); $userInfo = session('userinfo'); if ($userInfo['style_model'] == 2) { $this->display('forgetpwd2'); } else if ($userInfo['style_model'] == 3) { $this->display('forgetpwd3'); } else { $this->display(); } } public function resetpwd() { $userInfo = session('userinfo'); if ($userInfo['style_model'] == 2) { $this->display('resetpwd2'); } else if ($userInfo['style_model'] == 3) { $this->display('resetpwd3'); } else { $this->display(); } } public function clearcode() { session('identifying_codes', null);//清除验证码 } //修改个人信息 public function changeperson() { $vid = session('vid'); $nickname = I('post.nickname'); $name = I('post.name'); $sex = I('post.sex'); $phone = I('post.phone'); $birthday = I('post.birthday'); $vip = D('Vip')->getFind(array('id' => $vid)); if (empty($vip)) { $result['status'] = 0; $result['msg'] = '会员信息有误'; } else { $VipModel = D('Vip'); $where['mobile_phone'] = $phone; $where['merchantid'] = $vip['merchantid']; if ($phone != $vip['mobile_phone']) { $code = I('post.code'); $ver = $this->verifyMobileCode($phone, $code); if ($ver['status'] != 1) { $this->ajaxReturn($ver); } $res = $VipModel->getFindField($where, 'id'); if ($res && $res != $vid) { $result['status'] = 0; $result['msg'] = '该手机号已经被绑定'; } } $itemVip['nickname'] = $nickname; $itemVip['name'] = $name; $itemVip['sex'] = $sex; $itemVip['mobile_phone'] = $phone; $itemVip['birthday'] = $birthday; $map['id'] = $vid; if ($vip['is_perfect'] == 0) { $itemVip['is_perfect'] = 1; //第一次完善资料 $vipConfig = M('vip_config')->where(array('merchantid' => $vip['merchantid']))->find(); $perfect = true; if ($vipConfig['plus_infoscore'] > 0) { if ($vip['plus_type'] == 2) {//plus会员 $perfect = false; $integral = $vipConfig['plus_infoscore']; } } if ($perfect) { $integral = $vipConfig['infoscore']; } if (!empty($vipConfig) && intval($integral) > 0) { $res1 = $VipModel->toSetInc($map, 'integral', $integral); $res2 = $VipModel->toSetInc($map, 'grade_integral', $integral); $data2['vid'] = $vid; $data2['type'] = 6; $data2['integral'] = $integral; $data2['time'] = time(); $data2['remark'] = '通过完善资料获得' . $integral . '积分'; $data2['storeid'] = $vip['storeid']; $data2['addtime'] = time(); $resu = D('IntegralOrder')->addOrder($data2); A('WxScore')->scoreset($integral, $data2['remark']); } } $re = $VipModel->updateVip($map, $itemVip); if ($re) { $result['status'] = 1; $result['msg'] = '修改信息成功'; } else { $result['status'] = 0; $result['msg'] = '修改失败,请重试'; } } $this->ajaxReturn($result); } //修改支付密码 public function changepwd() { if (!$_POST) { $userInfo = session('userinfo'); if ($userInfo['style_model'] == 2) { $this->display('changepwd2'); } else if ($userInfo['style_model'] == 3) { $this->display('changepwd3'); } else { $this->display(); } } else { $vid = session('vid'); $oldpwd = I('post.oldpwd'); $newpwd = I('post.pwd'); $where['id'] = $vid; $vip = D('Vip')->getFind($where); if (empty($vip)) { $result['success'] = 0; $result['msg'] = '会员信息有误'; $this->ajaxReturn($result); } $pwd = $vip['password']; $time = $vip['addtime']; $CryptrModel = new \Addons\Api\Crypto (); $oldpwd = $CryptrModel->encrypt($oldpwd, date('YmdHis', intval($time))); if ($pwd == $oldpwd) { $newpwd = $CryptrModel->encrypt($newpwd, date('YmdHis', intval($time))); $res = D('Vip')->updateVip($where, array('password' => $newpwd)); if ($res) { $result['success'] = 1; $result['msg'] = '密码修改成功'; } else if ($res == 0) { $result['success'] = 0; $result['msg'] = '新旧密码一致'; } else { $result['success'] = 0; $result['msg'] = '修改失败,请重试'; } } else { $result['success'] = 0; $result['msg'] = '您的密码输入有误'; } $this->ajaxReturn($result); } } //短信验证码获取,并存入session; public function getCode() { $vid = session('vid'); $where['id'] = $vid; $vip = D('Vip')->getFind($where); if (empty($vip)) { $result['success'] = 0; $result['msg'] = '会员信息有误'; } else { //发短信 $alidayu = A('Api/Alidayu'); $result1 = $alidayu->Send($vip['mobile_phone'], $vip['merchantid']); if ($result1['Code'] == "OK") { $result['success'] = 1; $result['msg'] = "发送成功"; } else { $result['success'] = 0; $result['msg'] = '验证码次数达到上限'; } } $this->ajaxReturn($result); } //短信验证码获取,并存入session; public function getMobileCode() { $mobile_phone = I('post.mobile_phone'); if (!verifyMobilePhone($mobile_phone)) { $result['status'] = 0; $result['msg'] = '会员信息有误'; $this->ajaxReturn($result); } $vip = session('userinfo'); $map = array( 'merchant_id' => session('userinfo')['merchantid'], 'mobile_phone' => $mobile_phone, ); $old = D('RetailVip')->getFind($map); if (!empty($old)) { $result['status'] = 0; $result['msg'] = '该手机号已被注册'; $this->ajaxReturn($result); } //发短信 $res = A('Api/Alidayu')->Send($mobile_phone, $vip['merchantid']); if ($res['Code'] == "OK") { session('code_mobile', $mobile_phone, 300); $result['status'] = 1; $result['msg'] = "发送成功"; } else { $result['status'] = 0; $result['msg'] = '验证码次数达到上限'; } $this->ajaxReturn($result); } /** * 验证修改手机号的验证码是否正确 * @param $mobile_phone 提交时的手机号 * @return mixed */ protected function verifyMobileCode($mobile_phone, $code) { if ($code != $_SESSION['identifying_codes']) { $result['success'] = 0; $result ['msg'] = '短信验证码不正确'; $result ['identifying_codes'] = $_SESSION['identifying_codes']; } else { if ($mobile_phone != session('code_mobile')) { $result['status'] = 0; $result ['msg'] = '提交的手机号与获取验证码的不一致'; } else { session('identifying_codes', null); $result['status'] = 1; $result ['msg'] = '短信验证码正确'; } } return $result; } //验证验证码是否正确 public function verifyCode() { $code = I('post.code'); if ($code != $_SESSION['identifying_codes']) { $result['success'] = 0; $result ['msg'] = '短信验证码不正确'; } else { session('identifying_codes', null); $verify = md5(round(1000, 9999)); session('resetPassCode', $verify, 300); $result['verifyCode'] = $verify; $result['success'] = 1; $result ['msg'] = '短信验证码正确'; } $this->ajaxReturn($result); } //重置支付密码 public function resetpaswd() { $pwd = I('post.pwd'); $verify = I('post.verifyCode'); $vid = session('vid'); $where['id'] = $vid; $vip = D('Vip')->getFind($where); if (empty($vip)) { $result['success'] = 0; $result['msg'] = '会员信息有误'; } else { if ($verify != session('resetPassCode')) { $result['success'] = 0; $result['msg'] = '验证超时'; } else { $time = $vip['addtime']; $CryptrModel = new \Addons\Api\Crypto (); $pwd = $CryptrModel->encrypt($pwd, date('YmdHis', intval($time))); $res = D('Vip')->updateVip($where, array('password' => $pwd)); if ($res) { session('resetPassCode', null); $result['success'] = 1; $result['msg'] = '密码重置成功'; } else if ($res == 0) { $result['success'] = 0; $result['msg'] = '新旧密码一致'; } else { $result['success'] = 0; $result['msg'] = '修改失败,请重试'; } } } $this->ajaxReturn($result); } }