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,status,headimg,member_level,member_level_name,member_label,member_label_name,qq,qq_openid,wx_openid,wx_unionid,ali_openid,baidu_openid,toutiao_openid,douyin_openid,realname,sex,location,birthday,point,balance,balance_money,growth,sign_days_series,password,member_level_type,level_expire_time,is_edit_username,is_fenxiao,province_id,city_id,district_id,community_id,address,full_address,longitude,latitude,member_code,qrcode'); if (!empty($info[ 'data' ])) { $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; //有会员卡 if($info['data']['member_code']){ $card = model('card')->getInfo(['member_id'=>$this->member_id,'site_id'=>$this->site_id]); if($card){ $info[ 'data' ][ 'account' ] = $card['account']; $info[ 'data' ][ 'password' ] = $card['password']; } } } return $this->response($info); } /** * 修改会员头像 * @return string */ public function modifyheadimg() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $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 = $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 = $this->params['nickname'] ?? ''; $nickname = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $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 (!empty($verify_data) && $verify_data['mobile'] == $this->params['mobile'] && $verify_data['code'] == $this->params['code']) { $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 = $this->params['old_password'] ?? ''; $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([ 'type' => 'code', '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([ 'type' => 'code', '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 = $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 (!empty($verify_data) && $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([ 'type' => 'code', '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 (!empty($verify_data) && $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() { //积分 $rule = event('MemberAccountRule', [ 'site_id' => $this->site_id ]); $point = []; $balance = []; $growth = []; foreach ($rule as $k => $v) { if(isset($v['point'])) { $point[] = $v['point']; } if(isset($v['balance'])) { $balance[] = $v['balance']; } if(isset($v['growth'])) { $growth[] = $v['growth']; } } $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 = $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 = $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 = $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' ]; $member_model = new MemberModel(); $member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $member_id ] ], 'member_code,mobile')[ 'data' ] ?? []; if (!empty($member_info[ 'member_code' ])) { $number = $member_info[ 'member_code' ]; } elseif (!empty($member_info[ 'mobile' ])) { $number = $member_info[ 'mobile' ]; } // 二维码 $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; // 二维码 $res = event('Qrcode', [ 'site_id' => $this->site_id, 'app_type' => 'h5', 'type' => 'create', 'data' => [ 'number' => $number ], 'page' => $this->params[ 'page' ] ? : '', 'qrcode_path' => 'upload/qrcode/qrcodereduceaccount', 'qrcode_name' => 'memberqrcode_' . $member_id . '_' . $this->site_id, 'qrcode_size' => 16 ], true); $bar_code = getBarcode($number, '', 3); $res[ 'bar_code' ] = $bar_code; $res[ 'member_code' ] = $number; // 动态码 $dynamic_number = NoRand(0, 9, 4); $res[ 'dynamic_number' ] = $dynamic_number; return $this->response($res); } //更改分享人信息 public function alterShareRelation() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $share_member = $this->params[ 'share_member' ] ?? 0; if (empty($share_member)) { return $this->response($this->error(null, '未传分享人id!')); } $member_model = new MemberModel(); $result = $member_model->alterShareRelation($this->member_id, $share_member, $this->site_id); return $this->response($result); } /** * 修改会员地址 * @return false|string */ public function modifyaddress() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $data = [ 'province_id' => $this->params[ 'province_id' ] ?? 0, 'city_id' => $this->params[ 'city_id' ] ?? 0, 'district_id' => $this->params[ 'district_id' ] ?? 0, 'address' => $this->params[ 'address' ] ?? '', 'full_address' => $this->params[ 'full_address' ] ?? '' ]; $member_model = new MemberModel(); $res = $member_model->editMember($data, [ [ 'member_id', '=', $token[ 'data' ][ 'member_id' ], [ 'site_id', '=', $this->site_id ] ] ]); return $this->response($res); } /** * 手机号授权绑定 */ public function mobileAuth() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $decrypt_data = event('PhoneNumber', $this->params, true); if (empty($decrypt_data)) return $this->error('', '没有获取手机号的渠道'); if ($decrypt_data[ 'code' ] < 0) return $this->response($decrypt_data); $this->params[ 'mobile' ] = $decrypt_data[ 'data' ]; $register = new RegisterModel(); $exist = $register->mobileExist($this->params[ 'mobile' ], $this->site_id); if ($exist) { return $this->response($this->error('', '手机号已存在')); } else { $mobile = $this->params['mobile'] ?? ''; $member_model = new MemberModel(); $res = $member_model->editMember([ 'mobile' => $mobile ], [ [ 'member_id', '=', $this->member_id ], [ 'site_id', '=', $this->site_id ] ]); return $this->response($res); } } /** * 首页表单留言 */ public function information() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $insert = array( 'realname'=>$this->params[ 'realname' ] ?? '', 'mobile'=>$this->params[ 'mobile' ] ?? '', 'mailbox'=>$this->params[ 'mailbox' ] ?? '', 'citys'=>$this->params[ 'citys' ] ?? '', 'remark'=>$this->params[ 'remark' ] ?? '', 'site_id'=>$this->site_id, 'member_id'=>$this->member_id, 'createtime'=>time() ); if(!$insert['realname']){ return $this->response($this->error('', '请输入姓名')); } if(!$insert['mobile']){ return $this->response($this->error('', '请输入手机号码')); } if(!$insert['mailbox']){ return $this->response($this->error('', '请输入邮箱')); } if(!$insert['citys']){ return $this->response($this->error('', '请输入所在城市')); } $res = model('information')->add($insert); return $this->response(['code'=>'0','message'=>'提交成功']); } /** * 名片数据 */ public function personnel() { $shop_model = new ShopModel(); $list = model('personnel')->getList(['site_id'=>$this->site_id],'*','displayorder desc'); $shop_info_result = $shop_model->getShopInfo(['site_id'=>$this->site_id])['data'];//$this->site_id $Personnelmodel = new PersonnelModel(); $set = $Personnelmodel->getPersonnelSet($this->site_id, $this->app_module)[ 'data' ][ 'value' ]; //视频号数据 $channel_list = model('personnel_channel')->getList(['site_id'=>$this->site_id, 'is_show'=>1],'*','sort asc createtime desc'); //视频文件 $video_list = model('personnel_video')->getList(['site_id'=>$this->site_id],'*','createtime desc'); //企业文件 $file_list = model('personnel_files')->getList(['site_id'=>$this->site_id],'*','createtime desc'); //电子名片diy $config = $Personnelmodel->getPersonnelSet($this->site_id, $this->app_module)[ 'data' ][ 'value' ]; $config['value'] = json_decode($config['value'],true); return $this->response(['code'=>'0','data'=>$list,'message'=>'操作成功','shop'=>$shop_info_result,'set'=>$set,'channel_list'=>$channel_list, 'video_list'=>$video_list,'file_list'=>$file_list,'diy'=>$config['value']]); } /** * 视频号观看次数+1 */ public function incrementChannelViewCount() { $id = $this->params[ 'channel_id' ] ?? 0; if (empty($id)) { return $this->response($this->error('', '未传视频号id!')); } $cur_view_count = model('personnel_channel')->getValue(['channel_id'=>$id], 'view_count', 0); $res = model('personnel_channel')->update(['view_count'=>$cur_view_count+1],['channel_id'=>$id]); return $this->response(['code'=>'0','message'=>'操作成功', 'data'=>$res, 'channel_id'=>$id, 'pre_view_count'=>$cur_view_count]); } //留言 public function message() { $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $insert = array( 'username'=>$this->params[ 'realname' ] ?? '', 'mobile'=>$this->params[ 'mobile' ] ?? '', 'message'=>$this->params[ 'remark' ] ?? '', 'site_id'=>$this->site_id, 'member_id'=>$this->member_id, 'createtime'=>time() ); model('personnel_message')->add($insert); return $this->response(['code'=>0,'message'=>'留言成功~']); } public function getbusiness(){ $token = $this->checkToken(); if ($token[ 'code' ] < 0) return $this->response($token); $list = model('business')->getList([]); return $this->response(['code'=>0,'data'=>$list]); } }