suser = new SuserApi; } public function asd() { var_dump(sendMail("894827077@qq.com", "测试啊", "成都市")); die; } /** * 登录 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function login() { if (IS_POST) { $post = I('post.'); $account = $post['phone']; $password = $post['password']; $promoteId = I('post.promote_id'); $promoteId = intval($promoteId); $member = new MemberApi(); /*是否开启Ucenter*/ if (C('UC_OPEN') == 1) { $username = $account; //Ucenter登录 list($uc_uid, $uc_username, $uc_password, $uc_email) = uc_user_login($username, $password); if ($uc_uid > 0) { //1.登录成功,验证在本地是否有此账号 $user_res = M('user', 'tab_')->where(['account' => $uc_username])->find(); if (!empty($user_res)) {//本地存在账号,验证密码直接登录 $res = $this->suser->login($account, $password); if ($res > 0) { $data = $this->bindingPromote($promoteId, $account); } else { switch ($res) { case -1000: $error = '账号不存在'; break; case -10021: $error = '密码错误!'; break; case -1001: $error = '账号被禁用,请联系客服!'; break; default: $error = '未知错误!'; break; } $data = array( 'status' => 0, 'msg' => $error, ); } echo json_encode($data); die(); } else {//本地不存在账号,新增账号并登录 $resdata = array(); $resdata['account'] = trim($username); $resdata['nickname'] = trim($username); $resdata['password'] = $password; $resdata['register_way'] = 3; $resdata['register_type'] = 1; $resdata['promote_id'] = 0; $resdata['promote_account'] = 'UC用户'; $resdata['parent_id'] = 0; $resdata['parent_name'] = ''; $resdata['phone'] = ''; $resdata['real_name'] = ''; $resdata['idcard'] = ''; $res = $this->suser->register_array($resdata); if ($res > 0) { $res = $this->suser->login($account, $password); if ($res > 0) { $data = array( 'status' => 1, 'msg' => '登录成功', ); } else { switch ($res) { case -1000: $error = '账号不存在'; break; case -10021: $error = '密码错误!'; break; case -1001: $error = '账号被禁用,请联系客服!'; break; default: $error = '未知错误!'; break; } $data = array( 'status' => 0, 'msg' => $error, ); } echo json_encode($data); die(); } else { $msg = $res == -3 ? "账号已存在" : "身份证被占用"; return $this->ajaxReturn(array('status' => 0, 'msg' => $msg)); } } } elseif ($uc_uid == -1) { //用户不存在,验证本地用户账号密码 $res = $this->suser->login($account, $password); if ($res > 0) { $data = $this->bindingPromote($promoteId, $account); //同步ucenter注册 cus_uc_register($username, $password, $username . '@vlcms.com'); } else { switch ($res) { case -1000: $error = '账号不存在'; break; case -10021: $error = '密码错误!'; break; case -1001: $error = '账号被禁用,请联系客服!'; break; default: $error = '未知错误!'; break; } $data = array( 'status' => 0, 'msg' => $error, ); } echo json_encode($data); die(); } elseif ($uc_uid == -2) { //密码错误 $this->ajaxReturn(array('status' => -1002, 'code' => -10021, 'msg' => '密码错误')); } else { //登录失败 } } $res = $this->suser->login($account, $password); file_put_contents(dirname(__FILE__) . '/login_res_text.txt', json_encode([$res])); if ($res > 0) { $data = $this->bindingPromote($promoteId, $account); } else { switch ($res) { case -1000: $error = '账号不存在'; break; case -10021: $error = '密码错误!'; break; case -1001: $error = '账号被禁用,请联系客服!'; break; default: $error = '未知错误!'; break; } $data = array( 'status' => 0, 'msg' => $error, ); } echo json_encode($data); die(); } else { $pid = I('get.pid', 0); $gid = I('get.gid', 0); if ($pid > 0 || $gid > 0) { cookie('pgInfo', json_encode(['pid' => $pid, 'gid' => $gid]), 3600 * 24); } if ($_REQUEST['url']) { $this->assign('url', base64_decode(base64_decode($_REQUEST['url']))); } else { $this->assign('url', U('User/index')); } $this->display(); } } public function bindingPromote($promoteId, $account) { if ($promoteId > 0) { $wherePromote['id'] = $promoteId; $promoteData = M('Promote', 'tab_')->field('id,account')->where($wherePromote)->find(); if (!empty($promoteData)) { $whereUser['account'] = $account; $whereUser['_logic'] = 'or'; $whereUser['mobile_phone'] = $account; $userData = M('User', 'tab_')->where($whereUser)->find(); if (!empty($userData)) { if (empty($userData['promote_id'])) { $saveData['promote_id'] = $promoteId; $saveData['promote_account'] = $promoteData['account']; $saveRes = M('User', 'tab_')->where(array('id' => $userData['id']))->save($saveData); if ($saveRes) { $data = array('status' => 2, 'msg' => '登录成功'); } else { $data = array('status' => 0, 'msg' => '绑定失败'); } } else { if ($userData['promote_id'] == $promoteId) { $data = array('status' => 2, 'msg' => '登录成功'); } else { $data = array('status' => 2, 'msg' => '登录成功'); } } } else { $data = array('status' => 0, 'msg' => '数据异常'); } } else { $data = array('status' => 0, 'msg' => '数据异常'); } } else { $data = array('status' => 1, 'msg' => '登录成功'); } return $data; } /** * 注册步骤一 填写用户名和密码 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function step() { if (IS_POST) { $post = I('post.'); $account = $post['nickname']; $password = $post['password']; $sex = $post['sex']; if (empty($account)) { echo json_encode(array('status' => 0, 'msg' => '请填写昵称')); exit; } if (empty($password)) { echo json_encode(array('status' => 0, 'msg' => '请输入密码')); exit; } $promoteId = I('post.promote_id'); $promoteId = intval($promoteId); if ($promoteId > 0) { $gameId = intval(I('post.game_id')); $safeinfo = array('nickname' => $account, 'password' => $password, 'sex' => $sex, 'status' => 1, 'promote_id' => $promoteId, 'game_id' => $gameId); } else { $safeinfo = array('nickname' => $account, 'password' => $password, 'sex' => $sex, 'status' => 1); } session('safeinfo', $safeinfo); $url = U('register'); echo json_encode(array('status' => 1, 'msg' => $url)); } else { $this->display(); } } /** * 注册 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function register() { $safeinfo = session('safeinfo'); if ($safeinfo['status'] == 1) { if (IS_POST) { $post = I('post.'); $phone = $post['phone']; $safecode = $post['code']; $nickname = $safeinfo['nickname']; $password = $safeinfo['password']; $sex = $safeinfo['sex']; $this->checksafecode($phone, $safecode, false); /**是否开启ucenter**/ if (C('UC_OPEN') == 1) { //Ucenter注册 //1.验证本平台是否存在账号 $is_user_info = M('user', 'tab_')->where(['account' => $phone])->find(); if (!empty($is_user_info)) { return $this->ajaxReturn(array('status' => 0, 'msg' => '用户名已存在')); } //2.验证其他平台是否存在账号 $domain = C('UC_OTHER_WEB_URL'); if (!empty($domain)) { $url = "http://{$domain}/Api/user/checkUserName?account={$phone}"; $check_res = json_decode(file_get_contents($url), true); if ($check_res['status'] == 0) { $this->ajaxReturn(array('status' => 0, 'msg' => '注册失败,用户名已存在')); exit; } } //3.ucenter注册账号 $ucresult = uc_user_checkname($phone); if ($ucresult == -1) { $this->ajaxReturn(array('status' => 0, 'msg' => '用户名不合法')); exit; } elseif ($ucresult == -2) { $this->ajaxReturn(array('status' => 0, 'msg' => '包含要允许注册的词语')); exit; } elseif ($ucresult == -3) { $this->ajaxReturn(array('status' => 0, 'msg' => '用户名已经存在')); exit; } else { //同步ucenter注册 cus_uc_register($phone, $password, $phone . '@vlcms.com'); } } $register_way = 4; $register_type = 2; switch ($sex) { case '0': $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/logoo.png'; break; default: $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/head_women@3x.png'; break; } if (!preg_match("/^1[34578]\d{9}$/", $phone)) { echo json_encode(['status' => 0, 'msg' => '手机号格式不正确']); die; } if (!preg_match("/^[a-zA-Z0-9]{6,15}+$/", $password)) { echo json_encode(['status' => 0, 'msg' => '密码格式不正确']); die; } $pgInfo = strval(cookie('pgInfo')); Log::write('register:' . date('Y-m-d H:i:s') . ' ---- ' . json_encode($_POST) . ' --- ' . $pgInfo, 'INFO'); if (isset($_POST['promote_id']) && !empty($_POST['promote_id'])) { $pid = $this->suser->register($phone, $password, $phone, $register_way, $register_type, $_POST['promote_id'], $_POST['promote_account'], $sex, $nickname, $head_img); } else { $pid = $this->suser->register($phone, $password, $phone, $register_way, $register_type, '', '', $sex, $nickname, $head_img); } if ($pid > 0) { if (empty($safeinfo['promote_id'])) { $data = array( 'status' => 1, 'msg' => '注册成功', 'url' => U('Index/index'), ); } else { $data = array( 'status' => 1, 'msg' => '注册成功', 'url' => U('User/login', array('pid' => $safeinfo['promote_id'], 'gid' => $safeinfo['game_id'])), ); } session('safeinfo', null); } else { $data = array( 'status' => $pid, 'msg' => '注册失败', ); } echo json_encode($data); } else { $pid = I('get.pid', 0); $gid = I('get.gid', 0); if ($pid > 0 || $gid > 0) { cookie('pgInfo', json_encode(['pid' => $pid, 'gid' => $gid]), 3600 * 24); } if ($_REQUEST['url']) { $url = base64_decode($_REQUEST['url']); } else { $url = $_SERVER['HTTP_REFERER']; } $this->assign('url', $url); $this->display(); } } else { $this->redirect(U('step')); } } /** * 账号注册 * @return [type] [description] * @author 郭家屯 */ public function step1() { if (IS_POST) { $post = I('post.'); $account = $post['account']; $nickname = $post['nickname']; $password = $post['password']; $sex = $post['sex']; $pgInfo = strval(cookie('pgInfo')); Log::write('step1:' . date('Y-m-d H:i:s') . ' ---- ' . json_encode($post) . ' --- ' . $pgInfo, 'INFO'); /**是否开启ucenter**/ if (C('UC_OPEN') == 1) { //Ucenter注册 //1.验证本平台是否存在账号 $is_user_info = M('user', 'tab_')->where(['account' => $_POST['account']])->find(); if (!empty($is_user_info)) { return $this->ajaxReturn(array('status' => 0, 'msg' => '用户名已存在')); } //2.验证其他平台是否存在账号 $domain = C('UC_OTHER_WEB_URL'); if (!empty($domain)) { $url = "http://{$domain}/Api/user/checkUserName?account={$_POST['account']}"; $check_res = json_decode(file_get_contents($url), true); if ($check_res['status'] == 0) { $this->ajaxReturn(array('status' => 0, 'msg' => '注册失败,用户名已存在')); exit; } } //3.ucenter注册账号 $ucresult = uc_user_checkname($_POST['account']); if ($ucresult == -1) { $this->ajaxReturn(array('status' => 0, 'msg' => '用户名不合法')); exit; } elseif ($ucresult == -2) { $this->ajaxReturn(array('status' => 0, 'msg' => '包含要允许注册的词语')); exit; } elseif ($ucresult == -3) { $this->ajaxReturn(array('status' => 0, 'msg' => '用户名已经存在')); exit; } else { //同步ucenter注册 cus_uc_register($_POST['account'], $_POST['password'], $_POST['account'] . '@vlcms.com'); } } $register_way = 4; $register_type = 1; switch ($sex) { case '0': $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/logoo.png'; break; default: $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/head_women@3x.png'; break; } $map['account'] = $account; $map['phone'] = $account; $map['_logic'] = "or"; $is_setting = M("user", "tab_")->where($map)->field("id")->find(); if ($is_setting) { echo json_encode(array('status' => 0, 'msg' => '账号已存在')); exit; } if (!preg_match("/^[a-z\d]{6,15}$/i", $account)) { echo json_encode(['status' => 0, 'msg' => '账号格式不正确']); die; } if (!preg_match("/^[a-zA-Z0-9]{6,15}+$/", $password)) { echo json_encode(['status' => 0, 'msg' => '密码格式不正确']); die; } $pid = $this->suser->register($account, $password, '', $register_way, $register_type, '', '', $sex, $nickname, $head_img); if ($pid > 0) { $promoteId = I('post.promote_id'); $promoteId = intval($promoteId); if ($promoteId > 0) { $gameId = intval(I('post.game_id')); $data = array( 'status' => 1, 'msg' => '注册成功', 'url' => U('User/login', array('pid' => $promoteId, 'gid' => $gameId)), ); } else { $data = array( 'status' => 1, 'msg' => '注册成功', 'url' => U('Index/index'), ); } } else { $data = array( 'status' => $pid, 'msg' => '注册失败', ); } echo json_encode($data); exit; } $this->display(); } /** * 发动手机验证码 */ public function telsafecode($phone = '', $delay = 10, $flag = true) { $result = R('Common/Sms/send_sms_code', array($phone, $delay, false)); if ($result['code'] == 200) { $data['status'] = 1; $data['data'] = $result['data']; } else { $data['status'] = 0; } $data['msg'] = $result['msg']; echo json_encode($data); exit; } /** * 发送安全码 */ public function sendsafecode($phone, $delay = 10) { if (IS_POST) { $res = $this->suser->checkAccount($phone); if (!$res) { echo json_encode(array('status' => 0, 'msg' => '手机号码被占用')); exit; } $this->telsafecode($phone); exit; } else { echo json_encode(array('status' => 0, 'msg' => '请按正确的流程')); exit; } } /** * 手机安全码验证 * @param bool $flag true 用于直接异步请求 false 用于方法调用 * @param [type] $vcode [description] */ public function checksafecode($phone, $vcode, $flag = true) { $result = R('Common/Sms/verify_sms_code', array($phone, $vcode, false)); if ($result['code'] == 200) { $data['status'] = 1; if ($flag) { echo json_encode($data); exit; } } else { $data['status'] = 0; $data['msg'] = $result['msg']; echo json_encode($data); exit; } } /** * 忘记密码 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function forget() { if (IS_POST) { $phone = $_POST['phone']; $this->checksafecode($phone, $_REQUEST['code'], false); $this->success('验证成功', U('User/forget1', array('phone' => $phone))); } else { $this->display(); } } public function forget1() { if (IS_POST) { $new_pwd = $_REQUEST['new_pwd']; $u_uid['phone'] = $_REQUEST['phone']; $result = M('user', 'tab_')->where($u_uid)->setField('password', think_ucenter_md5($new_pwd, UC_AUTH_KEY)); if ($result != false) { $this->success("修改成功", U('User/login')); } elseif ($result === 0) { $this->error("新密码和旧密码一致,请重新输入"); } else { $this->error("修改失败"); } } else { $this->display(); } } /** * 忘记密码发送短信 * @param $account * author: xmy 280564871@qq.com */ public function forget_send_msg($account) { $data = D("User")->getUserInfo($account); if (C('UC_SET') == 1) { $uc = new Ucservice(); $data_uc = $uc->get_uc($account); if (empty($data) && !empty($data_uc)) { $this->error("UC用户不支持"); } } if (empty($account)) { echo json_encode(array('status' => 0, 'msg' => '账号不存在')); exit; } elseif (empty($data['phone'])) { echo json_encode(array('status' => 0, 'msg' => '该用户未绑定手机号')); exit; } $result = $this->telsafecode($account); } /** * 判断是否登录 * @return [type] [description] */ public function islogin() { $user = $this->suser->login_info(); if ($user) { if ($user['nickname']) { $account = $user['nickname']; } else { $account = $user['account']; } return $user['user_id']; } else { return 0; } } /** * 个人中心首页 * @return [type] [description] * @author wyr <840186209@qq.com> */ /* public function index() { if(!$this->islogin()){$this->redirect('Mobile/User/login');} $session = session('user_auth'); $user = D('User')->where(array('id'=>$session['user_id']))->find(); $headimg = $user['head_img']; $user['head_img'] = is_numeric($headimg)?get_cover($headimg,'path'):$headimg; $this->assign('user',$user); $this->show_sing_in($session['user_id']); $this->display(); } */ /** * 个人中心 * @author 鹿文学 */ public function index() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $user = D('User')->getInfo(); $this->assign('user', $user); $this->show_sing_in($user['id']); $this->display(); } public function show_sing_in($user_id) { $type = D('PointRecord')->getPointType("sign_in"); if (!$type) { return false; } $base_point = $type['point']; $increase_point = $type['time_of_day']; $record = D('PointRecord')->getSignInInfo($user_id, $type['id']); //计算间隔时间 $today = strtotime(date("Y-m-d")); $time = strtotime(date("Y-m-d", $record['create_time'])); $day = ($today - $time) / 86400; if ($day == 1) {//昨日积分 + 递增积分 $add_point = $record['point'] + $increase_point; //超过7天 重新计算 if ($record['day'] >= 7) { $add_point = $base_point; $sign_day = 1; } else { $sign_day = $record['day']; } $data['point'] = $add_point; } elseif ($day == 0) { $add_point = $record['point'] + $increase_point; $data['point'] = $add_point; $sign_day = 1; } else {//基础积分 $data['point'] = $base_point; $sign_day = 0; } $this->assign('point', $data['point']); $this->assign('sign_day', $sign_day); $this->assign('day', $day); } public function sign_in() { $user_id = $this->islogin(); $model = D('PointRecord'); $result = $model->addPointBySignIn($user_id); if ($result !== false) { $data['day'] = $result; $this->success("签到成功", $data); } else { $this->error($model->getError()); } } /** * 个人中心->编辑资料 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function userset() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); $user = D('User')->where(array('id' => $logininfo['user_id']))->find(); if (is_numeric($user['head_img'])) { $user['head_img'] = get_cover($user['head_img'], "path"); } $this->assign('user', $user); $this->display(); } /** * 个人中心->编辑资料->修改昵称 * @return [type] [description] * @author 小纯洁 */ public function usernick() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); if (IS_POST) { $map['id'] = $logininfo['user_id']; $model = D('User')->where($map)->save(array('nickname' => $_REQUEST['nickname'])); $this->suser->set_login_info('nickname', $_REQUEST['nickname']); if ($model !== false) { $this->success("修改成功", U('User/userset')); } else { $this->error("修改失败"); } } else { $this->assign('user', $logininfo); $this->display(); } } /** * 个人中心->编辑资料->绑定/解除手机 * @return [type] [description] * @author 郭家屯 */ public function userphone() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); $map['id'] = $logininfo['user_id']; $user = M("user", "tab_")->where($map)->field("id,phone")->find(); if (IS_POST) { $code = I("post.scode"); $phone = I("post.phone"); $this->checksafecode($phone, $code, false); if (!$user['phone']) { $where['account'] = $phone; $where['phone'] = $phone; $condition['_complex'] = $where; $condition['id'] = array("neq", $user['id']); $is_user = M("user", "tab_")->where($condition)->field("id")->find(); if ($is_user) { echo json_encode(array('status' => 0, 'msg' => '手机号已存在,请更换手机号')); exit(); } $model = M('User', 'tab_')->where($map)->save(array('phone' => $phone)); } else { $model = M('User', 'tab_')->where($map)->save(array('phone' => '')); } $this->suser->set_login_info('phone', $_REQUEST['phone']); if ($model !== false) { echo json_encode(array('status' => 1, 'msg' => '修改成功', 'url' => U('User/userset'))); exit(); } else { echo json_encode(array('status' => 0, 'msg' => '修改失败')); exit(); } } else { $this->assign('user', $user); $this->display(); } } /** *发送验证码请求 * @author 郭家屯 */ public function sendvcode() { if (!IS_POST) { echo json_encode(array('status' => 0, 'msg' => '请按正确的流程')); exit; } $logininfo = $this->suser->login_info(); if ($logininfo['nickname'] == "Uc用户") { echo json_encode(array('status' => 0, 'msg' => 'Uc用户暂不支持')); exit(); } if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $phone = I('phone'); $map['id'] = $logininfo['user_id']; $user = M("user", "tab_")->where($map)->field("id,phone")->find(); if (!$user['phone']) { $where['account'] = $phone; $where['phone'] = $phone; $where['_logic'] = 'OR'; $is_user = M("user", "tab_")->where($where)->field("id")->find(); if ($is_user) { echo json_encode(array('status' => 0, 'msg' => '手机号已存在,请更换手机号')); exit(); } } $this->telsafecode($phone); } /** * 个人中心->编辑资料->修改性别 * @return [type] [description] * @author 小纯洁 */ public function usersex() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); if (IS_POST) { $map['id'] = $logininfo['user_id']; $sex = $_REQUEST['sex']; $user = D('User')->where($map)->find(); $img_url = strstr($user['head_img'], "http://"); if ($img_url) { switch ($sex) { case '0': $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/logoo.png'; break; default: $head_img = "http://" . $_SERVER['HTTP_HOST'] . '/Public/Mobile/images/head_women@3x.png'; break; } } else { $head_img = $user['head_img']; } $model = D('User')->where($map)->save(array('sex' => $sex, 'head_img' => $head_img)); if ($model !== false) { $this->success("修改成功", U('User/userset')); } else { $this->error("修改失败"); } } else { $user = D('user')->field("sex")->find($logininfo['user_id']); $this->assign('user', $logininfo); $this->assign('sex', $user['sex']); $this->display(); } } /** * 个人中心->编辑资料->实名认证 * @return [type] [description] * @author 小纯洁 */ public function userauth() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); if (IS_POST) { $resdata['age_status'] = 0; $map['id'] = $logininfo['user_id']; if (isset($_POST['idcard'])) { $checkidcard = new \Think\Checkidcard(); $invidcard = $checkidcard->checkIdentity($_POST['idcard']); if (!$invidcard) { $this->ajaxReturn(array('status' => -1, 'info' => '身份证号码填写不正确', 'url' => U('User/userauth'))); } $cardd = M('User', 'tab_')->where(array('idcard' => $_POST['idcard']))->find(); if ($cardd) { $this->ajaxReturn(array('status' => -1, 'info' => '身份证号码已被使用', 'url' => U('User/userauth'))); } } if (C('tool_age.status') == 0) { $this->ajaxReturn(array('status' => 0, 'info' => '实名认证暂未开启!', 'url' => U('User/userauth'))); } else { $re = age_verify($_REQUEST['real_name'], $_REQUEST['idcard']); if ($re == 0) { $this->ajaxReturn(array('status' => 0, 'info' => '审核失败!', 'url' => U('User/userauth'))); } if ($re == -1) { $this->ajaxReturn(array('status' => 0, 'info' => '短信数量已使用完!', 'url' => U('User/userauth'))); } if ($re == -2) { $this->ajaxReturn(array('status' => 0, 'info' => '连接错误,请检查配置!', 'url' => U('User/userauth'))); } if ($re == 1) { $resdata['age_status'] = 2;//成年 } if ($re == 2) { $resdata['age_status'] = 3;//未成年 } } if ($re > 0) { $model = D('User')->where($map)->save(array('real_name' => $_REQUEST['real_name'], 'idcard' => $_REQUEST['idcard'], 'age_status' => $resdata)); } if ($model !== false) { $this->success("修改成功", U('User/userset')); } else { $this->error("修改失败"); } } else { $user = D('User')->where(array('id' => $logininfo['user_id']))->find(); $this->assign('user', $user); $this->display(); } } /** * 个人中心->编辑资料->修改密码 * @return [type] [description] * @author 小纯洁 */ public function userpassword() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); if (IS_POST) { $old_pwd = $_REQUEST['old_pwd']; $new_pwd = $_REQUEST['new_pwd']; /*判断Ucenter是否打开*/ if (C('UC_OPEN') == 1) { $username = $logininfo['account']; //修改uc密码 $ucresult = uc_user_edit($username, $_POST['old_pwd'], $_POST['new_pwd']); if ($ucresult == -1) { $this->error("原始密码不正确"); } /** * 同步修改其他站点用户密码 */ $domain = C('UC_OTHER_WEB_URL'); if (!empty($domain)) { $url = "http://{$domain}/Api/user/editPassword?account={$username}&oldpsw={$_POST['old_pwd']}&newpsw={$_POST['new_pwd']}"; $aa = json_decode(file_get_contents($url), true); } } $result = D('User')->changePwd($logininfo['account'], $old_pwd, $new_pwd); if ($result == -1) { $this->error("原始密码不正确"); } elseif ($result != false) { $u_uid['account'] = $logininfo['account']; M('user_pwd')->where($u_uid)->setField('password', think_encrypt($new_pwd)); $this->suser->logout(); $this->success("修改成功", U('User/login')); } elseif ($result === 0) { $this->error("新旧密码一致,请重新输入"); } else { $this->error("修改失败"); } } else { $this->display(); } } /** * 个人中心->编辑资料->收货管理 * @return [type] [description] * @author 小纯洁 */ public function useraddresslist() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); $userData = M('UserAddress', 'tab_')->where(array('user_id' => $logininfo['user_id']))->select(); $this->assign('list_data', $userData); $this->display(); } /** * 个人中心->编辑资料->收货管理->新增收货地址 * @return [type] [description] * @author 小纯洁 */ public function useraddressadd() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); if (IS_POST) { $model = M('UserAddress', 'tab_'); $data = $_REQUEST; $data['user_id'] = $logininfo['user_id']; $data['create_time'] = time(); $userData = M('UserAddress', 'tab_')->where(array('user_id' => $logininfo['user_id']))->select(); if (isset($data['is_default'])) { $data['is_default'] = 1; $model->where(array('user_id' => $logininfo['user_id']))->save(array('is_default' => 0)); } else { $data['is_default'] = 0; } if ($model->create($data) && $model->add()) { $this->success('添加成功', U('User/useraddresslist')); } else { $this->error('添加失败'); } } else { $this->display(); } } /** * 个人中心->编辑资料->收货管理->编辑收货地址 * @return [type] [description] * @author 小纯洁 */ public function useraddressedit($id = 0) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo = $this->suser->login_info(); $model = M('UserAddress', 'tab_'); if (IS_POST) { $data = $_REQUEST; $data['user_id'] = $logininfo['user_id']; $data['id'] = $id; if (!empty($data['is_default'])) { $model->where('user_id=' . $logininfo['user_id'])->save(array('is_default' => 0)); } if ($model->save($data) !== false) { $this->success('编辑成功', U('User/useraddresslist')); } else { $this->error('编辑失败'); } } else { $data = $model->find($id); $this->assign("data", $data); $this->display(); } } /** * 个人中心->编辑资料->收货管理->删除收货地址 * @return [type] [description] * @author 小纯洁 */ public function useraddressdel($id = 0) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $model = M('UserAddress', 'tab_'); $result = $model->where("id=" . $id)->delete(); if ($result !== false) { $this->success('地址删除成功', U('User/useraddresslist')); } else { $this->error("地址删除失败"); } } /** * 个人中心->编辑资料->收货管理->设置默认收货地址 * @return [type] [description] * @author 小纯洁 */ public function setDefaultAddress($id = 0, $type = 'setting') { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $model = M('UserAddress', 'tab_'); $logininfo = $this->suser->login_info(); switch ($type) { case 'setting': $map['id'] = array('neq', $id); $map['user_id'] = $logininfo['user_id']; $model->where($map)->save(array('is_default' => 0)); $result = $model->where(array('id' => $id))->save(array('is_default' => 1)); break; case 'cancel': $result = $model->where(array('id' => $id))->save(array('is_default' => 0)); break; } if ($result !== false) { $this->success('地址删除成功'); } else { $this->error("地址删除失败"); } } /** * 个人中心->绑币管理 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function userbindcoin() { $islogin = $this->islogin(); if ($islogin) { $map['user_id'] = $islogin; $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $data = M("user_play", "tab_") ->field("game_name,game_id,bind_balance") ->where($map) ->group("game_id") ->page($page, $row) ->select(); $display = ''; $this->assign('page', $page); $this->assign('data', $data); } else { $display = 'login'; } $this->display($display); } /** * AJAX 绑币管理加载更多 * @return [type] [description] */ public function ajaxcoin() { $p = I('post.p'); $status = 0; $row = C('LIST_ROWS'); $map['user_id'] = $this->suser->login_info('user_id'); $lists = M("user_play", "tab_") ->field("game_name,game_id,bind_balance") ->where($map) ->group("game_id") ->page($p, $row) ->select(); if (!empty($lists) && is_array($lists)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $p, 'lists' => $lists)); } public function recharge($pay_type = 1) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $logininfo_id = $this->suser->login_info('user_id'); if (IS_POST) { $user_id = get_user_id($_REQUEST['account']); $pay_amount = $_POST['pay_amount']; if ($user_id != $logininfo_id) { $this->error('只能给自己充值'); } if ($user_id == 0) { $this->error('账号不存在'); } if ($pay_amount < 0) { $this->error('金额不正确'); } $pay_amount = abs($pay_amount); //$pay_amount = 0.01; if ($_REQUEST['spendType'] == 2) { $userMap['user_id'] = $user_id; $userMap['game_id'] = $_REQUEST['game_id']; $empty = M('UserPlay', 'tab_')->where($userMap)->find(); if (empty($empty)) { $this->error('该用户未玩过此游戏哦~'); } } $json = array( 'type' => $_REQUEST['spendType'], 'user_id' => $user_id, 'game_id' => $_REQUEST['game_id'] ); $userEntiy = get_user_entity($logininfo_id); $pay = A('Pay'); $result = $pay->recharge($pay_amount, json_encode($json), $_POST['way'], $userEntiy['promote_id']); $this->ajaxReturn($result); } else { $game = M("game", "tab_"); $map['apply_status'] = 1; $map['online_status'] = 1; $map['user_id'] = $logininfo_id; $lists = $game->field('tab_game.id,tab_game.game_name,bind_recharge_discount') ->join('tab_user_play as up on up.game_id = tab_game.id') ->where($map) ->group('tab_game.id') ->select(); $this->assign('gameList', $lists); $this->display(); } } /** * 个人中心->我的游戏 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function usergame($p = 1) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $map['user_id'] = $this->suser->login_info('user_id'); $data = D('DownRecord')->table('tab_down_record AS tdr') ->field('tab_game.id,tab_game.dow_status,tab_game.game_name,tab_game.game_size,tab_game.dow_num,tab_game.icon,tab_game.features,tdr.user_id,tab_game.and_dow_address,tab_game.add_game_address,tab_game.ios_dow_address,tab_game.ios_game_address,tab_game.game_score,tab_game.sdk_version') ->join("tab_game ON tdr.game_id = tab_game.id") ->where($map) ->page($page, $row) ->select(); $this->assign("data", $data); $this->assign("page", $page); $this->display(); } /** * 个人中心->我的游戏 AJAX加载更多 * @return [type] [description] * @author 小纯洁 */ public function ajaxUserGame() { $page = I('post.p'); $status = 0; $row = C('LIST_ROWS'); $map['user_id'] = $this->suser->login_info('user_id'); $data = D('DownRecord')->table('tab_down_record AS tdr') ->field('tab_game.id,tab_game.game_name,tab_game.game_size,tab_game.dow_num,tab_game.icon,tab_game.features,tdr.user_id,tab_game.and_dow_address,tab_game.add_game_address,tab_game.ios_dow_address,tab_game.ios_game_address,tab_game.game_score') ->join("tab_game ON tdr.game_id = tab_game.id") ->where($map) ->page($page, $row) ->select(); foreach ($data as $key => $value) { $data[$key]['icon'] = get_img_url($value['icon']); $data[$key]['dow_url'] = U('Down/down_file', array('game_id' => $value['id'], 'sdk_version' => 1)); } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->我的评论 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function usercomment($game_name = '') { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $map['status'] = 1; $map['account'] = $this->suser->login_info('account'); if (!empty($game_name)) { $game = D("Game")->where(['game_name' => ['like', "%" . $game_name . "%"]])->select(); if (empty($game)) { $map['game_id'] = ['in', '0']; } else { $map['game_id'] = ['in', array_column($game, "id")]; } } $data = D('Comment')->field("account,create_time,comment,game_id")->where($map)->order("create_time desc")->page($page, $row)->select(); foreach ($data as $key => $val) { $user = D("User")->getUserInfo($val['account']); $data[$key]['nickname'] = $user['nickname']; $data[$key]['head_img'] = $user['head_img']; $gameIcon = D('Game')->where('id = ' . $val['game_id'])->getField('icon'); $data[$key]['game_icon'] = get_cover($gameIcon, 'path'); $data[$key]['create_time'] = date("Y-m-d H:i:s", $data[$key]['create_time']); } $result['data'] = $data; $result['count'] = D('Comment')->where($map)->count(); $this->assign('data', $result['data']); $this->assign('count', $result['count']); $this->assign('page', $page); $this->display(); } /** * AJAX 我的评论加载更多 * @return [type] [description] */ public function ajaxComment() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = I('post.p'); $row = C('LIST_ROWS'); $map['status'] = 1; $map['account'] = $this->suser->login_info('account'); $data = D('Comment')->field("account,create_time,comment,game_id")->where($map)->order("create_time desc")->page($page, $row)->select(); foreach ($data as $key => $val) { $user = D("User")->getUserInfo($val['account']); $data[$key]['nickname'] = $user['nickname']; $data[$key]['head_img'] = $user['head_img']; $data[$key]['create_time'] = date("Y-m-d H:i:s", $data[$key]['create_time']); } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->我的收藏 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function usercollection($p = 1) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $data = D("Game")->getMyCollectGame($this->suser->login_info('account'), $p); $this->assign("data", $data); $this->assign("page", $page); $this->display(); } /** * 个人中心->我的收藏 AJAX加载更多 * @return [type] [description] * @author 小纯洁 */ public function ajaxUserCollection() { $page = I('post.p'); $row = C('LIST_ROWS'); $data = D("Game")->getMyCollectGame($this->suser->login_info('account'), $page); if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data, 'p' => $page)); } /** * 个人中心->我的收藏->设置收藏 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function set_collection() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $game_id = $_REQUEST['game_id']; $account = $this->suser->login_info('account'); $status = $_REQUEST['status']; $result = D('Game')->collectGame($game_id, $account, $status); if ($result != false) { $this->success("取消成功", U('User/usercollection')); } else { $this->error("取消失败"); } } /** * 个人中心->我的邀请 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function userinvitation() { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $map['invite_id'] = $this->suser->login_info('user_id'); $data = D('ShareRecord')->field("user_account,create_time,award_coin") ->where($map) ->order("create_time desc") ->group('user_id') ->page($page, $row) ->select(); foreach ($data as $key => $value) { $data[$key]['user_account'] = substr_replace($value['user_account'], '****', 3, 4); $data[$key]['create_time'] = date('Y-m-d', $value['create_time']); } $total_data = D('ShareRecord')->field("count(distinct user_id) as invite_num,sum(award_coin) as award_coin") ->where($map) ->group("invite_id") ->find(); $total_data['invite_num'] = empty($total_data['invite_num']) ? 0 : $total_data['invite_num']; $total_data['award_coin'] = empty($total_data['award_coin']) ? 0 : $total_data['award_coin']; $this->assign('data', $data); $this->assign('total_data', $total_data); $this->assign('page', $page); $this->display(); } /** * AJAX 我的评论加载更多 * @return [type] [description] */ public function ajaxInvitation() { $page = I('post.p'); $row = C('LIST_ROWS'); $map['invite_id'] = $this->suser->login_info('user_id'); $data = D('ShareRecord')->field("user_account,create_time,award_coin") ->where($map) ->order("create_time desc") ->page($page, $row) ->select(); foreach ($data as $key => $value) { $data[$key]['user_account'] = substr_replace($value['user_account'], '****', 3, 4); $data[$key]['create_time'] = date('Y-m-d', $value['create_time']); } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->我的积分 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function userintegral($type = 1, $p = 1) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $user_id = $this->suser->login_info('user_id'); $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 if ($type == 1) { $map['pr.user_id'] = $user_id; $map['pr.type'] = $type; $data = D("PointRecord")->getUserAchieveRecord($map, "create_time desc", $page); } else { $map['user_id'] = $user_id; $data = D("PointShopRecord")->getLists($map, "create_time desc", $page); } //$total = D('PointShopRecord')->getUserSpendPoint($user_id); $total = D('User')->getUserByAccount($this->suser->login_info('account'), 'point'); $this->assign('data', $data); $this->assign('total', empty($total) ? 0 : $total['point']); $this->display(); } /** * 个人中心->我的积分 AJAX 加载更多 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function ajaxUserIntegral($type = 1) { $user_id = $this->suser->login_info('user_id'); $page = I('post.p'); $row = C('LIST_ROWS'); if ($type == 1) { $map['pr.user_id'] = $user_id; $map['pr.type'] = $type; $data = D("PointRecord")->getUserAchieveRecord($map, "create_time desc", $page); foreach ($data as $key => $value) { $data[$key]['create_time'] = data('Y-m-d', $value['create_time']); } } else { $map['user_id'] = $user_id; $data = D("PointShopRecord")->getLists($map, "create_time desc", $page); $data = $data['data']; foreach ($data as $key => $value) { $data[$key]['url'] = U('User/exchangerecorddetail', array('id' => $value['id'])); $data[$key]['create_time'] = data('Y-m-d', $value['create_time']); } } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->我的积分->商品详情 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function exchangerecorddetail($id = 0) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $map['sr.id'] = $id; $map['sr.user_id'] = $this->suser->login_info('user_id'); $data = D("PointShopRecord")->table("tab_point_shop_record as sr") ->field("ps.good_name,ps.good_type,ps.good_info,ps.good_usage,ps.cover,sr.number,sr.good_key,sr.user_name,sr.address,sr.phone") ->join("left join tab_point_shop ps on ps.id = sr.good_id") ->where($map) ->find(); $data['cover'] = get_img_url($data['cover']); $data['good_key'] = json_decode($data['good_key']); // var_dump($data['good_key']);die; $this->assign('data', $data); $this->display(); } /** * 个人中心->我的礼包 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function usergift($p = 1) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $data = D("Giftbag")->getMyGiftRecord($this->suser->login_info('account'), $page); foreach ($data as $key => $value) { $data[$key]['end_time'] = empty($value['end_time']) ? "永久" : date('Y-m-d H:i:s', $value['end_time']); } $this->assign("data", $data); $this->assign("page", $page); $this->display(); } /** * 个人中心->我的礼包 AJAX加载更多 * @return [type] [description] * @author 小纯洁 */ public function ajaxUserGift() { $page = I('post.p'); $row = C('LIST_ROWS'); $data = D("Giftbag")->getMyGiftRecord($this->suser->login_info('account'), $page); foreach ($data as $key => $value) { $data[$key]['start_time'] = date('Y-m-d', $value['start_time']); $data[$key]['end_time'] = date('Y-m-d', $value['end_time']); $data[$key]['url'] = U('Gift/detail', array('id' => $value['gift_id'])); } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->兑换记录 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function exchangerecord($p = 0) { if (!$this->islogin()) { $this->redirect('Mobile/User/login'); } $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $map['user_id'] = $this->suser->login_info('user_id');//$user_id; $type = $_REQUEST['type']; if ($type == 2) { $map['good_type'] = ['in', [1, 2]];//商品 $totalMap['good_type'] = ['in', [1, 2]];//商品 } elseif ($type == 3) { $map['good_type'] = 3;//平台币 $totalMap['good_type'] = 3;//平台币 } $data = D("PointShopRecord") ->field("id,good_name,good_type,number,pay_amount,create_time") ->where($map) ->order('create_time desc') ->page($page, $row) ->select(); $totalMap['user_id'] = $this->suser->login_info('user_id'); $total = D("PointShopRecord")->where($totalMap)->sum("pay_amount"); $this->assign('total', empty($total) ? 0 : $total); $this->assign('data', $data); $this->assign('page', $page); $this->display(); } /** * AJAX 兌換記錄加载更多 * @return [type] [description] */ public function ajaxExchangeRecord() { $page = I('post.p'); $row = C('LIST_ROWS'); $type = I('post.type'); $map['user_id'] = $this->suser->login_info('user_id');//$user_id; if ($type == 2) { $map['good_type'] = ['in', [1, 2]];//商品 } elseif ($type == 3) { $map['good_type'] = 3;//平台币 } $data = D("PointShopRecord") ->field("id,good_name,good_type,number,pay_amount,create_time") ->where($map) ->order('create_time desc') ->page($page, $row) ->select(); foreach ($data as $key => $value) { $data[$key]['create_time'] = date('Y-m-d H:i:s', $value['create_time']); $data[$key]['durl'] = U('User/exchangerecorddetail', array('id' => $value['id'])); } if (!empty($data) && is_array($data)) { $status = 1; } echo json_encode(array('status' => $status, 'page' => $page, 'lists' => $data)); } /** * 个人中心->我的积分->获取方式 * @return [type] [description] * @author wyr <840186209@qq.com> */ public function userintegralguide() { $model = new PointTypeModel(); $data = $model->getLists(['status' => 1]); foreach ($data['data'] as $key => $val) { $result[$val['key']]['point'] = $val['point']; $result[$val['key']]['time_of_day'] = $val['time_of_day']; $result[$val['key']]['name'] = $val['name']; $result[$val['key']]['remake'] = $val['remake']; } $this->assign("data", $result); $this->display(); } public function share_register($id = 0) { if (!empty($id)) { $data = D('Game')->find($id); $data['icon'] = get_cover($data['icon'], 'path'); } $this->assign('data', $data); $this->display(); } /** * 绑定支付宝 */ public function alipay() { if (IS_POST) { $member = new MemberApi(); $user = D('User')->getLoginInfo(); if (is_array($user)) { $res = $member->save_alipay($user['user_id'], $_POST); $res['url'] = U('User/userset'); $this->ajaxReturn($res, 'json'); } else { $this->ajaxReturn(['status' => 0, 'msg' => '请登录'], 'json'); } } else { $this->assign('user', D('User')->getAlipay()); $this->display(); } } /** * 提现记录 * @param integer $p 当前页 * @author 鹿文学 */ public function withdraw_record($p = 1) { $order = 'audit_time desc'; $lists = D('WithdrawGoldCoin')->lists($p, $map, 'id,money,coin,status,order_number,if(audit_time>0,FROM_UNIXTIME(audit_time,"%Y-%m-%d %H:%i:%s"),"") as audit_time', $order); $this->assign('lists', $lists['lists']); $this->assign('page', $lists['current']); $this->assign('totalpage', $lists['total']); $this->display(); } /** * 提现记录 * @param integer $p 当前页 * @author 鹿文学 */ public function ajax_withdraw_record($p = 1) { $order = 'audit_time desc'; $lists = D('WithdrawGoldCoin')->lists($p, $map, 'id,money,coin,status,order_number,if(audit_time>0,FROM_UNIXTIME(audit_time,"%Y-%m-%d %H:%i:%s"),"") as audit_time', $order); $this->ajaxReturn($lists, 'json'); } /** * 消费记录 * @param integer $p 当前页 * @author 鹿文学 */ public function useing_record($p = 1) { $lists = D('User')->useing_record($p); foreach ($lists['lists'] as $key => $value) { $sort_data[$key] = $value['pay_time']; } array_multisort($sort_data, SORT_REGULAR, SORT_DESC, $lists['lists']); $this->assign('lists', $lists['lists']); $this->assign('page', $lists['current']); $this->assign('totalpage', $lists['total']); $this->display(); } /** * 消费记录 * @param integer $p 当前页 * @author 鹿文学 */ public function ajax_useing_record($p = 1) { $lists = D('User')->useing_record($p); $this->ajaxReturn($lists, 'json'); } }