842 lines
28 KiB
PHP
Executable File
842 lines
28 KiB
PHP
Executable File
<?php
|
||
namespace wstmart\app\controller;
|
||
use wstmart\app\model\Users as M;
|
||
use wstmart\app\model\Favorites;
|
||
use wstmart\app\model\Messages;
|
||
use wstmart\common\model\LogSms;
|
||
use wstmart\common\model\Users as MUsers;
|
||
use wstmart\common\model\UserTrees;
|
||
use think\Collection;
|
||
/**
|
||
* ============================================================================
|
||
* 用户控制器
|
||
*/
|
||
class Users extends Base{
|
||
|
||
// 前置方法执行列表
|
||
protected $beforeActionList = [
|
||
'checkAuth' => ['except'=>'checklogin,login,check_login_name,get_puser_info,register,getverify,toregister,forgetpass,forgetpasst,forgetpasss,forgetpassf,findpass,getfindphone,resetpass,getphoneverifycode,checkuserphone']// 访问这些except下的方法不需要执行前置操作
|
||
];
|
||
/**
|
||
* 我的亲人投资列表
|
||
* @return [type] [description]
|
||
*/
|
||
public function familyInvestmentList(){
|
||
//if(0 == $this->user['authType'])exit(jsonReturn('请先实名认证'));
|
||
$m = Model('common/Table');
|
||
|
||
$userId = $this->getUserId();
|
||
$list = db('auth_company_partner p')
|
||
->join('__AUTH_FAMILY_PERSONAL__ f','f.familyId=p.partnerId')
|
||
->join('__AUTH_COMPANY__ c','c.userId=p.userId')
|
||
->where(['f.userId'=>$userId,'p.dataFlag'=>1,'c.status'=>1])
|
||
->field('c.userId,c.companyName,c.headImg,c.companyAddress,c.createTime,p.positionName,p.stake')
|
||
->select();
|
||
//->paginate(input('pageSize/d',10))->toArray();
|
||
$m->setTable('auth_company_partner');
|
||
foreach ($list as &$v) {
|
||
$v['headImg'] = WSTImg($v['headImg'],3);
|
||
$v['count'] = $m->getCount(['userId'=>$v['userId'],'dataFlag'=>1],'id');
|
||
}
|
||
exit(jsonReturn('',1,$list));
|
||
}
|
||
//合作认证详细信息
|
||
public function investmentInfo(){
|
||
$userId = input('userId');
|
||
$m = Model('common/Table');
|
||
$m->setTable('auth_company_partner');
|
||
$list = $m->getList(['userId'=>$userId,'dataFlag'=>1],'uName,positionName,businessImg,stake,createTime');
|
||
exit(jsonReturn('',1,$list));
|
||
}
|
||
/**
|
||
* 获取合作券值
|
||
* @return [type] [description]
|
||
*/
|
||
public function getInvestmentMoney(){
|
||
$userId = input('userId');
|
||
$field = 'productNum,couponsNum';
|
||
$m = Model('common/Table');
|
||
$m->setTable('users');
|
||
$info = $m->getInfo(['userId'=>$userId],$field);
|
||
exit(jsonReturn('',1,$info));
|
||
|
||
}
|
||
/**
|
||
* 分配券值
|
||
* @return [type] [description]
|
||
*/
|
||
public function distributionInvestmentMoney(){
|
||
$m = new MUsers();
|
||
$rs = $m->distributionInvestmentMoney();
|
||
exit(json_encode($rs));
|
||
}
|
||
|
||
/**
|
||
* 检测会员名
|
||
*/
|
||
public function check_login_name(){
|
||
$loginName = input('post.loginName');
|
||
if(strlen($loginName) < 6 ){
|
||
exit(jsonReturn('用户名不能小于6个字符!'));
|
||
}
|
||
exit(json_encode(WSTCheckLoginKey($loginName)));
|
||
}
|
||
/**
|
||
* 获取券值
|
||
* @return [type] [description]
|
||
*/
|
||
public function getMoney(){
|
||
$type = (int)input('post.type');
|
||
$typeName = ['0'=>'productNum,couponsNum,wangNum','1'=>'productNum','2'=>'couponsNum','3'=>'wangNum'];
|
||
if(array_key_exists($type, $typeName)){
|
||
$m = Model('common/Table');
|
||
$m->setTable('users');
|
||
$info = $m->getInfo(['userId'=>$this->getUserId()],$typeName[$type]);
|
||
exit(jsonReturn('',1,$info));
|
||
}
|
||
|
||
}
|
||
/**
|
||
* 获取推荐人信息
|
||
*/
|
||
public function get_puser_info(){
|
||
$pName = trim(input('post.pName'));
|
||
$pInfo = getUserInfo(['loginName|userPhone'=>$pName],'loginName,userPhone');
|
||
if($pInfo){
|
||
exit(jsonReturn('',1,$pInfo));
|
||
}
|
||
exit(jsonReturn('未找到推荐信息'.$pName));
|
||
}
|
||
/**
|
||
* 我家朋友
|
||
*/
|
||
public function myFriend(){
|
||
$m = new MUsers();
|
||
$userId = $this->getUserId();
|
||
$rs = $m->myFriend($userId);
|
||
$rs['user'] = ['userId'=>$userId,'loginName'=>$this->user['loginName']];
|
||
$rs['share_url'] = 'http://t.ect99.com/mobile/reg/reg.html?pName='.$this->user['loginName'];
|
||
exit(jsonReturn('',1,$rs));
|
||
}
|
||
/**
|
||
* 我家朋友列表
|
||
*/
|
||
public function myFriendList(){
|
||
$m = new MUsers();
|
||
$userId = $this->getUserId();
|
||
$rs = $m->myFriendList($userId);
|
||
exit(jsonReturn('',1,$rs));
|
||
}
|
||
|
||
/**
|
||
* 会员登录
|
||
*/
|
||
public function checkLogin(){
|
||
$m = new M();
|
||
$rs = $m->checkLogin(3);
|
||
$rs['url'] = session('WST_MO_WlADDRESS');
|
||
exit(json_encode($rs));
|
||
}
|
||
public function get_name_and_money(){
|
||
$data['name'] = session('WST_USER.loginName');
|
||
$data['money'] = session('WST_USER.userMoney');
|
||
$data['userECT'] = session('WST_USER.userECT');
|
||
exit(jsonReturn('',1,$data));
|
||
}
|
||
/**
|
||
* 会员注册
|
||
*/
|
||
public function register(){
|
||
$m = new M();
|
||
$rs = $m->regist(3);
|
||
$rs['url'] = session('WST_MO_WlADDRESS');
|
||
exit(json_encode($rs));
|
||
}
|
||
/**
|
||
* 手机号码是否存在
|
||
*/
|
||
public function checkUserPhone(){
|
||
$userPhone = input("post.userPhone");
|
||
$m = new M();
|
||
$rs = $m->checkUserPhone($userPhone,$this->getUserId());
|
||
if($rs["status"]!=1){
|
||
exit(jsonReturn("手机号已注册",-1));
|
||
}else{
|
||
exit(jsonReturn("",1));
|
||
}
|
||
}
|
||
/**
|
||
* 获取验证码
|
||
*/
|
||
public function getPhoneVerifyCode(){
|
||
$userPhone = input("post.userPhone");
|
||
$rs = array();
|
||
if(!WSTIsPhone($userPhone)){
|
||
exit(jsonReturn("手机号格式不正确!"));
|
||
}
|
||
$m = new M();
|
||
$rs = $m->checkUserPhone($userPhone,0,'loginName');
|
||
//是否是推荐人注册 0不是,1是
|
||
if(0 == WSTConf('CONF.referrerOpen')){
|
||
if($rs["status"]!=1){
|
||
exit(jsonReturn("手机号已存在!"));
|
||
}else{
|
||
$phoneVerify = rand(1000,9999);
|
||
$tpl = WSTMsgTemplates('PHONE_USER_REGISTER_VERFIY');
|
||
}
|
||
}else{
|
||
if($rs["status"]==1){
|
||
exit(jsonReturn("手机号不存在!"));
|
||
}else{
|
||
$phoneVerify = rand(1000,9999);
|
||
$tpl = WSTMsgTemplates('PHONE_PUSER_REGISTER_VERFIY');
|
||
}
|
||
}
|
||
$rv['status'] = -1;
|
||
$rv['msg'] = '发送失败';
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$params = ['tpl'=>$tpl,'params'=>['name'=>$rs['data']['loginName'],'code'=>$phoneVerify]];
|
||
$m = new LogSms();
|
||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyCode',$phoneVerify);
|
||
}
|
||
if($rv['status']==1){
|
||
session('VerifyCode_userPhone',$phoneVerify);
|
||
session('VerifyCode_userPhone_Time',time());
|
||
}
|
||
exit(json_encode($rv));
|
||
}
|
||
/**
|
||
* 会员中心
|
||
*/
|
||
public function index(){
|
||
$userId = $this->getUserId();
|
||
$m = new M();
|
||
$user = $m->getById($userId);
|
||
if($user['userName']=='')
|
||
$user['userName']=$user['loginName'];
|
||
$this->assign('user', $user);
|
||
|
||
//商城未读消息的数量 及 各订单状态数量
|
||
$data = model('index')->getSysMsg('msg','order');
|
||
$this->assign('data',$data);
|
||
return $this->fetch('users/index');
|
||
}
|
||
/**
|
||
* 会员中心
|
||
*/
|
||
public function getIndex(){
|
||
$userId = $this->getUserId();
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_summary');
|
||
$data = $m->getInfo(['userId'=>$userId],'expectedProductNum,expectedCouponsNum');
|
||
$m->setTable('shops');
|
||
$shopIds = $m->getColumn(['status'=>1,'userId'=>$userId],'shopId');
|
||
if($shopIds){
|
||
$m->setTable('orders');
|
||
$data['expectedWangNum'] = $m->getField(['shopId'=>['in',$shopIds],'orderStatus'=>['BETWEEN','0,1']],'SUM((productNum - productHandlingFee - productTaxFee) + (couponsNum - couponsHandlingFee - couponsTaxFee) + wangNum)');//预获旺旺券
|
||
}else{
|
||
$data['expectedWangNum'] = 0;//预获旺旺券
|
||
}
|
||
$data['expectedProductNum'] = isset($data['expectedProductNum']) ? $data['expectedProductNum'] : 0;
|
||
$data['expectedCouponsNum'] = isset($data['expectedCouponsNum']) ? $data['expectedCouponsNum'] : 0;
|
||
$data['user'] = getUserInfo(['userId'=>$userId],'userId,loginName,userType,userName,trueName,userPhone,userPhoto,userStatus,token,userLevel,authType,couponsNum,productNum,wangNum');
|
||
if(1 == $this->user['authType']){
|
||
$m->setTable('auth_personal');
|
||
$data['user']['userPhoto'] = $m->getField(['userId'=>$userId,'status'=>1],'headImg');
|
||
}elseif(2 == $this->user['authType']){
|
||
$m->setTable('auth_company`');
|
||
$data['user']['userPhoto'] = $m->getField(['userId'=>$userId,'status'=>1],'headImg');
|
||
}
|
||
//$data['favoritesNum'] = $this->getFavoritesNum(0);
|
||
//商城未读消息的数量 及 各订单状态数量
|
||
//$data['sysMsg'] = $this->getSysMsg(0);
|
||
|
||
exit(jsonReturn("",1,$data));
|
||
}
|
||
/**
|
||
* 设置点赞记数
|
||
*/
|
||
public function setRewardLike(){
|
||
$rewardId = (int)input("param.rewardId/d",0);
|
||
$isLike = (int)input("param.isLike/d",0);
|
||
if($rewardId){
|
||
$s = model('shops');
|
||
$s->setRewardLike($rewardId,$this->getUserId(),$isLike);
|
||
exit(jsonReturn('',1));
|
||
}
|
||
exit(jsonReturn('设置失败'));
|
||
}
|
||
/**
|
||
* 商城未读消息的数量 及 各订单状态数量
|
||
* @param integer $returnJson [1代表返回json数据,其他代表返回数组]
|
||
*/
|
||
public function getSysMsg($returnJson = 1){
|
||
$data = model('index')->getSysMsg('msg','order');
|
||
if($returnJson == 1){
|
||
exit(jsonReturn("",1,$data));
|
||
}else{
|
||
return $data;
|
||
}
|
||
}
|
||
/**
|
||
* 商城未读消息的数量
|
||
* @param integer $returnJson [1代表返回json数据,其他代表返回数组]
|
||
*/
|
||
public function getMsgNum($returnJson = 1){
|
||
$data = model('index')->getSysMsg('msg');
|
||
if($returnJson == 1){
|
||
exit(jsonReturn("",1,$data));
|
||
}else{
|
||
return $data;
|
||
}
|
||
}
|
||
/**
|
||
* 商城各订单状态数量
|
||
* @param integer $returnJson [1代表返回json数据,其他代表返回数组]
|
||
*/
|
||
public function getOrderNum($returnJson = 1){
|
||
$data = model('index')->getSysMsg('','order');
|
||
if($returnJson == 1){
|
||
exit(jsonReturn("",1,$data));
|
||
}else{
|
||
return $data;
|
||
}
|
||
}
|
||
/**
|
||
* 获取会员信息
|
||
* @param integer $returnJson [1代表返回json数据,其他代表返回数组]
|
||
*/
|
||
public function getUserInfo($returnJson = 1){
|
||
$userId = session('WST_USER.userId');
|
||
$m = new M();
|
||
$user = $m->getUserInfo($userId,'*');
|
||
// $where = [];
|
||
// $where['cr.userId'] = $this->getUserId();
|
||
// $where['cr.isUse'] = 0;
|
||
// $now=time();
|
||
// // $where['ck.begin_time']=array('lt',$now);
|
||
// $where['ck.end_time']=array('gt',$now);
|
||
|
||
// $user['couponNum'] = db('coupon_record')->alias('cr')
|
||
// ->join('__COUPON_KIND__ ck','cr.couponId=ck.Id','inner')
|
||
// ->where($where)
|
||
// ->count();
|
||
|
||
if($returnJson == 1){
|
||
exit(jsonReturn("",1,$user));
|
||
}else{
|
||
return $user;
|
||
}
|
||
}
|
||
/**
|
||
* 获取会员关注商品数和关注商家数
|
||
* @param integer $returnJson [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function getFavoritesNum($returnJson = 1){
|
||
$m = new Favorites();
|
||
$data = $m->getFavoritesNum($this->getUserId());
|
||
$data['shareNum'] = (int)model('UserTrees')->getShareNum(['pid'=>$this->getUserId()]);
|
||
if($returnJson == 1){
|
||
exit(jsonReturn("",1,$data));
|
||
}else{
|
||
return $data;
|
||
}
|
||
}
|
||
/**
|
||
* 个人信息
|
||
*/
|
||
public function edit(){
|
||
$userId = $this->getUserId();
|
||
$m = new M();
|
||
$user = $m->getById($userId);
|
||
exit(jsonReturn('',1,$user));
|
||
//$this->assign('user', $user);
|
||
//return $this->fetch('users/edit');
|
||
}
|
||
/**
|
||
* 编辑个人信息
|
||
*/
|
||
public function editUserInfo(){
|
||
$m = new M();
|
||
return $m->edit();
|
||
}
|
||
/**
|
||
* 账户安全
|
||
*/
|
||
public function security(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$payPwd = $user['payPwd'];
|
||
$userPhone = $user['userPhone'];
|
||
$loginPwd = $user['loginPwd'];
|
||
$user['loginPwd'] = empty($loginPwd)?0:1;
|
||
$user['payPwd'] = empty($payPwd)?0:1;
|
||
$user['userPhone'] = empty($userPhone)?0:1;
|
||
//$this->assign('user', $user);
|
||
session('Edit_userPhone_Time', null);
|
||
exit(jsonReturn('',1,$user));
|
||
//return $this->fetch('users/security/index');
|
||
}
|
||
/**
|
||
* 修改登录密码
|
||
*/
|
||
public function editLoginPass(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$loginPwd = $user['loginPwd'];
|
||
$user['loginPwd'] = empty($loginPwd)?0:1;
|
||
exit(jsonReturn('',1,$user));
|
||
// $this->assign('user', $user);
|
||
// return $this->fetch('users/security/user_login_pass');
|
||
}
|
||
public function editloginPwd(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
return $m->editPass($userId);
|
||
}
|
||
/**
|
||
* 修改支付密码
|
||
*/
|
||
public function editPayPass(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$payPwd = $user['payPwd'];
|
||
$user['payPwd'] = empty($payPwd)?0:1;
|
||
exit(jsonReturn('',1,$user));
|
||
//$this->assign('user', $user);
|
||
//return $this->fetch('users/security/user_pay_pass');
|
||
}
|
||
public function editpayPwd(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
exit(json_encode($m->editPayPass($userId)));
|
||
}
|
||
/**
|
||
* 忘记支付密码
|
||
*/
|
||
public function backPayPass(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$userPhone = $user['userPhone'];
|
||
$user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3);
|
||
$user['phoneType'] = empty($userPhone)?0:1;
|
||
$backType = (int)session('Type_backPaypwd');
|
||
$timeVerify = session('Verify_backPaypwd_Time');
|
||
$user['backType'] = ($backType==1 && time()<floatval($timeVerify)+10*60)?1:0;
|
||
exit(jsonReturn('',1,$user));
|
||
//$this->assign('user', $user);
|
||
//return $this->fetch('users/security/user_back_paypwd');
|
||
}
|
||
/**
|
||
* 忘记支付密码:发送短信
|
||
*/
|
||
public function backpayCode(){
|
||
$m = new MUsers();
|
||
$data = $m->getById($this->getUserId());
|
||
$userPhone = $data['userPhone'];
|
||
$phoneVerify = rand(1000,9999);
|
||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||
$tpl = WSTMsgTemplates('PHONE_FOTGET_PAY');
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$params = ['tpl'=>$tpl,'params'=>['code'=>$phoneVerify]];
|
||
$m = new LogSms();
|
||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
|
||
}
|
||
if($rv['status']==1){
|
||
$USER = [];
|
||
$USER['userPhone'] = $userPhone;
|
||
$USER['phoneVerify'] = $phoneVerify;
|
||
session('Verify_backPaypwd_info',$USER);
|
||
session('Verify_backPaypwd_Time',time());
|
||
exit(jsonReturn('短信发送成功!',1));
|
||
}
|
||
exit(json_encode($rv));
|
||
}
|
||
/**
|
||
* 忘记支付密码:验证短信
|
||
*/
|
||
public function verifybackPay(){
|
||
$phoneVerify = input("post.phoneCode");
|
||
$timeVerify = session('Verify_backPaypwd_Time');
|
||
if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||
exit(jsonReturn("校验码已失效,请重新发送!"));
|
||
}
|
||
if($phoneVerify==session('Verify_backPaypwd_info.phoneVerify')){
|
||
session('Type_backPaypwd',1);
|
||
exit(jsonReturn("验证成功",1));
|
||
}
|
||
exit(jsonReturn("校验码不一致,请重新输入!"));
|
||
}
|
||
/**
|
||
* 忘记支付密码:重置密码
|
||
*/
|
||
public function resetbackPay(){
|
||
$m = new M();
|
||
exit(json_encode($m->resetbackPay()));
|
||
}
|
||
/**
|
||
* 修改手机
|
||
*/
|
||
public function editPhone(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$userPhone = $user['userPhone'];
|
||
$user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3);
|
||
$user['phoneType'] = empty($userPhone)?0:1;
|
||
//$this->assign('user', $user);
|
||
session('Edit_userPhone_Time', null);
|
||
exit(jsonReturn('',1,$user));
|
||
//return $this->fetch('users/security/user_phone');
|
||
}
|
||
/**
|
||
* 绑定手机:发送短信验证码
|
||
*/
|
||
public function sendCodeTie(){
|
||
$userPhone = input("post.userPhone");
|
||
if(!WSTIsPhone($userPhone)){
|
||
return jsonReturn("手机号格式不正确!");
|
||
exit();
|
||
}
|
||
$rs = array();
|
||
$m = new MUsers();
|
||
$rs = WSTCheckLoginKey($userPhone,$this->getUserId());
|
||
if($rs["status"]!=1){
|
||
return jsonReturn("手机号已存在!");
|
||
exit();
|
||
}
|
||
$data = $m->getById($this->getUserId());
|
||
$phoneVerify = rand(1000,9999);
|
||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||
$tpl = WSTMsgTemplates('PHONE_BIND');
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||
$m = new LogSms();
|
||
$rv = $m->sendSMS(0,$userPhone,$params,'sendCodeTie',$phoneVerify);
|
||
}
|
||
if($rv['status']==1){
|
||
$USER = '';
|
||
$USER['userPhone'] = $userPhone;
|
||
$USER['phoneVerify'] = $phoneVerify;
|
||
session('Verify_info',$USER);
|
||
session('Verify_userPhone_Time',time());
|
||
return jsonReturn('短信发送成功!',1);
|
||
}
|
||
exit(json_encode($rv));
|
||
}
|
||
/**
|
||
* 绑定手机
|
||
*/
|
||
public function phoneEdit(){
|
||
$phoneVerify = input("post.phoneCode");
|
||
$process = input("post.process");
|
||
$timeVerify = session('Verify_userPhone_Time');
|
||
if(!session('Verify_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||
return jsonReturn("校验码已失效,请重新发送!");
|
||
exit();
|
||
}
|
||
if($phoneVerify==session('Verify_info.phoneVerify')){
|
||
$m = new M();
|
||
$rs = $m->editPhone($this->getUserId(),session('Verify_info.userPhone'));
|
||
exit(json_encode($rs));
|
||
}
|
||
return jsonReturn("校验码不一致,请重新输入!");
|
||
}
|
||
/**
|
||
* 修改手机:发送短信验证码
|
||
*/
|
||
public function sendCodeEdit(){
|
||
$m = new MUsers();
|
||
$data = $m->getById($this->getUserId());
|
||
$userPhone = $data['userPhone'];
|
||
$phoneVerify = rand(1000,9999);
|
||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||
$tpl = WSTMsgTemplates('PHONE_EDIT');
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||
$m = new LogSms();
|
||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
|
||
}
|
||
if($rv['status']==1){
|
||
$USER = '';
|
||
$USER['userPhone'] = $userPhone;
|
||
$USER['phoneVerify'] = $phoneVerify;
|
||
session('Verify_info2',$USER);
|
||
session('Verify_userPhone_Time2',time());
|
||
exit(jsonReturn('短信发送成功!',1));
|
||
}
|
||
exit(json_encode($rv));
|
||
}
|
||
/**
|
||
* 修改手机
|
||
*/
|
||
public function phoneEdito(){
|
||
$phoneVerify = input("post.phoneCode");
|
||
$timeVerify = session('Verify_userPhone_Time2');
|
||
if(!session('Verify_info2.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||
return jsonReturn("校验码已失效,请重新发送!");
|
||
exit();
|
||
}
|
||
if($phoneVerify==session('Verify_info2.phoneVerify')){
|
||
session('Edit_userPhone_Time',time());
|
||
exit(jsonReturn("验证成功",1));
|
||
}
|
||
exit(jsonReturn("校验码不一致,请重新输入!",-1));
|
||
}
|
||
public function editPhoneo(){
|
||
$m = new M();
|
||
$userId = $this->getUserId();
|
||
$user = $m->getById($userId);
|
||
$userPhone = $user['userPhone'];
|
||
$user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3);
|
||
$timeVerify = session('Edit_userPhone_Time');
|
||
if(time()>floatval($timeVerify)+15*60){
|
||
$user['phoneType'] = 1;
|
||
}else{
|
||
$user['phoneType'] = 0;
|
||
}
|
||
$this->assign('user', $user);
|
||
return $this->fetch('users/security/user_phone');
|
||
}
|
||
/**
|
||
* 用户退出
|
||
*/
|
||
public function logout(){
|
||
model('users')->appLogOut($this->getUserId());
|
||
return jsonReturn("",1);
|
||
}
|
||
|
||
/************************************************* 忘记密码 ********************************************************/
|
||
// 页面过期/失效
|
||
protected function expire($msg=''){
|
||
$message = $msg?$msg:'页面已失效!';
|
||
return jsonReturn($message,-1);
|
||
//$html = '<h1>'.$message.'</h1><script>setTimeout(function(){location.href="'.url('app/users/index','','',true).'";},1000)</script>';
|
||
//return $this->display($html);
|
||
}
|
||
/**
|
||
* 忘记密码
|
||
*/
|
||
public function forgetPass(){
|
||
return $this->fetch('forget_pass');
|
||
}
|
||
public function forgetPasst(){
|
||
if(time()<floatval(session('findPass.findTime'))+30*60){
|
||
$userId = session('findPass.userId');
|
||
$m = new M();
|
||
$info = $m->getUserInfo($userId,'loginName,userPhone');
|
||
if($info['userPhone']!='')$info['userPhone'] = WSTStrReplace($info['userPhone'],'*',3);
|
||
//if($info['userEmail']!='')$info['userEmail'] = WSTStrReplace($info['userEmail'],'*',2,'@');
|
||
exit(jsonReturn('',1,$info));
|
||
}else{
|
||
exit($this->expire());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 重置密码
|
||
*/
|
||
public function resetPass(){
|
||
if(!session('findPass')){
|
||
exit($this->expire());
|
||
}
|
||
return $this->fetch('forget_pass3');
|
||
}
|
||
public function forgetPasss(){
|
||
if(!session('findPass')){
|
||
exit($this->expire());
|
||
}
|
||
$USER = session('findPass');
|
||
if(empty($USER) && $USER['userId']!=''){
|
||
$this->expire('请在同一浏览器操作!');
|
||
}
|
||
$uId = session('findPass.userId');
|
||
$key = session("findPass.key");
|
||
// 验证邮箱中的验证码
|
||
$secretCode = input('secretCode');
|
||
if($key==$secretCode){
|
||
session('REST_userId',$uId);
|
||
session('REST_success','1');
|
||
return jsonReturn('验证成功',1);
|
||
}else{
|
||
return jsonReturn('校验码错误',-1);
|
||
}
|
||
|
||
}
|
||
/**
|
||
* 找回密码
|
||
*/
|
||
public function findPass(){
|
||
//禁止缓存
|
||
header('Cache-Control:no-cache,must-revalidate');
|
||
header('Pragma:no-cache');
|
||
//$code = input("post.verifyCode");
|
||
$step = input("post.step/d");
|
||
switch ($step) {
|
||
case 1:#第一步,验证身份
|
||
// if(!WSTVerifyCheck($code)){
|
||
// return jsonReturn('验证码错误!',-1);
|
||
// }
|
||
$loginName = input("post.loginName");
|
||
$rs = WSTCheckLoginKey($loginName);
|
||
if($rs["status"]==1){
|
||
return jsonReturn("用户名不存在!");
|
||
exit();
|
||
}
|
||
$m = new M();
|
||
$info = $m->checkAndGetLoginInfo($loginName);
|
||
if ($info != false) {
|
||
session('findPass',array('userId'=>$info['userId'],'loginName'=>$loginName,'userPhone'=>$info['userPhone'],'userEmail'=>$info['userEmail'],'loginSecret'=>$info['loginSecret'],'findTime'=>time()));
|
||
return jsonReturn("操作成功",1);
|
||
}else return jsonReturn("用户名不存在!");
|
||
break;
|
||
case 2:#第二步,验证方式
|
||
if (session('findPass.loginName') != null ){
|
||
if(input("post.modes")==1){
|
||
if ( session('findPass.userPhone') == null) {
|
||
return jsonReturn('Error-10002:你没有预留手机号码,请联系客服找回密码!',-1);
|
||
}
|
||
$phoneVerify = input("post.Checkcode");
|
||
if(!$phoneVerify){
|
||
return jsonReturn('校验码不能为空!',-1);
|
||
}
|
||
return $this->checkfindPhone($phoneVerify);
|
||
}else{
|
||
if (session('findPass.userEmail')==null) {
|
||
return jsonReturn('你没有预留邮箱,请通过联系客服找回密码!',-1);
|
||
}
|
||
if(!WSTVerifyCheck($code)){
|
||
return jsonReturn('验证码错误!',-1);
|
||
}
|
||
return $this->getfindEmail();
|
||
}
|
||
}else exit($this->expire());
|
||
break;
|
||
case 3:#第三步,设置新密码
|
||
$resetPass = session('REST_success');
|
||
if($resetPass != 1)exit($this->expire());
|
||
$loginPwd = input("post.loginPwd");
|
||
$repassword = input("post.repassword");
|
||
$decrypt_data = WSTRSA($loginPwd);
|
||
$decrypt_data2 = WSTRSA($repassword);
|
||
if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
|
||
$loginPwd = $decrypt_data['data'];
|
||
$repassword = $decrypt_data2['data'];
|
||
}else{
|
||
return jsonReturn('设置失败');
|
||
}
|
||
if ($loginPwd == $repassword) {
|
||
$m = new M();
|
||
$rs = $m->resetPass();
|
||
if($rs['status']==1){
|
||
exit(json_encode($rs));
|
||
}else{
|
||
exit(json_encode($rs));
|
||
}
|
||
}else return jsonReturn('两次密码不同!',-1);
|
||
break;
|
||
default:
|
||
exit($this->expire());
|
||
break;
|
||
}
|
||
}
|
||
/**
|
||
* 手机验证码获取
|
||
*/
|
||
public function getfindPhone(){
|
||
session('WST_USER',session('findPass.userId'));
|
||
if(session('findPass.userPhone')==''){
|
||
return jsonReturn('Error-10001:你没有预留手机号码,请联系客服找回密码!',-1);
|
||
}
|
||
$phoneVerify = rand(1000,9999);
|
||
session('WST_USER',null);
|
||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||
$tpl = WSTMsgTemplates('PHONE_FOTGET');
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$params = ['tpl'=>$tpl,'params'=>['code'=>$phoneVerify]];
|
||
$m = new LogSms();
|
||
$rv = $m->sendSMS(0,session('findPass.userPhone'),$params,'getPhoneVerify',$phoneVerify);
|
||
}
|
||
if($rv['status']==1){
|
||
// 记录发送短信的时间,用于验证是否过期
|
||
session('REST_Time',time());
|
||
$USER = '';
|
||
$USER['phoneVerify'] = $phoneVerify;
|
||
$USER['time'] = time();
|
||
session('findPhone',$USER);
|
||
exit(jsonReturn('短信发送成功!',1));
|
||
}
|
||
exit(json_encode($rv));
|
||
}
|
||
/**
|
||
* 手机验证码检测
|
||
* -1 错误,1正确
|
||
*/
|
||
public function checkfindPhone($phoneVerify){
|
||
if(!session('findPhone.phoneVerify') || time()>floatval(session('findPhone.time'))+10*60){
|
||
return jsonReturn("校验码已失效,请重新发送!");
|
||
exit();
|
||
}
|
||
if (session('findPhone.phoneVerify') == $phoneVerify ) {
|
||
$fuserId = session('findPass.userId');
|
||
if(!empty($fuserId)){
|
||
session('REST_userId',$fuserId);
|
||
session('REST_success','1');
|
||
$rs['status'] = 1;
|
||
$rs['url'] = url('app/users/resetPass');
|
||
exit(json_encode($rs));
|
||
}
|
||
return jsonReturn('无效用户',-1);
|
||
}
|
||
return jsonReturn('校验码错误!',-1);
|
||
}
|
||
/**
|
||
* 发送验证邮件/找回密码
|
||
*/
|
||
public function getfindEmail(){
|
||
$code = rand(0,999999);
|
||
$sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
|
||
$tpl = WSTMsgTemplates('EMAIL_FOTGET');
|
||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||
$find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
|
||
$replace = [session('findPass.loginName'),date('Y-m-d H:i:s'),$code,30];
|
||
$sendRs = WSTSendMail(session('findPass.userEmail'),'密码重置',str_replace($find,$replace,$tpl['content']));
|
||
}
|
||
if($sendRs['status']==1){
|
||
$uId = session('findPass.userId');
|
||
session("findPass.key", $code);
|
||
// 发起重置密码的时间;
|
||
session('REST_Time',time());
|
||
return jsonReturn("发送成功",1);
|
||
}else{
|
||
return jsonReturn($sendRs['msg'],-1);
|
||
}
|
||
}
|
||
/** 获取分享信息 mark cheng 20180320*/
|
||
public function get_share(){
|
||
$name = session('WST_USER.loginName');
|
||
$data['url'] = 'http://www.juzi199.com/mobile/users/reg?pName='.$name;
|
||
$data['bg_share'] = 'upload/sysconfigs/share_3.png';
|
||
$data['title'] = '新会员注册,即送388元红包,10个ECT,马上注册吧!';
|
||
$data['desc'] = '新会员注册,即送388元红包,10个ECT,马上注册吧!';
|
||
exit(jsonReturn('',1,$data));
|
||
}
|
||
/*获取用户分享列表*/
|
||
public function getShareList(){
|
||
$m = new M();
|
||
return $m->getShareList();
|
||
}
|
||
/**
|
||
* 获取用户分享信息 *
|
||
*/
|
||
public function getShareInfo(){
|
||
$m = new MUsers();
|
||
return $m->getShareInfo();
|
||
}
|
||
}
|