| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace App\Http\Controllers\Api\v1;
- use App\Http\Controllers\Api\webApp;
- use App\Models\AcceptorModel;
- use App\Models\MerchantModel;
- use App\Services\Api\MemberService;
- use App\Services\Api\TaskService;
- use App\Services\ConfigService;
- use App\Services\RedisService;
- /**
- * 星链API
- * @package App\Http\Controllers\Api
- */
- class ApiController extends webApp
- {
- /**
- * 聊天用户信息
- * @return array
- */
- public function chatInfo()
- {
- $params = request()->all();
- $token = isset($params['token'])? $params['token'] : '';
- if(empty($token)){
- return showJson(1066,false);
- }
- $tokenData = MemberService::make()->getChatToken($token, 2);
- $userId = isset($tokenData['user_id'])? $tokenData['user_id'] : 0;
- $userType = isset($tokenData['user_type']) && $tokenData['user_type']? $tokenData['user_type'] : 1;
- $cacheKey = "caches:members:chat_{$userId}_{$userType}";
- $info = RedisService::get($cacheKey);
- if($info){
- return $info;
- }
- if($userType == 1){
- $info = MemberService::make()->getInfo($userId, 'chat',['id','username','nickname','gender','app_uuid','avatar']);
- }else if($userType == 2){
- $info = MerchantModel::where(['user_id'=> $userId,'mark'=>1])
- ->select(['user_id as id','name as nickname','mobile as username','logo as avatar'])
- ->first();
- $info = $info? $info->toArray() :[];
- }else if($userType == 3){
- $info = AcceptorModel::from('acceptor as a')
- ->leftJoin('member as b','b.id','=','a.user_id')
- ->where(['a.user_id'=> $userId,'a.mark'=>1])
- ->select(['a.user_id as id','a.name as nickname','b.username','b.avatar'])
- ->first();
- $info = $info? $info->toArray() :[];
- }
- if($info){
- $info['user_type'] = $userType;
- $info['user_type_name'] = $userType==3?'承兑商':($userType==2?'商家':'会员');
- $info['avatar'] = $info['avatar']? get_image_url($info['avatar']) : get_image_url('/images/member/logo.png');
- RedisService::set($cacheKey, $info, rand(5,10));
- }
- return showJson(1010,true, $info);
- }
- }
|