TempForceSubscribeUsers.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Modules\OfficialAccount\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use DB;
  5. class TempForceSubscribeUsers extends Model
  6. {
  7. protected $tables = 'temp_force_subscribe_users';
  8. protected $fillable = ['uid', 'distribution_channel_id', 'bid','is_subscribed','subscribe_time','unsubscribe_time','appid', 'openid', 'last_interactive_time'];
  9. /**
  10. * 根据openid和appid获取强关用户
  11. */
  12. static function forceSubscribeUsersByAppidAndOpenId($appid, $openid)
  13. {
  14. return self::where(['appid' => isset($appid) ? $appid : '', 'openid' => isset($openid) ? $openid : ''])->first();
  15. }
  16. /**
  17. * 删除N天前的数据,保持最近几天热数据
  18. */
  19. static function deleteTempForceSubscribeUsersByTime($end_time)
  20. {
  21. return self::where('last_interactive_time','<=',$end_time)->delete();
  22. }
  23. /**
  24. * 获取所有强关用户
  25. */
  26. static function forceSubscribeUsersAllOf()
  27. {
  28. return self::where('is_subscribed', 1)->get();
  29. }
  30. /**
  31. * 根据uid获取强关用户
  32. */
  33. static function forceSubscribeUsersByUid($uid)
  34. {
  35. return self::where(['uid' => $uid, 'is_subscribed' => 1])->first();
  36. }
  37. /**
  38. * 根据openid获取一个强关用户
  39. */
  40. static function forceSubscribeUsersByOpenid($openid, $appid = '')
  41. {
  42. return self::where(['openid' => $openid, 'is_subscribed' => 1])->first();
  43. }
  44. /**
  45. * openid获取强关用户
  46. */
  47. static function getOneForceSubscribeUsersByOpenid($openid)
  48. {
  49. return self::where('openid', $openid)->first();
  50. }
  51. /**
  52. * 根据openid获取强关用户
  53. */
  54. static function forceSubscribeUsersByOpenidAndChannelId($openid, $distribution_channel_id)
  55. {
  56. return self::where(['openid' => $openid, 'distribution_channel_id' => $distribution_channel_id])->first();
  57. }
  58. /**
  59. * 根据openid获取一个取关用户
  60. */
  61. static function forceUnSubscribeUsersByOpenid($openid)
  62. {
  63. return self::where(['openid' => $openid, 'is_subscribed' => 0])->first();
  64. }
  65. static function forceSubscribeUsersByOpenidAndAC($openid, $appid = '', $distribution_channel_id = '')
  66. {
  67. $query = self::where('openid', $openid);
  68. if ($appid) {
  69. # code...
  70. $query->where('appid', $appid);
  71. }
  72. if ($distribution_channel_id) {
  73. # code...
  74. $query->where('distribution_channel_id', $distribution_channel_id);
  75. }
  76. return $query->first();
  77. }
  78. /**
  79. * 根据openid获取全部取关用户
  80. */
  81. static function forceAllUnSubscribeUsersByOpenid($openid)
  82. {
  83. return self::where(['openid' => $openid, 'is_subscribed' => 0])->get();
  84. }
  85. /**
  86. * 根据appid获取强关用户
  87. */
  88. static function forceSubscribeUsersByAppid($appid)
  89. {
  90. return self::where(['appid' => $appid, 'is_subscribed' => 1])->get();
  91. }
  92. /**
  93. * 根据appid获取强关用户数量
  94. */
  95. static function forceSubscribeUsersCountByAppid($appid)
  96. {
  97. return self::where(['appid' => $appid, 'is_subscribed' => 1])->count();
  98. }
  99. }