UserService.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: hp
  5. * Date: 2017/11/21
  6. * Time: 10:42
  7. */
  8. namespace General\Services\User;
  9. use General\Models\User\SubscribeRecord;
  10. use General\Models\User\User;
  11. use Illuminate\Support\Facades\DB;
  12. class UserService
  13. {
  14. public function companyAuthUsers(int $channel_id, string $start_time = '', string $end_time = '', array $uids = [])
  15. {
  16. $sql = User::where('distribution_channel_id', $channel_id)
  17. ->orderBy('id', 'desc');
  18. if ($start_time) {
  19. $sql->where('created_at', '>=', $start_time);
  20. }
  21. if ($end_time) {
  22. $sql->where('created_at', '<=', $end_time);
  23. }
  24. if ($uids) {
  25. $sql->whereIn('id', $uids);
  26. }
  27. return $sql->paginate(100);
  28. }
  29. public function companyAuthUsersNew($channel_id,$start_time = '',$end_time = '',$uids = [])
  30. {
  31. $query = User::leftjoin('force_subscribe_users','force_subscribe_users.uid','users.id')
  32. ->leftjoin('ww_external_contact_infos','ww_external_contact_infos.uid','users.id')
  33. ->select('users.*','force_subscribe_users.appid','force_subscribe_users.openid','force_subscribe_users.is_subscribed',
  34. 'force_subscribe_users.subscribe_time','ww_external_contact_infos.external_user_id','ww_external_contact_infos.open_external_user_id',
  35. 'ww_external_contact_infos.unionid',
  36. DB::raw("(select ww_corp_infos.agent_id from ww_corp_infos where ww_corp_infos.corp_id=ww_external_contact_infos.corp_id and ww_corp_infos.state='normal') as agent_id"))
  37. ->where('users.distribution_channel_id',$channel_id)
  38. ->orderBy('id', 'desc');
  39. if($start_time){
  40. $query->where('users.created_at', '>=', $start_time);
  41. }
  42. if ($end_time) {
  43. $query->where('users.created_at', '<=', $end_time);
  44. }
  45. if ($uids) {
  46. $query->whereIn('users.id', $uids);
  47. }
  48. return $query->paginate(100);
  49. }
  50. public function findSubscribeRecords(int $channel_id, array $uids)
  51. {
  52. return SubscribeRecord::where('distribution_channel_id', $channel_id)
  53. ->whereIn('uid', $uids)
  54. ->paginate(100);
  55. }
  56. }