1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace Modules\WechatPlatform\Http\Controllers;
- use Catch\Base\CatchController;
- use Exception;
- use Illuminate\Http\Request;
- use Modules\Channel\Services\WechatOpenPlatform\WechatOpenPlatformService;
- use Modules\User\Http\Controllers\UserTrait;
- use Modules\WechatPlatform\Models\WechatAuthorizationInfo;
- class WechatAuthorizationInfoController extends CatchController
- {
- public function __construct(protected readonly WechatAuthorizationInfo $wechatAuthorizationInfo)
- {
-
- }
- use UserTrait;
- public function index(Request $request)
- {
-
- $page_size = $request->get('limit', 20);
- if($this->isOptimizer()){
- $where = [
- ['wechat_authorization_infos.user_id','=',$this->getLoginUserId()],
- ['wechat_authorization_infos.is_enabled','=',1]
- ];
- }elseif($this->isCompanyManager()){
- $where = [
- ['wechat_authorization_infos.puser_id','=',$this->getLoginUserId()],
- ['wechat_authorization_infos.is_enabled','=',1]
- ];
- }else{
- return [];
- }
-
- $nick_name = $request->get('nick_name');
- if($nick_name){
- $where[] = ['wechat_authorization_infos.nick_name','like',"%".$nick_name."%"];
- }
- $result = $this->wechatAuthorizationInfo->where($where)
- ->join('wechat_open_platform_infos','wechat_open_platform_infos.app_id','=','wechat_authorization_infos.component_appid')
- ->join('miniprogram','wechat_open_platform_infos.xcx_appid','=','miniprogram.appid')
- ->join('users','users.id','=','wechat_authorization_infos.user_id')
- ->select('wechat_authorization_infos.nick_name','wechat_authorization_infos.authorizer_appid','miniprogram.name as xcx_name',
- 'wechat_authorization_infos.authorizer_refresh_token','users.username','wechat_authorization_infos.id'
- ,'wechat_open_platform_infos.app_id','wechat_open_platform_infos.secret','wechat_open_platform_infos.token','wechat_open_platform_infos.aes_key')
- ->paginate($page_size);
- foreach($result as $item){
- //todo 获取粉丝数
- $item->fans_count = 0;
- $application = WechatOpenPlatformService::buildApplication($item);
- try{
- /*
- $officialAccount = $application->getOfficialAccountWithRefreshToken($item->authorizer_appid, $item->authorizer_refresh_token);
- $api = $officialAccount->getClient();
- $response = $api->get('/cgi-bin/user/list', []);
- if($response->isSuccessful()){
- $item->fans_count = $response['total'];
- }*/
- $officialAccount = $application->officialAccount($item->authorizer_appid);
- $users = $officialAccount->user->list(); // $n
- $item->fans_count = $users['total'];
- }catch(Exception $e){
- myLog('WechatAuthorizationInfo')->error($e);
- }
- unset($item->authorizer_refresh_token);
- unset($item->secret);
- unset($item->token);
- unset($item->aes_key);
- unset($item->app_id);
- }
- return $result;
- }
- }
|