MediaPushUser.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Modules\PersonalOp\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use DB;
  5. class MediaPushUser extends Model
  6. {
  7. protected $table = 'media_push_users';
  8. protected $fillable = ['uid','distribution_channel_id','appid','current_month','sub_time','unsub_time','active_hour'];
  9. public static function get_media_push_users($distribution_channel_id,$appid,$active_hour) {
  10. $push_users = self::where(['distribution_channel_id'=>$distribution_channel_id,'appid'=>$appid,'active_hour'=>$active_hour])->get();
  11. return $push_users;
  12. }
  13. public static function get_media_push_users_by_uid($uids,$send_time) {
  14. $push_users = self::leftJoin('media_push_user_details','media_push_users.id','media_push_user_details.media_push_user_id')
  15. ->select('media_push_users.id','media_push_users.uid','media_push_users.openid','media_push_users.appid',
  16. 'media_push_users.distribution_channel_id','media_push_user_details.id as media_push_user_detail_id',
  17. 'media_push_user_details.is_send','media_push_user_details.status','media_push_user_details.sort_no')
  18. ->whereIn('media_push_users.uid',$uids)
  19. ->where('media_push_user_details.send_time',$send_time)
  20. ->get();
  21. return $push_users;
  22. }
  23. public static function get_active_hour_media_push_users($active_hour) {
  24. $now = date('Y-m-d H:i:s');
  25. $today = date('Y-m-d');
  26. $push_users = DB::select('select m.uid,m.appid,m.distribution_channel_id,d.sort_no,d.id as send_id
  27. from media_push_users m
  28. left join media_push_user_details d ON m.id = d.media_push_user_id
  29. where m.active_hour = '.$active_hour.'
  30. and d.is_send = 0
  31. and d.status = 1
  32. and d.send_time = "'.$today.'"
  33. ');
  34. $last_push_users = [];
  35. if(!empty($push_users)){
  36. foreach($push_users as $key=>$push_user){
  37. $last_push_users[$push_user->appid][] = $push_user;
  38. }
  39. }
  40. return $push_users;
  41. }
  42. }