AlarmService.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2023/11/23 20:57
  7. */
  8. namespace App\Http\Services\Admin\Order;
  9. use App\Exceptions\ApiException;
  10. use App\Http\Services\BaseService;
  11. use App\Models\Admin;
  12. use App\Models\Alarm;
  13. use App\Models\Artificer;
  14. use App\Models\ArtificerSite;
  15. use App\Models\Order;
  16. use App\Models\OrderGrab;
  17. use App\Models\ProjectRelevancy;
  18. use App\Models\User;
  19. use Exception;
  20. use Illuminate\Support\Facades\DB;
  21. class AlarmService extends BaseService
  22. {
  23. public function index(array $data)
  24. {
  25. $model = Alarm::query();
  26. $model->with(['order.project', 'order.user'=>function($query){
  27. $query->withTrashed();
  28. }, 'order.artificer']);
  29. $model->whereHas('order.project');
  30. $model->whereHas('order.artificer');
  31. $list = $model
  32. ->orderBy('id', 'desc')
  33. ->paginate($data['pageSize'])
  34. ->toArray();
  35. return $this->apiSuccess('', [
  36. 'list' => $list['data'],
  37. 'total' => $list['total']
  38. ]);
  39. }
  40. public function realtime(array $data)
  41. {
  42. $where['status'] = 0;
  43. $currentTime = time();
  44. $orderNumber = 0;
  45. if (!empty($data['time'])) {
  46. $time = [
  47. $data['time'] + 1, $currentTime
  48. ];
  49. $orderNumber = Alarm::query()->where($where)
  50. ->whereBetween('create_time', $time)
  51. ->count('id');
  52. }
  53. return $this->apiSuccess('', [
  54. 'number' => $orderNumber,
  55. 'time' => $currentTime
  56. ]);
  57. }
  58. }