소스 검색

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 년 전
부모
커밋
8ecabb2a92
4개의 변경된 파일85개의 추가작업 그리고 11개의 파일을 삭제
  1. 21 2
      app/Http/Controllers/Behavior/BehaviorController.php
  2. 61 8
      app/Repositories/Behavior/BehaviorRepository.php
  3. 1 1
      config/constants.php
  4. 2 0
      routes/api.php

+ 21 - 2
app/Http/Controllers/Behavior/BehaviorController.php

@@ -3,17 +3,18 @@ namespace App\Http\Controllers\Behavior;
 /**
  * Created by PhpStorm.
  * User: durong
- * Date: 2019/6/10
+ * Date: 2019/6/12
  * Time: 上午11:09
  */
 use App\Http\Controllers\Controller;
-use App\Repositories\BehaviorRepository;
+use App\Repositories\Behavior\BehaviorRepository;
 use App\Transformers\Behavior\BehaviorTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Validation\Rule;
 use League\Fractal\Manager;
 use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 use League\Fractal\Resource\Collection;
+use Illuminate\Support\Facades\Validator;
 
 class BehaviorController extends Controller
 {
@@ -51,4 +52,22 @@ class BehaviorController extends Controller
 
     }
 
+
+    //登记行为
+    public function create(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'virus_behavior_id' => 'required',
+            'name' => 'required|string',
+            'behavior_level' => ['required',Rule::in(0, 1)],
+            'behavior_cycle_type' => ['required',Rule::in(0, 1)],
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->behaviorRepository->create($request->all());
+    }
+
+
+
 }

+ 61 - 8
app/Repositories/Behavior/BehaviorRepository.php

@@ -1,9 +1,12 @@
 <?php
-namespace App\Repositories;
+namespace App\Repositories\Behavior;
 use App\Models\Behavior;
 use GuzzleHttp\Client;
 use GuzzleHttp\Exception\RequestException;
+use Illuminate\Support\Facades\DB;
 use Tymon\JWTAuth\Facades\JWTAuth;
+use Dingo\Api\Http\Response;
+use Symfony\Component\HttpKernel\Exception\HttpException;
 
 /**
  * Created by PhpStorm.
@@ -17,27 +20,77 @@ class BehaviorRepository
     public function __construct(Behavior $behavior)
     {
         $this->behavior = $behavior;
+        //初始化virus域名
+        $this->client = new Client([
+            'base_uri' => config('constants.VIRUS_URL'),
+            'timeout' => 3
+        ]);
     }
 
     public function index($request)
     {
         try {
-            $app = config('constants.VIRUS_APP_ID');
             $signKey = [
                 'app' => config('constants.VIRUS_APP_ID')
             ];
             ksort($signKey);
             $signKey = urldecode(http_build_query($signKey));
             $sign = md5(config('constants.VIRUS_APP_SECRET') . $signKey);
-            $url = config('constants.VIRUS_URL') . '/behaviorList';
-            $array = [
-                'json' => ['app' => $app,'sign' => $sign], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
+
+            $response = $this->client->request('GET', 'behaviorList', [
+                'headers' => [
+                    'Content-Type' => 'application/json',
+                    'app' => config('constants.VIRUS_APP_ID'),
+                    'sign' => $sign
+                ]
+            ]);
+            $res = json_decode($response->getBody()->getContents(), true);
+            $res = $res ? $res['behaviors'] : [];
+        }catch (RequestException $exception){
+            $res = [
+                'returnCode' => '-1',
+                'errMsg' => '网络超时'.$exception->getMessage()
             ];
+        }
+
+        return $res;
+    }
 
-            return http($url, $array, 'get');
-        } catch (\Exception $e) {
-            return [];
+    public function create($request)
+    {
+        $behavior_name = $this->behavior->where(['name'=>$request['name']])->first();
+        if($behavior_name){
+            return Response::create([
+                'message'  => '该行为已存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'virus_behavior_id' => $request['virus_behavior_id'],
+            'name' => $request['name'],
+            'behavior_level' => $request['behavior_level'],
+            'behavior_cycle_type' => $request['behavior_cycle_type'],
+            'is_open' => 0,
+            'behavior_action_id' => isset($request['behavior_action_id']) ? $request['behavior_action_id'] : 0,
+            'behavior_cycle' => isset($request['behavior_cycle']) ? $request['behavior_cycle'] : '',
+            'behavior_binding_users' => isset($request['behavior_binding_users']) ? $request['behavior_binding_users'] : 0,
+            'physical_strength' => isset($request['physical_strength']) ? $request['physical_strength'] : '',
+            'rainbow_beans' => isset($request['rainbow_beans']) ? $request['rainbow_beans'] : '',
+            'remarks' => isset($request['remarks']) ? $request['remarks'] : '',
+            'behavioral_cycle_start_time' => isset($request['behavioral_cycle_start_time']) ? $request['behavioral_cycle_start_time'] : null,
+            'behavioral_cycle_end_time' => isset($request['behavioral_cycle_end_time']) ? $request['behavioral_cycle_end_time'] : null,
+            'allotted_quantity_rule' => isset($request['allotted_quantity_rule']) ? json_encode($request['allotted_quantity_rule']) : '',
+            'behavior_identification' => isset($request['behavior_identification']) ? $request['behavior_identification'] : '',
+            'trigger_times' => isset($request['trigger_times']) ? $request['trigger_times'] : 0,
+            'effective_trigger' => isset($request['effective_trigger']) ? $request['effective_trigger'] : 0,
+            'relative_series' => isset($request['relative_series']) ? $request['relative_series'] : 0,
+            'absolute_progression' => isset($request['absolute_progression']) ? $request['absolute_progression'] : 0,
+        ];
+
+        if (!$this->behavior->create($data)) {
+            throw new HttpException(500, '添加失败,请重试');
         }
+
     }
 }
 

+ 1 - 1
config/constants.php

@@ -7,5 +7,5 @@
 return [
     'VIRUS_APP_ID' => env('VIRUS_APP_ID', '5cfdcf97249e6a00082639d3'),
     'VIRUS_APP_SECRET' => env('VIRUS_APP_SECRET', '4f2afc9c4099ee1f39c9f551123e54bd'),
-    'VIRUS_URL' => env('VIRUS_URL', 'https://api.dev.caihongxingqiu.com/virus'),
+    'VIRUS_URL' => env('VIRUS_URL', 'https://api.dev.caihongxingqiu.com/virus/'),
 ];

+ 2 - 0
routes/api.php

@@ -89,5 +89,7 @@ $api->version('v1', [
     $api->group(['namespace' => 'Behavior'], function ($api) {
         //行为列表
         $api->get('behavior/list', 'BehaviorController@index');
+        //登记/注册行为
+        $api->post('behavior/create', 'BehaviorController@create');
     });
 });