UserController.php 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Events\RegisterApplyEvent;
  4. use App\Handlers\ImageUploadHandler;
  5. use App\Models\Address;
  6. use App\Models\Order;
  7. use App\Models\Ordertest;
  8. use App\Models\TestUserW;
  9. use App\Models\User;
  10. use App\Models\UserCert;
  11. use App\Models\UserZ;
  12. use App\Models\Warea;
  13. use Carbon\Carbon;
  14. use GuzzleHttp\Client;
  15. use Illuminate\Http\Request;
  16. use Illuminate\Support\Facades\Auth;
  17. use Illuminate\Support\Facades\Cache;
  18. use Illuminate\Support\Facades\DB;
  19. use Illuminate\Support\Facades\Log;
  20. use Intervention\Image\Facades\Image as Image;
  21. use Jenssegers\Agent\Facades\Agent;
  22. use Validator;
  23. use Illuminate\Support\Facades\Cookie;
  24. use Symfony\Component\HttpFoundation\Cookie as SCookie;
  25. class UserController extends Controller{
  26. /*获取用户状态*/
  27. public function getinfo(User $user,Request $request){
  28. $users=Auth::user();
  29. Log::error('sssss'.json_encode($request->all()));
  30. $user=User::find($users->id);
  31. if ($user->freeze_status==1){
  32. return $this->error(20014);
  33. }
  34. $user->login_at=Carbon::now();
  35. $user->save();
  36. $recom_num=UserCert::where('recom_id',$user->id)->where('recom_audit',0)->count();
  37. $agent_num=UserCert::where('agent_id',$user->id)->where('recom_audit',1)->where('agent_audit',0)->count();
  38. $num=Ordertest::whereIn('pay_status',[0,1])->where('user_id',$users->id)->where('is_deleted',0)->sum('no_pay_money');
  39. if ($user->recom_id==null){
  40. $users->recom_nickname='';
  41. $users->recom_mobile='';
  42. }else{
  43. $users->recom_nickname=$user->recom_user->nickname;
  44. $users->recom_mobile=$user->recom_user->mobile;
  45. }
  46. if ($users->cert_status==4){
  47. $users->reject_reason=UserCert::where('user_id',$users->id)->orderByDesc('created_at')->value('recom_audit_desc');
  48. }elseif ($users->cert_status==5){
  49. $users->reject_reason=UserCert::where('user_id',$users->id)->orderByDesc('created_at')->value('agent_audit_desc');
  50. }
  51. if ($user->openid){
  52. $users->openid=$user->openid;
  53. }else{
  54. $users->openid=$user->openid;
  55. }
  56. $users->status=$users->status==0?1:0;
  57. $users->recom_num=$recom_num;
  58. $users->agent_num=$agent_num;
  59. $users->no_money=$num;
  60. return $this->success($users);
  61. }
  62. /**获取openid**/
  63. public function get_openid(Request $request){
  64. // $wechat=app('wechat.')
  65. }
  66. /*实名认证的提交*/
  67. public function submit_user(Request $request,UserCert $userCert){
  68. $data=User::where('cre_num',$request->cre_num)->where('id','!=',Auth::user()->id)->first();
  69. if ($data){
  70. if ($data->deleted_at!=null){
  71. return $this->new_error(300,'当前身份证号已被禁用');
  72. }
  73. return $this->new_error(300,'当前身份证号已被使用');
  74. }
  75. $user=User::find(Auth::user()->id);
  76. if(empty($user->nickname)){
  77. $user->nickname=$request->wechatname;
  78. $user->name=$request->wechatname;
  79. }
  80. $user->realname=$request->realname;
  81. $user->cre_num=$request->cre_num;
  82. // $user->password=md5($request);
  83. $user->cert_status=1;
  84. $user->save();
  85. $userCert->recom_id=$user->recom_id;
  86. $userCert->user_id=$user->id;
  87. $userCert->save();
  88. $recom=User::where('id',$user->recom_id)->first();
  89. if($recom->openid){
  90. $mes['openid']=$recom->openid;
  91. $mes['data']=[
  92. 'first' => '代理注册信息已提交,请您及时审核',
  93. 'keyword1' => $user->nickname,
  94. 'keyword2' => $user->mobile,
  95. 'keyword3' => date("Y-m-d H:i"),
  96. 'remark' => '点击链接进入系统,查看详情',
  97. ];
  98. event(new RegisterApplyEvent($mes));
  99. }
  100. return $this->success([]);
  101. }
  102. /*
  103. * 获取用户信息
  104. */
  105. public function per_data(Request $request){
  106. $users=Auth::user();
  107. $user=User::find($users->id);
  108. if(empty($user)){
  109. return $this->error('300',[],'代理信息不存在');
  110. }
  111. // $users->up_nickname=$user->agent_user->wechatname;
  112. // $users->recom_nickname=$user->recom_user->wechatname;
  113. // $users->level=judge_level($users->level);
  114. $re["id"]=$user->id;
  115. $re['uuid']= '1002'.substr($user->mobile,5,6);
  116. $re["nickname"]= $user->nickname;
  117. $re["avatar"]= $user->headimgurl;
  118. $re["money"]= $user->money;
  119. $re["level"]= judge_level($users->level);
  120. $re["mobile"]= $user->mobile;
  121. $re["level_change"]= $user->level_change;
  122. $re["store"]= $user->store==null?false:true;
  123. $re["order_num1"]=Order::where('agent_id',$user->id)->where('status','=',0)->count();//待审核订单数量
  124. $re["order_num2"]= Order::where('agent_id',$user->id)->where('status','=',2)->count();// 待收货订单数量
  125. $re["order_num3"]=Order::where('agent_id',$user->id)->whereIn('status',[3,4,5])->count();//已完成订单数量
  126. $re['openid']=$user->openid;
  127. $re['warea']=Warea::where('id',$user->warea_id)->value('name');
  128. $re['warea_info']=Warea::where('id',$user->warea_id)->select('avatar','qrcode','admin_name')->first();
  129. if ($user->password==md5($user->mobile)){
  130. $re['pass_status']=true;
  131. }else{
  132. $re['pass_status']=false;
  133. }
  134. //测试人员
  135. // $test_user=TestUserW::pluck('phone')->toArray();
  136. // if(in_array($user->mobile,$test_user)){
  137. // $re['show_store']=true;
  138. // }else{
  139. // $re['show_store']=false;
  140. // }
  141. //正式开放
  142. if($user->status==0 && $user->cert_status==6 && $user->service_status==0 && empty($user->deleted_at)){
  143. $re['show_store']=true;
  144. }else{
  145. $re['show_store']=false;
  146. }
  147. return $this->success($re);
  148. }
  149. /*更改手机号*/
  150. public function change_num(Request $request){
  151. try {
  152. $login=new LoginController();
  153. $code = $login->judge_code('verificationCode_' . MD5($request->mobile), $request->verify_code);
  154. Cache::forget('verificationCode_' . MD5($request->mobile));
  155. if ($code==300||$code==400){
  156. return $this->new_error(300,'验证码不正确或过期');
  157. }
  158. $user=User::find(Auth::user()->id);
  159. $mobile=$user->mobile;
  160. $user->mobile=$request->mobile;
  161. $user->save();
  162. try{
  163. $u=UserZ::where('phone',$mobile)->first();
  164. if ($u){
  165. $u->phone=$request->mobile;
  166. $u->save();
  167. }
  168. }catch (\Exception $exception){
  169. Log::error('这是手机号更改的地方出错了'.$exception);
  170. }
  171. return $this->success([]);
  172. }catch (\Exception $exception){
  173. Log::error('-----更改手机号出错------');
  174. return $this->new_error(300,'更改出错,请联系客服');
  175. }
  176. }
  177. /*换绑手机号之发送*/
  178. public function send_code(Request $request){
  179. try {
  180. $mobile=Auth::user()->mobile;
  181. if ($request->mobile==$mobile){
  182. Log::error('fsdf');
  183. return $this->new_error(300,'该手机号和原手机号一致');
  184. }
  185. $count=User::where('mobile',$request->mobile)->where('id','<>',Auth::user()->id)->count();
  186. if ($count>0){
  187. return $this->new_error(300,'该手机号已被使用');
  188. }
  189. $login=new LoginController();
  190. $code=$login->send_code($request->mobile,0,$request->code);
  191. if ($code['code']==300){
  192. return $this->error(300,[],$code['message']);
  193. }
  194. return $this->success([]);
  195. }catch (\Exception $exception){
  196. Log::error('____更改手机号之发送验证码出错_____');
  197. return $this->new_error(300,'更改出错,请联系客服');
  198. }
  199. }
  200. /*地址管理---展示地址*/
  201. public function show_address(){
  202. $id=Auth::user()->id;
  203. $address=Address::where('user_id',$id)->where('is_deleted',0)->with(['get_user'])->orderByDesc('type')->orderbyDesc('updated_at')->orderbyDesc('id')->get();
  204. $data=[];
  205. foreach ($address as $k=>$v){
  206. $data[$k]["id"]=$v->id;
  207. $data[$k]["type"]=$v->type;
  208. $data[$k]["con_name"]=$v->username;
  209. $data[$k]["con_mobile"]=$v->mobile;
  210. $data[$k]["provice"]=$v->province;
  211. $data[$k]["city"]=$v->city;
  212. $data[$k]["area"]=$v->town;
  213. $data[$k]["address"]=$v->address;
  214. $data[$k]["belong_id"]=$id;
  215. // $data[$k]["belong_id"]=$v->belong_id==null?'':$v->belong_id;
  216. $data[$k]['belong_user']='';
  217. if ($v->belong_id){
  218. $user=User::where('id',$v->belong_id)->select('id as belong_id','level as belong_level','nickname as belong_nickname','mobile as belong_mobile','headimgurl as avatar')->first();
  219. $data[$k]['belong_user']=$user;
  220. }
  221. if ($v->get_user){
  222. $data[$k]["level"]=$v->get_user->level;
  223. $data[$k]["nickname"]=$v->get_user->nickname;
  224. $data[$k]["phone"]=$v->get_user->mobile;
  225. }else{
  226. $data[$k]["level"]=null;
  227. $data[$k]["nickname"]=null;
  228. $data[$k]["phone"]=null;
  229. }
  230. }
  231. // Log::error(json_encode($data));
  232. return $this->success_list($data);
  233. }
  234. /*地址管理-----新增地址*/
  235. public function add_address(Request $request,Address $address){
  236. // Log::error('{----地址----}'.json_encode($request->all()));
  237. $id=Auth::user()->id;
  238. // $data=$request->all();
  239. $add=Address::where('mobile',$request->con_mobile)->where('user_id',$id)->where('is_deleted',0)->where('username',$request->con_name)->where('address',$request->address)->first();
  240. if ($add){
  241. return $this->error(40023,'','当前地址已存在,请搜索手机号'.$request->con_mobile.'查找该地址');
  242. }
  243. if ($request->type==1){
  244. $count=Address::where('user_id',$id)->where('is_deleted',0)->where('type',1)->count();
  245. if ($count>=3){
  246. $num=$count-2;
  247. Address::where('user_id',$id)->where('is_deleted',0)->where('type',1)->orderBy('created_at')->limit($num)->update(['type'=>0]);
  248. }
  249. }
  250. $user=User::where('mobile',$request->con_mobile)->first();
  251. if ($user){
  252. // if ($user->id!=$id && $user->level==3){
  253. // return $this->error(40023,'','当前手机号对应的代理-不属于自己的团队');
  254. // }
  255. // $ids=User::where('agent_id',$id)->pluck('id')->toArray();
  256. // $idss=User::whereIn('agent_id',$ids)->pluck('id')->toArray();
  257. // $i=[$id];
  258. // $ar=array_merge($ids,$i);
  259. // $ar=array_merge($ar,$idss);
  260. // if (in_array($user->id,$ar)){
  261. // $address->belong_id=$user->id;
  262. // }else{
  263. // return $this->error(40023,$ar,'当前手机号对应的代理不属于自己的团队');
  264. // }
  265. $address->belong_id=$user->id;
  266. }
  267. // if (!$request->province){
  268. // return $this->error(50021,'','选择这省市区');
  269. // }
  270. $address->type=$request->type;
  271. $address->user_id=$id;
  272. $address->username=$request->con_name;
  273. $address->mobile=$request->con_mobile;
  274. $address->province=$request->provice;
  275. $address->city=$request->city;
  276. $address->town=$request->area;
  277. $address->address=$request->address;
  278. $re=User::where('mobile',$request->con_mobile)->select('level','nickname')->first();
  279. if ($re){
  280. $address->level=$re->level;
  281. $address->nickname=$re->nickname;
  282. }
  283. $address->save();
  284. return $this->success(['id'=>$address->id]);
  285. }
  286. /*地址管理----删除地址*/
  287. public function del_address(Request $request){
  288. $address=Address::find($request->id);
  289. $address->is_deleted=1;
  290. $address->save();
  291. return $this->success([]);
  292. }
  293. /*地址管理----编辑地址*/
  294. public function update_address(Request $request){
  295. $address=Address::find($request->id);
  296. if ($address->con_name==$request->con_name&& $address->mobile==$request->con_mobile&& $address->province==$request->provice&&$address->city==$request->city&&$address->town==$request->area&&$address->address==$request->address){
  297. return $this->error(50024,'','当前修改的地址已存在,请搜索手机号'.$request->con_mobile.'查找该地址');
  298. }
  299. if ($request->type==1){
  300. $count=Address::where('user_id',$request->id)->where('is_deleted',0)->where('type',1)->count();
  301. if ($count>=3){
  302. $num=$count-2;
  303. Address::where('user_id',$request->id)->where('is_deleted',0)->where('type',1)->orderBy('created_at')->limit($num)->update(['type'=>0]);
  304. }
  305. }
  306. $user=User::where('mobile',$request->con_mobile)->first();
  307. if ($user){
  308. // if ($user->id!=$address->user_id && $user->level==3){
  309. // return $this->error(40023,'','当前手机号对应的代理不属于自己的团队');
  310. // }
  311. // $ids=User::where('agent_id',$address->user_id)->pluck('id')->toArray();
  312. // $idss=User::whereIn('agent_id',$ids)->pluck('id')->toArray();
  313. // $ar=array_merge($ids,$address->user_id,$idss);
  314. // if (in_array($ar,$user->id)){
  315. // $address->belong_id=$user->id;
  316. // }else{
  317. // return $this->error(40023,'','当前手机号对应的代理不属于自己的团队');
  318. // }
  319. $address->belong_id=$user->id;
  320. }
  321. // if (!$request->province){
  322. // return $this->error(50021,'','选择这省市区');
  323. // }
  324. $address->type=$request->type;
  325. $address->username=$request->con_name;
  326. $address->mobile=$request->con_mobile;
  327. $address->province=$request->provice;
  328. $address->city=$request->city;
  329. $address->town=$request->area;
  330. $address->address=$request->address;
  331. $re=User::where('mobile',$request->con_mobile)->select('level','nickname')->first();
  332. if ($re){
  333. $address->level=$re->level;
  334. $address->nickname=$re->nickname;
  335. }
  336. $address->save();
  337. return $this->success([]);
  338. }
  339. /*搜索地址**/
  340. public function search_address(Request $request){
  341. $where=[];
  342. if ($request->search_name){
  343. $search_name=$request->search_name;
  344. $where=function ($q)use ($search_name){
  345. $q->where('username','like',"%$search_name%")
  346. ->orwhere('mobile','like',"%$search_name%");
  347. };
  348. }
  349. $re=Address::where('user_id',Auth::user()->id)->where($where)->with(['get_user'])->where('is_deleted',0)->orderByDesc('created_at')->get();
  350. foreach ($re as $k=>$v){
  351. if($v->get_user){
  352. $re[$k]['nickname']=$v->get_user->nickname;
  353. $re[$k]['level']=$v->get_user->level;
  354. }else{
  355. $re[$k]['nickname']=null;
  356. $re[$k]['level']=null;
  357. }
  358. unset($re[$k]['get_user']);
  359. }
  360. return $this->success_list($re);
  361. }
  362. /**--确认等级变动--**/
  363. public function confirm_level(){
  364. $id=Auth::user()->id;
  365. $user=User::find($id);
  366. $user->level_change=0;
  367. $user->save();
  368. return $this->success([]);
  369. }
  370. public function ress(Request $request){
  371. $add=Address::find($request->id);
  372. echo $add->user->realname;
  373. // return $add;
  374. }
  375. /*--授权书---*/
  376. public function auth_code(Request $request){
  377. // $users=Auth::user();
  378. // $user=User::find($users->id);
  379. // Log::error(json_encode($request->all()));
  380. $user=User::find($request->id);
  381. if ($user->cert_status==3||$user->cert_status==6){
  382. if ($user->auth_startime &&$user->auth_code){
  383. if ($user->auth_img==null){
  384. $name=$user->realname==null?$user->nickname:$user->realname;
  385. $url=$this->auth_create($name,$user->mobile,judge_level($user->level),$user->auth_code,$user->auth_startime,$user->auth_endtime,$user->id);
  386. $user->auth_img=$url;
  387. $user->save();
  388. }
  389. $data['status']=0;
  390. }else{
  391. $data['status']=1;
  392. }
  393. }else{
  394. $data['status']=1;
  395. }
  396. if ($user->service_status==1){
  397. return $this->error(50021,'','该代理尚未通过政委审核');
  398. }
  399. if ($user->service_status==2){
  400. return $this->error(50021,'','该代理的申请已被政委驳回');
  401. }
  402. $data['auth_startime']=strtotime($user->auth_startime)*1000;
  403. $data['auth_endtime']=strtotime($user->auth_endtime)*1000;
  404. $data['code']=$user->auth_code;
  405. $data['phone']=$user->mobile;
  406. $data['level_name']=judge_level($user->level);
  407. $data['realname']=$user->realname==null?$user->nickname:$user->realname;
  408. $data['url']=$user->auth_img==null?'':$user->auth_img;
  409. // Log::error('{----------}'.json_encode($data));
  410. return $this->success($data);
  411. }
  412. public function auth_create($name,$phone,$level_name,$auth_code,$time_start,$time_end,$num){
  413. $client=new Client();
  414. $url='http://api.tongnianshijie.com/6141218.jpg';
  415. $avatarResponse = $client->get($url);
  416. $img = Image::make($avatarResponse->getBody()->getContents());
  417. if (mb_strlen($name)==2){
  418. $x=400;
  419. }elseif (mb_strlen($name)==3){
  420. $x=370;
  421. }else{
  422. $name=mb_substr($name,0,3);
  423. $x=370;
  424. }
  425. $img->text($name, 370, 675,function ($font){
  426. $font->file(base_path().'/public/fzch.TTF');
  427. $font->size(50);
  428. $font->angle(0);
  429. $font->color('936A4E');
  430. });
  431. $img->text($level_name, 356, 447,function ($font){
  432. $font->file(base_path().'/public/fangzheng.ttf');
  433. $font->size(37);
  434. $font->angle(0);
  435. $font->color('674329');
  436. });
  437. $img->text($level_name, 540, 765,function ($font){
  438. $font->file(base_path().'/public/fzch.TTF');
  439. $font->size(50);
  440. $font->angle(0);
  441. $font->color('936A4E');
  442. });
  443. $img->text($auth_code, 376, 857,function ($font){
  444. $font->file(base_path().'/public/fzch.TTF');
  445. $font->size(26);
  446. $font->angle(0);
  447. $font->color('684327');
  448. });
  449. $year=mb_substr($time_start,0,4);
  450. $month=mb_substr($time_start,5,2);
  451. $day=mb_substr($time_start,8,2);
  452. $year_t=mb_substr($time_end,0,4);
  453. $month_t=mb_substr($time_end,5,2);
  454. $day_t=mb_substr($time_end,8,2);
  455. $img->text("{$year}.{$month}.{$day}", 310, 910,function ($font){
  456. $font->file(base_path().'/public/fangzheng.ttf');
  457. $font->size(30);
  458. $font->angle(0);
  459. $font->color('684327');
  460. });
  461. $img->text("{$year_t}.{$month_t}.{$day_t}", 530, 910,function ($font){
  462. $font->file(base_path().'/public/fangzheng.ttf');
  463. $font->size(30);
  464. $font->angle(0);
  465. $font->color('684327');
  466. });
  467. $name=$this->rand_code($num);
  468. $img->save(base_path().'/public/public/uploads/auth_img/'.$name.'.jpg');
  469. return env('APP_URL').'/public/uploads/auth_img/'.$name.'.jpg';
  470. }
  471. //0未认证 1待审核 2通过邀请人审核 3通过上级审核 4邀请人驳回 5上级驳回 6正常
  472. public function authInfo(){
  473. $user_id=Auth::user()->id;
  474. $user=User::where('id',$user_id)->with(['recom_user:id,nickname,mobile,level,headimgurl'])->with(['agent_user:id,nickname,mobile,level,headimgurl'])->first();
  475. $users=[];
  476. if($user->cert_status==0){
  477. $user['status']=0;
  478. }elseif(in_array($user->cert_status,[1,2,3,4,5])){
  479. $users['status']=$user->cert_status;
  480. $users['service_status']=$user->service_status;
  481. if ($user->warea_id){
  482. $users['service_info']=DB::table('warea')->where('id',$user->warea_id)->select('admin_name')->first();
  483. }
  484. $users['nickname']=$user->nickname;
  485. $users['mobile']=$user->mobile;
  486. $users['level']=$user->level;
  487. $users['headimgurl']=$user->headimgurl;
  488. $users['time']=strtotime($user->created_at);
  489. $user_cert=UserCert::where('user_id',$user_id)->orderBy('id','desc')->limit(1)->get();
  490. if($user->recom_user){
  491. $users['recom_name']=$user->recom_user->nickname;
  492. $users['recom_mobile']=$user->recom_user->mobile;
  493. $users['recom_level']=$user->recom_user->level;
  494. $users['recom_headimgurl']=$user->recom_user->headimgurl;
  495. if(count($user_cert)>0){
  496. $users['recom_time']=strtotime($user_cert[0]->recom_updated_at);
  497. }else{
  498. $users['recom_time']=null;
  499. }
  500. if($user->agent_user){
  501. $users['agent_name']=$user->agent_user->nickname;
  502. $users['agent_mobile']=$user->agent_user->mobile;
  503. $users['agent_level']=$user->agent_user->level;
  504. $users['agent_headimgurl']=$user->agent_user->headimgurl;
  505. if(count($user_cert)>0){
  506. $users['agent_time']=strtotime($user_cert[0]->agent_updated_at);
  507. }else{
  508. $users['agent_time']=null;
  509. }
  510. }
  511. }
  512. }elseif ($user->cert_status==6){
  513. $users['status']=6;
  514. }
  515. return $this->success($users);
  516. }
  517. public function rand_code($num){
  518. $code='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  519. $str=$num."_";
  520. $str_1='';
  521. for ($i=0;$i<20;$i++){
  522. $int=rand(0,34);
  523. $str_1.=mb_substr($code,$int,1);
  524. }
  525. $str=$str.mb_substr(time(),2,3).$str_1;
  526. return $str.mb_substr(time(),7,3);
  527. }
  528. /*--上传授权书---*/
  529. public function auth_share(Request $request,ImageUploadHandler $handler){
  530. Log::error('{---------开始----------}');
  531. if ($request->img){
  532. try{
  533. $data=$handler->save($request->img,'img',Auth::user()->id);
  534. Log::error('{---------开始-大幅度发的---------}');
  535. if ($data){
  536. $user=User::find(Auth::user()->id);
  537. $user->auth_img=$data['path'];
  538. $user->save();
  539. return $this->success(['url'=>$data['path']]);
  540. }else{
  541. return $this->error(300);
  542. }
  543. }catch (\Exception $e){
  544. Log::error('{------这里是上传授权书-----}'.Carbon::now()->toDateTimeString());
  545. return $this->error(300);
  546. }
  547. }
  548. }
  549. public function auth_sel(Request $request){
  550. $user=User::where('mobile',$request->phone)->first();
  551. if (!$user){
  552. $status=3;
  553. $msg='手机号未授权';
  554. }else{
  555. if ($user->freeze_status==1){
  556. $status=3;
  557. $msg='该代理账户已被冻结';
  558. }else{
  559. if ($user->service_status==1||$user->service_status==2){
  560. $status=3;
  561. $msg='该代理尚未通过审核,暂未授权';
  562. }else{
  563. if ($user->deleted_at){
  564. $status=3;
  565. $re=DB::table('agent_operation_log')->where('user_id',$user->id)->where('type',4)->orderByDesc('id')->first();
  566. if ($re){
  567. $cause_one=['不做','主动退货','不来了','没有进货','没货了','不在人间','单位考核','联系不上'];
  568. $cause_two=['重复','夫妻俩都有授权','换号了','授权改为家属','更换手机号'];
  569. $cause_three=['不思悔改','不愿意退差价','低价','淘宝','第三','窜货','长期不订货','骚扰代理','不进货','私自'];
  570. $msg='';
  571. foreach ($cause_one as $k=>$v){
  572. $res=stripos($re->remark,$v);
  573. if ($res===0 ||$res){
  574. $msg='主动退货退出';
  575. break;
  576. }
  577. }
  578. if (!$msg){
  579. foreach ($cause_two as $ke=>$va){
  580. $res=stripos($re->remark,$va);
  581. if ($res===0 ||$res){
  582. $msg='授权重复被撤销';
  583. break;
  584. }
  585. }
  586. }
  587. if (!$msg){
  588. foreach ($cause_three as $kes=>$vas){
  589. $res=stripos($re->remark,$vas);
  590. if ($res===0 ||$res){
  591. $msg='违规被取消授权';
  592. }
  593. }
  594. }
  595. if (!$msg){
  596. $msg='授权被取消';
  597. }
  598. }else{
  599. $msg='手机号未授权';
  600. }
  601. }else{
  602. $st=[0,1,2,4,5];
  603. if (in_array($user->cert_status,$st)){
  604. $msg='正在审核中';
  605. $status=3;
  606. }else{
  607. $now=Carbon::now()->timestamp;
  608. $time=strtotime($user->auth_endtime);
  609. if ($now>$time){
  610. $status=3;
  611. $msg='授权已过期';
  612. }else{
  613. $data['phone']=$user->mobile;
  614. $data['level']=judge_level($user->level);
  615. $data['wechat']=$user->nickname;
  616. $data['num']=$user->cre_num;
  617. $data['realname']=$user->realname;
  618. $msg='ok';
  619. $status=1;
  620. }
  621. }
  622. }
  623. }
  624. }
  625. }
  626. $data['status']=$status;
  627. $data['num']='';
  628. return $this->success($data,$msg);
  629. }
  630. public function auth_show(Request $request){
  631. $user=User::where('mobile',$request->phone)->first();
  632. if ($user->auth_img==null){
  633. $name=$user->realname==null?$user->nickname:$user->realname;
  634. $url=$this->auth_create($name,$user->mobile,judge_level($user->level),$user->auth_code,$user->auth_startime,$user->auth_endtime,$user->id);
  635. $user->auth_img=$url;
  636. $user->save();
  637. }
  638. // $data['time_start']=strtotime($user->auth_startime)*1000;
  639. // $data['time_end']=strtotime($user->auth_endtime)*1000;
  640. // $data['auth_code']=$user->auth_code;
  641. // $data['phone']=$request->phone;
  642. // $data['level']=judge_level($user->level);
  643. // $data['nickname']=$user->nickname==null?$user->name:$user->nickname;
  644. // $data['realname']=$user->realname==''?$user->nickname:$user->realname;
  645. $data['url']=$user->auth_img;
  646. return $this->success($data);
  647. }
  648. public function gzh(Request $request){
  649. // if ($request->has('from')){
  650. // return ' <div style="padding: 2vw; box-sizing: border-box; height: 100%; background: rgb(243, 243, 243); display: flex; flex-direction: column; align-items: center;">
  651. // <div style="margin-top: 30vw; width: 20vw; height: 20vw; border-radius: 50%; background: rgb(247, 98, 95); display: flex; justify-content: center; align-items: center; font-size: 18vw; color: #ffffff;">!</div>
  652. // <div style="margin-top: 24vw; font-size: 6vw; color: black;">已停止访问该网页</div>
  653. // </div>';
  654. // }
  655. Log::error(json_encode($request->all()));
  656. $url=$request->url();
  657. $num=mb_strlen($url);
  658. $num1=mb_strlen('http://api.tongnianshijie.com/api/gzh/');
  659. if ($num>$num1){
  660. $data=substr($url,-5);
  661. if ($data=='david'){
  662. return '<script>alert("当前链接失效,请联系邀请人分享二维码进行注册")</script>';
  663. }
  664. // $time=substr($url,-10);
  665. // if (is_numeric($time)){
  666. // }else{
  667. // return '<script>alert("当前链接失效,请联系邀请人重新分享二维码")</script>';
  668. // }
  669. }
  670. return view('yzm');
  671. }
  672. public function gzhtest(Request $request){
  673. // if ($request->has('from')){
  674. // return ' <div style="padding: 2vw; box-sizing: border-box; height: 100%; background: rgb(243, 243, 243); display: flex; flex-direction: column; align-items: center;">
  675. // <div style="margin-top: 30vw; width: 20vw; height: 20vw; border-radius: 50%; background: rgb(247, 98, 95); display: flex; justify-content: center; align-items: center; font-size: 18vw; color: #ffffff;">!</div>
  676. // <div style="margin-top: 24vw; font-size: 6vw; color: black;">已停止访问该网页</div>
  677. // </div>';
  678. // }
  679. return view('yzmtest');
  680. }
  681. public function test(Request $request){
  682. if ($request->has('from')){
  683. return redirect('/api/test',301);
  684. }
  685. return view('test');
  686. }
  687. public function gzh1(){
  688. return view('recom');
  689. }
  690. public function auth_select(){
  691. // if (!Agent::isMobile()){
  692. // return view()->file(base_path().'/public/selectstatic/header.html');
  693. // }
  694. return view('select');
  695. }
  696. public function logout(){
  697. $user=Auth::user();
  698. $row=User::where('id',$user->id)->update([
  699. 'openid'=>null,
  700. 'unionid'=>null
  701. ]);
  702. if($row){
  703. return $this->success([]);
  704. }
  705. return $this->error();
  706. // return response(view('yzm')) ->withCookie(new SCookie('DWBSTOKEN', 'sid9999', time()-1,'/api'))
  707. // ->withCookie(new SCookie('DWBSTOKEN','DWBSTOKEN',time()-10,'/'));
  708. }
  709. public function login(Request $request){
  710. $user=User::where('mobile',$request->mobile)->where('deleted_at','=',null)->first();
  711. if (!$user){
  712. return $this->error(600);
  713. }
  714. if ($user->status==1){
  715. return $this->error(700);
  716. }
  717. $password = md5($request->password);
  718. if (!hash_equals($password,$user->password)) {
  719. //返回401
  720. return $this->error(300);
  721. }
  722. $token=Auth::guard()->fromUser($user);
  723. return $this->success(['token'=>$token]);
  724. }
  725. public function update_pass(Request $request){
  726. $id=Auth::user()->id;
  727. $user=User::find($id);
  728. $user->password=md5($request->password);
  729. $user->save();
  730. return $this->success([]);
  731. }
  732. public function update_nickname(Request $request){
  733. DB::beginTransaction();
  734. try{
  735. $user=User::find(Auth::user()->id);
  736. $user->nickname=$request->nickname;
  737. $user->save();
  738. DB::commit();
  739. return $this->success([],'修改昵称成功');
  740. }catch (\Exception $exception){
  741. Log::error('{-------用户修改昵称出错----错误信息为--}'.$exception);
  742. DB::rollBack();
  743. return $this->error(40013,'','修改出错,请重新尝试');
  744. }
  745. }
  746. public function CreateTokenTest(Request $request){
  747. $phone=$request->input('phone','');
  748. if ($phone){
  749. $re=User::where('mobile',$phone)->first();
  750. if ($re){
  751. return $this->success(Auth::guard('api')->fromUser($re));
  752. }else{
  753. return $this->error(50214,'','没找到');
  754. }
  755. }
  756. return $this->error(50214,'','请添加参数 phone');
  757. }
  758. }