Kernel.php 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  1. <?php
  2. namespace App\Console;
  3. use App\Console\Commands\AutoPayment;
  4. use App\Console\Commands\BigGiftUserImgCommand;
  5. use App\Console\Commands\BigGiftUserImgDCommand;
  6. use App\Console\Commands\SynOrderCommand;
  7. use App\Console\Commands\SynOrderNewCommand;
  8. use App\Http\Controllers\ActivityImgController;
  9. use App\Http\Controllers\SynOrderController;
  10. use App\Models\Activity;
  11. use App\Models\Address;
  12. use App\Models\BigGiftApply;
  13. use App\Models\Data;
  14. use App\Models\DataInfo;
  15. use App\Models\Gifts;
  16. use App\Models\GiftUserImg;
  17. use App\Models\Goods;
  18. use App\Models\Order;
  19. use App\Models\OrderDetail;
  20. use App\Models\OrderGift;
  21. use App\Models\UrlList;
  22. use App\Models\User;
  23. use App\Models\UserPay;
  24. use Carbon\Carbon;
  25. use GuzzleHttp\Client;
  26. use Illuminate\Console\Scheduling\Schedule;
  27. use Illuminate\Encryption\Encrypter;
  28. use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
  29. use Illuminate\Support\Facades\Auth;
  30. use Illuminate\Support\Facades\DB;
  31. use Illuminate\Support\Facades\Hash;
  32. use Illuminate\Support\Facades\Log;
  33. use Illuminate\Support\Str;
  34. use Intervention\Image\Facades\Image;
  35. class Kernel extends ConsoleKernel
  36. {
  37. /**
  38. * The Artisan commands provided by your application.
  39. *
  40. * @var array
  41. */
  42. protected $commands = [
  43. SynOrderNewCommand::class,
  44. SynOrderCommand::class,
  45. AutoPayment::class,
  46. BigGiftUserImgDCommand::class,
  47. BigGiftUserImgCommand::class,
  48. ];
  49. /**
  50. * Define the application's command schedule.
  51. *
  52. * @param \Illuminate\Console\Scheduling\Schedule $schedule
  53. * @return void
  54. */
  55. protected function schedule(Schedule $schedule)
  56. {
  57. // $schedule->command('inspire')
  58. // ->hourly();
  59. $schedule->command(AutoPayment::class)->everyMinute();
  60. // $schedule->command(SynOrderNewCommand::class)->everyMinute()->withoutOverlapping();
  61. // $schedule->command(BigGiftUserImgDCommand::class)->dailyAt('11:17');
  62. $schedule->command(BigGiftUserImgCommand::class)->dailyAt('13:01');
  63. // $schedule->command(SynOrderCommand::class)->everyMinute()->withoutOverlapping();
  64. // $schedule->command(SynOrderCommand::class)->everyMinute()->withoutOverlapping();
  65. $schedule->call(function (){
  66. $data=BigGiftApply::where('status',2)->get();
  67. $activity_id=15;
  68. foreach ($data as $k=>$v){
  69. $re=GiftUserImg::where('activity_id',$activity_id)->where('type',0)->where('is_main',1)->where('img_type',0)->first();
  70. $img=GiftUserImg::where('activity_id',$activity_id)->where('type',0)->where('is_main',0)->where('img_type',0)->first();
  71. if (!$re || !$img){
  72. return;
  73. }
  74. try {
  75. $image=Image::make($v->headimgurl);
  76. $folder_name = "uploads/UserHeadImg/" . date("Ym/d", time());
  77. $upload_path = 'public/'.$folder_name;
  78. // 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在
  79. $extension = 'png';
  80. // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID
  81. // 值如:1_1493521050_7BVc9v9ujP.png
  82. $filename = Str::random(10).random_int(1111,9999) .'.'. $extension;
  83. // File::isDirectory($upload_path) or File::makeDirectory($upload_path, 077, true, true);
  84. if (!file_exists(public_path($upload_path))) {
  85. mkdir(public_path($upload_path), 0777, true);
  86. }
  87. // 将图片移动到我们的目标存储路径中
  88. $image->save(public_path().'/'.$upload_path . '/' . $filename);
  89. $url=env('APP_URL').'/'.$upload_path.'/'.$filename;
  90. }catch (\Exception $exception){
  91. $url='https://image.chuliu.cc/daweiboshi-admin/activity_img/user_img/1731058524_9hKCPWXJzl.jpg';
  92. }
  93. $res=new GiftUserImg();
  94. $res->type=0;
  95. $res->activity_id=$activity_id;
  96. $res->nickname=$v->nickname;
  97. $res->user_img=$url;
  98. $res->img_type=1;
  99. $cc=new ActivityImgController();
  100. $user_url=$cc->CreateImg(1,$re->url,$url,$v->nickname,$img->url);
  101. $res->url=$user_url;
  102. $res->city=$v->city;
  103. $res->area=$v->area;
  104. $res->address=$v->address;
  105. $res->phone=$v->mobile;
  106. $res->car_name=$v->name;
  107. $res->province=$v->province;
  108. $res->op_name=$v->kefu;
  109. $res->save();
  110. BigGiftApply::where('id',$v->id)->update(['status'=>4,'img'=>$user_url]);
  111. }
  112. })->dailyAt('17:30');;
  113. // $schedule->call(function (){
  114. // ini_set('memory_limit', '-1');
  115. // $in=DataInfo::where('status',0)->get();
  116. // foreach ($in as $k=>$v){
  117. // $this->DelOrder(json_decode($v->data,true),$v->url);
  118. // DataInfo::where('id',$v->id)->update(['status'=>1]);
  119. // }
  120. // })->everyMinute();
  121. $schedule->call(function (){
  122. $re=DB::connection('mysql_w')
  123. ->table('data_or_user')
  124. // ->where('id','<','3872')
  125. ->where('status',0)
  126. ->where('created_at','>',Carbon::now()->addDays(-1)->startOfDay()->toDateTimeString())
  127. ->get();
  128. if ($re->count()==0) {
  129. Log::error('没有了');
  130. }
  131. foreach ($re as $k=>$v){
  132. $string=$v->data;
  133. $customKey = base64_decode('RUFBOTI3OTdGNEVEQTgwOUQyM0YzMUZDRDY1MTIwRkM'); // 从第一个项目获取的密钥(需要解码)
  134. $encryptedData = $string; // 加密后的数据
  135. $encrypter = new Encrypter($customKey, config('app.cipher')); // cipher 通常是 AES-256-CBC
  136. $decryptedData = $encrypter->decryptString($encryptedData);
  137. $arr=json_decode($decryptedData,true);
  138. $url=UrlList::where('url',mb_substr($arr['Domain'],0,-1))->first();
  139. $token=$this->getToekn($url->url,$url->id);
  140. $client=new Client();
  141. $re=$client->post($url->url.'/api/Admin/CustomerCompanyList/GetCustomerDetail',[
  142. 'headers' => [
  143. 'Content-Type' => 'application/json', // 设置请求头
  144. 'Auth-AdminToken' => $token, // 如果需要身份验证令牌
  145. ],
  146. 'json'=>['ID'=>$arr['CustomerID']]
  147. ]);
  148. $res=$re->getBody()->getContents();
  149. $info=json_decode($res,true);
  150. $data_info=$info['data'];
  151. $mobile=$data_info['Telephone'];
  152. $name=$data_info['Name'];
  153. $code=$data_info['CustomerBrandDetail'][0]['AuthorizationCode'];
  154. $level=$data_info['CustomerBrandDetail'][0]['BrandLevelName'];
  155. if ($arr['Type']==2){
  156. DB::connection('mysql_z')
  157. ->table('base_users')
  158. ->where('code',$code)
  159. ->update(['deleted_at'=>Carbon::now()->toDateTimeString()]);
  160. $remark='用户删除';
  161. }else{
  162. $user=DB::connection('mysql_z')
  163. ->table('base_users')
  164. ->where('code',$code)
  165. ->first();
  166. if ($level=='经销商'){
  167. $g=2;
  168. }elseif ($level=='批发商'){
  169. $g=3;
  170. }else{
  171. $g=2;
  172. }
  173. $remark='用户存在';
  174. if (!$user){
  175. $remark='用户导入';
  176. $customKey = base64_decode('ikvRFbC6TDfmDDJw/rpYghnneWQ4Kz9KzXP7Nxq8GOM='); // 从第一个项目获取的密钥(需要解码)
  177. $decrypt = new Encrypter($customKey, config('app.cipher')); // cipher 通常是 AES-256-CBC
  178. $encryptData = $decrypt->encryptString($mobile);
  179. $insert_user=[
  180. 'nickname'=>$name,
  181. 'mobile'=>mb_substr($mobile,0,3).'****'.mb_substr($mobile,-4),
  182. 'mobile_code'=>'+86',
  183. 'group_id'=>$g,
  184. 'mobile_encryption'=>$encryptData,
  185. 'created_at'=>Carbon::now()->toDateTimeString(),
  186. 'updated_at'=>Carbon::now()->toDateTimeString(),
  187. 'code'=>$code
  188. ];
  189. DB::connection('mysql_z')
  190. ->table('base_users')
  191. ->insert($insert_user);
  192. }
  193. }
  194. DB::connection('mysql_w')
  195. ->table('data_or_user')
  196. ->where('id',$v->id)
  197. ->update(['status'=>1,'remark'=>$remark]);
  198. }
  199. })->everyMinute()
  200. ->name('insert_users')
  201. ->withoutOverlapping();
  202. $schedule->call(function (){
  203. // $url='http://hnsystemfo.quzhouoy.top';
  204. //// $url_list=UrlList::where('id','>',1)->where('url',$url)->get();
  205. //// foreach ($url_list as $k=>$v){
  206. //// $this->getToekn($v->url,$v->id);
  207. //// }
  208. //
  209. // $zz=new SynOrderController();
  210. //
  211. // $id=1146;
  212. // $zz->SearchOrder($url,$id);
  213. })->everyMinute();
  214. // $schedule->call(function (){
  215. // $data=Order::where('created_at','>','2024-08-27 09:00:00')
  216. // ->where('created_at','<','2024-08-29 21:00:00')
  217. // ->select('user_id',DB::raw('SUM(money) as money'))
  218. // ->where('is_deleted',0)->groupBy('user_id')->get();
  219. // foreach ($data as $k=>$v){
  220. // if ($v->money>=300000){
  221. // $pay_money=Order::where('created_at','>','2024-08-27 09:00:00')
  222. // ->where('created_at','<','2024-08-29 21:00:00')
  223. // ->where('user_id',$v->user_id)
  224. // ->where('is_deleted',0)->sum('pay_money');
  225. // //折扣金额
  226. // $money=$v->money*0.95;
  227. // if ($money==$pay_money){
  228. // Order::where('created_at','>','2024-08-27 09:00:00')
  229. // ->where('created_at','<','2024-08-29 21:00:00')
  230. // ->where('user_id',$v->user_id)
  231. // ->where('is_deleted',0)->update(['pay_status'=>2]);
  232. // }elseif($money<$pay_money){
  233. // Order::where('created_at','>','2024-08-27 09:00:00')
  234. // ->where('created_at','<','2024-08-29 21:00:00')
  235. // ->where('user_id',$v->user_id)
  236. // ->where('is_deleted',0)->update(['pay_status'=>2]);
  237. // }
  238. //
  239. // }
  240. // }
  241. // })->everyMinute();
  242. // $schedule->call(function (){
  243. // Log::error('kaishi');
  244. // $data=Order::where('is_deleted',0)->get();
  245. //
  246. //// $arr=['精装','高腰','青春'];
  247. // foreach ($data as $k=>$v){
  248. //// $detail=OrderDetail::where('order_id',$v->id)->get();
  249. //
  250. // $hard=OrderDetail::where('order_id',$v->id)->where('goods_name','like',"%精装%")->sum('num');
  251. // $gaoyao=OrderDetail::where('order_id',$v->id)->where('goods_name','like',"%高腰%")->sum('num');
  252. // $qingchun=OrderDetail::where('order_id',$v->id)->where('goods_name','like',"%青春%")->sum('num');
  253. //
  254. // $gift_ka=$hard+$gaoyao*2+$qingchun*6;
  255. //
  256. // $num=$hard+$gaoyao*2+$qingchun*2;
  257. //
  258. // $gift_xl=intval($num/6);
  259. //
  260. //
  261. // if ($gift_xl>0){
  262. // $re=new OrderGift();
  263. // $re->order_id=$v->id;
  264. // $re->gift_id=10;
  265. // $re->num=$gift_xl;
  266. // $re->activity_id=8;
  267. // $re->save();
  268. // }
  269. //
  270. // if ($gift_ka>0){
  271. // $res=new OrderGift();
  272. // $res->order_id=$v->id;
  273. // $res->gift_id=11;
  274. // $res->num=$gift_ka;
  275. // $res->activity_id=8;
  276. // $res->save();
  277. // }
  278. // }
  279. // Log::error('结束');
  280. // })->dailyAt('15:43');
  281. // $schedule->call(function (){
  282. // $arr=UrlList::where('id','>',1)->get();
  283. // foreach ($arr as $k=>$v){
  284. // $client=new Client();
  285. //
  286. // $re=$client->post($v->url.'/api/Admin/System/MainSubLogin',[
  287. // 'headers' => [
  288. // 'Content-Type' => 'application/json', // 设置请求头
  289. //// 'Auth-AdminToken' => 'SjI5Ym5US0xZVzZjSVd4V1FheHg4VG5hL1dpWDJwVi82RDdMY09WU3NTeENIdmJUdmxxTEFVOHZSZkRiaXM1c3RuYUlZTGVIcmI2NGlUdXJ4MXZ6dkREWmRoY283UG5TclQ2RnI5amV3UGYzYjBjNkZ0RTFzUElzRzRhV2F1d0M=', // 如果需要身份验证令牌
  290. // ],
  291. // 'json'=>['UserName'=>'dwadmin','Password'=>'zS76UMV9']
  292. // ]);
  293. // $res=$re->getBody()->getContents();
  294. // $info=json_decode($res,true);
  295. // $urlinfo=UrlList::find($v->id);
  296. // Log::error($res);
  297. // Log::error($info);
  298. //
  299. // $token=$info['data']['accessToken'];
  300. // $urlinfo->token=$token;
  301. // $urlinfo->save();
  302. //// if (!$info['errcode']){
  303. ////
  304. //// }else{
  305. //// Log::error($urlinfo->name.'生成token出错===='.$info['errcode']);
  306. //// }
  307. // }
  308. // $arr=UrlList::where('id','>',1)->get();
  309. // foreach ($arr as $k=>$v){
  310. // $json='{"BrandID":1,"BrandLevel":1,"BrandState":"0","TeamID":0,"AuthorizationCode":"","AuthorizationTimeStart":"","AuthorizationTimeEnd":"","CreateTimeStart":"","CreateTimeEnd":"","Name":"","WeChat":"","Phone":"","IdentityCard":"","UserName":"","IsChina":"","AddrID":"","AddressDetail":"","CustomerFieldValue":[],"CustomerBrandFieldValue":[],"PageNo":1,"PageSize":10,"Sort":"CreateTime","IsAsc":false,"CustomerParentName":"","CustomerParentPhone":"","ParentAuthorizationCode":"","SuperiorName":"","SuperiorPhone":"","SuperiorAuthorizationCode":"","MemberType":"","BusinessContactName":"","BusinessInfoQuery":{"BusinessType":"","RegisteredCapital":"","BusinessScope":"","RegisterCode":"","LegalPerson":""},"AccuracyQueryKey":[]}';
  311. // $client=new Client();
  312. // $data=json_decode($json,true);
  313. // $data['PageSize']=200;
  314. //
  315. // $re=$client->post($v->url.'/api/Admin/CustomerCompanyList/Comput_GetCustomerBrandQuery',[
  316. // 'headers' => [
  317. // 'Content-Type' => 'application/json', // 设置请求头
  318. // 'Auth-AdminToken' => $v->token, // 如果需要身份验证令牌
  319. // ],
  320. // 'json'=>$data
  321. // ]);
  322. // $res=$re->getBody()->getContents();
  323. // $info=json_decode($res,true);
  324. // Log::error($info);
  325. // $arrs=$info['data']['Models'];
  326. //
  327. // if ($arrs){
  328. // foreach ($arrs as $ke=>$va){
  329. // $Sourcemobile=$va['Telephone'];
  330. // $Sourcenickname=$va['Name'];
  331. // $Sourcecode=$va['AuthorizationCode'];
  332. // $user=User::where('auth_code',$va['AuthorizationCode'])->first();
  333. // if (!$user){
  334. // $user=new User();
  335. // $user->name=$Sourcenickname;
  336. // $user->nickname=$Sourcenickname;
  337. // $user->realname=$Sourcenickname;
  338. // $user->remark_name=$Sourcenickname;
  339. // $user->mobile=$Sourcemobile;
  340. // $user->uuid=$Sourcemobile;
  341. // $user->auth_code=$Sourcecode;
  342. // $user->level=3;
  343. // $user->url=$v->url;
  344. // $user->save();
  345. // }
  346. // }
  347. // }
  348. //
  349. // }
  350. // dd(1);
  351. // })->everyMinute();
  352. // $schedule->call(function (){
  353. // $this->shenhe();
  354. // })->dailyAt('13:30');
  355. // $schedule->call(function (){
  356. // $data=Order::where('created_at','>','2024-11-05 09:00:00')
  357. // ->where('created_at','<','2024-11-08 12:20:00')
  358. //
  359. // ->select('user_id',DB::raw('SUM(money) as money'),DB::raw('SUM(pay_money) as pay_money'))
  360. // ->where('is_deleted',0)->groupBy('user_id')->get();
  361. // foreach ($data as $k=>$v){
  362. // if ($v->money>=300000){
  363. // if ($v->money*0.95 <=$v->pay_money){
  364. // Order::where('created_at','>','2024-11-05 09:00:00')
  365. // ->where('created_at','<','2024-11-08 13:20:00')
  366. // ->where('user_id',$v->user_id)
  367. // ->where('is_deleted',0)
  368. // ->update(['pay_status'=>2]);
  369. // }
  370. // }
  371. // }
  372. // })->dailyAt('13:37');
  373. // $schedule->call(function (){
  374. // $data=Order::where('created_at','>','2024-11-05 09:00:00')
  375. // ->where('created_at','<','2024-11-08 12:20:00')
  376. // ->select('user_id',DB::raw('SUM(money) as money'))
  377. //// ->where('user_id',14836)
  378. // ->where('is_deleted',0)->groupBy('user_id')->get();
  379. // foreach ($data as $k=>$v){
  380. // if ($v->money>=300000){
  381. // $pay_money=Order::where('created_at','>','2024-11-05 09:00:00')
  382. // ->where('created_at','<','2024-11-08 12:20:00')
  383. // ->where('user_id',$v->user_id)
  384. // ->where('is_deleted',0)->sum('pay_money');
  385. // //折扣金额
  386. // $money=$v->money*0.95;
  387. // if($money<$pay_money){
  388. // $cha_money=$pay_money-$money;
  389. // if ($cha_money>0){
  390. // $order_moneu=Order::where('created_at','>','2024-11-05 09:00:00')
  391. // ->where('created_at','<','2024-11-08 12:20:00')
  392. // ->where('user_id',$v->user_id)
  393. // ->where('is_deleted',0)
  394. // ->orderByDesc('money')->first();
  395. // $pay_num=$this->pay_num($v->user_id);
  396. // $user_money=User::find($v->user_id);
  397. // $user_money->money+=$cha_money;
  398. // $user_money->save();
  399. // //支付日志
  400. // $arr=[
  401. // 'user_id'=>$v->user_id,
  402. // 'remark'=>'订单编号为' . $order_moneu->order_num.'满九五折,退款:'.$cha_money,
  403. // 'op_name'=>'系统自动退款',
  404. // 'type'=>2,
  405. // 'created_at'=>Carbon::now()->toDateTimeString(),
  406. // 'updated_at'=>Carbon::now()->toDateTimeString(),
  407. // 'order_num'=>$order_moneu->order_num,
  408. // 'pay_num'=>$pay_num,
  409. // 'pay_money'=>$cha_money,
  410. // 'user_money'=>$user_money->money
  411. // ];
  412. // DB::table('user_pay_log')->insert($arr);
  413. // Order::where('id',$order_moneu->id)
  414. // ->update(['pay_money'=>$order_moneu->pay_money-$cha_money,'no_pay_money'=>$order_moneu->no_pay_money+$cha_money]);
  415. // }
  416. // }
  417. // }
  418. // }
  419. // Log::error('九五折退款');
  420. // })->dailyAt('17:35');
  421. }
  422. /**
  423. * Register the commands for the application.
  424. *
  425. * @return void
  426. */
  427. protected function commands()
  428. {
  429. $this->load(__DIR__.'/Commands');
  430. require base_path('routes/console.php');
  431. }
  432. //支付单号
  433. public function pay_num($user_id)
  434. {
  435. $num = date('Ymd', time()) . '100000' . str_pad($user_id, 6, 0, STR_PAD_LEFT) . rand(11111, 99999);
  436. return $num;
  437. }
  438. protected function shenhe(){
  439. $url_list=UrlList::where('id','>',1)->get();
  440. foreach ($url_list as $k=>$v){
  441. $token=$this->getToekn($v->url,$v->id);
  442. $order=Order::where('status',3)
  443. ->where('created_at','>','2024-10-18')
  444. ->where('url',$v->url)->get();
  445. foreach ($order as $ke=>$va){
  446. $client=new Client();
  447. $url = $v->url.'/api/Admin/CompanyCustomerOrderSubmit/OrderReviewSuccess';
  448. $data=['ID'=>$va->ZDL_id];
  449. $re=$client->post($url,[
  450. 'headers' => [
  451. 'Content-Type' => 'application/json', // 设置请求头
  452. 'Auth-AdminToken' => $token, // 如果需要身份验证令牌
  453. ],
  454. 'json'=>$data
  455. ]);
  456. $res=$re->getBody()->getContents();
  457. $info=json_decode($res,true);
  458. Log::error($info);
  459. }
  460. }
  461. }
  462. protected function DelOrder($arr,$url){
  463. // Log::error($arr);
  464. if (!$arr){
  465. return;
  466. }
  467. $activity_id=Activity::where('is_ing',1)->value('id');
  468. foreach ($arr as $k=>$v){
  469. if ($v['Packages']!=1 && $v['Packages'] !=0){
  470. Log::info($v['Code']);
  471. break;
  472. }
  473. //批发商
  474. $Sourcemobile=$v['SourceCustomerModel']['Telephone'];
  475. $Sourcenickname=$v['SourceCustomerModel']['CustomerName'];
  476. $Sourcecode=$v['SourceCustomerModel']['AuthorizationCode'];
  477. $user=User::where('auth_code',$Sourcecode)->first();
  478. Log::info($Sourcecode);
  479. if (!$user){
  480. $user=new User();
  481. $user->name=$Sourcenickname;
  482. $user->nickname=$Sourcenickname;
  483. $user->realname=$Sourcenickname;
  484. $user->remark_name=$Sourcenickname;
  485. $user->mobile=$Sourcemobile;
  486. $user->uuid=$Sourcemobile;
  487. $user->auth_code=$Sourcecode;
  488. $user->level=3;
  489. $user->url=$url;
  490. $user->save();
  491. }
  492. $TopCode=$v['TopCustomerModel']['AuthorizationCode'];
  493. $belongUser=User::where('auth_code',$TopCode)->first();
  494. if (!$belongUser){
  495. //经销商
  496. $belongUser=new User();
  497. $belongUser->name=$v['TopCustomerModel']['CustomerName'];
  498. $belongUser->nickname=$v['TopCustomerModel']['CustomerName'];
  499. $belongUser->realname=$v['TopCustomerModel']['CustomerName'];
  500. $belongUser->remark_name=$v['TopCustomerModel']['CustomerName'];
  501. $belongUser->mobile=$v['TopCustomerModel']['Telephone'];
  502. $belongUser->uuid=$v['TopCustomerModel']['Telephone'];
  503. $belongUser->auth_code=$TopCode;
  504. $belongUser->level=2;
  505. $belongUser->url=$url;
  506. $belongUser->save();
  507. }
  508. $order_num=$v['Code'];
  509. Log::info($order_num);
  510. $order=Order::where('order_num',$order_num)->first();
  511. if ($order){
  512. if ($v['State']==7 || $v['State']==6){
  513. if (!$order->is_deleted){
  514. $order->wait_back_money=$order->pay_money;
  515. $order->pay_status=3;
  516. }
  517. $order->is_deleted=1;
  518. $order->save();
  519. break;
  520. }
  521. $address=Address::where('id',$order->address_id)->first();
  522. $address->user_id=$user->id;
  523. $address->username=$v['AddressDetail']['Name'];
  524. $address->mobile=$v['AddressDetail']['Phone'];
  525. $address->province=$v['AddressDetail']['Province'];
  526. $address->city=$v['AddressDetail']['City'];
  527. $address->town=$v['AddressDetail']['District'];
  528. $address->address=$v['AddressDetail']['Address'];
  529. $address->type=0;
  530. $address->save();
  531. if ($order->money!=$v['TotalCash']){
  532. OrderDetail::where('order_id',$order->id)->delete();
  533. }
  534. $order->money=$v['TotalCash'];
  535. if ($order->money==$order->pay_money){
  536. $order->no_pay_money=0;//未支付变为0
  537. $order->pay_status=2;//支付状态2,为全部支付
  538. $order->wait_back_money=0;//待退回金额为0
  539. }elseif ($order->money<$order->pay_money){//订单金额小于支付金额
  540. $order->no_pay_money=0;//未支付金额变为0
  541. $order->pay_status=3;//支付状态3,待退款状态
  542. $order->wait_back_money=$order->pay_money-$order->money;//待退款金额为支付金额减去订单金额
  543. }elseif ($order->money>$order->pay_money){//订单金额大于支付金额
  544. if ($order->pay_money==0){//如果支付金额为0
  545. $order->pay_status=0;//则支付状态0,未支付
  546. }else{
  547. $order->pay_status=1;//否则支付状态1,部分支付
  548. }
  549. $order->no_pay_money=$order->money-$order->pay_money;//未支付金额等于订单金额减去支付金额
  550. $order->wait_back_money=0;//待退款为0
  551. }
  552. $order->total=$v['TotalQty'];
  553. $order->State=$v['State'];
  554. $order->save();
  555. $detail=$v['OrderDetailOutput'];
  556. $activity_status=false;
  557. $orderdrtail_id=[];
  558. foreach ($detail as $ke=>$va){
  559. if ($va['IsGift']){
  560. $activity_status=true;
  561. $gift_name=$va['ProductName'];
  562. $num=$va['Qty'];
  563. $gift=Gifts::where('name',$gift_name)->where('activity_id',$activity_id)->first();
  564. $ordergift=OrderGift::where('order_id',$order->id)
  565. ->where('gift_id',$gift->id)->first();
  566. if (!$ordergift){
  567. $ordergift=new OrderGift();
  568. }
  569. $order->total-=$num;
  570. $order->save();
  571. $ordergift->gift_id=$gift->id;
  572. $ordergift->order_id=$order->id;
  573. $ordergift->activity_id=$activity_id;
  574. $ordergift->num=$num;
  575. $ordergift->limit_num=1;
  576. $ordergift->save();
  577. }else{
  578. // Log::error($va);
  579. $GroupID=$va['ProductGroupSKUID'];
  580. $num=$va['Qty'];
  581. $goods=Goods::where('groupID',$GroupID)->first();
  582. if (!$goods){
  583. Log::error('不存在该商品'.$GroupID);
  584. }
  585. $orderDetail=OrderDetail::where('order_id',$order->id)
  586. ->where('goods_id',$goods->id)->first();
  587. if (!$orderDetail){
  588. $orderDetail=new OrderDetail();
  589. }
  590. $orderDetail->order_id=$order->id;
  591. $orderDetail->goods_id=$goods->id;
  592. $orderDetail->num=$num;
  593. $orderDetail->goods_price=$va['Price'];
  594. $orderDetail->money=$num*$va['Price'];
  595. $orderDetail->goods_name=$goods->name;
  596. $orderDetail->goods_size=$goods->size;
  597. $orderDetail->goods_unit=$goods->unit;
  598. $orderDetail->goods_sku=$va['SKUCode'];
  599. $orderDetail->save();
  600. $order_id[]=$orderDetail->id;
  601. }
  602. }
  603. // $order->is_deleted=0;
  604. // $order->wait_back_money=$order->pay_money;
  605. // $order->save();
  606. }else{
  607. $address=new Address();
  608. $address->user_id=$user->id;
  609. $address->username=$v['AddressDetail']['Name'];
  610. $address->mobile=$v['AddressDetail']['Phone'];
  611. $address->province=$v['AddressDetail']['Province'];
  612. $address->city=$v['AddressDetail']['City'];
  613. $address->town=$v['AddressDetail']['District'];
  614. $address->address=$v['AddressDetail']['Address'];
  615. $address->type=0;
  616. $address->uid=$belongUser->id;
  617. $address->save();
  618. $order=new Order();
  619. $order->order_num=$order_num;
  620. $order->money=$v['TotalCash'];
  621. $order->no_pay_money=$v['TotalCash'];
  622. $order->user_id=$user->id;
  623. $order->total=$v['TotalQty'];
  624. $order->created_at=$v['CreateDate'];
  625. $order->ZDL_id=$v['CustomerOrderID'];
  626. $order->url=$url;
  627. $order->State=$v['State'];
  628. $order->address_id=$address->id;
  629. $order->good_user_id=$belongUser->id;
  630. if ($v['State']=='7'){
  631. $order->is_deleted=1;
  632. }
  633. $order->save();
  634. $detail=$v['OrderDetailOutput'];
  635. $activity_status=false;
  636. foreach ($detail as $ke=>$va){
  637. if ($va['IsGift']){
  638. $activity_status=true;
  639. $gift_name=$va['ProductName'];
  640. $num=$va['Qty'];
  641. $gift=Gifts::where('name',$gift_name)->where('activity_id',$activity_id)->first();
  642. $ordergift=new OrderGift();
  643. $ordergift->gift_id=$gift->id;
  644. $ordergift->order_id=$order->id;
  645. $ordergift->activity_id=$activity_id;
  646. $ordergift->num=$num;
  647. $ordergift->limit_num=1;
  648. $ordergift->save();
  649. $order->total-=$num;
  650. $order->save();
  651. }else{
  652. $GroupID=$va['ProductGroupSKUID'];
  653. $num=$va['Qty'];
  654. $goods=Goods::where('groupID',$GroupID)->first();
  655. if (!$goods){
  656. Log::error('不存在该商品'.$GroupID);
  657. }
  658. $orderDetail=new OrderDetail();
  659. $orderDetail->order_id=$order->id;
  660. $orderDetail->goods_id=$goods->id;
  661. $orderDetail->num=$num;
  662. $orderDetail->goods_price=$va['Price'];
  663. $orderDetail->money=$num*$va['Price'];
  664. $orderDetail->goods_name=$goods->name;
  665. $orderDetail->goods_size=$goods->size;
  666. $orderDetail->goods_unit=$goods->unit;
  667. $orderDetail->goods_sku=$va['SKUCode'];
  668. $orderDetail->save();
  669. }
  670. }
  671. if ($activity_status){
  672. $order->activity_id=$activity_id;
  673. $order->save();
  674. }
  675. }
  676. }
  677. }
  678. protected function getToekn($url,$id){
  679. $client=new Client();
  680. $re=$client->post($url.'/api/Admin/System/MainSubLogin',[
  681. 'headers' => [
  682. 'Content-Type' => 'application/json', // 设置请求头
  683. // 'Auth-AdminToken' => 'SjI5Ym5US0xZVzZjSVd4V1FheHg4VG5hL1dpWDJwVi82RDdMY09WU3NTeENIdmJUdmxxTEFVOHZSZkRiaXM1c3RuYUlZTGVIcmI2NGlUdXJ4MXZ6dkREWmRoY283UG5TclQ2RnI5amV3UGYzYjBjNkZ0RTFzUElzRzRhV2F1d0M=', // 如果需要身份验证令牌
  684. ],
  685. 'json'=>['UserName'=>'dwadmin','Password'=>'zS76UMV9']
  686. ]);
  687. $res=$re->getBody()->getContents();
  688. $info=json_decode($res,true);
  689. $urlinfo=UrlList::find($id);
  690. // Log::error($res);
  691. // Log::error($info);
  692. if (!$info['errcode']){
  693. $token=$info['data']['accessToken'];
  694. $urlinfo->token=$token;
  695. $urlinfo->time=time()+9*60;
  696. $urlinfo->save();
  697. return $token;
  698. }else{
  699. Log::error($urlinfo->name.'生成token出错===='.$info['errcode']);
  700. return 0;
  701. }
  702. }
  703. }