Browse Source

Merge branch 'master' of qk:yulf/general_out_api

# Conflicts:
#	src/Controllers/CompanyAuth/Transformers/UserTransformer.php
#	src/Controllers/CompanyAuth/UserController.php
#	src/Services/User/UserService.php
liuzejian 2 years ago
parent
commit
0933d085b1

+ 8 - 5
src/Controllers/CompanyAuth/Transformers/UserTransformer.php

@@ -19,11 +19,14 @@ class UserTransformer
             'register_openid' => $item->openid,
             'register_ip' => $item->register_ip,
             'register_time' =>  (string)$item->created_at,
-            'ua' => $item->user_env ? $item->user_env->ua : '',
-            'app_id' => isset($item->appid) ? $item->appid : '',
-            'opend_id' => isset($item->openid) ? $item->openid : '',
-            'is_subscribed' => isset($item->is_subscribed) ? (string)$item->is_subscribed : '0',
-            'subscribe_time' => isset($item->subscribe_time) ? (string)$item->subscribe_time : '',
+            'app_id' => $item->appid ?? '',
+            'opend_id' => $item->openid ?? '',
+            'ewechat_external_user_id' => $item->external_user_id ?? '',
+            'ewechat_open_external_user_id' => $item->open_external_user_id ?? '',
+            'ewechat_agent_id' => $item->agent_id ?? '0',
+            'ewechat_unionid' => $item->unionid ?? '',
+            'is_subscribed' => $item->is_subscribed ?? '0',
+            'subscribe_time' => $item->subscribe_time ?? '',
             'nickname' => $item->nickname ? (string)$item->nickname : '',
             'balance' => $item->balance ? (string)$item->balance : '',
             'sex' => isset($sex[$item->sex]) ? $sex[$item->sex] : ''

+ 6 - 4
src/Controllers/CompanyAuth/UserController.php

@@ -47,6 +47,10 @@ class UserController extends Controller
      * @apiSuccess {String}      nickname 用户昵称
      * @apiSuccess {String}      balance 总书币
      * @apiSuccess {String}      sex 性别
+     * @apiSuccess {String}      ewechat_external_user_id  相对于企微真实的外部联系人id
+     * @apiSuccess {String}      ewechat_open_external_user_id  相对于代开发应用的外部联系人id
+     * @apiSuccess {String}      ewechat_agent_id    企业安装的代自建应用id
+     * @apiSuccess {String}      ewechat_unionid  外部联系人在微信开放平台的唯一身份标识(微信unionid),通过此字段企业可将外部联系人与公众号/小程序用户关联起来
      * @apiSuccessExample {json} Success-Response:
      *     HTTP/1.1 200 OK
      *{
@@ -85,11 +89,9 @@ class UserController extends Controller
         if ($uid_str) {
             $uids = explode(',', $uid_str);
             $uids = count($uids) > 100 ? collect($uids)->take(100) : $uids;
-//            $result = $service->companyAuthUsers($channel_id, $start_time, $end_time, $uids);
-            $result = $service->getCompanyAuthUsers($channel_id, $start_time, $end_time, $uids);
+            $result = $service->companyAuthUsersNew($channel_id, $start_time, $end_time, $uids);
         } else {
-//            $result = $service->companyAuthUsers($channel_id, $start_time, $end_time);
-            $result = $service->getCompanyAuthUsers($channel_id, $start_time, $end_time);
+            $result = $service->companyAuthUsersNew($channel_id, $start_time, $end_time);
         }
         return response()->pagination(new UserTransformer, $result);
     }

+ 15 - 8
src/Services/User/UserService.php

@@ -11,6 +11,7 @@ namespace General\Services\User;
 
 use General\Models\User\SubscribeRecord;
 use General\Models\User\User;
+use Illuminate\Support\Facades\DB;
 
 class UserService
 {
@@ -30,20 +31,26 @@ class UserService
         return $sql->paginate(100);
     }
 
-    public function getCompanyAuthUsers($channel_id,$start_time,$end_time,$uids = [])
+
+    public function companyAuthUsersNew($channel_id,$start_time = '',$end_time = '',$uids = [])
     {
         $query = User::leftjoin('force_subscribe_users','force_subscribe_users.uid','users.id')
-            ->select('users.id','users.distribution_channel_id','users.openid','users.register_ip','users.sex',
-                'users.created_at','force_subscribe_users.appid','force_subscribe_users.openid','force_subscribe_users.is_subscribed','force_subscribe_users.subscribe_time')
-            ->orderBy('id','DESC');
-        if ($start_time) {
-            $query->where('created_at', '>=', $start_time);
+            ->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('created_at', '<=', $end_time);
+            $query->where('users.created_at', '<=', $end_time);
         }
         if ($uids) {
-            $query->whereIn('id', $uids);
+            $query->whereIn('users.id', $uids);
         }
         return $query->paginate(100);
     }