Webhook.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /*
  3. * +----------------------------------------------------------------------+
  4. * | xiegeng admin system |
  5. * +----------------------------------------------------------------------+
  6. * | Administrator-7:24-2022-PhpStorm
  7. * +----------------------------------------------------------------------+
  8. * | Author: xiegeng <957723538@qq.com> |
  9. * | FILENAME: ComWechatWebhook.php |
  10. * +----------------------------------------------------------------------+
  11. */
  12. namespace app\service\company_wechat;
  13. use think\Cache;
  14. use think\Db;
  15. class Webhook{
  16. public static function push(\Throwable $e){
  17. $message=$e->getMessage();
  18. $md5Msg=md5($message);
  19. $cacheName=sprintf('bug_report_%s',$md5Msg);
  20. $now=time();
  21. $table=Db::name('bug_report');
  22. $exists=$table
  23. ->where('hash',$md5Msg)
  24. ->whereBetween('create_time',[strtotime(date('Y-m-d 00:00:00',$now)),strtotime('+1day',strtotime(date('Y-m-d 00:00:00',$now)))])
  25. ->value('id');
  26. if(!$exists){
  27. $table->insert([
  28. 'hash'=>$md5Msg,
  29. 'content'=>json_encode([
  30. 'msg'=>$message,
  31. 'file'=>$e->getFile(),
  32. 'line'=>$e->getLine(),
  33. 'trace'=>$e->getTrace(),
  34. ],256),
  35. 'create_time'=>$now
  36. ]);
  37. }
  38. }
  39. }