BaseRepository.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Repositories\Eloquent;
  3. use App\Exceptions\HOError;
  4. use Illuminate\Support\Facades\Log;
  5. class BaseRepository
  6. {
  7. protected $startTime;
  8. protected $error;
  9. const SUCCESS_CODE = 1000;
  10. public function startTime()
  11. {
  12. Log::debug('获取程序开始时间');
  13. $this->startTime = microtime(TRUE);
  14. return $this->startTime;
  15. }
  16. /**
  17. * 成功返回
  18. */
  19. public function response($data=null, $msg = '成功')
  20. {
  21. return response()->horesp(1000, $data, $msg);
  22. }
  23. /**
  24. * 异常错误
  25. *
  26. * @return \App\Exceptions\HOError
  27. */
  28. public function error()
  29. {
  30. $this->error = new HOError();
  31. return $this->error;
  32. }
  33. /**
  34. * 统一格式输出日志
  35. *
  36. * @param string $typeName 类别名
  37. * @param string $startTime 开始时间
  38. * @param array $log 日志详情
  39. * @param string $ac 指定动作
  40. */
  41. public function setLog(string $typeName, $startTime = 0.00, $log = [], $ac = 'info')
  42. {
  43. //传入的时间
  44. $sTime = $startTime;
  45. //当前时间,相当于结束时间
  46. $eTime = microtime(TRUE);
  47. //计算时间差
  48. $diffTime = (($eTime - $sTime) * 1000);
  49. $msg = '执行时间:'.round($diffTime, 3).'ms'.' 执行内容:'.$typeName;
  50. switch ($ac){
  51. case 'debug':
  52. Log::debug($msg, $log);
  53. break;
  54. case 'info':
  55. Log::info($msg, $log);
  56. break;
  57. case 'error':
  58. Log::error($msg, $log);
  59. break;
  60. }
  61. }
  62. }