Kernel.php 30 KB

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