| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Modes\AccountLog;
- use App\Modes\Advertising;
- use App\Modes\Area;
- use App\Modes\Proxy;
- use App\Modes\ProxyArea;
- use App\Modes\Upgrade;
- use App\Modes\User;
- use App\Modes\UserBank;
- use App\Modes\UserMsg;
- use App\Rules\BankNum;
- use App\Rules\IdCard;
- use App\Rules\Phone;
- use DemeterChain\C;
- use Doctrine\DBAL\Driver\PDOException;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Mockery\Exception;
- use SimpleSoftwareIO\QrCode\Facades\QrCode;
- use Illuminate\Support\Facades\DB;
- class UserController extends Controller
- {
- public function getUser(Request $request)
- {
- $mobile = $request->post('mobile', null);
- $user=User::whereMobile($mobile)->select(['id', 'mobile', 'nick_name'])->first();
- $user->coin=round($user->coin,2);
- return showJsonSucc('获取用户信息成功',$user );
- }
- /**
- * 用户资料
- * @author lyh
- * @date 2019/3/19
- * @description
- */
- public function show()
- {
- $user = \Auth::user();
- //查看用户代理的区域 wsl 20190702
- $dailistr='';
- if(!empty($user)&&$user['level']>5){
- $row=ProxyArea::whereUid($user->id)->whereIn('status',[2,3])->select('province','city','district')->first();
- if(!empty($row)){
- $daili[]=Area::whereId($row->province)->value('name');
- $daili[]=Area::whereId($row->city)->value('name');
- $daili[]=Area::whereId($row->district)->value('name');
- if(!empty($daili))$dailistr=implode(' ',$daili);
- }
- }
- $userdatas = DB::select('select * from zx_user where id = :id', ['id' => \Auth::id()]);
- // $auth = Upgrade::condition(\Auth::id());
- // var_dump($auth);exit;
- return showJsonSucc(1001, [
- 'id' => $user->id,
- 'mobile' => $user->mobile,
- 'nick_name' => $user->nick_name,
- 'avatar' => $user->avatar,
- 'real_name' => $user->real_name,
- 'balance' => $user->balance,
- 'coin' => $user->coin,
- 'is_apply' => $user->is_apply,
- 'invitor' => User::getInfo($user->invitor, ['id', 'nick_name','mobile']),
- 'invite_code' => $user->invite_code,
- 'invite_image' => User::getInviteImage($user->invite_code),
- 'province' => Area::getName($user->province),
- 'city' => Area::getName($user->city),
- 'district' => Area::getName($user->district),
- 'level' => $user->level,
- 'status' => $user->status,
- 'created_at' => $userdatas[0]->created_at,
- 'commission' => AccountLog::getSumMoney(\Auth::id(), [10, 11, 12, 13, 20, 21, 22, 23]), // 佣金
- 'url' => env('APP_URL'),
- 'upGrade' => Upgrade::condition(\Auth::id()), // 判断是否达到升级条件
- 'proxy_area'=>$dailistr
- ]);
- }
- public function getPayQrcode(Request $request){
- $param=$request->all();
- if(empty($param['code_url'])){
- return showJsonErr('code_url 必填');
- }
- $res=User::getPayCode($param['code_url']);
- if(!empty($res)) return $res;
- return '';
- }
- /*
- * 修改支付密码
- * wsl
- * 20190726
- * */
- public function modifyPayPass(Request $request){
- $validator = \Validator::make($param = $request->post(), [
- 'pay_password' => 'required|min:6',
- 'sms' => 'required|size:4'
- ],['sms.required'=>'验证码不能为空','sms.size'=>'验证码长度为4']);
- if ($validator->fails()) {
- return showJson(102, $validator->errors()->first());
- }
- // 验证短信
- $smsProvider = \App::make('sms');
- $sms = $smsProvider->verifySms(\Auth::user()->mobile, $param['sms']);
- if ($sms == false) {
- return showJson(102, '短信验证码错误');
- }
- $update = User::whereId(\Auth::id())->update(['pay_password' => md5(md5($param['pay_password']))]);
- if (empty($update)) {
- return showJson(102, '修改失败');
- }
- return showJson(101, '修改成功');
- }
- /**
- * 代理明细
- * @author lyh
- * @date 2019/3/19
- * @description
- */
- public function invitor(Request $request)
- {
- $validator = \Validator::make($param = $request->post(), [
- 'type' => 'required|between:0,2',
- 'page' => 'required|numeric'
- ]);
- if ($validator->fails()) {
- return showJson(102, $validator->errors()->first());
- }
- $userinfo=User::whereId(\Auth::id())->first()->toArray();
- if ($param['type'] == 1) {
- $ids = User::getInviteeOne(\Auth::id());
- //获取当前间1配置的百分比
- $pct=0;
- if($userinfo['level']!=1){
- $pct=Proxy::getJianPct($userinfo,1,1,$ids);
- }
- } elseif ($param['type'] == 2) {
- $ids = User::getInviteeTwo(\Auth::id());
- $pct=0;
- if($userinfo['level']!=1) {
- $pct = Proxy::getJianPct($userinfo, 2, 1, $ids);
- }
- } else {
- $ids = User::getInvitee(\Auth::id());
- $pctarr = Proxy::getSettingByAreaAndLevel($userinfo['level'],$userinfo['province'],$userinfo['city'],$userinfo['district']);
- $pct=$pctarr['proxy_invite'];
- }
- $user = User::getList($ids, ['nick_name', 'id', 'mobile']);
- if ($user->isNotEmpty()) {
- collect($user->items())->each(function ($item, $key) {
- $item['invitorNum'] = User::whereInvitor($item['id'])->count('id'); // 下级数量
- $item['performance'] = Upgrade::whereUid($item['id'])->whereStatus(3)->sum('money'); // 待完善 代理费业绩
- });
- }
- return showJsonSucc('获取数据成功', [
- 'user' => $user,
- 'pct' => $pct,
- 'count' => count($ids),
- 'totalPerformance' => Upgrade::whereStatus(3)->whereIn('uid', $ids)->sum('money')
- ]);
- }
- /**
- * 完善信息
- * @author lyh
- * @date 2019/3/21
- * @description
- */
- public function update(Request $request)
- {
- $validator = \Validator::make($param = $request->post(), [
- 'id_card' => [new IdCard],
- 'real_name' => 'string',
- 'nick_name' => 'string',
- 'province' => 'required_with_all:city,district|numeric|exists:area,id',
- 'city' => 'required_with_all:province,district|numeric|exists:area,id',
- 'district' => 'required_with_all:province,city|numeric|exists:area,id',
- 'username' => 'string',
- 'phone' => [new Phone],
- //'bank_number' => [new BankNum],
- 'bank_name' => 'string',
- ]);
- if ($validator->fails()) {
- return showJson(102, $validator->errors()->first());
- }
- $userParam = array_filter($param, function ($v, $k) {
- return !empty($v) && in_array($k, [
- 'id_card',
- 'real_name',
- 'nick_name',
- 'district',
- 'city',
- 'province',
- ]);
- }, ARRAY_FILTER_USE_BOTH);
- $userBankParam['username']=empty($param['username'])?'':trim($param['username']);
- $userBankParam['phone']=empty($param['phone'])?'':trim($param['phone']);
- $userBankParam['bank_name']=empty($param['bank_name'])?'':trim($param['bank_name']);
- $userBankParam['bank_number']=empty($param['bank_number'])?'':trim($param['bank_number']);
- $userBankParam['province']=empty($param['province'])?0:trim($param['province']);
- $userBankParam['city']=empty($param['city'])?0:trim($param['city']);
- $userBankParam['district']=empty($param['district'])?0:trim($param['district']);
- if (isset($param['province'])) {
- if (Area::isRealation($param['province'], $param['city'], $param['district']) == false) {
- return showJsonErr('地区关系错误');
- }
- }
- \DB::beginTransaction();
- try {
- if ($userParam) {
- User::whereId(\Auth::id())->update($userParam);
- }
- $bank = UserBank::whereUid(\Auth::id())->first();
- if ($userBankParam) {
- $userBankParam['status'] = 2;
- $userBankParam['uid'] = \Auth::id();
- if ($bank) {
- UserBank::whereUid(\Auth::id())->update($userBankParam);
- } else {
- UserBank::whereUid(\Auth::id())->insert($userBankParam);
- }
- }
- \DB::commit();
- } catch (Exception $exception) {
- \DB::rollBack();
- return showJsonErr($exception->getMessage());
- }
- // 确认信息完善则修改等级否则不做操作
- $this->fullStatus();
- return showJsonSucc('更新数据成功');
- }
- /**
- * 修改登录密码
- * @author lyh
- * @date 2019/4/19
- * @param Request $request
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @description
- */
- public function modifyPassword(Request $request)
- {
- $validator = \Validator::make($param = $request->all(), [
- 'new_pass' => 'required|min:6',
- 'comfirm_pass' => 'required|same:new_pass',
- 'mobile' => [
- 'integer',
- new Phone()
- ],
- 'sms' => 'required|numeric|digits_between:4,4',
- 'type' => 'required|integer|between:1,2'
- ]);
- if ($validator->fails()) {
- return showJsonErr($validator->errors()->first());
- }
- if ($param['mobile'] != \Auth::user()->mobile) {
- return showJsonErr('抱歉,请输入正确的手机号码');
- }
- $smsProvider = \App::make('sms');
- $sms = $smsProvider->verifySms($param['mobile'], $param['sms']);
- if ($sms == false) {
- return showJson(102, '短信验证码错误');
- }
- if ($param['type'] == 1) {
- $field = 'password';
- } else {
- $field = 'pay_password';
- }
- $result = User::whereMobile($param['mobile'])->update([$field => User::encodePassword($param['new_pass'])]);
- if (!$result) {
- return showJsonErr('修改密码失败');
- }
- return showJsonSucc('修改密码成功');
- }
- /**
- * 修改用户信息完善状态、等级
- * @author lyh
- * @date 2019/3/21
- * @description
- */
- private function fullStatus()
- {
- if (\Auth::user()->level == 0) {
- $user = User::whereId(\Auth::id())->select(['nick_name', 'real_name', 'id_card', 'province', 'city', 'district', 'level'])->first()->toArray();
- if ($bank = UserBank::whereUid(\Auth::id())->select(['id'])->first()) {
- $bank = $bank->toArray();
- $checkData = array_merge($user, $bank);
- }
- // 如果未通过则进行验证
- if ($bank && $checkData['level'] == 0) {
- $isFull = true;
- foreach ($checkData as $key => $item) {
- if (empty($item) && $key != 'level') {
- $isFull = false;
- }
- }
- User::whereId(\Auth::id())->update(['level' => $isFull == true ? 1 : 0]);
- }
- }
- }
- }
|