CustomSendDayStats.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Modules\OfficialAccount\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use DB;
  5. class CustomSendDayStats extends Model
  6. {
  7. protected $tables = 'custom_send_day_stats';
  8. protected $fillable = ['distribution_channel_id','date','push_user_num','click_num','amount','success_pay_num','success_pay_rate','from','click_rate'];
  9. static function customSendDayStatsByChannelAndFrom($distribution_channel_id,$from)
  10. {
  11. return self::where(['distribution_channel_id'=>$distribution_channel_id,'from'=>$from])->orderBy('date','desc')->paginate();
  12. }
  13. static function customSendDayStatsByChannelAndFromAndDay($distribution_channel_id,$from,$day)
  14. {
  15. return self::where(['distribution_channel_id'=>$distribution_channel_id,'from'=>$from,'date'=>$day])->first();
  16. }
  17. /**
  18. * 根据分页获取智能推送消息
  19. */
  20. static function customSendDayStatsPaginate($start_time,$end_time,$is_all=false)
  21. {
  22. $search_obj = self::select('custom_send_day_stats.distribution_channel_id as site_id',
  23. 'custom_send_day_stats.from as task_name',
  24. 'custom_send_day_stats.date as created_date',
  25. 'custom_send_day_stats.updated_at as send_time',
  26. 'custom_send_day_stats.push_user_num as suc_send_num',
  27. DB::raw('"" as template_name'),
  28. DB::raw('"" as tag'),
  29. DB::raw('(select group_concat(nickname) from official_accounts where distribution_channel_id=custom_send_day_stats.distribution_channel_id group by distribution_channel_id) as official_account_name')//official_account_name
  30. )
  31. ->where('custom_send_day_stats.created_at','>=',$start_time)
  32. ->where('custom_send_day_stats.created_at','<',$end_time)
  33. ->orderBy('custom_send_day_stats.id','desc');
  34. if($is_all)
  35. {
  36. return $search_obj->get();
  37. }else{
  38. return $search_obj->paginate();
  39. }
  40. }
  41. }