文件
mashangyoujiu/Application/Vip/Controller/SetController.class.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);
}
}