TeamController.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. <?php
  2. namespace App\Http\Controllers;
  3. /*
  4. * 人员管理
  5. * */
  6. use App\Models\ApplyUser;
  7. use App\Models\IncomExpenses;
  8. use App\Models\Store;
  9. use App\Models\User;
  10. use App\Models\UserCert;
  11. use Carbon\Carbon;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Auth;
  14. use Illuminate\Support\Facades\Cache;
  15. use Illuminate\Support\Facades\Log;
  16. class TeamController extends Controller{
  17. /*
  18. * 今日新增人数,本月新增
  19. * */
  20. public function new_per(){
  21. $user=Auth::user();
  22. Log::error('{---------}'.$user->nickname);
  23. $today=Carbon::today()->toDateTimeString();
  24. $month=Carbon::now()->firstOfMonth()->toDateTimeString();
  25. $user_all=User::whereIn('cert_status',[3,6])->where('created_at','>',$today)->get();
  26. $num=0;
  27. foreach ($user_all as $k=>$v){
  28. if ($v->agent_id==null){
  29. }else{
  30. if ($v->agent_id==$user->id){
  31. $num=$num+1;
  32. }else{
  33. $arr=User::where('id',$v->agent_id)->first();
  34. if ($arr->agent_id==$user->id){
  35. $num=$num+1;
  36. }
  37. }
  38. }
  39. }
  40. $user_all=User::whereIn('cert_status',[3,6])->where('created_at','>',$month)->get();
  41. $num_all=0;
  42. foreach ($user_all as $k=>$v){
  43. if ($v->agent_id==null){
  44. }else{
  45. if ($v->agent_id==$user->id){
  46. $num_all=$num_all+1;
  47. }else{
  48. $arr=User::where('id',$v->agent_id)->first();
  49. if ($arr->agent_id==$user->id){
  50. $num_all=$num_all+1;
  51. }
  52. }
  53. }
  54. }
  55. $data=['num'=>$num,'all_num'=>$num_all];
  56. // Log::error('{-0-----新增代理-------}'.json_encode($data));
  57. return $this->success($data);
  58. }
  59. /*
  60. * 直属代理
  61. * */
  62. public function level_count(Request $request){
  63. $user=Auth::user();
  64. // $page=($request->page)-1;
  65. $data=[];
  66. if ($request->has('page')){
  67. $page=($request->page)-1;
  68. }else{
  69. $page=0;
  70. }
  71. if ($request->type==0){
  72. $user_all=User::where('agent_id',$user->id)->where('status',0)->whereIn('cert_status',[3,6])->where('deleted_at','=',null)->orderBy('id')->get();
  73. $arr_per=[];
  74. foreach ($user_all as $k=>$v){
  75. $arr_per[$k]['id']=$v->id;
  76. $arr_per[$k]['avatar']=$v->headimgurl;
  77. $arr_per[$k]['nickname']=$v->nickname;
  78. $arr_per[$k]['level_name']=judge_level($v->level);
  79. }
  80. $num=count($arr_per);
  81. $num1=$num-$page*15;
  82. if ($num1>=15){
  83. $j=15;
  84. }else{
  85. $j=$num1;
  86. }
  87. for ($i=0;$i<$j;$i++){
  88. $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  89. $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  90. $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  91. $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  92. }
  93. // return $this->success($data);
  94. }else{
  95. $user_all=User::where('agent_id',$user->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  96. // $user_all_1=User::where('agent_id',$user->id)->where('recom_id',$user->id)->where('status',0)->whereIn('cert_status',[3,6])->where('deleted_at','=',null)->orderBy('id')->get();
  97. $user_data=[];
  98. $arr_per=[];
  99. $all=[];
  100. $all_1=[];
  101. // foreach ($user_all as $k=>$v){
  102. // $arr=[];
  103. // $arr_per[$k]['id']=$v->id;
  104. // $arr_per[$k]['avatar']=$v->headimgurl;
  105. // $arr_per[$k]['nickname']=$v->nickname;
  106. // $arr_per[$k]['level_name']=judge_level($v->level);
  107. // $user_per=User::where('agent_id',$v->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  108. // if ($user){
  109. // foreach ($user_per as $key=>$value){
  110. // $arr[$key]['id']=$value->id;
  111. // $arr[$key]['avatar']=$value->headimgurl;
  112. // $arr[$key]['nickname']=$value->nickname;
  113. // $arr[$key]['level_name']=judge_level($value->level);
  114. // }
  115. // $all=array_merge($all,$arr);
  116. // }
  117. // }
  118. // $user_data=array_merge($all,$arr_per);
  119. foreach ($user_all as $k=>$v){
  120. $arr_per=[];
  121. $user_per=User::where('agent_id',$v->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  122. if ($user){
  123. foreach ($user_per as $key=>$value){
  124. $arr_per[$key]['id']=$value->id;
  125. $arr_per[$key]['avatar']=$value->headimgurl;
  126. $arr_per[$key]['nickname']=$value->nickname;
  127. $arr_per[$key]['level_name']=judge_level($value->level);
  128. }
  129. $all_1=array_merge($all_1,$arr_per);
  130. }
  131. }
  132. $user_data=array_merge($user_data,$all_1);
  133. $num=count($user_data);
  134. $num1=$num-$page*15;
  135. if ($num1>=15){
  136. $j=15;
  137. }else{
  138. $j=$num1;
  139. }
  140. for ($i=0;$i<$j;$i++){
  141. $data[$i]['id']=$user_data[$page*15+$i]['id'];
  142. $data[$i]['avatar']=$user_data[$page*15+$i]['avatar'];
  143. $data[$i]['nickname']=$user_data[$page*15+$i]['nickname'];
  144. $data[$i]['level_name']=$user_data[$page*15+$i]['level_name'];
  145. }
  146. // return $this->success($data);
  147. }
  148. $arr=$this->num_test();
  149. // $re= $arr->original;
  150. $res=[
  151. 'today_new'=>count($arr[0]),
  152. 'month_new'=>count($arr[1]),
  153. 'size'=>15,
  154. 'total'=>$num,
  155. 'list'=>$data
  156. ];
  157. // Log::error('{-------代理数量-----}'.json_encode($res));
  158. return $this->success($res);
  159. // return $this->success_list($data,'',$total['total']);
  160. }
  161. /*名片信息*/
  162. public function card_data(Request $request){
  163. $user=User::find($request->id);
  164. if ($user->recom_id==null){
  165. $users["recom_nickname"]= '';
  166. }else{
  167. $users["recom_nickname"]= $user->recom_user->nickname;
  168. }
  169. $users["id"]=$user->id;
  170. $users["nickname"]=$user->nickname;
  171. $users["real_name"]= $user->realname;
  172. $users["avatar"]= $user->headimgurl;
  173. $users["level"]= judge_level($user->level);
  174. $users["mobile"]= $user->mobile;
  175. $users["up_nickname"]= $user->agent_user->nickname;
  176. $users["team_num"]= User::where('agent_id',$user->id)->count();
  177. if ($user->cert_status==3||$user->cert_status==6){
  178. if ($user->auth_startime &&$user->auth_code){
  179. $users['status']=0;
  180. }else{
  181. $users['status']=1;
  182. }
  183. }else{
  184. $users['status']=1;
  185. }
  186. return $this->success($users);
  187. }
  188. /*---团队业绩---*/
  189. public function money(Request $request){
  190. $user=Auth::user();
  191. if ($request->type==0){
  192. $user_all=User::where('agent_id',$user->id)->orderByDesc('created_at')->where('deleted_at','=',null)->paginate(15);
  193. }elseif ($request->type==1){
  194. $user_all=User::where('agent_id',$user->id)->orderByDesc('created_at')->where('deleted_at','=',null)->where('level',2)->paginate(15);
  195. }else{
  196. $user_all=User::where('agent_id',$user->id)->orderByDesc('created_at')->where('deleted_at','=',null)->where('level',1)->paginate(15);
  197. }
  198. if ($request->time==0){
  199. $time=Carbon::now()->toDateTimeString();
  200. }elseif ($request->time==1){
  201. $time=Carbon::now()->startOfDay()->toDateTimeString();
  202. }else{
  203. $time=Carbon::now()->startOfMonth()->toDateTimeString();
  204. }
  205. $total=$user_all->toArray();
  206. $data=[];
  207. $money=0;
  208. foreach ($user_all as $k=>$v){
  209. $data[$k]['money']=IncomExpenses::where('user_id',$v->id)
  210. ->where('created_at','>=',$time)->sum('totalprice');
  211. $money=$money+$data[$k]['money'];
  212. $data[$k]['avatar']=$v->headimgurl;
  213. $data[$k]['level']=judge_level($v->level);
  214. $data[$k]['nickname']=$v->nickname;
  215. }
  216. return $this->success_list($data,'',$total['total'],$money,'money');
  217. }
  218. /*我的邀请*/
  219. public function invite(Request $request){
  220. $id=Auth::user()->id;
  221. if ($request->type==0){
  222. $type='=';
  223. $user_all=User::where('recom_id',$id)->whereIn('cert_status',[3,6])->where('deleted_at','=',null)->where('status',0)->paginate(15);
  224. }elseif ($request->type==1){
  225. $type='<>';
  226. $user_all=User::where('recom_id',$id)->whereIn('cert_status',[1,2,4,5])->where('deleted_at','=',null)->where('status',0)->paginate(15);
  227. }
  228. $total=$user_all->toArray();
  229. $data=[];
  230. foreach ($user_all as $k=>$v){
  231. $data[$k]['id']=$v->id;
  232. $data[$k]['avatar']=$v->headimgurl;
  233. $data[$k]['level']=judge_level($v->level);
  234. $data[$k]['nickname']=$v->nickname;
  235. $data[$k]['created_at']=Carbon::parse($v->created_at)->toDateTimeString();
  236. }
  237. $count=User::where('agent_id',$id)->where('status',0)->whereIn('cert_status',[3,6])->count();
  238. // $arr=$this->new_per();
  239. // $re= $arr->original;
  240. $res=[
  241. // 'today_new'=>$re['data']['num'],
  242. // 'month_new'=>$re['data']['all_num'],
  243. 'size'=>15,
  244. 'total'=>$user_all->total(),
  245. 'list'=>$data
  246. ];
  247. return $this->success($res);
  248. }
  249. public function add_list(Request $request){
  250. if ($request->has('page')){
  251. $page=($request->page)-1;
  252. }else{
  253. $page=0;
  254. }
  255. $re=$this->num_test();
  256. if ($request->type==0){
  257. $num=count($re[0]);
  258. $arr_per=$re[0];
  259. $num1=$num-$page*15;
  260. if ($num1>=15){
  261. $j=15;
  262. }else{
  263. $j=$num1;
  264. }
  265. $data=[];
  266. for ($i=0;$i<$j;$i++){
  267. $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  268. $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  269. $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  270. $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  271. }
  272. return $this->success_list($data);
  273. }else{
  274. $num=count($re[1]);
  275. $arr_per=$re[1];
  276. $num1=$num-$page*15;
  277. if ($num1>=15){
  278. $j=15;
  279. }else{
  280. $j=$num1;
  281. }
  282. $data=[];
  283. for ($i=0;$i<$j;$i++){
  284. $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  285. $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  286. $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  287. $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  288. }
  289. return $this->success_list($data);
  290. }
  291. }
  292. public function num_test(){
  293. $id=Auth::user()->id;
  294. // $id=DB::table('users')->where('mobile',13009681680)->value('id');
  295. $user=User::with(['recom_user:id,nickname,mobile','agent_user:id,nickname,mobile'
  296. // ,'childAgent'=>function($query){$query->select('id','agent_id','nickname','level','mobile');}
  297. ])->find($id);
  298. //,'childAgent'=>function($query){$query->select('id','agent_id','nickname','level','mobile');}
  299. if($user){
  300. if($user->level=='3'){
  301. $childAgent=User::where('agent_id',$user->id)->select('id', 'nickname','level','mobile','created_at','headimgurl as avatar')->orderBy('id')->get()->toArray();
  302. $childAgentIds=array_column($childAgent,'id');
  303. if($childAgentIds){
  304. $childChildAgent=User::whereIn('agent_id',$childAgentIds)->select('id', 'nickname','level','mobile','created_at','headimgurl as avatar')->orderBy('id')->get()->toArray();
  305. $agent=array_merge($childAgent,$childChildAgent);
  306. }else{
  307. $agent=$childAgent;
  308. }
  309. $re=[];
  310. $res=[];
  311. $i=0;
  312. $j=0;
  313. foreach ($agent as $k=>$v){
  314. if (strtotime($v['created_at'])>mktime(0,0,0,date('m'),1,date('Y'))){
  315. // $re[$i]=$v;
  316. $re[$i]['nickname']=$v['nickname'];
  317. $re[$i]['id']=$v['id'];
  318. $re[$i]['avatar']=$v['avatar'];
  319. $re[$i]['level_name']=judge_level($v['level']);
  320. // $re[$i]['up']=User::where('id',$v['recom_id'])->value('nickname');
  321. $i++;
  322. }
  323. if (strtotime($v['created_at'])>Carbon::today()->timestamp){
  324. // $res[$j]=$v;
  325. $res[$j]['nickname']=$v['nickname'];
  326. $res[$j]['id']=$v['id'];
  327. $res[$j]['avatar']=$v['avatar'];
  328. $res[$j]['level_name']=judge_level($v['level']);
  329. // $re[$j]['up']=User::where('id',$v['recom_id'])->value('nickname');
  330. $j++;
  331. }
  332. }
  333. }elseif($user->level=='2'){
  334. $user->child_agent=User::where('agent_id',$user->id)->select('id', 'nickname','level','mobile','created_at','headimgurl as avatar')->orderBy('id')->get()->toArray();
  335. $agent=$user->child_agent;
  336. $re=[];
  337. $res=[];
  338. $i=0;
  339. $j=0;
  340. foreach ($agent as $k=>$v){
  341. if (strtotime($v['created_at'])>mktime(0,0,0,date('m'),1,date('Y'))){
  342. // $re[$i]=$v;
  343. $re[$i]['nickname']=$v['nickname'];
  344. $re[$i]['id']=$v['id'];
  345. $re[$i]['avatar']=$v['avatar'];
  346. $re[$i]['level_name']=judge_level($v['level']);
  347. // $re[$i]['up']=User::where('id',$v['recom_id'])->value('nickname');
  348. $i++;
  349. }
  350. if (strtotime($v['created_at'])>Carbon::today()->timestamp){
  351. // $res[$j]=$v;
  352. $res[$j]['nickname']=$v['nickname'];
  353. $res[$j]['id']=$v['id'];
  354. $res[$j]['avatar']=$v['avatar'];
  355. $res[$j]['level_name']=judge_level($v['level']);
  356. // $re[$j]['up']=User::where('id',$v['recom_id'])->value('nickname');
  357. $j++;
  358. }
  359. }
  360. }else{
  361. $re=[];
  362. $res=[];
  363. }
  364. // Cache::put('team_list'.$id,[$re,$res]);
  365. // return [count($re),count($res)];
  366. // return $this->success_list($re);
  367. return [$res,$re];
  368. }else{
  369. return [];
  370. }
  371. }
  372. /**邀请码**/
  373. public function invite_code(){
  374. $user=Auth::user();
  375. $invite_num=UserCert::where('recom_id',$user->id)->count();
  376. $team_num=User::where('agent_id',$user->id)->count();
  377. return $this->success([
  378. 'invite_code'=>$user->recom_code,
  379. 'incite_num'=>(int)$invite_num,
  380. 'team_num'=>$team_num
  381. ]);
  382. }
  383. public function GetUserTeamList(Request $request){
  384. $user=Auth::user();
  385. $arr=['crown'=>0,'manager'=>0,'lowest'=>0];
  386. // if ($user->level==1){
  387. $data=[
  388. 'totay_num'=>0,
  389. 'month_num'=>0,
  390. 'group'=>$arr
  391. ];
  392. return $this->success($data);
  393. // }
  394. $id=$user->id;
  395. // if ($id==39516){
  396. // $user=User::where('mobile',18753967396)->first();
  397. // $id=$user->id;
  398. // }
  399. $s=false;
  400. if ($user->level==1){
  401. $s=true;
  402. }
  403. $type=$request->type;
  404. // $id=7;
  405. if ($type==0){
  406. $data=User::where('status',0)
  407. ->where('service_status',0)
  408. ->whereNull('deleted_at')
  409. ->where('recom_id',$id)
  410. ->when($s,function ($q){
  411. return $q->where('level','<>',3);
  412. })
  413. ->select('users.level',\DB::raw('count(*) as total'))->groupBy('level')->get();
  414. }else{
  415. $arrs=User::where('agent_id',$id)->where('status',0)
  416. ->where('service_status',0)
  417. ->whereNull('deleted_at')
  418. ->pluck('id')->toArray();
  419. array_push($arrs,$id);
  420. $data=User::where('status',0)
  421. ->where('service_status',0)
  422. ->whereNull('deleted_at')
  423. ->whereIn('agent_id',$arrs)
  424. ->select('users.level',\DB::raw('count(*) as total'))->groupBy('level')->get();
  425. }
  426. foreach ($data as $k=>$v){
  427. if ($v->level==1){
  428. $arr['lowest']=$v->total;
  429. }
  430. if ($v->level==2){
  431. $arr['manager']=$v->total;
  432. }
  433. if ($v->level==3){
  434. $arr['crown']=$v->total;
  435. }
  436. }
  437. $totay_num=$this->GetNewUserTotal($id,Carbon::today());
  438. $month_num=$this->GetNewUserTotal($id,Carbon::now()->startOfMonth());
  439. $counts=0;
  440. $applyCount=ApplyUser::where('user_id',$id)->count();
  441. $data=[
  442. 'totay_num'=>$totay_num,
  443. 'month_num'=>$month_num,
  444. 'store_no_num'=>$counts,
  445. 'year_num'=>$this->GetNewUserTotal($id,Carbon::now()->startOfYear()),
  446. 'group'=>$arr,
  447. 'applyCount'=>$applyCount,
  448. ];
  449. return $this->success($data);
  450. }
  451. public function GetUserTeamLists(Request $request){
  452. // $user=Auth::user();
  453. $arr=['crown'=>0,'manager'=>0,'lowest'=>0];
  454. // if ($user->level==1){
  455. // $data=[
  456. // 'totay_num'=>0,
  457. // 'month_num'=>0,
  458. // 'group'=>$arr
  459. // ];
  460. // return $this->success($data);
  461. // }
  462. // $id=$user->id;
  463. $user=User::where('mobile','15538160193')->first();
  464. $id=$user->id;
  465. $s=false;
  466. if ($user->level==1){
  467. $s=true;
  468. }
  469. $type=$request->type;
  470. // $id=7;
  471. if ($type==0){
  472. $data=User::where('status',0)
  473. ->where('service_status',0)
  474. ->whereNull('deleted_at')
  475. ->where('recom_id',$id)
  476. ->when($s,function ($q){
  477. return $q->where('level','<>',3);
  478. })
  479. ->select('users.level',\DB::raw('count(*) as total'))->groupBy('level')->get();
  480. }else{
  481. $arrs=User::where('agent_id',$id)->where('status',0)
  482. ->where('service_status',0)
  483. ->whereNull('deleted_at')
  484. ->pluck('id')->toArray();
  485. array_push($arrs,$id);
  486. $data=User::where('status',0)
  487. ->where('service_status',0)
  488. ->whereNull('deleted_at')
  489. ->whereIn('agent_id',$arrs)
  490. ->select('users.level',\DB::raw('count(*) as total'))->groupBy('level')->get();
  491. }
  492. foreach ($data as $k=>$v){
  493. if ($v->level==1){
  494. $arr['lowest']=$v->total;
  495. }
  496. if ($v->level==2){
  497. $arr['manager']=$v->total;
  498. }
  499. if ($v->level==3){
  500. $arr['crown']=$v->total;
  501. }
  502. }
  503. $totay_num=$this->GetNewUserTotal($id,Carbon::today());
  504. $month_num=$this->GetNewUserTotal($id,Carbon::now()->startOfMonth());
  505. $counts=0;
  506. $applyCount=ApplyUser::where('user_id',$id)->count();
  507. $data=[
  508. 'totay_num'=>$totay_num,
  509. 'month_num'=>$month_num,
  510. 'store_no_num'=>$counts,
  511. 'year_num'=>$this->GetNewUserTotal($id,Carbon::now()->startOfYear()),
  512. 'group'=>$arr,
  513. 'applyCount'=>$applyCount,
  514. ];
  515. return $this->success($data);
  516. }
  517. public function GetUserTeamLevelDetail(Request $request){
  518. $user=Auth::user();
  519. $id=$user->id;
  520. // $id=7;
  521. // if ($id==39516){
  522. // $user=User::where('mobile',18753967396)->first();
  523. // $id=$user->id;
  524. // }
  525. $input=$request->all();
  526. $page_index=$input['page_index'];
  527. $page_size=$input['page_size'];
  528. $level=$input['level'];
  529. $type=$input['type'];
  530. $search_name=$input['search_name'];
  531. // $search_type=$request->input('search_type',0);
  532. $s=0;
  533. if ($level<$user->level){
  534. if ($level!=1){
  535. $s=1;
  536. }
  537. }
  538. if ($type==0){
  539. $data=User::where('status',0)
  540. ->where('service_status',0)
  541. ->whereNull('deleted_at')
  542. ->where('level',$level)
  543. ->where('recom_id',$id)->with(['agent_user:id,nickname'])->with(['recom_user:id,nickname'])->select('level','id','headimgurl','mobile','nickname','recom_id','agent_id','realname',\DB::raw("if($s,1,0) as status"));
  544. }else{
  545. $arrs=User::where('agent_id',$id)->where('status',0)
  546. ->where('service_status',0)
  547. ->whereNull('deleted_at')
  548. ->pluck('id')->toArray();
  549. array_push($arrs,$id);
  550. $data=User::where('status',0)
  551. ->where('service_status',0)
  552. ->whereNull('deleted_at')
  553. ->where('level',$level)
  554. ->whereIn('agent_id',$arrs)
  555. ->with(['agent_user:id,nickname'])->with(['recom_user:id,nickname'])->select('level','headimgurl','mobile','nickname','recom_id','agent_id','realname','id',\DB::raw("if($s,1,0) as status"));
  556. }
  557. if ($search_name){
  558. $wheres=function ($q)use($search_name){
  559. $q->where('nickname','like',"%$search_name%")->orwhere('mobile','like',"%$search_name%")->orwhere('realname','like',"%$search_name%");
  560. };
  561. $data=$data->where($wheres);
  562. }
  563. $total=$data->count();
  564. $data=$data->take($page_size)->skip(($page_index-1)*$page_size)->get();
  565. return $this->success_list($data,'',$total);
  566. }
  567. /**未开通微店**/
  568. public function StoreNoOpen(Request $request){
  569. $id=Auth::user()->id;
  570. $arrs=User::where('agent_id',$id)->where('status',0)
  571. ->where('service_status',0)
  572. ->whereNull('deleted_at')
  573. ->pluck('id')->toArray();
  574. array_push($arrs,$id);
  575. $data=User::where('status',0)
  576. ->where('service_status',0)
  577. ->whereIn('agent_id',$arrs)
  578. ->whereNull('deleted_at')->pluck('id')->toArray();
  579. $arrs=array_merge($arrs,$data);
  580. $arrs=array_diff($arrs,[$id]);
  581. array_unique($arrs);
  582. $w_ids=Store::where('is_apply',3)->pluck('user_id')->toArray();
  583. array_unique($w_ids);
  584. $ids=array_unique(array_diff($arrs,$w_ids));
  585. $search_name=$request->input('search_name','');
  586. $page_index=$request->input('page_index',0);
  587. $page_size=$request->input('page_size',20);
  588. $data=User::whereIn('id',$ids)->with(['agent_user:id,nickname'])->with(['get_store:id,user_id,is_apply'])->with(['recom_user:id,nickname'])->select('level','headimgurl','mobile','nickname','recom_id','agent_id','realname','id',\DB::raw("if(level=1,0,1) as status"));;
  589. if ($search_name){
  590. $wheres=function ($q)use($search_name){
  591. $q->where('nickname','like',"%$search_name%")->orwhere('mobile','like',"%$search_name%")->orwhere('realname','like',"%$search_name%");
  592. };
  593. $data=$data->where($wheres);
  594. }
  595. $total=$data->count();
  596. $data=$data->take($page_size)->skip(($page_index-1)*$page_size)->get();
  597. return $this->success_list($data,'',$total);
  598. }
  599. public function SearchUserTeamLevelDetail(Request $request){
  600. $user=Auth::user();
  601. $id=$user->id;
  602. $input=$request->all();
  603. $page_index=$input['page_index'];
  604. $page_size=$input['page_size'];
  605. $search_name=$input['search_name'];
  606. $arrs=User::where('agent_id',$id)->where('status',0)
  607. ->where('service_status',0)
  608. ->whereNull('deleted_at')
  609. ->pluck('id')->toArray();
  610. array_push($arrs,$id);
  611. $data=User::where('status',0)
  612. ->where('service_status',0)
  613. ->whereNull('deleted_at')
  614. ->whereIn('agent_id',$arrs)
  615. ->with(['agent_user:id,nickname'])->with(['get_store:id,user_id,is_apply'])->with(['recom_user:id,nickname'])->select('level','headimgurl','mobile','nickname','recom_id','agent_id','realname','id',\DB::raw("if(level=1,0,1) as status"));
  616. if ($search_name){
  617. $wheres=function ($q)use($search_name){
  618. $q->where('nickname','like',"%$search_name%")->orwhere('mobile','like',"%$search_name%")->orwhere('realname','like',"%$search_name%");
  619. };
  620. $data=$data->where($wheres);
  621. }
  622. $total=$data->count();
  623. $data=$data->take($page_size)->skip(($page_index-1)*$page_size)->get();
  624. return $this->success_list($data,'',$total);
  625. }
  626. public function GetTeamList(Request $request){
  627. $page_size=$request->page_size;
  628. $page_index=$request->page_index;
  629. $data=User::where('status',0)
  630. ->where('service_status',0)
  631. ->whereNull('deleted_at')
  632. ->where('level',1)
  633. ->where('agent_id',$request->id)
  634. ->with(['agent_user:id,nickname'])->with(['recom_user:id,nickname'])->select('level','headimgurl','mobile','nickname','recom_id','agent_id','realname');
  635. $total=$data->count();
  636. $data=$data->take($page_size)->skip(($page_index-1)*$page_size)->get();
  637. return $this->success_list($data,'',$total);
  638. }
  639. public function GetNewUserTotal($id,$time){
  640. $arr=User::where('agent_id',$id)->where('status',0)
  641. ->where('service_status',0)
  642. ->whereNull('deleted_at')
  643. ->pluck('id')->toArray();
  644. array_push($arr,$id);
  645. $total=User::whereIn('agent_id',$arr)->where('status',0)
  646. ->where('service_status',0)
  647. ->whereNull('deleted_at')
  648. ->where('created_at','>=',$time)
  649. ->count();
  650. return $total;
  651. }
  652. public function GetNewUserDetail(Request $request){
  653. // $id=39516;
  654. $id=Auth::user()->id;
  655. $input=$request->all();
  656. $page_index=$input['page_index'];
  657. $page_size=$input['page_size'];
  658. $type=$input['type'];
  659. if ($type==0){
  660. $time=Carbon::today();
  661. }elseif($type==1){
  662. $time=Carbon::now()->startOfMonth();
  663. }else{
  664. $time=Carbon::now()->startOfYear();
  665. }
  666. $arr=User::where('agent_id',$id)->where('status',0)
  667. ->where('service_status',0)
  668. ->whereNull('deleted_at')
  669. ->pluck('id')->toArray();
  670. array_push($arr,$id);
  671. $total=User::whereIn('agent_id',$arr)->where('status',0)
  672. ->where('service_status',0)
  673. ->whereNull('deleted_at')
  674. ->where('created_at','>=',$time)
  675. ->count();
  676. $data=User::whereIn('agent_id',$arr)->where('status',0)
  677. ->where('service_status',0)
  678. ->whereNull('deleted_at')
  679. ->where('created_at','>=',$time)
  680. ->with(['get_store:id,user_id,is_apply'])
  681. ->with(['agent_user:id,nickname'])->with(['recom_user:id,nickname'])->select('level','headimgurl','mobile','nickname','recom_id','agent_id','realname','id')
  682. ->take($page_size)
  683. ->skip(($page_index-1)*$page_size)
  684. ->get();
  685. return $this->success_list($data,'',$total);
  686. }
  687. }