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; } }