checkToken(); if ($token['code'] < 0) return $this->response($token); $member_model = new MemberModel(); $info = $member_model->getMemberInfo([['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]], 'member_id,source_member,username,nickname,mobile,email,password,status,headimg,member_level,member_level_name,member_label,member_label_name,qq,realname,sex,location,birthday,point,balance,balance_money,growth,sign_days_series,password,member_level_type,level_expire_time,is_edit_username,is_fenxiao'); if (!empty($info['data'])) { $info['data']['nickname']=emojiDecode($info['data']['nickname']); $info['data']['password'] = empty($info['data']['password']) ? 0 : 1; $member_level_model = new MemberLevelModel(); $member_level_result = $member_level_model->getMemberLevelInfo([['level_id', '=', $info['data']['member_level']]]); $member_level = $member_level_result['data'] ?? []; $info['data']['member_level_info'] = $member_level; } return $this->response($info); } /** * 修改会员头像 * @return string */ public function modifyheadimg() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $headimg = isset($this->params['headimg']) ? $this->params['headimg'] : ''; $member_model = new MemberModel(); $res = $member_model->editMember(['headimg' => $headimg], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); return $this->response($res); } /** * 修改用户名 * @return false|string */ public function modifyUsername(){ $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $username = isset($this->params['username']) ? $this->params['username'] : ''; $member_model = new MemberModel(); $res = $member_model->editUsername($this->member_id, $this->site_id, $username); return $this->response($res); } /** * 修改昵称 * @return string */ public function modifynickname() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $nickname = isset($this->params['nickname']) ? $this->params['nickname'] : ''; $member_model = new MemberModel(); $res = $member_model->editMember(['nickname' => $nickname], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); return $this->response($res); } /** * 修改手机号 * @return string */ public function modifymobile() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); // 校验验证码 $captcha = new Captcha(); $check_res = $captcha->checkCaptcha(false); if ($check_res['code'] < 0) return $this->response($check_res); $register = new RegisterModel(); $exist = $register->mobileExist($this->params['mobile'], $this->site_id); if ($exist) { return $this->response($this->error("", "手机号已存在")); } else { $key = $this->params['key']; $verify_data = Cache::get($key); if ($verify_data["mobile"] == $this->params["mobile"] && $verify_data["code"] == $this->params["code"]) { $mobile = isset($this->params['mobile']) ? $this->params['mobile'] : ''; $member_model = new MemberModel(); $res = $member_model->editMember(['mobile' => $mobile], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); } else { $res = $this->error("", "验证码不正确"); } return $this->response($res); } } /** * 修改密码 * @return string */ public function modifypassword() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $old_password = isset($this->params['old_password']) ? $this->params['old_password'] : ''; $new_password = isset($this->params['new_password']) ? $this->params['new_password'] : ''; $member_model = new MemberModel(); $info = $member_model->getMemberInfo([['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]], 'password'); // 未设置密码时设置密码需验证身份 if (empty($info['data']['password'])) { $key = $this->params['key'] ?? ''; $code = $this->params['code'] ?? ''; $verify_data = Cache::get($key); if (empty($verify_data) || $verify_data["code"] != $code) { return $this->response($this->error("", "手机验证码不正确")); } } $res = $member_model->modifyMemberPassword($token['data']['member_id'], $old_password, $new_password); return $this->response($res); } /** * 绑定短信验证码 */ public function bindmobliecode() { // 校验验证码 $captcha = new Captcha(); $check_res = $captcha->checkCaptcha(false); if ($check_res['code'] < 0) return $this->response($check_res); $mobile = $this->params['mobile'];//注册手机号 $register = new RegisterModel(); $exist = $register->mobileExist($mobile, $this->site_id); if ($exist) { return $this->response($this->error("", "当前手机号已存在")); } else { $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0 $message_model = new Message(); $res = $message_model->sendMessage(["mobile" => $mobile, "site_id" => $this->site_id, "code" => $code, "support_type" => ["sms"], "keywords" => "MEMBER_BIND"]); if ($res["code"] >= 0) { //将验证码存入缓存 $key = 'bind_mobile_code_' . md5(uniqid(null, true)); Cache::tag("bind_mobile_code")->set($key, ['mobile' => $mobile, 'code' => $code], 600); return $this->response($this->success(["key" => $key])); } else { return $this->response($res); } } } /** * 设置密码时获取验证码 */ public function pwdmobliecode() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); // 校验验证码 $captcha = new Captcha(); $check_res = $captcha->checkCaptcha(false); if ($check_res['code'] < 0) return $this->response($check_res); $member_model = new MemberModel(); $info = $member_model->getMemberInfo([['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]], 'mobile'); if (empty($info['data'])) return $this->response($this->error([], '未获取到会员信息!')); if (empty($info['data']['mobile'])) return $this->response($this->error([], '会员信息尚未绑定手机号!')); $mobile = $info['data']['mobile']; $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0 $message_model = new Message(); $res = $message_model->sendMessage(["mobile" => $mobile, "site_id" => $this->site_id, "code" => $code, "support_type" => ["sms"], "keywords" => "SET_PASSWORD"]); if (isset($res["code"]) && $res["code"] >= 0) { //将验证码存入缓存 $key = 'password_mobile_code_' . md5(uniqid(null, true)); Cache::tag("password_mobile_code_")->set($key, ['mobile' => $mobile, 'code' => $code], 600); return $this->response($this->success(["key" => $key, 'code' => $code])); } else { return $this->response($this->error('', '发送失败')); } } /** * 验证手机号 * @return string */ public function checkmobile() { $mobile = isset($this->params['mobile']) ? $this->params['mobile'] : ''; if (empty($mobile)) { return $this->response($this->error('', 'REQUEST_MOBILE')); } $member_model = new MemberModel(); $condition = [ ['mobile', '=', $mobile], ['site_id', '=', $this->site_id] ]; $res = $member_model->getMemberCount($condition); if ($res['data'] > 0) { return $this->response($this->error('', '当前手机号已存在')); } return $this->response($this->success()); } /** * 修改支付密码 * @return string */ public function modifypaypassword() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $key = $this->params['key'] ?? ''; $code = $this->params['code'] ?? ''; $password = isset($this->params['password']) ? trim($this->params['password']) : ''; if (empty($password)) return $this->response($this->error('', '支付密码不可为空')); $verify_data = Cache::get($key); if ($verify_data["code"] == $this->params["code"]) { $member_model = new MemberModel(); $res = $member_model->modifyMemberPayPassword($token['data']['member_id'], $password); } else { $res = $this->error("", "验证码不正确"); } return $this->response($res); } /** * 检测会员是否设置支付密码 */ public function issetpayaassword() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $member_model = new MemberModel(); $res = $member_model->memberIsSetPayPassword($this->member_id); return $this->response($res); } /** * 检测支付密码是否正确 */ public function checkpaypassword() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $password = isset($this->params['pay_password']) ? trim($this->params['pay_password']) : ''; if (empty($password)) return $this->response($this->error('', '支付密码不可为空')); $member_model = new MemberModel(); $res = $member_model->checkPayPassword($this->member_id, $password); return $this->response($res); } /** * * 修改支付密码发送手机验证码 */ public function paypwdcode() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0 $message_model = new Message(); $res = $message_model->sendMessage(["member_id" => $this->member_id, "site_id" => $this->site_id, "code" => $code, "support_type" => ["sms"], "keywords" => "MEMBER_PAY_PASSWORD"]); if ($res["code"] >= 0) { //将验证码存入缓存 $key = 'pay_password_code_' . md5(uniqid(null, true)); Cache::tag("pay_password_code")->set($key, ['member_id' => $this->member_id, 'code' => $code], 600); return $this->response($this->success(["key" => $key])); } else { return $this->response($res); } } /** * 验证修改支付密码动态码 */ public function verifypaypwdcode() { $key = isset($this->params['key']) ? trim($this->params['key']) : ''; $verify_data = Cache::get($key); if ($verify_data["code"] == $this->params["code"]) { $res = $this->success([]); } else { $res = $this->error("", "验证码不正确"); } return $this->response($res); } /** * 通过token得到会员id */ public function id() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); return $this->response($this->success($this->member_id)); } /** * 账户奖励规则说明 * @return false|string */ public function accountrule() { //积分 $point = event('MemberAccountRule', ['account' => 'point', 'site_id' => $this->site_id]); //余额 $balance = event('MemberAccountRule', ['account' => 'balance', 'site_id' => $this->site_id]); //成长值 $growth = event('MemberAccountRule', ['account' => 'growth', 'site_id' => $this->site_id]); $res = [ 'point' => $point, 'balance' => $balance, 'growth' => $growth ]; return $this->response($this->success($res)); } /** * 拉取会员头像 */ public function pullheadimg() { $member_id = input('member_id', ''); $member = new MemberModel(); $member->pullHeadimg($member_id); } /** * 修改真实姓名 */ public function modifyrealname() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $realname = isset($this->params['realname']) ? $this->params['realname'] : ''; $member_model = new MemberModel(); $res = $member_model->editMember(['realname' => $realname], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); return $this->response($res); } /** * 修改性别 */ public function modifysex() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $sex = isset($this->params['sex']) ? $this->params['sex'] : 0; $member_model = new MemberModel(); $res = $member_model->editMember(['sex' => $sex], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); return $this->response($res); } /** * 修改生日 */ public function modifybirthday() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $birthday = isset($this->params['birthday']) ? $this->params['birthday'] : ''; $member_model = new MemberModel(); $res = $member_model->editMember(['birthday' => $birthday], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); return $this->response($res); } /** * 生成会员二维码 */ public function membereqrcode() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $member_id = $token['data']['member_id']; $number = date_to_time(date('Y-m-d H:i')).rand(10000000,99999999); // 二维码 $qrcode_dir = 'upload/qrcode/qrcodereduceaccount'; if (!is_dir($qrcode_dir) && !mkdir($qrcode_dir, intval('0755', 8), true)) { return $this->error('', '会员码生成失败'); } $qrcode_name = 'memberqrcode_' . $member_id . '_' . $this->site_id; $filename = $qrcode_dir . '/' . $qrcode_name . '_' . $this->params['app_type'] . '.png'; QRcodeExtend::png($number, $filename, 'L', 4, 1); $res = $this->success(['path' => $filename]); Cache::tag('member_qrcode')->set($number,['member_id'=>$member_id,'is_user'=>0],'60'); // 条形码 Cache::tag('memberqrcode')->set($number,['member_id'=>$member_id,'is_user'=>0],'60'); $bar_code = getBarcode($number); $res['bar_code'] = $bar_code; // 动态码 $dynamic_number = NoRand(0,9,4); Cache::tag('dynamic_number')->set($dynamic_number,['member_id'=>$member_id,'is_user'=>0],'60'); $res['dynamic_number'] = $dynamic_number; return $this->response($res); } /** * 会员二维码扣款 */ public function qrcodereduceaccount() { $member_data = Cache::get($this->params['number']); $member_id = $member_data['member_id']; if(empty($member_id)){ return $this->response($this->error([], "参数已过期!")); } $member_model = new \addon\member\model\Member(); $member_data = $member_model->getMemberInfo([['member_id','=',$member_id],['site_id','=',$this->site_id]]); $balance_money = $member_data['data']['balance_money']; //可提现余额 $balance = $member_data['data']['balance']; //不可提现余额 $member_account_model = new MemberAccount(); $surplus_banance = $this->params['money']; //支付金额 //优先扣除不可提现余额 if ($balance > 0) { if ($balance >= $surplus_banance) { $real_balance = $surplus_banance; } else { $real_balance = $balance; } $result = $member_account_model->addMemberAccount($this->site_id,$member_id, "balance", -$real_balance, 'membercode', 0, "会员码支付,扣除不可提现余额:" . $real_balance); $surplus_banance -= $real_balance; } if ($surplus_banance > 0) { $result = $member_account_model->addMemberAccount($this->site_id, $member_id, "balance_money", -$surplus_banance,'membercode', 0, "会员码支付,扣除可提现余额:" . $surplus_banance); } Cache::tag('memberqrcode')->clear(); Cache::tag('dynamic_number')->clear(); return $this->response($result); } }