1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * Created by PhpStorm.
- * User: hp
- * Date: 2017/11/21
- * Time: 10:42
- */
- namespace General\Services\User;
- use General\Models\User\SubscribeRecord;
- use General\Models\User\User;
- use Illuminate\Support\Facades\DB;
- class UserService
- {
- public function companyAuthUsers(int $channel_id, string $start_time = '', string $end_time = '', array $uids = [])
- {
- $sql = User::where('distribution_channel_id', $channel_id)
- ->orderBy('id', 'desc');
- if ($start_time) {
- $sql->where('created_at', '>=', $start_time);
- }
- if ($end_time) {
- $sql->where('created_at', '<=', $end_time);
- }
- if ($uids) {
- $sql->whereIn('id', $uids);
- }
- return $sql->paginate(100);
- }
- public function companyAuthUsersNew($channel_id,$start_time = '',$end_time = '',$uids = [])
- {
- $query = User::leftjoin('force_subscribe_users','force_subscribe_users.uid','users.id')
- ->leftjoin('ww_external_contact_infos','ww_external_contact_infos.uid','users.id')
- ->select('users.*','force_subscribe_users.appid','force_subscribe_users.openid','force_subscribe_users.is_subscribed',
- 'force_subscribe_users.subscribe_time','ww_external_contact_infos.external_user_id','ww_external_contact_infos.open_external_user_id',
- 'ww_external_contact_infos.unionid',
- 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"))
- ->where('users.distribution_channel_id',$channel_id)
- ->orderBy('id', 'desc');
- if($start_time){
- $query->where('users.created_at', '>=', $start_time);
- }
- if ($end_time) {
- $query->where('users.created_at', '<=', $end_time);
- }
- if ($uids) {
- $query->whereIn('users.id', $uids);
- }
- $res = $query->paginate(100);
- $uids = $res->pluck('id')->unique();
- $infos = DB::table('ww_direct_bind_infos')
- ->whereIn('uid', $uids->toArray())
- ->where([
- 'is_enabled' => 1,
- 'channel_id' => $channel_id
- ])->get()->keyBy('uid');
- foreach ($res as $item) {
- $item->dww_corp_user_id = $infos->get($item->id)->dww_corp_user_id ?? '';
- $item->dww_corp_name = $infos->get($item->id)->dww_corp_name ?? '';
- $item->dww_external_userid = $infos->get($item->id)->dww_external_userid ?? '';
- }
- return $res;
- }
- public function findSubscribeRecords(int $channel_id, array $uids)
- {
- return SubscribeRecord::where('distribution_channel_id', $channel_id)
- ->whereIn('uid', $uids)
- ->paginate(100);
- }
- }
|