IndexController.php 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Events\WechatMessageEvent;
  4. use App\Http\Requests\UserRequest;
  5. use App\Models\Address;
  6. use App\Models\Banner;
  7. use App\Models\Demo;
  8. use App\Models\Demodemo;
  9. use App\Models\DemoTest;
  10. use App\Models\Infos;
  11. use App\Models\MoneyUser;
  12. use App\Models\Notice;
  13. use App\Models\OrderDetailW;
  14. use App\Models\Ordertest;
  15. use App\Models\OrderW;
  16. use App\Models\RecomCodeExpire;
  17. use App\Models\Store;
  18. use App\Models\User;
  19. use App\Models\UserPay;
  20. use App\Models\UserW;
  21. use Carbon\Carbon;
  22. use Illuminate\Http\Request;
  23. use GuzzleHttp\Client;
  24. use Illuminate\Support\Facades\Auth;
  25. use Illuminate\Support\Facades\Cache;
  26. use Illuminate\Support\Facades\Config;
  27. use Illuminate\Support\Facades\DB;
  28. use Illuminate\Support\Facades\File;
  29. use Illuminate\Support\Facades\Log;
  30. use Validator;
  31. use Intervention\Image\Facades\Image as Image;
  32. use Endroid\QrCode\LabelAlignment;
  33. use Endroid\QrCode\ErrorCorrectionLevel;
  34. use Endroid\QrCode\QrCode;
  35. class IndexController extends Controller{
  36. public function AddQrCode(Request $request){
  37. $id=Auth::user()->id;
  38. $user=User::find($id);
  39. $recom_ex=RecomCodeExpire::where('user_id',$id)->first();
  40. if ($user->qr_code && $recom_ex && $recom_ex->qr_code && $recom_ex->expired_at>Carbon::now()){
  41. $data=$user->qr_code;
  42. $expire_time=$recom_ex->expired_at;
  43. }else{
  44. $expire_time=Carbon::parse('+24 hours')->toDateTimeString();
  45. $data=$this->make_code($id,null,$expire_time);
  46. }
  47. $imgA=Image::canvas(343,552,'#FFFFFF');
  48. $img=Image::make($data)->resize(160,160);
  49. $imgB=Image::make(env('APP_URL').'/bg_red.png')->resize(343,552);
  50. $imgC=Image::make(env('APP_URL').'/bg_white.png')->resize(283,365);
  51. $imgL=Image::make(env('APP_URL').'/bg_logo.png')->resize(267,44);
  52. $imgA->insert($imgB,'',0,0);
  53. $imgA->insert($imgC,'',30,100);
  54. $imgA->insert($imgL,'',38,32);
  55. $imgA->insert($img,'',91,237);
  56. //匹配Unicode编码表对应字符
  57. $nickname=preg_replace("/[^\x{4e00}-\x{9fa5}^\x{0021}-\x{007e}]+/u", '', $user->nickname);
  58. if (mb_strlen($nickname)>6){
  59. $nickname=mb_substr($nickname,0,6);
  60. }
  61. if(empty($nickname)){
  62. $nickname=substr_replace($user->mobile,'****',3,4);
  63. }
  64. $imgA->text($nickname, 178, 160,function ($font){
  65. $font->file('./ziti/fangzheng.TTF');
  66. $font->size(24);
  67. $font->color('333333');
  68. $font->align('center');
  69. $font->angle(0);
  70. });
  71. $imgA->text('邀请您加入大卫博士', 109, 190,function ($font){
  72. $font->file('./ziti/fangzheng.TTF');
  73. $font->size(14);
  74. $font->color('333333');
  75. $font->angle(0);
  76. });
  77. $imgA->text('识别图中二维码填写信息', 85, 429,function ($font){
  78. $font->file('./ziti/fangzheng.TTF');
  79. $font->size(14);
  80. $font->color('333333');
  81. $font->angle(0);
  82. });
  83. $imgA->text('有效期至:'.$expire_time, 75, 480,function ($font){
  84. $font->file('./ziti/fangzheng.TTF');
  85. $font->size(12);
  86. $font->color('FFFFFF');
  87. $font->angle(0);
  88. });
  89. return $imgA->response("png");
  90. }
  91. public function AddQrCodeUp(Request $request){
  92. $user_id=$request->input('id');
  93. if(empty($user_id)){
  94. return $this->error('450001','','未获取到客户信息');
  95. }
  96. $id=Auth::user()->id;
  97. $expire_time=Carbon::parse('+24 hours')->toDateTimeString();
  98. $data=$this->make_code($id,$user_id,$expire_time);
  99. $imgA=Image::canvas(310,469,'#FFFFFF');
  100. $img=Image::make($data)->resize(178,178);
  101. $imgB=Image::make(env('APP_URL').'/bg_tan.png')->resize(310,469);
  102. $imgA->insert($imgB,'',0,0);
  103. $imgA->insert($img,'',67,122);
  104. $user=UserW::find($user_id);
  105. //匹配Unicode编码表对应字符
  106. $nickname=preg_replace("/[^\x{4e00}-\x{9fa5}^\x{0021}-\x{007e}]+/u", '', $user->nickname);
  107. if (mb_strlen($nickname)>6){
  108. $nickname=mb_substr($nickname,0,6);
  109. }
  110. if(empty($nickname)){
  111. $nickname=substr_replace($user->phone,'****',3,4);
  112. }
  113. $imgA->text($nickname, 157, 60,function ($font){
  114. $font->file('./ziti/fangzheng.TTF');
  115. $font->size(24);
  116. $font->color('FFFFFF');
  117. $font->align('center');
  118. $font->angle(0);
  119. });
  120. $imgA->text('· 欢迎您加入大卫博士 ·', 70, 90,function ($font){
  121. $font->file('./ziti/fangzheng.TTF');
  122. $font->size(14);
  123. $font->color('FFFFFF');
  124. $font->angle(0);
  125. });
  126. $imgA->text('识别图中二维码填写信息', 65, 340,function ($font){
  127. $font->file('./ziti/fangzheng.TTF');
  128. $font->size(14);
  129. $font->color('FFFFFF');
  130. $font->angle(0);
  131. });
  132. $imgA->text('有效期至:'.$expire_time, 50, 365,function ($font){
  133. $font->file('./ziti/fangzheng.TTF');
  134. $font->size(12);
  135. $font->color('FE9C9C');
  136. $font->angle(0);
  137. });
  138. return $imgA->response("png");
  139. }
  140. public function AddAppQrCode(Request $request){
  141. $id=Auth::user()->id;
  142. $user=User::find($id);
  143. $recom_ex=RecomCodeExpire::where('user_id',$id)->first();
  144. if ($user->qr_code && $recom_ex && $recom_ex->qr_code && $recom_ex->expired_at>Carbon::now()){
  145. $data=$user->qr_code;
  146. $expire_time=$recom_ex->expired_at;
  147. }else{
  148. $expire_time=Carbon::parse('+24 hours')->toDateTimeString();
  149. $data=$this->make_code($id,null,$expire_time);
  150. }
  151. $imgA=Image::canvas(343,552,'#FFFFFF');
  152. $img=Image::make($data)->resize(160,160);
  153. $imgB=Image::make(env('APP_URL').'/bg_red.png')->resize(343,552);
  154. $imgC=Image::make(env('APP_URL').'/bg_white.png')->resize(283,365);
  155. $imgL=Image::make(env('APP_URL').'/bg_logo.png')->resize(267,44);
  156. $imgA->insert($imgB,'',0,0);
  157. $imgA->insert($imgC,'',30,100);
  158. $imgA->insert($imgL,'',38,32);
  159. $imgA->insert($img,'',91,237);
  160. //匹配Unicode编码表对应字符
  161. $nickname=preg_replace("/[^\x{4e00}-\x{9fa5}^\x{0021}-\x{007e}]+/u", '', $user->nickname);
  162. if (mb_strlen($nickname)>6){
  163. $nickname=mb_substr($nickname,0,6);
  164. }
  165. if(empty($nickname)){
  166. $nickname=substr_replace($user->mobile,'****',3,4);
  167. }
  168. $imgA->text($nickname, 178, 160,function ($font){
  169. $font->file('./ziti/fangzheng.TTF');
  170. $font->size(24);
  171. $font->color('333333');
  172. $font->align('center');
  173. $font->angle(0);
  174. });
  175. $imgA->text('邀请您加入大卫博士', 109, 190,function ($font){
  176. $font->file('./ziti/fangzheng.TTF');
  177. $font->size(14);
  178. $font->color('333333');
  179. $font->angle(0);
  180. });
  181. $imgA->text('识别图中二维码填写信息', 85, 429,function ($font){
  182. $font->file('./ziti/fangzheng.TTF');
  183. $font->size(14);
  184. $font->color('333333');
  185. $font->angle(0);
  186. });
  187. $imgA->text('有效期至:'.$expire_time, 75, 480,function ($font){
  188. $font->file('./ziti/fangzheng.TTF');
  189. $font->size(12);
  190. $font->color('FFFFFF');
  191. $font->angle(0);
  192. });
  193. // return $imgA->response("png");
  194. return $imgA->encode('data-url');
  195. }
  196. public function AddQrCodess(Request $request){
  197. $id=39516;
  198. // $id=$request->id;
  199. // $id=39516;
  200. $user=User::find($id);
  201. $data=$this->make_code($id);
  202. $imgA=Image::canvas(380,560,'#FFFFFF');
  203. $img=Image::make($data)->resize(300,300);
  204. // $img=Image::make($qrCode);
  205. $imgB=Image::make(env('APP_URL').'/logo.jpg')->resize(80,80);
  206. $imgA->insert($img,'',40,160);
  207. $imgA->insert($imgB,'',150,10);
  208. $user=User::find($id);
  209. // try{
  210. // $imgC=Image::make($user->headimgurl)->resize(80,80);
  211. // }catch (\Exception $exception){
  212. $imgC=Image::make(env('APP_URL').'/logo.jpg')->resize(80,80);
  213. // }
  214. $imgA->insert($imgC,'',150,270);
  215. if (mb_strlen($user->nickname)>=6){
  216. $x=120;
  217. }elseif (mb_strlen($user->nickname)>=4 && mb_strlen($user->nickname)<6){
  218. $x=140;
  219. }elseif (mb_strlen($user->nickname)>=2 && mb_strlen($user->nickname)<4){
  220. $x=160;
  221. }else{
  222. $x=200;
  223. }
  224. $imgA->text('"'.mb_substr($user->nickname,0,6).'"', $x, 120,function ($font){
  225. $font->file('./ziti/fangzheng.TTF');
  226. $font->size(25);
  227. $font->color('000000');
  228. $font->angle(0);
  229. });
  230. $imgA->text('邀请你加入大卫博士', 90, 150,function ($font){
  231. $font->file('./ziti/fangzheng.TTF');
  232. $font->size(22);
  233. $font->color('000000');
  234. $font->angle(0);
  235. });
  236. $imgA->text('长按-识别二维码-填写信息', 45, 510,function ($font){
  237. $font->file('./ziti/fangzheng.TTF');
  238. $font->size(22);
  239. $font->color('F76454');
  240. $font->angle(0);
  241. });
  242. return $imgA->encode('data-url');
  243. }
  244. public function GetCrown(){
  245. $ids=User::where('level',3)->pluck('id');
  246. $re=Store::whereIn('user_id',$ids)->select('name','username','idCard')->get();
  247. return $this->success($re);
  248. }
  249. public function AddQrCodes(Request $request){
  250. $id=Auth::user()->id;
  251. // $id=$request->id;
  252. // $id=39516;
  253. $user=User::find($id);
  254. // $re=new WechatController();
  255. // $data=$re->makeQrCode();
  256. $data=$this->make_code($id);
  257. $imgA=Image::canvas(380,560,'#FFFFFF');
  258. $img=Image::make($data)->resize(300,300);
  259. // $img=Image::make($qrCode);
  260. $imgB=Image::make(env('APP_URL').'/logo.jpg')->resize(80,80);
  261. $imgA->insert($img,'',40,160);
  262. $imgA->insert($imgB,'',150,10);
  263. try{
  264. $imgC=Image::make($user->headimgurl)->resize(80,80);
  265. }catch (\Exception $exception){
  266. $imgC=Image::make(env('APP_URL').'/logo.jpg')->resize(80,80);
  267. }
  268. $imgA->insert($imgC,'',150,270);
  269. $imgA->text('"'.$user->nickname.'"', 120, 120,function ($font){
  270. $font->file('./ziti/fangzheng.TTF');
  271. $font->size(25);
  272. $font->color('000000');
  273. $font->angle(0);
  274. });
  275. $imgA->text('邀请你加入大卫博士', 90, 150,function ($font){
  276. $font->file('./ziti/fangzheng.TTF');
  277. $font->size(22);
  278. $font->color('000000');
  279. $font->angle(0);
  280. });
  281. $imgA->text('长按-识别二维码-填写信息', 45, 510,function ($font){
  282. $font->file('./ziti/fangzheng.TTF');
  283. $font->size(22);
  284. $font->color('F76454');
  285. $font->angle(0);
  286. });
  287. return $imgA->response('png');
  288. }
  289. public function make_code($id,$type=null,$expire){
  290. $user=User::find($id);
  291. $url=env('APP_URL').'/api/gzh?id='.$id.'&time='.strtotime($expire);
  292. // if($type){
  293. $url.='&type='.$type;
  294. // }
  295. // else{
  296. // $recom_ex=RecomCodeExpire::where('user_id',$id)->first();
  297. // if ($user->qr_code && $recom_ex && $recom_ex->qr_code && $recom_ex->expired_at>Carbon::now()){
  298. // return $user->qr_code;
  299. // }
  300. // }
  301. $qrCode = new \Endroid\QrCode\QrCode($url);
  302. // 内容区域宽高,默认为300
  303. $qrCode->setSize(600);
  304. // 外边距大小,默认为10
  305. // $qrCode->setMargin(10);
  306. // 设置编码
  307. $qrCode->setEncoding('UTF-8');
  308. // 设置容错等级
  309. $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH());
  310. // 设置二维码颜色,默认为黑色
  311. $qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);
  312. // 设置二维码背景色,默认为白色
  313. $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);
  314. // 设置二维码下方的文字
  315. $qrCode->setLogoPath('./logo.jpg');
  316. $qrCode->setLogoSize(200, 200);
  317. // $qrCode->setLogoPath('/www/wwwroot/test.woaidakele.cn/app-api/public/logo.jpg');
  318. // $qrCode->setLogoSize(80, 80);
  319. // $path='public/code/';
  320. // $path = public_path().'/code/';
  321. // File::makeDirectory($path,$mode = 0777,true,true);
  322. $folder_name = "upload/images/Qrcode/202103";
  323. // $folder_name = "upload/images/Qrcode/" . date("Ym", time());
  324. // 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。
  325. // 值如:/home/vagrant/Code/larabbs/public/uploads/images/avatars/201709/21/
  326. $upload_path = 'public/' . $folder_name;
  327. // 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在
  328. $extension = 'png';
  329. // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID
  330. // 值如:1_1493521050_7BVc9v9ujP.png
  331. $filename = '/'.$id . '_' . time() . '_' . str_random(10) . '.' . $extension;
  332. if($type){
  333. header('Content-Type: '.$qrCode->getContentType());
  334. return $qrCode->writeString();
  335. }else{
  336. File::isDirectory($upload_path) or File::makeDirectory($upload_path,077,true,true);
  337. $qrCode->writeFile(base_path().'/public/'.$upload_path.$filename);
  338. DB::beginTransaction();
  339. try{
  340. $user->qr_code=env('APP_URL').'/'.$upload_path.'/'.$filename;
  341. $user->save();
  342. $recom_ex=RecomCodeExpire::where('user_id',$id)->first();
  343. if($recom_ex){
  344. $recom_ex->expired_at=$expire;
  345. $recom_ex->qr_code=env('APP_URL').'/'.$upload_path.'/'.$filename;
  346. $recom_ex->save();
  347. }else{
  348. RecomCodeExpire::create([
  349. 'user_id'=>$id,
  350. 'qr_code'=>env('APP_URL').'/'.$upload_path.'/'.$filename,
  351. 'expired_at'=>$expire,
  352. ]);
  353. }
  354. DB::commit();
  355. }catch(\Exception $e){
  356. DB::rollback();
  357. }
  358. return env('APP_URL').'/'.$upload_path.'/'.$filename;
  359. }
  360. }
  361. //获取微店购买满5套客户
  362. public function getStoreMeetFive(Request $request){
  363. $agent_id=Auth::user()->id;
  364. $store=Store::where('user_id',$agent_id)->select('id','name','phone')->first();
  365. if($store){
  366. $user_ids=OrderW::where('store_id',$store->id)->whereNull('recomer_agent_id')->groupBy('user_id')->pluck('user_id')->toArray();
  367. $recomer_ids=OrderW::where('store_id',$store->id)->whereNull('recomer_agent_id')->groupBy('recomer_id')->pluck('recomer_id')->toArray();
  368. }else{
  369. $user_ids=[];
  370. $recomer_ids=[];
  371. }
  372. $recom_agent_ids=OrderW::where('recomer_agent_id',$agent_id)->groupBy('user_id')->pluck('user_id')->toArray();
  373. $user_ids=array_merge($user_ids,$recomer_ids,$recom_agent_ids);
  374. $user=UserW::with(['recom:id,nickname,phone'])->whereIn('id',$user_ids);
  375. $search_name=$request->input('search_name');
  376. if(!empty($search_name)){
  377. $user->where(function($query)use($search_name){
  378. $query->where('nickname','like','%'.$search_name.'%')
  379. ->orWhere('phone','like','%'.$search_name.'%');
  380. });
  381. }
  382. $list=$user->select('id','nickname','avatar','phone','recomer_id','recomer_agent_id')->get()->toArray();
  383. foreach($list as $key=>$val){
  384. if(User::where('mobile',$val['phone'])->exists()){ //存在代理账号
  385. unset($list[$key]);
  386. }else{
  387. if($agent_id==$val['recomer_agent_id']){
  388. $list[$key]['is_recom']=1;
  389. $agent=User::find($agent_id);
  390. $agent_recom_id=$agent->recom_id;
  391. // $agent_recom_id=User::where('id',$agent_id)->value('recom_id');
  392. // $agent_user_id=UserW::where('phone',$store->phone)->value('id');
  393. $agent_user_id=UserW::where('phone',$agent->mobile)->value('id');
  394. $recom_store_id=Store::where('user_id',$agent_recom_id)->value('id');
  395. $list[$key]['sale_total']=(int)OrderW::where(function($query)use($val,$recom_store_id,$agent_user_id){
  396. $query->where('store_id',$recom_store_id)
  397. ->where(function($que)use($val,$agent_user_id){
  398. $que->where(function($q)use($val,$agent_user_id){
  399. $q->where('user_id',$val['id'])->whereIn('recomer_status',[0,2])->where('recomer_id',$agent_user_id);
  400. })->orWhere(function($q)use($val){
  401. $q->where('recomer_id',$val['id'])->whereIn('recomer_status',[0,1]);
  402. });
  403. });
  404. })
  405. ->whereIn('status',[2,3])
  406. ->sum('total');
  407. $list[$key]['self_total']=(int)OrderW::query()
  408. ->where('store_id',$recom_store_id)->where('user_id',$val['id'])->where('recomer_id',$agent_user_id)
  409. ->whereIn('recomer_status',[0,2])
  410. ->whereIn('status',[2,3])
  411. ->sum('total');
  412. $list[$key]['recom_total']=(int)OrderW::query()
  413. ->where('store_id',$recom_store_id)->where('recomer_id',$val['id'])
  414. ->whereIn('recomer_status',[0,1])
  415. ->whereIn('status',[2,3])
  416. ->sum('total');
  417. }else{ //自买或介绍客户
  418. $list[$key]['is_recom']=0;
  419. $list[$key]['sale_total']=(int)OrderW::where(function($query)use($val,$store){
  420. $query->where('store_id',$store->id)
  421. ->where(function($que)use($val,$store){
  422. $que->where(function($q)use($val){
  423. $q->where('user_id',$val['id'])->whereIn('recomer_status',[0,2]);
  424. })->orWhere(function($q)use($val){
  425. $q->where('recomer_id',$val['id'])->whereIn('recomer_status',[0,1]);
  426. });
  427. });
  428. })
  429. ->whereIn('status',[2,3])
  430. ->sum('total');
  431. $list[$key]['self_total']=(int)OrderW::query()
  432. ->where('store_id',$store->id)->where('user_id',$val['id'])
  433. ->whereIn('recomer_status',[0,2])
  434. ->whereIn('status',[2,3])
  435. ->sum('total');
  436. $list[$key]['recom_total']=(int)OrderW::query()
  437. ->where('store_id',$store->id)->where('recomer_id',$val['id'])
  438. ->whereIn('recomer_status',[0,1])
  439. ->whereIn('status',[2,3])
  440. ->sum('total');
  441. }
  442. if(empty($val['recomer_id']) || empty($val['recom'])){
  443. $list[$key]['recom_info']=0;
  444. }
  445. }
  446. }
  447. $sale_total = array_column( $list, 'sale_total'); //取出数组中status的一列,返回一维数组
  448. array_multisort($sale_total, SORT_DESC, $list);//排序,根据$status 排序
  449. return $this->success(['list'=>array_values($list),'store'=>$store]);
  450. }
  451. public function getMeetFiveDetail123(Request $request){
  452. $agent_id=Auth::user()->id;
  453. $store_id=$request->input('store_id');
  454. $user_id=$request->input('user_id');
  455. $self['user']=UserW::with(['recom:id,nickname,phone'])->where('id',$user_id)->select('id','nickname','phone','avatar','recomer_id','recomer_agent_id')->first();
  456. if($self['user']->recomer_agent_id==$agent_id){
  457. $agent=User::where('id',$agent_id)->first();
  458. $agent_user_id=UserW::where('phone',$agent->mobile)->value('id');
  459. $agent_recom_id=$agent->recom_id;
  460. $store_id=Store::where('user_id',$agent_recom_id)->value('id');
  461. $self['order']= OrderDetailW::with(['goods:id,name,img'])
  462. ->whereHas('order',function($query)use($store_id,$user_id,$agent_user_id){
  463. $query->whereIn('status',[2,3])->where('store_id',$store_id)->where('user_id',$user_id)
  464. ->where('recomer_id',$agent_user_id)->whereIn('recomer_status',[0,2]);
  465. })
  466. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  467. }else{
  468. $self['order']= OrderDetailW::with(['goods:id,name,img'])
  469. ->whereHas('order',function($query)use($store_id,$user_id){
  470. $query->whereIn('status',[2,3])->where('store_id',$store_id)->where('user_id',$user_id)->whereIn('recomer_status',[0,2]);
  471. })
  472. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  473. }
  474. $recom_user_ids=OrderW::where('store_id',$store_id)->where('recomer_id',$user_id)->whereIn('status',[2,3])
  475. ->whereIn('recomer_status',[0,1])
  476. ->groupBy('user_id')->pluck('user_id')->toArray();
  477. $recom=[];
  478. foreach($recom_user_ids as $key=>$val){
  479. $recom[$key]['user']=UserW::where('id',$val)->select('id','nickname','phone')->first();
  480. $recom[$key]['order']=OrderDetailW::with(['goods:id,name,img'])
  481. ->whereHas('order',function($query)use($store_id,$val,$user_id){
  482. $query->whereIn('status',[2,3])->where('store_id',$store_id)
  483. ->where('user_id',$val)->where('recomer_id',$user_id)
  484. ->whereIn('recomer_status',[0,1]);
  485. })
  486. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  487. }
  488. $list['self']=$self;
  489. $list['recom']=$recom;
  490. return $this->success($list);
  491. }
  492. public function getMeetFiveDetail(Request $request){
  493. $agent_id=Auth::user()->id;
  494. $store_id=$request->input('store_id');
  495. $user_id=$request->input('user_id');
  496. $self['user']=UserW::with(['recom:id,nickname,phone'])->where('id',$user_id)->select('id','nickname','phone','avatar','recomer_id','recomer_agent_id')->first();
  497. if(empty($self['user']->recomer_id) || empty($self['user']->recom)){
  498. $self['user']->has_recome=0;
  499. }else{
  500. $self['user']->has_recome=1;
  501. }
  502. if($self['user']->recomer_agent_id==$agent_id){
  503. $self['user']->is_recom=1;
  504. $agent=User::where('id',$agent_id)->first();
  505. $agent_user_id=UserW::where('phone',$agent->mobile)->value('id');
  506. $agent_recom_id=$agent->recom_id;
  507. $store_id=Store::where('user_id',$agent_recom_id)->value('id');
  508. $order_ids= OrderW::whereIn('status',[2,3])
  509. ->where('store_id',$store_id)->where('user_id',$user_id)
  510. ->where('recomer_id',$agent_user_id)->whereIn('recomer_status',[0,2])->pluck('id');
  511. $self['order']= OrderDetailW::with(['goods:id,name,img'])
  512. ->whereIn('order_id',$order_ids)
  513. // ->whereHas('order',function($query)use($store_id,$user_id,$agent_user_id){
  514. // $query->whereIn('status',[2,3])->where('store_id',$store_id)->where('user_id',$user_id)
  515. // ->where('recomer_id',$agent_user_id)->whereIn('recomer_status',[0,2]);
  516. // })
  517. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  518. }else{
  519. $self['user']->is_recom=0;
  520. $order_ids= OrderW::whereIn('status',[2,3])
  521. ->where('store_id',$store_id)->where('user_id',$user_id)
  522. ->whereIn('recomer_status',[0,2])->pluck('id');
  523. $self['order']= OrderDetailW::with(['goods:id,name,img'])
  524. ->whereIn('order_id',$order_ids)
  525. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  526. }
  527. $recom_user_ids=OrderW::where('store_id',$store_id)->where('recomer_id',$user_id)->whereIn('status',[2,3])
  528. ->whereIn('recomer_status',[0,1])
  529. ->groupBy('user_id')->pluck('user_id')->toArray();
  530. $recom=[];
  531. foreach($recom_user_ids as $key=>$val){
  532. $recom[$key]['user']=UserW::where('id',$val)->select('id','nickname','phone')->first();
  533. $order_ids= OrderW::whereIn('status',[2,3])
  534. ->where('store_id',$store_id)->where('user_id',$val)
  535. ->where('recomer_id',$user_id)->whereIn('recomer_status',[0,1])->pluck('id');
  536. $recom[$key]['order']=OrderDetailW::with(['goods:id,name,img'])
  537. ->whereIn('order_id',$order_ids)
  538. // ->whereHas('order',function($query)use($store_id,$val,$user_id){
  539. // $query->whereIn('status',[2,3])->where('store_id',$store_id)
  540. // ->where('user_id',$val)->where('recomer_id',$user_id)
  541. // ->whereIn('recomer_status',[0,1]);
  542. // })
  543. ->select(DB::raw('sum(num) as num'),'goods_id')->groupBy('goods_id')->get();
  544. }
  545. $list['self']=$self;
  546. $list['recom']=$recom;
  547. return $this->success($list);
  548. }
  549. public function get_address(Request $request){
  550. $Address=Address::groupBy('mobile','province','address')->get()->toArray();
  551. foreach ($Address as $k=>$v){
  552. $re=Address::where('mobile',$v->mobile)->get();
  553. if (count($re)>1){
  554. Log::error(json_encode($re));
  555. }
  556. }
  557. dd(1);
  558. }
  559. function indes(Request $request){
  560. $mes['openid']='oVd_5w6zZm-7DfHEB00lheLtjkK0';
  561. $mes['data']=[
  562. 'first' => '很抱歉,邀请人审核被驳回!',
  563. 'keyword1' => '邀请人审核失败',
  564. 'keyword2' => '邀请人审核失败',
  565. 'keyword3' => date("Y-m-d H:i"),
  566. 'remark' => '点击链接进入系统,查看详情',
  567. ];
  568. event(new WechatMessageEvent($mes));
  569. }
  570. public function rand_code($num){
  571. $code='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  572. $str=$num."_";
  573. $str_1='';
  574. for ($i=0;$i<20;$i++){
  575. $int=rand(0,34);
  576. $str_1.=mb_substr($code,$int,1);
  577. }
  578. $str=$str.mb_substr(time(),2,3).$str_1;
  579. return $str.mb_substr(time(),7,3);
  580. }
  581. public function login(){
  582. $app=app('wechat.official_account');
  583. $shortUrl = $app->url->shorten('https://easywechat.com');
  584. dd($shortUrl['short_url']);
  585. $user=User::where('mobile',15236877164)->first();
  586. $token = Auth::guard('api')->fromUser($user);
  587. return $this->success($token);
  588. }
  589. public function info(Request $request){
  590. $rule=[
  591. 'dwbs_weapp'=>'required',
  592. 'dwbs_weapp_secret'=>'required',
  593. 'mobile'=>'required'
  594. ];
  595. $message=[
  596. 'dwbs_weapp.required'=>'参数不正确',
  597. 'dwbs_weapp_secret.required'=>'参数不正确'
  598. ];
  599. $va=Validator::make($request->all(),$rule,$message);
  600. if ($va->fails()){
  601. return $this->error(300,'',$va->errors()->first());
  602. }
  603. $acc=\config('config.dwbs_weapp');
  604. $secret=\config('config.dwbs_weapp_secret');
  605. if ($request->dwbs_weapp==$acc&&$request->dwbs_weapp_secret==$secret){
  606. $user=User::where('mobile',$request->mobile)->whereIn('cert_status',[3,6])->where('status',0)->where('deleted_at','=',null)->where('service_status',0)->first();
  607. if ($user){
  608. if ($user->level==3){
  609. $re['level_name']=judge_level($user->level);
  610. }else{
  611. $data=$this->look($user->agent_user->mobile);
  612. $re['level_name']=judge_level($user->level);
  613. $re['up_name']=$data['nickname'];
  614. $re['up_phone']=$data['mobile'];
  615. }
  616. $re['dwbs_id']=$user->id;
  617. $re['nickname']=$user->nickname==null?$user->name:$user->nickname;
  618. }else{
  619. $re=[];
  620. }
  621. return $this->success($re);
  622. }
  623. return $this->error(400);
  624. }
  625. public function look($phone){
  626. $user=User::where('mobile',$phone)->first();
  627. if ($user->level==3){
  628. return ['mobile'=>$user->mobile,'nickname'=>$user->nickname];
  629. }else{
  630. $data=$this->look($user->agent_user->mobile);
  631. return $data;
  632. }
  633. }
  634. public function index(Request $request){
  635. $phone=15236877164;
  636. $client=new Client();
  637. $url='http://api.woaidakele.cn/api/index/info';
  638. $array = [
  639. 'form_params' => [
  640. 'mobile' => $phone,
  641. 'dwbs_weapp' => 'acc',
  642. 'dwbs_weapp_secret' =>'secret',
  643. ]
  644. ];
  645. $response = $client->request('POST', $url,$array);
  646. $ad = json_decode($response->getBody()->getContents());
  647. dd($ad->data->up_name);
  648. if ($ad->code==300){
  649. dd('ceshi');
  650. }else{
  651. dd('success');
  652. }
  653. $avatarResponse = $client->get($url);
  654. //
  655. $img = Image::make($avatarResponse->getBody()->getContents());
  656. // $img=Image::make(public_path().'/138.jpg');
  657. $data=['争霸赛张奇','15236877164'];
  658. $img->text('争霸赛张奇', 400, 565,function ($font){
  659. $font->file(base_path().'/public/fangzheng.ttf');
  660. $font->size(25);
  661. $font->angle(0);
  662. });
  663. $img->text('15236877164', 400, 635,function ($font){
  664. $font->file(base_path().'/public/fangzheng.ttf');
  665. $font->size(25);
  666. $font->angle(0);
  667. });
  668. $img->text('顶级代理', 350, 820,function ($font){
  669. $font->file(base_path().'/public/fangzheng.ttf');
  670. $font->size(60);
  671. $font->angle(0);
  672. });
  673. $img->text('DWBS0001620031130100336179', 285, 965,function ($font){
  674. $font->file(base_path().'/public/fangzheng.ttf');
  675. $font->size(25);
  676. $font->angle(0);
  677. });
  678. $year=mb_substr($time_start,0,4);
  679. $month=mb_substr($time_start,5,2);
  680. $day=mb_substr($time_start,8,2);
  681. $year_t=mb_substr($time_end,0,4);
  682. $month_t=mb_substr($time_end,5,2);
  683. $day_t=mb_substr($time_end,8,2);
  684. $img->text("{$year}年{$month}月{$day}日 - {$year_t}年{$month_t}月{$day_t}日", 285, 1050,function ($font){
  685. $font->file(base_path().'/public/fangzheng.ttf');
  686. $font->size(25);
  687. $font->angle(0);
  688. });
  689. $name=$this->rand_code(100);
  690. // $img->save(base_path().'/public/'.$name.'.jpg');
  691. return $img->response("png");
  692. $rules=[
  693. 'type'=>'required',
  694. 'page'=>'required'
  695. ];
  696. $message=[
  697. 'type.required'=>'type不能为空',
  698. 'page.required'=>'page不能为空'
  699. ];
  700. $v=Validator::make($request->all(),$rules,$message);
  701. if ($v->fails()){
  702. dd($v->errors()->first());
  703. return $this->error(600,[],$v->errors()->first());
  704. }
  705. return 's';
  706. // $seconds=1000;
  707. // $value=Cache::get('users');
  708. // if ($value){
  709. // return $value;
  710. // }else{
  711. // Cache::remember('users', $seconds, function () {
  712. // return DB::table('users')->where('id','>',30000)->get();
  713. // });
  714. // }
  715. // $value=Cache::get('users');
  716. // return $value;
  717. //// return User::where('id','>',30000)->get();
  718. $phone='15103562283';
  719. $code = mb_substr($phone, 3, 2) . mb_substr($phone, 8, 2) . mb_substr($phone, 6, 2);
  720. return $code;
  721. // $chars=null;
  722. // dump('1');
  723. // $len=6;
  724. // if (is_null($chars)) {
  725. // $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  726. // }
  727. // dump('1');
  728. // mt_srand(10000000*(double)microtime());
  729. // for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < $len; $i++) {
  730. // $str .= $chars[mt_rand(0, $lc)];
  731. // }
  732. // dump('1');
  733. // return $str;
  734. // $count=User::where('recom_code',$str)->count();
  735. // if($count>0) {
  736. //// $str=$this->auth_code(6);
  737. // return $str;
  738. // }else{
  739. // return $str;
  740. // }
  741. //
  742. //
  743. //// return $this->indes();
  744. // $user=Auth::user();
  745. // $user=User::where('mobile','13779416168')->first();
  746. $re=[
  747. ['name'=>'蜕变/毕中平','phone'=>'18636496182'],
  748. ['name'=>'张红梅','phone'=>'13835690160'],
  749. ['name'=>'张妮','phone'=>'13303564360'],
  750. ['name'=>'小u妈 /冯江丽','phone'=>'13327566969'],
  751. ['name'=>'仙/姬国仙','phone'=>'13513561649'],
  752. ['name'=>'苏广荣 ','phone'=>'15703461531'],
  753. ['name'=>'任志北','phone'=>'18635613103'],
  754. ['name'=>'栗玲梅','phone'=>'13393469347'],
  755. ['name'=>'李春霞','phone'=>'13782683735'],
  756. ['name'=>'米粒','phone'=>'15299405680'],
  757. ['name'=>'丽丽','phone'=>'15739201119'],
  758. ['name'=>'婧茹','phone'=>'13363413419'],
  759. ['name'=>'许越畅','phone'=>'13387234678']
  760. ];
  761. if ($request->has('page')){
  762. $page=($request->page)-1;
  763. }else{
  764. $page=0;
  765. }
  766. $data=[];
  767. if ($request->type==0){
  768. $user_all=User::where('agent_id',$user->id)->where('status',0)->whereIn('cert_status',[3,6])->where('deleted_at','=',null)->orderBy('id')->get();
  769. $arr_per=[];
  770. foreach ($user_all as $k=>$v){
  771. $arr_per[$k]['id']=$v->id;
  772. $arr_per[$k]['avatar']=$v->headimgurl;
  773. $arr_per[$k]['nickname']=$v->nickname;
  774. $arr_per[$k]['level_name']=judge_level($v->level);
  775. }
  776. $num=count($arr_per);
  777. // return $num;
  778. $num1=$num-$page*15;
  779. if ($num1>=15){
  780. $j=15;
  781. }else{
  782. $j=$num1;
  783. }
  784. for ($i=0;$i<$j;$i++){
  785. $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  786. $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  787. $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  788. $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  789. }
  790. // return $this->success($data);
  791. }else{
  792. $user_all=User::where('agent_id',$user->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  793. // $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();
  794. $user_data=[];
  795. $arr_per=[];
  796. $all=[];
  797. $all_1=[];
  798. foreach ($user_all as $k=>$v){
  799. $arr=[];
  800. // $arr_per[$k]['id']=$v->id;
  801. // $arr_per[$k]['avatar']=$v->headimgurl;
  802. // $arr_per[$k]['nickname']=$v->nickname;
  803. // $arr_per[$k]['level_name']=judge_level($v->level);
  804. $user_per=User::where('agent_id',$v->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  805. if ($user){
  806. foreach ($user_per as $key=>$value){
  807. $arr[$key]['id']=$value->id;
  808. $arr[$key]['avatar']=$value->headimgurl;
  809. $arr[$key]['nickname']=$value->nickname;
  810. $arr[$key]['level_name']=judge_level($value->level);
  811. }
  812. $all=array_merge($all,$arr);
  813. }
  814. }
  815. $user_data=array_merge($all,$arr_per);
  816. // foreach ($user_all as $k=>$v){
  817. // $arr_per=[];
  818. // $user_per=User::where('agent_id',$v->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  819. // if ($user){
  820. // foreach ($user_per as $key=>$value){
  821. // $arr_per[$key]['id']=$value->id;
  822. // $arr_per[$key]['avatar']=$value->headimgurl;
  823. // $arr_per[$key]['nickname']=$value->nickname;
  824. // $arr_per[$key]['level_name']=judge_level($value->level);
  825. // }
  826. // $all_1=array_merge($all_1,$arr_per);
  827. // }
  828. // }
  829. // $user_data=array_merge($user_data,$all_1);
  830. $num=count($user_data);
  831. $num1=$num-$page*15;
  832. if ($num1>=15){
  833. $j=15;
  834. }else{
  835. $j=$num1;
  836. }
  837. // return $num;
  838. for ($i=0;$i<$j;$i++){
  839. $data[$i]['id']=$user_data[$page*15+$i]['id'];
  840. $data[$i]['avatar']=$user_data[$page*15+$i]['avatar'];
  841. $data[$i]['nickname']=$user_data[$page*15+$i]['nickname'];
  842. $data[$i]['level_name']=$user_data[$page*15+$i]['level_name'];
  843. }
  844. }
  845. return $this->success($data);
  846. // $user=User::where('mobile','18635680853')->first();
  847. // $today=Carbon::today()->toDateTimeString();
  848. // $month=Carbon::now()->firstOfMonth()->toDateTimeString();
  849. // $user_all=User::whereIn('cert_status',[3,6])->where('created_at','>',$today)->get();
  850. // $num=0;
  851. // foreach ($user_all as $k=>$v){
  852. // if ($v->agent_id==$user->id){
  853. // $num=$num+1;
  854. // }else{
  855. // $arr=User::where('id',$v->agent_id)->first();
  856. // if ($arr->agent_id==$user->id){
  857. // $num=$num+1;
  858. // }
  859. // }
  860. // }
  861. //
  862. // $user_all=User::whereIn('cert_status',[3,6])->where('created_at','>',$month)->get();
  863. // $num_all=0;
  864. // foreach ($user_all as $k=>$v){
  865. // if ($v->agent_id==$user->id){
  866. // $num_all=$num_all+1;
  867. // }else{
  868. // $arr=User::where('id',$v->agent_id)->first();
  869. // if ($arr->agent_id==$user->id){
  870. // $num_all=$num_all+1;
  871. // }
  872. // }
  873. // }
  874. //
  875. // $data=['num'=>$num,'all_num'=>$num_all];
  876. //// Log::error('{-0-----新增代理-------}'.json_encode($data));
  877. // return $this->success($data);
  878. // return
  879. return $this->success($data);
  880. // }else{
  881. // if ($request->type==0){
  882. // $user_all=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();
  883. // foreach ($user_all as $k=>$v){
  884. // $arr_per[$k]['id']=$v->id;
  885. // $arr_per[$k]['avatar']=$v->headimgurl;
  886. // $arr_per[$k]['nickname']=$v->nickname;
  887. // $arr_per[$k]['level_name']=judge_level($v->level);
  888. // }
  889. // for ($i=0;$i<15;$i++){
  890. // $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  891. // $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  892. // $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  893. // $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  894. // }
  895. // return $this->success($data);
  896. // }else{
  897. // $user_all=User::where('agent_id',$user->id)->where('recom_id','<>',$user->id)->where('status',0)->where('deleted_at','=',null)->orderBy('id')->whereIn('cert_status',[3,6])->get();
  898. // foreach ($user_all as $k=>$v){
  899. // $arr_per[$k]['id']=$v->id;
  900. // $arr_per[$k]['avatar']=$v->headimgurl;
  901. // $arr_per[$k]['nickname']=$v->nickname;
  902. // $arr_per[$k]['level_name']=judge_level($v->level);
  903. // }
  904. // for ($i=0;$i<15;$i++){
  905. // $data[$i]['id']=$arr_per[$page*15+$i]['id'];
  906. // $data[$i]['avatar']=$arr_per[$page*15+$i]['avatar'];
  907. // $data[$i]['nickname']=$arr_per[$page*15+$i]['nickname'];
  908. // $data[$i]['level_name']=$arr_per[$page*15+$i]['level_name'];
  909. // }
  910. // return $this->success($data);
  911. // }
  912. // }
  913. // foreach ($user_all as $k=>$v){
  914. // $data[$k]['id']=$v->id;
  915. // $data[$k]['avatar']=$v->headimgurl;
  916. // $data[$k]['nickname']=$v->nickname;
  917. // $data[$k]['level_name']=judge_level($v->level);
  918. // }
  919. // $arr=$this->new_per();
  920. // $re= $arr->original;
  921. // $res=[
  922. // 'today_new'=>$re['data']['num'],
  923. // 'month_new'=>$re['data']['all_num'],
  924. // 'size'=>15,
  925. // 'total'=>$count,
  926. // 'list'=>$data
  927. // ];
  928. // Log::error('{-------代理数量-----}'.json_encode($res));
  929. return $this->success($user_data);
  930. // 、 $user=User::where('mobile',15236877164)->first();
  931. // return $user->recom_user->name;
  932. $user= (new User())->newQuery();
  933. $search_name='';
  934. $agent_name='';
  935. $recom_name='15236877164';
  936. if($search_name){
  937. $user->where('mobile','like',"%{$search_name}%")
  938. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  939. ->orWhere('nickname', 'like', '%' . $search_name . '%')
  940. ->orWhere('realname', 'like', '%' . $search_name . '%');
  941. }
  942. if($agent_name){
  943. $agent_id = User::where('nickname', 'like', '%' . $agent_name . '%')
  944. ->orWhere('mobile', 'like', '%' . $agent_name . '%')
  945. ->orWhere('cre_num', 'like', '%' . $agent_name . '%')
  946. ->orWhere('realname', 'like', '%' . $agent_name . '%')
  947. ->pluck('id');
  948. $user->where('id','in',$agent_id);
  949. }
  950. if($recom_name){
  951. $recom_id = User::where('nickname', 'like', '%' . $recom_name . '%')
  952. ->orWhere('mobile', 'like', '%' . $recom_name . '%')
  953. ->orWhere('cre_num', 'like', '%' . $recom_name . '%')
  954. ->orWhere('realname', 'like', '%' . $recom_name . '%')
  955. ->pluck('id');
  956. $user->whereIn('id',$recom_id);
  957. }
  958. $count = $user->with(['recom_user','agent_user'])->get();
  959. // dd($count);
  960. foreach ($count as $k=>$v){
  961. if ($v->recom_user==null){
  962. $data[$k]['reaom_nickname']='';
  963. $data[$k]['reaom_name']='';
  964. $data[$k]['recom_realname']='';
  965. }else{
  966. $data[$k]['reaom_nickname']=$v->recom_user->nickname;
  967. $data[$k]['reaom_name']=$v->recom_user->reaom_name;
  968. $data[$k]['recom_realname']=$v->recom_user->recom_realname;
  969. }
  970. $data[$k]['name']=$v->name;
  971. $data[$k]['nickname']=$v->nickname;
  972. $data[$k]['mobile']=$v->mobile;
  973. $data[$k]['realname']=$v->realname;
  974. }
  975. dd($data);
  976. return $data;
  977. // $user_id = User::where(function ($q)use($search_name){
  978. // $q->where('nickname', 'like', '%' . $search_name . '%')
  979. // ->orWhere('mobile', 'like', '%' . $search_name . '%')
  980. // ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  981. // ->orWhere('realname', 'like', '%' . $search_name . '%');
  982. // })->value('id');
  983. //
  984. // $count = User::where('recom_id',$user_id)->count();
  985. // return $count;
  986. // ''
  987. // if ($search_name==''&&$agent_name==''&&$recom_name!='')
  988. // DB::connection()->enableQueryLog();
  989. $count=$user->where(function ($query) use ($search_name) {
  990. if($search_name != ''){
  991. $query->where('nickname', 'like', '%' . $search_name . '%')
  992. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  993. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  994. ->orWhere('realname', 'like', '%' . $search_name . '%');
  995. }
  996. })
  997. ->whereIn('cert_status',[3,6])
  998. // ->where($where)
  999. ->with([
  1000. // 'recom:id,nickname,mobile','agent:id,nickname,mobile',
  1001. 'recom_user'=> function ($recom_user) use ($recom_name) {
  1002. $recom_user->where('nickname', 'like', '%' . $recom_name . '%')
  1003. ->orWhere('mobile', 'like', '%' . $recom_name . '%')
  1004. ->orWhere('cre_num', 'like', '%' . $recom_name . '%')
  1005. ->orWhere('realname', 'like', '%' . $recom_name . '%');
  1006. },
  1007. // 'agent_user'=>function ($agent_user) use ($agent_name) {
  1008. // $agent_user->where('nickname', 'like', '%' . $agent_name . '%')
  1009. // ->orWhere('mobile', 'like', '%' . $agent_name . '%')
  1010. // ->orWhere('cre_num', 'like', '%' . $agent_name . '%')
  1011. // ->orWhere('realname', 'like', '%' . $agent_name . '%');
  1012. // }
  1013. ])
  1014. ->get();
  1015. //dd(DB::getQueryLog());
  1016. return $count;
  1017. // $num=3;
  1018. //
  1019. // try {
  1020. // DB::beginTransaction();
  1021. // $demo=new Demo();
  1022. // $demo->name='kele';
  1023. //// $demo->names='kele';
  1024. // $demo->save();
  1025. // $this->demo();
  1026. // DB::commit();
  1027. // }catch (\Exception $exception){
  1028. // DB::rollBack();
  1029. // Log::error('ssssss');
  1030. // }
  1031. // $user=User::find(24);
  1032. // $user->auth_code=auth_code($user->mobile);
  1033. // $user->auth_startime=Carbon::now()->toDateTimeString();
  1034. // $user->auth_endtime=Carbon::now()->toDateTimeString();
  1035. // $user->save();
  1036. // $re="[{\"price\":\"299.00\",\"name\":\"\\u5927\\u536b\\u535a\\u58eb\\u6d4b\\u8bd5\\u5546\\u54c15\",\"img\":\"http:\\\/\\\/192.168.0.15:8011\\\/storage\\\/goods\\\/8HyLVAxW8en9TrveWfrqDKeCqLlU4vUkfKQgMgea.jpeg\",\"num\":\"7\"}]";
  1037. // $res=json_decode($re);
  1038. // $re=code('15236877164');
  1039. // DB::table('users_copy1')->update(['recom_id'=>null]);
  1040. $user=User::find(33);
  1041. return $this->success($user);
  1042. if ($user){
  1043. return $user->nickname;
  1044. }
  1045. return 's';
  1046. dd($user);
  1047. return $this->success(['num'=>20]);
  1048. $data=$this->indes();
  1049. $re=$data->original;
  1050. return $re['data']['num'];
  1051. $user_all=User::where('agent_id',33)->where('recom_id',33)->where('status',0)->whereIn('cert_status',[3,6])->get();
  1052. return $this->success($user_all);
  1053. return md5('877164');
  1054. $user=User::all();
  1055. foreach ($user as $k=>$v){
  1056. $ress=[];
  1057. if ($v->id==24){
  1058. }else{
  1059. $re[$k]['id']=$v->id;
  1060. $re[$k]['name']=$v->name;
  1061. }
  1062. $res=array_merge($ress,$re);
  1063. }
  1064. return $this->success($res);
  1065. $time='2020-01-16 22:08:06';
  1066. $time=strtotime($time);
  1067. $now=Carbon::now()->timestamp;
  1068. $data=$now-$time;
  1069. $n=$data/3600;
  1070. return $n;
  1071. $up_phone=DB::table('app_user')->where('cellphone','=','15236877163')->value('upper_cellphone');
  1072. if ($up_phone){
  1073. $id=DB::table('users_copy1')->where('mobile',$up_phone)->value('id');
  1074. // if ($id){
  1075. // DB::table('users_copy1')->where('id',$v->id)->update(['agent_id'=>$id]);
  1076. // }
  1077. return $id;
  1078. }
  1079. return 's';
  1080. $phone=13608638531;
  1081. $date='20200229';
  1082. $data=DB::select("select recom_code FROM users_copy1 GROUP BY recom_code HAVING COUNT(recom_code)>1;");
  1083. return $data;
  1084. $res=DB::table('app_user')->whereIn('id',['4058','26536'])->get();
  1085. return $res;
  1086. return Carbon::now()->addYear('1')->firstOfMonth()->toDateTimeString();
  1087. return date('Y-m-d H:i:s',strtotime($date));
  1088. $code = mb_substr($phone, 3, 2) . mb_substr($phone, 8, 2) . mb_substr($phone, 6, 2);
  1089. return $code;
  1090. $user=User::where('id','>',2)->paginate(15);
  1091. Log::error('{--------}'.json_encode($user));
  1092. foreach ($user as $k=>$v){
  1093. $re[$k]=$v->id;
  1094. }
  1095. return $re;
  1096. return Carbon::now()->addYear('1')->startOfDay()->toDateTimeString();
  1097. return substr('15236877164',8,3);
  1098. return auth_code(15236877164);
  1099. echo base_convert($request->num,10,32);
  1100. }
  1101. public function demo(){
  1102. $demo=new Demodemo();
  1103. $demo->name='kele';
  1104. $demo->names='kele';
  1105. $demo->save();
  1106. }
  1107. public function test(Request $request){
  1108. $client=new Client();
  1109. $url="https://api.weixin.qq.com/sns/userinfo";
  1110. $array=[
  1111. 'query' => [
  1112. 'access_token' =>$request->access_token,
  1113. 'openid'=>$request->openid
  1114. ]
  1115. ];
  1116. $data=$client->request('GET',$url,$array);
  1117. $ad = json_decode($data->getBody()->getContents());
  1118. echo $ad->nickname;
  1119. dd($ad);
  1120. // $address=Address::find(1);
  1121. }
  1122. public function json(Request $request){
  1123. return md5_file('https://api.jiuweiyun.cn/public/uploads/images/img/201912/24/5850_1577162472_WD3doBoiDT.png');
  1124. $data='1000050001202001071103128744231';
  1125. $d='100005000120200107110312844231';
  1126. similar_text($data,$d,$percent);
  1127. return $percent;
  1128. $address=new Address();
  1129. $address->provice='河南';
  1130. $address->uid=120;
  1131. $address->save();
  1132. return $address->id;
  1133. $data=[
  1134. [
  1135. "name"=> "男款(黑色)",
  1136. "size"=> 's',
  1137. 'num'=>'2',
  1138. ],
  1139. [
  1140. "name"=> "男款(黑色)",
  1141. "size"=> 'l',
  1142. 'num'=>'3,'
  1143. ],
  1144. [
  1145. "name"=> "男款(黑色)",
  1146. "size"=> 'xl',
  1147. 'num'=>'4',
  1148. ],
  1149. [
  1150. "name"=> "男款(肤色)",
  1151. "size"=> 'l',
  1152. 'num'=>'5,'
  1153. ],
  1154. [
  1155. "name"=> "男款(肤色)",
  1156. "size"=> 's',
  1157. 'num'=>'6',
  1158. ],
  1159. [
  1160. "name"=> "女款(黑色)",
  1161. "size"=> 'l',
  1162. 'num'=>'10,'
  1163. ]
  1164. ];
  1165. $result= array();
  1166. foreach ($data as $key => $value) {
  1167. $result[$value['name']][] = $value;
  1168. }
  1169. $i=0;
  1170. foreach ($result as $k=>$v){
  1171. foreach ($v as $key=>$val){
  1172. $dat[$key]=$val['size'];
  1173. $dats[$key]=$val['num'];
  1174. }
  1175. $datas[$i]['name']=$v[0]['name'];
  1176. $datas[$i]['size']=$dat;
  1177. $datas[$i]['num']=$dats;
  1178. $i++;
  1179. }
  1180. return $datas;
  1181. // for($i=0;$i<$count-1;$i++){
  1182. // for ($j=$i+1;$j<$count;$j++){
  1183. // if ($data[$i]['name']==$data[$j]['name']){
  1184. // $name[$i]=$data[$i]['name'];
  1185. // $size=$data[$i]['size'];
  1186. // }
  1187. // }
  1188. // $dat[$i]=$data[$i]['size'];
  1189. // }
  1190. return $dat;
  1191. }
  1192. public function getMessageInfo(){
  1193. $user_id=Auth::user()->id;
  1194. $notice=Notice::where('user_id',$user_id)->orderByDesc('id')->limit(1)->get();
  1195. $info=Infos::where('disabled','0')->orderBy('is_top','desc')->orderBy('top_at','desc')->limit(2)->get();
  1196. if(count($notice)>0){
  1197. $data['notice']=$notice[0];
  1198. }else{
  1199. $data['notice']=null;
  1200. }
  1201. $data['info']=$info;
  1202. $data['banner']=Banner::where('status',1)->orderBy('sort')->orderByDesc('id')->get();
  1203. return $this->success_list($data);
  1204. }
  1205. //获取公告通知列表
  1206. public function getMessageList(Request $request){
  1207. $page_index=$request->input('page_index');
  1208. $page_size=$request->input('page_size');
  1209. $num=$page_size*($page_index-1);
  1210. $user_id=Auth::user()->id;
  1211. $data=Infos::query()->where(function($query){
  1212. $query->whereIn('type',[1,4])->where('disabled','0');
  1213. })
  1214. ->orWhere(function($query)use($user_id){
  1215. $query->whereIn('type',[2,3,5,6])->where('user_id',$user_id);
  1216. });
  1217. $count=$data->count();
  1218. $list=$data->orderByDesc('is_top','top_at')
  1219. ->skip($num)->take($page_size)->get();
  1220. return $this->success_list($list,'',$count);
  1221. }
  1222. public function get_infos(){
  1223. $order=Ordertest::where('is_deleted',0)->where('created_at','>=','2020-08-24 21:00:00')->with(['order_detail','get_pay'=>function($q){
  1224. $q->whereIn('type',[1,2,3]);
  1225. },'get_user'])->get();
  1226. $i=0;
  1227. foreach ($order as $k=>$v){
  1228. $money=0;
  1229. $pay_money=0;
  1230. $pay=0;
  1231. $pay1=0;
  1232. $pay2=0;
  1233. foreach ($v->order_detail as $ke=>$va){
  1234. $money+=$va->money;
  1235. // $pay_money+=$va->pay_money;
  1236. //该订单总金额
  1237. }
  1238. foreach ($v->get_pay as $ke=>$value){
  1239. //订单支付的金额
  1240. if ($value->type==1){
  1241. $pay+=$value->pay_money;
  1242. }elseif ($value->type==2){
  1243. //带订单退款金额
  1244. $pay1+=$value->pay_money;
  1245. }elseif ($value->type==3){
  1246. $pay2+=$value->money;
  1247. }
  1248. }
  1249. if (($pay1-$pay2)>$money){
  1250. echo $v->order_num.'<br/>';
  1251. }
  1252. }
  1253. // echo 1;
  1254. }
  1255. public function get_count(){
  1256. $re=MoneyUser::with(['get_pay'=>function($q){
  1257. $q->whereIn('user_pay_log.type',[0,3])->where('user_pay_log.created_at','>','2020-08-23 00:00:00');
  1258. }])->get();
  1259. foreach ($re as $k=>$v){
  1260. $money=0;
  1261. $moneys=0;
  1262. if ($v->get_pay->isEmpty()){
  1263. $money=0;
  1264. }else{
  1265. foreach ($v->get_pay as $ke=>$va){
  1266. if ($va->type==0){
  1267. $money+=$va->pay_money;
  1268. }else{
  1269. $moneys+=$va->pay_money;
  1270. }
  1271. }
  1272. }
  1273. if ($moneys>20){
  1274. $money-=$moneys;
  1275. }
  1276. if ($money!=$v->money){
  1277. echo '充值金额为'.$money.'------------'.$v->mobile.'-----Excel数据中的金额-----'.$v->money.'<br/>';
  1278. }
  1279. }
  1280. }
  1281. public function get_user_money(){
  1282. $user=User::where('level',3)->with(['get_money'=>function($q){
  1283. $q->where('created_at','>=','2020-08-22 00:00:00')->orderByDesc('id');
  1284. },'get_moneyss'=>function($q){
  1285. $q->where('created_at','<','2020-08-22 00:00:00')->orderByDesc('id');
  1286. },'get_order'=>function($q){
  1287. $q->where('created_at','>=','2020-08-22 00:00:00')->where('is_deleted',0);
  1288. },'get_moneys'=>function($q){
  1289. $q->where('created_at','<','2020-08-28 00:00:00')->orderByDesc('id');
  1290. }])->get();
  1291. $money=0;
  1292. $pay_money=0;
  1293. $p_money=0;
  1294. $now_money=0;
  1295. $old_money=0;
  1296. $k_money=0;
  1297. foreach ($user as $k=>$v){
  1298. $pay_money=0;
  1299. $p_money=0;
  1300. $now_money=0;
  1301. $old_money=0;
  1302. $k_money=0;
  1303. if ($v->get_money->isEmpty()){
  1304. $p_money=0;
  1305. $old_money=0;
  1306. }else{
  1307. //22号进行充值的
  1308. foreach ($v->get_money as $ke=>$va){
  1309. if ($va->type==0){
  1310. $p_money+=$va->pay_money;
  1311. }elseif ($va->type==3){
  1312. $k_money+=$va->pay_money;
  1313. }
  1314. }
  1315. }
  1316. if ($v->get_moneyss->isEmpty()){
  1317. $old_money=0;
  1318. }else{
  1319. //距离22号最近一天的余额
  1320. foreach ($v->get_moneyss as $ke=>$va){
  1321. if ($ke==0){
  1322. $old_money=$va->user_money;
  1323. }
  1324. }
  1325. }
  1326. if ($v->get_moneys->isEmpty()){
  1327. $now_money=0;
  1328. }else{
  1329. foreach ($v->get_moneys as $ke=>$va){
  1330. if ($ke==0){
  1331. $now_money=$va->user_money;
  1332. }
  1333. }
  1334. }
  1335. if ($v->get_order->isEmpty()){
  1336. }else{
  1337. foreach ($v->get_order as $ke=>$va){
  1338. $pay_money+=$va->pay_money;
  1339. }
  1340. }
  1341. if ($old_money+$p_money-$pay_money-$k_money!=$now_money){
  1342. echo '代理ID为-------------'.$v->nickname.'-----初始金额为-----'.$old_money.'-------充值金额为------'.$p_money.'-----支付金额为-----'.$pay_money.'--扣款金额------'.$k_money.'------现在金额为-'.$now_money.'<br/>';
  1343. }
  1344. }
  1345. dd(1);
  1346. }
  1347. }