wzq преди 5 години
родител
ревизия
7df36b28c3
променени са 3 файла, в които са добавени 100 реда и са изтрити 3 реда
  1. 15 1
      app/Console/Commands/VirusAdd.php
  2. 72 2
      app/Repositories/Post/PostRepository.php
  3. 13 0
      app/Traits/UserTrait.php

+ 15 - 1
app/Console/Commands/VirusAdd.php

@@ -163,6 +163,21 @@ class VirusAdd extends Command
                     'action_id' => (string) $data['action_id'],
                     'extra' => [],
                 ];
+            }elseif(in_array($data['behavior_flag'], ['read', 'like', 'collect', 'forward'])){
+                $json = [
+                    'sign' => $sign,
+                    'app_id' => config('customer.VIRUS_APP_ID'),
+                    'behavior_id' => $data['behavior_id'],
+                    'behavior_flag' => $data['behavior_flag'],
+                    'behavior_value' => $data['behavior_value'],
+                    'post_id' => $data['post_id'],
+                    'post_author_uid' => $data['post_author_uid'],
+                    'post_desc' => $data['post_desc'],
+                    'post_cover' => $data['post_cover'],
+                    'target_id' => (string) $data['target_id'],
+                    'action_id' => (string) $data['action_id'],
+                    'extra' => [],
+                ];
             }else{
                 Log::debug('行为类型错误'.json_encode($data));
                 return false;
@@ -174,7 +189,6 @@ class VirusAdd extends Command
                 ],
                 'json' => $json
             ]);
-//            $result = \GuzzleHttp\json_decode($response->getBody()->getContents(), true);
             Log::debug('virus添加数据成功:'.$response->getBody()->getContents());
             return true;
         } catch (RequestException $e) {

+ 72 - 2
app/Repositories/Post/PostRepository.php

@@ -200,9 +200,23 @@ class PostRepository
         $uid = $token['user']->id;
         $username = $token['user']->username;
         //验证小号数量
-
+        $number = max([
+            $request['add_pv'],
+            $request['add_praise_count'],
+            $request['add_collect_count'],
+            $request['add_share_count']
+        ]);
+
+        $members = $this->getSystemMember($number);
+        if(!$members || $members['status_code'] != 200){
+            return Response::create([
+                'message' => $members['message'],
+                'status_code' => 500
+            ]);
+        }
+        $post = $this->post->find($request['post_id']);
         $postData = $this->postData->where('post_id', $request['post_id'])->first();
-        if (!$postData) {
+        if (!$postData || !$post) {
             return Response::create([
                 'message' => '获取内容失败',
                 'status_code' => 500
@@ -249,6 +263,62 @@ class PostRepository
             ]);
 
             DB::commit();
+
+            $virus = $this->behavior
+                ->whereIn('behavior_identification', ['read', 'forward', 'like', 'collect'])
+                ->pluck('virus_behavior_id', 'behavior_identification');
+            if($post->title){
+                $desc = $post->title;
+            }else{
+                $desc = subtext(strip_tags($post->content), 20);
+            }
+            $data = [
+                'behavior_value' => 1,
+                'post_id' => $post->id,
+                'post_author_uid' => $post->uid,
+                'post_desc' => $desc,
+                'post_cover' => $post->img,
+                'action_id' => $post->id,
+            ];
+
+            foreach($members['data'] as $key => $member){
+                if(isset($virus['read']) && $request['add_pv'] > $key){
+                    $newData = array_merge($data, [
+                        'behavior_id' => $virus['read'],
+                        'behavior_flag' => 'read',
+                        'target_id' => $member['uid'],
+                    ]);
+                    $this->rabbitMqUtil->push('virus_add', $newData);
+                }
+
+                if(isset($virus['like']) && $request['add_praise_count'] > $key){
+                    $newData = array_merge($data, [
+                        'behavior_id' => $virus['like'],
+                        'behavior_flag' => 'like',
+                        'target_id' => $member['uid'],
+                    ]);
+                    $this->rabbitMqUtil->push('virus_add', $newData);
+                }
+
+                if(isset($virus['collect']) && $request['add_collect_count'] > $key){
+                    $newData = array_merge($data, [
+                        'behavior_id' => $virus['collect'],
+                        'behavior_flag' => 'collect',
+                        'target_id' => $member['uid'],
+                    ]);
+                    $this->rabbitMqUtil->push('virus_add', $newData);
+                }
+
+                if(isset($virus['forward']) && $request['add_share_count'] > $key){
+                    $newData = array_merge($data, [
+                        'behavior_id' => $virus['forward'],
+                        'behavior_flag' => 'forward',
+                        'target_id' => $member['uid'],
+                    ]);
+                    $this->rabbitMqUtil->push('virus_add', $newData);
+                }
+            }
+
             return Response::create();
 
         } catch (QueryException $exception) {

+ 13 - 0
app/Traits/UserTrait.php

@@ -23,4 +23,17 @@ trait UserTrait
         }
 
     }
+
+    public function getSystemMember($number) {
+        try {
+            $url = config("customer.manage_service_url").'/user/member/getSystemMember';
+            $array = [
+                'json' => ['number' => $number], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            return http($url,$array, false, 'get');
+        } catch (\Exception $e) {
+            return [];
+        }
+
+    }
 }