123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562 |
- <?php
- namespace App\Http\Controllers\Member\Front;
- use App\Http\Controllers\FrontController;
- use App\Http\Requests\Front\MessagesModifyPasswordRequest;
- use App\Http\Requests\Front\MessagesModifyPayPasswordRequest;
- use App\Http\Requests\Front\YQH\AttestApiRequest;
- use App\Http\Requests\Front\YQH\AttestRequest;
- use App\Http\Requests\Front\YQH\UserNameRequest;
- use App\Jobs\AttestApiJob;
- use App\Jobs\AttestContributionJob;
- use App\Jobs\MachineReceiveJob;
- use App\Models\AliBinding;
- use App\Models\Bonu;
- use App\Models\Config;
- use App\Models\IndentNum;
- use App\Models\KeyWord;
- use App\Models\Levels;
- use App\Models\Machine;
- use App\Models\Member;
- use App\Models\MemberAddress;
- use App\Models\MemberClans;
- use App\Models\MemberIdcard;
- use App\Models\MemberMachine;
- use App\Models\MemberNumber;
- use App\Models\Members;
- use App\Models\MemberTeam;
- use App\Models\MemberVote;
- use App\Models\MoneyDetail;
- use App\Models\Nytr;
- use App\Models\Order;
- use App\Models\Star;
- use App\Servers\BonusServer;
- use App\Servers\CidServer;
- use App\Servers\MachineServer;
- use App\Servers\MemberLogsServer;
- use App\Servers\MemberNumberServer;
- use App\Servers\MemberServer;
- use App\Servers\MoneyDetailServer;
- use App\Servers\NytrServer;
- use App\Servers\PassServer;
- use App\Servers\PayServer;
- use App\Servers\RegisterServer;
- use App\Servers\SmsServer;
- use App\Servers\StarServer;
- use App\Servers\TipServer;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Facades\Redis;
- use Illuminate\Support\Facades\Storage;
- use SimpleSoftwareIO\QrCode\Facades\QrCode;
- class MembersController extends FrontController
- {
- public function __construct()
- {
- parent::__construct();
- }
- function index()
- {
- dd(1);
- }
-
- function register()
- {
-
- $redis_on_name = 'register_member' . session_id();
- $redis_time = Redis::get($redis_on_name);
- $time=time();
- if(!empty($redis_time) && $redis_time >$time-3){
- return $this->apiResponseError([], '会员信息正在注册中...');
- }
- Redis::set($redis_on_name, $time);
- $invite_code = request()->input('invite_code', '');
- if (empty($invite_code)) {
- return $this->apiResponseError([], 'member.no_invite_code');
- }
- $mobile = request()->input('mobile', '');
- $mobile = $mobile + time();
- if (empty($mobile)) {
- return $this->apiResponseError([], 'member.no_mobile');
- }
-
- if (!preg_match('#^[\d]{11,11}$#', $mobile)) {
- return response()->json([
- 'msg' => '手机号码格式错误',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $password = request()->input('password', '');
- $password=str_replace(' ','',$password);
- if (empty($password)) {
- return $this->apiResponseError([], 'member.no_password');
- }
- if(strlen($password)<6){
- return $this->apiResponseError([], '登录密码最低6位');
- }
- $type = request()->input('type', '');
- $sms = request()->input('sms', '');
-
- $result = (new SmsServer)->checkSms($sms, $mobile, $type);
- if ($result['errcode'] === false) {
- return response()->json([
- 'msg' => $result['errmsg'],
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $is_mobile = Members::where('mobile', $mobile)->count();
- if ($is_mobile > 0) {
- return $this->apiResponseError([], 'member.mobile_register');
- }
- $p_member = Members::where('invite_code', $invite_code)->first();
- if (empty($p_member)) {
- return $this->apiResponseError([], 'member.no_p_member');
- }
- $ret = MemberServer::register($mobile, $p_member, $password);
- if (empty($ret)) {
- return $this->apiResponseError([], 'member.no_register');
- } else {
- MemberLogsServer::write($ret['m_id'], '会员注册成功');
- return $this->apiResponseSuccess($ret, 'member.yes_register');
- }
- }
-
- function login()
- {
- $mobile = request()->input('mobile', '');
- if (empty($mobile)) {
- return $this->apiResponseError([], 'member.no_mobile');
- }
- $password = request()->input('password', '');
- if (empty($password)) {
- return $this->apiResponseError([], 'member.no_password');
- }
- $member = Members::where('mobile', $mobile)->select(['id', 'password', 'encrypt'])->first();
- if (empty($member)) {
- return $this->apiResponseError([], 'member.no_member');
- }
- if (!PassServer::verifyPass($password, $member->{'encrypt'}, $member->{'password'})) {
- return $this->apiResponseError([], 'member.password_error');
- }
- $token_str = PassServer::getMemberToken($member->{'id'});
- Members::where('id', $member->{'id'})->update(['token_str' => $token_str]);
- MemberLogsServer::write($member->{'id'}, '会员登录成功');
- return $this->apiResponseSuccess(['m_id' => $member->{'id'}, 'token' => $token_str], 'member.yes_login');
- }
-
- function oldPassUpdatePass()
- {
- $old_pass = request()->input('old_pass', '');
- if (empty($old_pass)) {
- return $this->apiResponseError([], 'member.no_old_pass');
- }
- $password = request()->input('new_password', '');
- if (empty($password)) {
- return $this->apiResponseError([], 'member.no_password');
- }
- $two_password = request()->input('two_password', '');
- if (empty($two_password)) {
- return $this->apiResponseError([], '请再次输入密码');
- }
- if ($password != $two_password) {
- return $this->apiResponseError([], '两次密码输入不一致');
- }
- $member = Members::where('id', $this->member->{'id'})->select(['id', 'password', 'encrypt'])->first();
- if (empty($member)) {
- return $this->apiResponseError([], 'member.no_member');
- }
- if (!PassServer::verifyPass($old_pass, $member->{'encrypt'}, $member->{'password'})) {
- return $this->apiResponseError([], 'member.old_password_error');
- }
- Members::where('id', $member->{'id'})->update(['m_p' => $password, 'password' => PassServer::memberPassword($password, $member->{'encrypt'})]);
- MemberLogsServer::write($member->{'id'}, '会员修改登录密码');
- return $this->apiResponseSuccess([], '登录密码修改成功');
- }
-
- function updatePass()
- {
- $mobile = request()->input('mobile', '');
- if (empty($mobile)) {
- return $this->apiResponseError([], 'member.no_mobile');
- }
- $password = request()->input('password', '');
- if (empty($password)) {
- return $this->apiResponseError([], 'member.no_password');
- }
- $type = request()->input('type', '');
- $sms = request()->input('sms', '');
-
- $result = (new SmsServer)->checkSms($sms, $mobile, $type);
- if ($result['errcode'] === false) {
- return response()->json([
- 'msg' => $result['errmsg'],
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $member = Members::where('mobile', $mobile)->select(['id', 'password', 'encrypt'])->first();
- if (empty($member)) {
- return $this->apiResponseError([], 'member.no_member');
- }
- Members::where('id', $member->{'id'})->update(['password' => PassServer::memberPassword($password, $member->{'encrypt'})]);
- MemberLogsServer::write($member->{'id'}, '会员修改登录密码');
- return $this->apiResponseSuccess([], 'member.yes_pass');
- }
-
- function updatePayPass()
- {
- $mobile = request()->input('mobile', '');
- if (empty($mobile)) {
- return $this->apiResponseError([], 'member.no_mobile');
- }
- $password = request()->input('password', '');
- if (empty($password)) {
- return $this->apiResponseError([], '请输入支付密码');
- }
- $type = request()->input('type', '');
- $sms = request()->input('sms', '');
-
- $result = (new SmsServer)->checkSms($sms, $mobile, $type);
- if ($result['errcode'] === false) {
- return response()->json([
- 'msg' => $result['errmsg'],
- 'data' => [],
- 'code' => 0,
- ]);
- }
- if (empty($member)) {
- }
- Members::where('id', $this->member->{'id'})->update(['pay_pass' => PassServer::memberPassword($password, $this->member->{'encrypt'})]);
- MemberLogsServer::write($this->member->{'id'}, '会员修改支付密码');
- return $this->apiResponseSuccess([], 'member.yes_pay_pass');
- }
-
- function getMemberInfo()
- {
- if (empty($this->member->id)) {
- return $this->apiResponseSuccess([], 'member.yes');
- }
- $member_info = Members::where('id', $this->member->{'id'})->select(['id','money','total_money', 'invite_code','recom_mobile', 'nickname', 'mobile', 'level_id'])->first();
- if (empty($member_info)) return $this->apiResponseSuccess([], 'member.yes');
- $is_certification = MemberIdcard::where('member_id', $this->member->{'id'})->where('status', '>=', 0)->count();
- $member_info->{'is_ok'} = $is_certification;
- $lang = request()->get('lang', 'zh');
- if ($lang == 'zh') {
- $member_info->{'level_name'} = Levels::where('id', $member_info->{'level_id'})->value('name');
- } else {
- $member_info->{'level_name'} = Levels::where('id', $member_info->{'level_id'})->value('name_en');
- }
- return $this->apiResponseSuccess($member_info, '获取信息成功');
- }
-
- function getShareInfo()
- {
- $member = Members::where('id', $this->member->{'id'})->select(['id', 'invite_code'])->first();
- $app_url = 'http://'.env('APP_HOST_DOWN_WEB');
- $share_img = public_path('code_img/code/' . $this->member->{'id'} . 'share_img.png');
- if (!is_file($share_img)) {
- file_put_contents($share_img, QrCode::format('png')->size(169)->margin(1)->generate($app_url . '/register?code=' . $member->{'invite_code'}));
- }
- $member->{'share_img'} = $app_url . '/code_img/code/' . $this->member->{'id'} . 'share_img.png';
- return $this->apiResponseSuccess($member, 'member.yes');
- }
-
- function getShareList()
- {
- $direct_ids = Members::where('recom_id', $this->member->{'id'})->pluck('id')->toArray();
- $m_ids = MemberClans::where('m_id', $this->member->{'id'})->value('m_ids');
- if (empty($direct_ids)) {
- $direct_num = 0;
- } else {
- $direct_num = 0;
- }
- if (empty($m_ids)) {
- $total_num = 0;
- } else {
- $m_ids = array_filter(explode(',', $m_ids));
- $total_num = 0;
- }
- $share_list = Members::where('recom_id', $this->member->{'id'})->select(['id', 'invite_code', 'mobile', 'created_at', 'level_id'])->get();
- foreach ($share_list as &$share) {
- $t_m_ids = MemberClans::where('m_id', $share->{'id'})->value('m_ids');
- $t_m_ids = explode(',', $t_m_ids);
- $t_m_ids[] = $share->{'id'};
- $t_m_ids = array_unique(array_filter($t_m_ids));
- $share->{'t_num'} = count($t_m_ids);
- $share->{'contract_num'} = 0;
- $share->{'level_name'} = Levels::where('id', $share->{'level_id'})->value('name');
- }
- return $this->apiResponseSuccess(['list' => $share_list, 'total_num' => $total_num, 'direct_num' => $direct_num], 'member.yes');
- }
-
- public function oneImage(Request $request)
- {
- $result = $this->base64ToImage($request->input('image', ""), 'attest');
- if ($result['code'] === false) {
- return $this->apiResponseError([], 'member.no');
- } else {
- if ($result) {
- return $this->apiResponseSuccess(['url' => $result['url']], 'member.yes');
- } else {
- return $this->apiResponseError([], 'member.no');
- }
- }
- }
-
- protected function base64ToImage($base64ImageContent, $path)
- {
- $base64_image_content = $base64ImageContent;
- if (!empty($base64_image_content)) {
- $upload_path = "storage" . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . date('Ymd', time()) . DIRECTORY_SEPARATOR;
- $img_url = md5(uniqid() . time()) . '.jpg';
- $upload_path1 = public_path($upload_path);
- if (!is_dir($upload_path1)) {
- mkdir($upload_path1, 0777, true);
- }
- try {
- $base64_image_content = str_replace('[removed]', '', $base64_image_content);
- preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);
-
- $oss = Storage::disk('oss');
- $pathA = "{$upload_path}{$img_url}";
- if (empty($result[1])) {
- $update = $oss->put($pathA, base64_decode($base64_image_content));
- if (!$update) {
- file_put_contents($upload_path1 . $img_url, base64_decode($base64_image_content));
- }
- } else {
- $update = $oss->put($pathA, base64_decode(str_replace($result[1], '', $base64_image_content)));
- if (!$update) {
- file_put_contents($upload_path1 . $img_url, base64_decode(str_replace($result[1], '', $base64_image_content)));
- }
- }
- return [
- 'code' => true,
- 'url' => $update ? $oss->url($pathA) : asset($pathA),
- ];
- } catch (\Exception $e) {
- return [
- 'code' => false,
- 'msg' => "图片错误" . $e->getMessage() . " " . $e->getLine(),
- ];
- }
- } else {
- return [
- 'code' => false,
- 'msg' => "请上传图片",
- ];
- }
- }
-
- function getMemberAddress()
- {
- $addresslist = MemberAddress::where('member_id', $this->member->{'id'})->where('is_del', '0')->orderBy('is_default', 'asc')->orderBy('id', 'desc')->get();
- return $this->apiResponseSuccess($addresslist, '获取成功');
- }
-
- function delMemberAddress()
- {
- $a_id = request()->get('a_id', '1');
- if (empty($a_id)) return $this->apiResponseError([], '缺少必要参数');
- $row = MemberAddress::where([['id', $a_id], ['member_id', $this->member->{'id'}]])->update(['is_del' => 1]);
- if ($row) {
- return $this->apiResponseSuccess([], '删除成功');
- } else {
- return $this->apiResponseError([], '删除失败');
- }
- }
-
- function editAddress()
- {
- $addressid = request()->get('addressid', '1');
- $data['member_id'] = $this->member['id'];
- $data['consignee'] = request()->get('consignee', '张三3242');
- $data['phone'] = request()->get('phone', '13600136001');
- $data['is_default'] = request()->get('is_default', '1');
- $data['address'] = request()->get('address', '第三方都是');
- $data['area'] = request()->get('area', '2');
- $data['city'] = request()->get('city', '3');
- $data['province'] = request()->get('province', '1');
- $data['city_names'] = request()->get('city_names', '北京市东城区');
- if (empty($data['member_id'])) return $this->apiResponseError([], '用户标识不能为空');
- if (empty($data['province']) || empty($data['city']) || empty($data['area'])) return $this->apiResponseError([], '省市区不能为空');
- $data['consignee'] = strip_tags($data['consignee']);
- if (empty($data['consignee'])) return $this->apiResponseError([], '姓名不能为空');
- if (mb_strlen($data['consignee'], 'UTF-8') > 10) return $this->apiResponseError([], '姓名过长');
- if (empty($data['phone'])) return $this->apiResponseError([], '手机号不能为空');
- $data['address'] = strip_tags($data['address']);
- if (empty($data['address'])) return $this->apiResponseError([], '请输入详细地址');
- if (mb_strlen($data['address'], 'UTF-8') > 25) $this->apiResponseError([], '地址过长');
- if (!MemberServer::verifyMobile($data['phone'])) $this->apiResponseError([], '手机格式不正确');
- if ($data['is_default'] == 1) {
- MemberAddress::where('member_id', $this->member->{'id'})->update(['is_default' => 2]);
- }
- if (!empty($addressid)) MemberAddress::where('id', $addressid)->update($data);
- else MemberAddress::create($data);
- return $this->apiResponseSuccess([], '编辑成功');
- }
-
- function setDefaultAddress()
- {
- $address_id = request()->get('address_id', '2');
- if (empty($address_id)) return $this->apiResponseError([], '缺少必要参数');
- $info = MemberAddress::where([['member_id', $this->member['id']], ['id', $address_id]])->first();
- if (empty($info)) return $this->apiResponseError([], '信息错误');
- if ($info['is_default'] == 1) {
- MemberAddress::where('member_id', $this->member->{'id'})->where('id', $address_id)->update(['is_default' => 2]);
- return $this->apiResponseError([], '取消成功');
- } else {
- MemberAddress::where('member_id', $this->member->{'id'})->update(['is_default' => 2]);
- MemberAddress::where('member_id', $this->member->{'id'})->where('id', $address_id)->update(['is_default' => 1]);
- return $this->apiResponseSuccess([], '设置成功');
- }
- }
-
- function getDefaultAddress()
- {
- $address_id = request()->get('address_id', '');
- $where = [['member_id', $this->member->{'id'}], ['is_del', '0']];
- if ($address_id) $where[] = ['id', $address_id];
- $addresslist = MemberAddress::where($where)->orderBy('is_default', 'asc')->orderBy('id', 'desc')->first()->toArray();
- if (empty($addresslist)) $addresslist = [];
- return $this->apiResponseSuccess($addresslist, '获取成功');
- }
-
- function getAliBindingPay()
- {
- if ($this->member->{'status'} != '1') {
- return $this->apiResponseError([], '当前已完成绑定');
- }
- $attestation_sn = IndentNum::getIndentNum(3);
- $pay_money=Config::where('key','attestation_money')->value('value');
- if(empty($pay_money))$pay_money=1.68;
- $aliPay = new PayServer();
- $notify='http://'.env('APP_HOST_WEB').'/notify';
- $pay_info=$aliPay->appAliPay($attestation_sn,'实名认证',$pay_money,$notify);
- if(!empty($pay_info)){
- AliBinding::where('m_id',$this->member->{'id'})->update(['status'=>5]);
- AliBinding::create(['m_id'=>$this->member->{'id'},'money'=>$pay_money,'attestation_sn'=>$attestation_sn,'pay_sn'=>'','pay_content'=>'','status'=>1,'ali_open_id'=>'']);
- return $this->apiResponseSuccess(['pay_info'=>$pay_info,'mobile'=>$this->member->{'mobile'},'money'=>$pay_money,'attestation_sn'=>$attestation_sn],'获取信息成功');
- }else{
- return $this->apiResponseError([],'支付信息创建失败');
- }
- }
-
- public function notifyUrl()
- {
- $aliPay = new PayServer();
- $aliPay->notifyUrl();
- }
- }
|