durong пре 5 година
родитељ
комит
9e0859f48b

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

@@ -7,10 +7,15 @@ namespace App\Http\Controllers\Behavior;
  * Time: 上午11:09
  */
 use App\Http\Controllers\Controller;
+use App\Models\Behavior;
 use App\Repositories\Behavior\BehaviorRepository;
+use App\Transformers\Behavior\BehaviorTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Validation\Rule;
 use Illuminate\Support\Facades\Validator;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
 
 class BehaviorController extends Controller
 {
@@ -24,7 +29,7 @@ class BehaviorController extends Controller
      */
     public function index(Request $request)
     {
-        $behavior_list = $this->behaviorRepository->index($request->all());
+        $behavior_list = $this->behaviorRepository->lists($request->all());
         if (count($behavior_list)>0){
             foreach ($behavior_list as $k=>$v){
                 if (isset($behavior_list[$k]['_id']) || isset($behavior_list[$k]['behavior_name'])){
@@ -120,6 +125,75 @@ class BehaviorController extends Controller
         return  $this->behaviorRepository->editStatus($request->all());
     }
 
-
+    //行为数据列表
+    public function behaviorData(Request $request)
+    {
+        $behavior_list = $this->behaviorRepository->dataList($request->all());
+        if (count($behavior_list)>0){
+            //已开启行为
+            $is_open = Behavior::select('is_open')->where('is_open',1)->count();
+            //有效触发次数
+            $effective_trigger = Behavior::select('effective_trigger')->sum('effective_trigger');
+            //总生成彩虹豆
+            $rainbow_beans = Behavior::select('rainbow_beans')->sum('rainbow_beans');
+            //总发放彩虹豆
+            $grant_rainbow_beans = Behavior::select('grant_rainbow_beans')->sum('grant_rainbow_beans');
+            //总未发放彩虹豆
+            $all_grant_beans = $rainbow_beans - $grant_rainbow_beans;
+            foreach ($behavior_list as $k=>$v){
+                $v['all_is_open'] = $is_open;
+                $v['all_effective_trigger'] = intval($effective_trigger);
+                $v['all_rainbow_beans'] = $rainbow_beans;
+                $v['all_grant_beans'] = $all_grant_beans;
+            }
+        }
+        $fractal = new Manager();
+        $resource = new Collection($behavior_list, new BehaviorTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($behavior_list));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'id',
+                'is_open',
+                'behavior_level',
+                'name',
+                'trigger_times',
+                'effective_trigger',
+                'absolute_progression',
+                'physical_strength',
+                'grant_rainbow_beans',
+            ],
+            'columns' => [
+                'id',
+                'virus_behavior_id',
+                'name',
+                'behavior_level',
+                'behavior_cycle_type',
+                'behavior_action_id',
+                'behavior_cycle',
+                'behavior_binding_users',
+                'physical_strength',
+                'rainbow_beans',
+                'remarks',
+                'is_open',
+                'behavioral_cycle_start_time',
+                'behavioral_cycle_end_time',
+                'allotted_quantity_rule',
+                'behavior_identification',
+                'trigger_times',
+                'effective_trigger',
+                'relative_series',
+                'absolute_progression',
+                'grant_rainbow_beans',
+                'created_at',
+                'updated_at',
+                'all_is_open',
+                'all_effective_trigger',
+                'all_rainbow_beans',
+                'all_grant_beans'
+            ]
+        ];
+        return $data;
+    }
 
 }

+ 5 - 1
app/Models/Behavior.php

@@ -17,7 +17,11 @@ class Behavior extends Model
      * 可被批量赋值的字段
      * @var array
      */
-    protected $fillable = ['virus_behavior_id','name','behavior_level','behavior_cycle_type','behavior_action_id','behavior_cycle','is_open'];
+    protected $fillable =
+        ['virus_behavior_id','name','behavior_level','behavior_cycle_type','behavior_action_id','behavior_cycle','is_open','behavior_binding_users','physical_strength',
+        'rainbow_beans','remarks','behavioral_cycle_start_time','behavioral_cycle_end_time','allotted_quantity_rule','behavior_identification','relative_series','trigger_times',
+         'effective_trigger', 'absolute_progression','grant_rainbow_beans'
+        ];
 
     public function RegisteredRecord()
     {

+ 52 - 1
app/Repositories/Behavior/BehaviorRepository.php

@@ -32,7 +32,7 @@ class BehaviorRepository
         ]);
     }
 
-    public function index($request)
+    public function lists($request)
     {
         try {
             $signKey = [
@@ -173,6 +173,7 @@ class BehaviorRepository
             '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'] : '',
+            'grant_rainbow_beans' => isset($request['grant_rainbow_beans']) ? $request['grant_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,
@@ -234,6 +235,7 @@ class BehaviorRepository
             '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'] : '',
+            'grant_rainbow_beans' => isset($request['grant_rainbow_beans']) ? $request['grant_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,
@@ -328,6 +330,55 @@ class BehaviorRepository
                 'status_code' => 500
             ]);
         }
+    }
+
+    public function dataList($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['id'])){
+            $where[] = ['id',$request['id']];
+        }
+        if(isset($request['is_open'])){
+            $where[] = ['is_open',$request['is_open']];
+        }
+        if(isset($request['behavior_level'])){
+            $where[] = ['behavior_level',$request['behavior_level']];
+        }
+        if(isset($request['name'])){
+            $where[] = ['name', 'like', "%{$request['name']}%"];
+        }
+        if (isset($request['trigger_times']) && $request['trigger_times'] == 0){
+            return $this->behavior->orderBy('trigger_times','desc')->paginate($perPage);
+        }elseif (isset($request['trigger_times']) && $request['trigger_times'] == 1){
+            return $this->behavior->orderBy('trigger_times','asc')->paginate($perPage);
+        }
+
+        if (isset($request['effective_trigger']) && $request['effective_trigger'] == 0){
+            return $this->behavior->orderBy('effective_trigger','desc')->paginate($perPage);
+        }elseif (isset($request['effective_trigger']) && $request['effective_trigger'] == 1){
+            return $this->behavior->orderBy('effective_trigger','asc')->paginate($perPage);
+        }
+
+        if (isset($request['absolute_progression']) && $request['absolute_progression'] == 0){
+            return $this->behavior->orderBy('absolute_progression','desc')->paginate($perPage);
+        }elseif (isset($request['absolute_progression']) && $request['absolute_progression'] == 1){
+            return $this->behavior->orderBy('absolute_progression','asc')->paginate($perPage);
+        }
+
+        if (isset($request['physical_strength']) && $request['physical_strength'] == 0){
+            return $this->behavior->orderBy('physical_strength','desc')->paginate($perPage);
+        }elseif (isset($request['physical_strength']) && $request['physical_strength'] == 1){
+            return $this->behavior->orderBy('physical_strength','asc')->paginate($perPage);
+        }
+
+        if (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 0){
+            return $this->behavior->orderBy('grant_rainbow_beans','desc')->paginate($perPage);
+        }elseif (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 1){
+            return $this->behavior->orderBy('grant_rainbow_beans','asc')->paginate($perPage);
+        }
+
+        return $this->behavior->where($where)->paginate($perPage);
 
     }
 }

+ 28 - 4
app/Transformers/Behavior/BehaviorTransformer.php

@@ -3,8 +3,8 @@ namespace App\Transformers\Behavior;
 /**
  * Created by PhpStorm.
  * User: durong
- * Date: 2019/6/10
- * Time: 上午11:39
+ * Date: 2019/6/15
+ * Time: 下午14:39
  */
 use App\Models\Behavior;
 use League\Fractal\TransformerAbstract;
@@ -14,8 +14,32 @@ class BehaviorTransformer extends TransformerAbstract
     public function transform(Behavior $behavior_list)
     {
         return [
-            '_id' => $behavior_list['_id'],
-            'behavior_name' => $behavior_list['behavior_name']
+            'id' => $behavior_list['id'],
+            'name' => $behavior_list['name'],
+            'behavior_level' => $behavior_list['behavior_level'],
+            'behavior_cycle_type' => $behavior_list['behavior_cycle_type'],
+            'behavior_action_id' => $behavior_list['behavior_action_id'],
+            'behavior_cycle' => $behavior_list['behavior_cycle'],
+            'behavior_binding_users' => $behavior_list['behavior_binding_users'],
+            'physical_strength' => $behavior_list['physical_strength'],
+            'rainbow_beans' => $behavior_list['rainbow_beans'],
+            'remarks' => $behavior_list['remarks'],
+            'is_open' => $behavior_list['is_open'],
+            'behavioral_cycle_start_time' => $behavior_list['behavioral_cycle_start_time'],
+            'behavioral_cycle_end_time' => $behavior_list['behavioral_cycle_end_time'],
+            'allotted_quantity_rule' => $behavior_list['allotted_quantity_rule'],
+            'behavior_identification' => $behavior_list['behavior_identification'],
+            'trigger_times' => $behavior_list['trigger_times'],
+            'effective_trigger' => $behavior_list['effective_trigger'],
+            'relative_series' => $behavior_list['relative_series'],
+            'absolute_progression' => $behavior_list['absolute_progression'],
+            'grant_rainbow_beans' => $behavior_list['grant_rainbow_beans'],
+            'created_at' => date($behavior_list['created_at']),
+            'updated_at' => date($behavior_list['updated_at']),
+            'all_is_open' => $behavior_list['all_is_open'],//总已开启行为数
+            'all_effective_trigger' => $behavior_list['all_effective_trigger'],//有效触发数
+            'all_rainbow_beans' => $behavior_list['all_rainbow_beans'],//总生成彩虹豆
+            'all_grant_beans' => $behavior_list['all_grant_beans'],//总未发放彩虹豆
         ];
     }
 }

+ 32 - 0
database/migrations/2019_06_15_111834_add_grant_rainbow_beans_to_behavior_table.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddGrantRainbowBeansToBehaviorTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('behavior', function (Blueprint $table) {
+            $table->string('grant_rainbow_beans')->nullable()->comment('行为发放彩虹豆');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('behavior', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 2 - 3
routes/api.php

@@ -96,14 +96,13 @@ $api->version('v1', [
             $api->put('behavior/edit', 'BehaviorController@edit');
             //列表修改行为状态(行为管理)
             $api->post('behavior/editStatus', 'BehaviorController@editStatus');
-
+            //行为数据列表
+            $api->get('behavior/behaviorData', 'BehaviorController@behaviorData');
             //行为日志列表
             $api->get('behavior/log', 'LogController@index');
 
             //用户注册账单列表
             $api->get('registeredRecord/list', 'RegisteredRecordController@index');
-            //行为数据列表
-            $api->get('registeredRecord/behavior_data', 'RegisteredRecordController@behavior_data');
             //评论账本列表
             $api->get('CommentRecord/list', 'CommentRecordController@index');
             //发布账本列表