333 行
11 KiB
PHP
可执行文件
333 行
11 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Vip\Controller;
|
|
|
|
use Think\Controller;
|
|
|
|
//[1.4.8]
|
|
class SetController extends BaseController
|
|
{
|
|
Public function index()
|
|
{
|
|
$this->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);
|
|
}
|
|
|
|
} |