소스 검색

分享邀请首页

duqinya 5 년 전
부모
커밋
cbb0a6c5af
3개의 변경된 파일82개의 추가작업 그리고 12개의 파일을 삭제
  1. 17 0
      app/Http/Controllers/V1/BeanDetailController.php
  2. 63 12
      app/Repositories/BeanRepository.php
  3. 2 0
      routes/api.php

+ 17 - 0
app/Http/Controllers/V1/BeanDetailController.php

@@ -35,6 +35,23 @@ class BeanDetailController extends Controller
         }
     }
 
+    //分享/邀请首页
+    public function starDetail(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'invite_code' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->jsonError($validator->errors()->first());
+        }
+        $star_detail = $this->beanRepository->starDetail($request->all());
+        if ($star_detail){
+            return $this->jsonSuccess($star_detail);
+        }else{
+            return $this->jsonSuccess();
+        }
+    }
+
     //星球首页
     public function starHome(Request $request)
     {

+ 63 - 12
app/Repositories/BeanRepository.php

@@ -1,13 +1,7 @@
 <?php
 namespace App\Repositories;
-use App\Models\Behavior;
-use App\Models\CommentRecord;
-use App\Models\GeneralRecord;
 use App\Models\Post;
-use App\Models\RegisteredRecord;
-use App\Models\ReleaseRecord;
 use Illuminate\Support\Carbon;
-use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 use Tymon\JWTAuth\Facades\JWTAuth;
 use Illuminate\Support\Facades\Redis;
@@ -59,7 +53,7 @@ class BeanRepository
                 foreach ($excellent_residents as $k=>$v){
                     if(!isset($author_data[$v['content_author_id']])) continue;
                     $excellent_residents[$k]['follow_status'] = $author_data[$v['content_author_id']]['follow_status'];
-                    $excellent_residents[$k]['username'] = $author_data[$v['content_author_id']]['username'];
+                    $excellent_residents[$k]['username'] = subtext($author_data[$v['content_author_id']]['username'], 5);
                     $excellent_residents[$k]['avatar'] = $author_data[$v['content_author_id']]['avatar'];
                 }
             }
@@ -153,13 +147,15 @@ class BeanRepository
     {
         $star_home = [];
         $user_bean = Redis::get('my_bean');
+        Log::debug($user_bean);
         $user_bean = json_decode($user_bean,true);
         $yesterday_quantity_issued = Redis::get('yesterday_quantity_issued');
-        $star_home['mybean']['user_all_bean'] = $user_bean['user_all_bean'] ?? 0;//用户总彩虹豆
-        $star_home['mybean']['yesterday_add_bean'] = $user_bean['yesterday_add_bean'] ?? 0;//昨日发放彩虹豆
-        $star_home['mybean']['user_count'] = $user_bean['user_count'] ?? 0;//已入驻居民
-        $star_home['mybean']['yesterday_add_user'] = $user_bean['yesterday_add_user'] ?? 0;//昨日新增居民
-        $star_home['mybean']['yesterday_quantity_issued'] = $yesterday_quantity_issued ?? 0;//昨日发放总彩虹豆
+        Log::debug($user_bean);
+        $star_home['mybean']['user_all_bean'] = intval($user_bean['user_all_bean']) ?? 0;//用户总彩虹豆
+        $star_home['mybean']['yesterday_add_bean'] = intval($user_bean['yesterday_add_bean']) ?? 0;//昨日发放彩虹豆
+        $star_home['mybean']['user_count'] = intval($user_bean['user_count']) ?? 0;//已入驻居民
+        $star_home['mybean']['yesterday_add_user'] = intval($user_bean['yesterday_add_user']) ?? 0;//昨日新增居民
+        $star_home['mybean']['yesterday_quantity_issued'] = intval($yesterday_quantity_issued) ?? 0;//昨日发放总彩虹豆
 
         $star_home['excellent_residents'] = $this->excellentResidents($request) ?? [];
         $star_home['daily_news'] = $this->getNews($request);
@@ -198,4 +194,59 @@ class BeanRepository
 
     }
 
+    public function starDetail($request)
+    {
+        $star_detail = [];
+        $user_bean = Redis::get('my_bean');
+        $user_bean = json_decode($user_bean,true);
+        $yesterday_quantity_issued = Redis::get('yesterday_quantity_issued');
+        $exchange = Redis::ZREVRANGEBYSCORE('post_purchase_message','+inf','-inf');
+        Log::debug($user_bean);
+        Log::debug($yesterday_quantity_issued);
+        Log::debug($exchange);
+
+        $post_detail = new Post();
+        if (isset($request['post_id'])){
+            $post = $post_detail->
+                join('post_data', 'post_data.post_id', '=', 'post.id')
+                ->select('post.*','post_data.pv')
+                ->find($request['post_id']);
+            if ($post){
+                $created_at = $post_detail->created_at;
+                $post->created_time = Carbon::parse($created_at)->diffForHumans();
+                $post->topic = $post->topic();
+                $star_detail['post'] = $post;
+            }
+        }
+        $user_info = $this->getUserInfo($invite_code = $request['invite_code']);
+            $star_detail['invite']['uid'] = $user_info->uid ?? 0;
+            $star_detail['invite']['username'] = $user_info->username ?? '';
+            $star_detail['invite']['avatar'] = $user_info->avatar ?? '';
+            $star_detail['invite']['bean'] = config("customer.share_post_bean") ?? 0;
+        $star_detail['mybean']['user_count'] = intval($user_bean['user_count']) ?? 0;//已入驻居民
+        $star_detail['mybean']['yesterday_add_user'] = intval($user_bean['yesterday_add_user']) ?? 0;//昨日新增居民
+        $star_detail['mybean']['yesterday_quantity_issued'] = intval($yesterday_quantity_issued) ?? 0;//昨日发放总彩虹豆
+
+        $star_detail['daily_news'] = $this->getNews($request);
+        $star_detail['exchange'] = $exchange;
+
+        return $star_detail;
+
+    }
+
+    //根据邀请码获取用户信息
+    function getUserInfo($invite_code) {
+        try {
+            $sign = generateSign(['invite_code' => $invite_code], config('customer.app_secret'));
+            $url = config("customer.app_service_url").'/user/userInfo';
+            $array = [
+                'json' => ['sign' => $sign,'invite_code' => $invite_code], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            return http($url,$array);
+        } catch (\Exception $e) {
+            return [];
+        }
+
+    }
+
 }

+ 2 - 0
routes/api.php

@@ -75,6 +75,8 @@ $api->version('v1', [
         $api->get('rankingList', 'BeanDetailController@rankingList');
         //星球首页
         $api->get('starHome', 'BeanDetailController@starHome');
+        //分享/邀请首页
+        $api->get('starDetail', 'BeanDetailController@starDetail');
 
         //用户发布数,收藏数,转发数
         $api->get('post/memberPostStatistics', 'PostController@memberPostStatistics');