123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?php
- namespace App\Http\Controllers\Behavior;
- /**
- * Created by PhpStorm.
- * User: durong
- * Date: 2019/6/12
- * 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
- {
- public function __construct(BehaviorRepository $behaviorRepository)
- {
- $this->behaviorRepository = $behaviorRepository;
- }
- /**
- * 行为列表
- */
- public function index(Request $request)
- {
- $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'])){
- $behavior_list[$k]['_id'] = $v['_id'];
- $behavior_list[$k]['behavior_name'] = $v['behavior_name'];
- $behavior_list[$k]['virus_behavior_id'] = $v['_id'];
- $behavior_list[$k]['name'] = $v['behavior_name'];
- unset($behavior_list[$k]['_id']);
- unset($behavior_list[$k]['behavior_name']);
- }
- }
- }
- $data['data'] = $behavior_list;
- $data['extra'] = [
- 'filters' => [
- 'virus_behavior_id',
- 'behavior_status',
- 'name',
- ],
- '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',
- 'created_at',
- 'updated_at'
- ]
- ];
- return $data;
- }
- //登记行为
- public function create(Request $request)
- {
- $validator = Validator::make($request->all(), [
- 'virus_behavior_id' => 'required',
- 'rainbow_beans' => '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());
- }
- //编辑行为
- public function edit(Request $request)
- {
- $validator = Validator::make($request->all(), [
- 'id' => 'required|exists:behavior',
- 'virus_behavior_id' => 'required',
- 'name' => 'required|string',
- 'behavior_level' => 'required|integer',
- 'behavior_cycle_type' => ['required',Rule::in(0, 1)],
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->behaviorRepository->edit($request->all());
- }
- //行为管理
- public function editStatus(Request $request)
- {
- $validator = Validator::make($request->all(), [
- 'id' => 'required|exists:behavior',
- 'is_open' => ['required', Rule::in(0,1)],
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- 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;
- }
- }
|