ClearDataService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Service;
  3. use App\Model\DeviceData;
  4. use Illuminate\Support\Facades\Redis;
  5. class ClearDataService extends Service
  6. {
  7. public static function getTokenLf(){
  8. $token_key = 'lf_device_token';
  9. $token = Redis::get($token_key);
  10. if(! $token){
  11. $url = config('ip.zslf');
  12. $post = array("name" => "admin","password"=>"gzy#12345","rememberMe"=>true);
  13. $header = ['Content-Type:application/json'];
  14. $curl = curl_init();
  15. curl_setopt_array($curl, array(
  16. CURLOPT_URL => $url . 'jbl/api/mes/login',
  17. CURLOPT_RETURNTRANSFER => true,
  18. CURLOPT_ENCODING => '',
  19. CURLOPT_MAXREDIRS => 10,
  20. CURLOPT_TIMEOUT => 0,
  21. CURLOPT_FOLLOWLOCATION => true,
  22. CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  23. CURLOPT_CUSTOMREQUEST => 'POST',
  24. CURLOPT_SSL_VERIFYPEER => false,
  25. CURLOPT_POSTFIELDS => json_encode($post),
  26. CURLOPT_HTTPHEADER => $header,
  27. ));
  28. $response = curl_exec($curl);
  29. if ($response === false) {
  30. // 获取错误号
  31. $errorNumber = curl_errno($curl);
  32. // 获取错误信息
  33. $errorMessage = curl_error($curl);
  34. $message = "cURL Error #{$errorNumber}: {$errorMessage}";
  35. file_put_contents('lf_device_error.txt',date('Y-m-d H:i:s'). PHP_EOL . $message .PHP_EOL,8);
  36. }
  37. curl_close($curl);
  38. $result = json_decode($response,true);
  39. if(empty($result['token'])) {
  40. file_put_contents('lf_device_error.txt',date('Y-m-d H:i:s'). PHP_EOL . $response .PHP_EOL,8);
  41. return [false,''];
  42. }else{
  43. $token = $result['token'];
  44. $expire_time = 1728000; //20天
  45. Redis::set($token_key,$token);
  46. Redis::expire($token_key, $expire_time);
  47. return [true,$token];
  48. }
  49. }
  50. return [true,$token];
  51. }
  52. }