Nenhuma Descrição

JxStarVideoFlowOrderHourData.php 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Models;
  3. use App\Support\Log;
  4. use Illuminate\Database\Eloquent\Model;
  5. class JxStarVideoFlowOrderHourData extends Model
  6. {
  7. protected $table = 'jx_star_video_flow_order_hour_data';
  8. public $timestamps = false;
  9. protected static $unguarded = true;
  10. public static function getHourData($advertiserIdList, $startTime, $endTime) {
  11. if(empty($advertiserIdList)) return [];
  12. $query = self::query();
  13. if(!empty($advertiserIdList)) {
  14. $query->whereIn('advertiser_id', $advertiserIdList);
  15. }
  16. if(!empty($startTime)) {
  17. $query->where('date', '>=', date("Y-m-d H:00:00", strtotime($startTime)));
  18. }
  19. if(!empty($endTime)) {
  20. $query->where('date', '<=', date("Y-m-d H:00:00", strtotime($endTime)));
  21. }
  22. return $query->selectRaw('date,
  23. sum(consume_amount_incr) as consume_amount,
  24. sum(play_incr) as play,
  25. sum(action_incr) as action,
  26. sum(conversion_incr) as conversion,
  27. sum(submissions_number_incr) as submissions_number')
  28. ->where('enable', 1)
  29. ->groupBy('date')
  30. ->get()->keyBy('date')->toArray();
  31. }
  32. public static function getDataByHourList($advertiserIdList, $timeList) {
  33. if(empty($advertiserIdList)) return [];
  34. $query = self::query()->where('enable', 1);
  35. if(!empty($advertiserIdList)) {
  36. $query->whereIn('advertiser_id', $advertiserIdList);
  37. }
  38. if(is_array($timeList) && !empty($timeList)) {
  39. $query->whereIn('date', $timeList);
  40. }
  41. return $query->selectRaw('date,
  42. sum(consume_amount_incr) as consume_amount,
  43. sum(play_incr) as play,
  44. sum(action_incr) as action,
  45. sum(conversion_incr) as conversion,
  46. sum(submissions_number_incr) as submissions_number')
  47. ->where('enable', 1)
  48. ->groupBy('date')
  49. ->get()->keyBy('date')->toArray();
  50. }
  51. # 自动删除15天之前的统计数据
  52. public static function deleteRedundanceData() {
  53. $date = date('Y-m-d', strtotime('-14 days'));
  54. $minId = self::query()->where('date', $date)->min('id');
  55. self::query()->where('id', '<', $minId)->delete();
  56. }
  57. }