request->isAjax) { if (\Yii::$app->request->isGet) { $group = \Yii::$app->request->get('group',''); $group = $group ?: 'basic'; $configs = \Yii::$app->services->setting->addons->get($this->mall_id, 'Agent', $group); if($group == 'basic'){ if(!isset($configs['is_show_at_center'])) $configs['is_show_at_center'] = 1; if(!isset($configs['over_settle_type'])) $configs['over_settle_type'] = 0; if(!isset($configs['over_calculation_basis'])) $configs['over_calculation_basis'] = 0; if(isset($configs['agent_level_info'])){ $configs['agent_level_info'] = json_decode($configs['agent_level_info'],true); }else{ $configs['agent_level_info'] = []; } if(isset($configs['agent_level_select'])){ $configs['agent_level_select'] = json_decode($configs['agent_level_select'],true); }else{ $configs['agent_level_select'] = []; } if(isset($configs['diff_bonus_area'])){ $configs['diff_bonus_area'] = json_decode($configs['diff_bonus_area'],true); }else{ $configs['diff_bonus_area'] = [ 'regional_team_prize'=> 0,//省 'province_team_prize'=> 0,//省 'city_team_prize'=> 0,//市 'district_team_prize'=> 0,//区 'town_team_prize'=> 0,//镇 'community_team_prize'=> 0,//小区 ]; } $list['userList'] = []; if(isset($configs['diff_bonus_user'])){ $configs['diff_bonus_user'] = json_decode($configs['diff_bonus_user'],true); $list['userList'] = $configs['diff_bonus_user']; }else{ $configs['diff_bonus_user'] = []; } $where = [['mall_id' => $this->mall_id], ['=', 'status', StatusEnum::ENABLED]]; $args['where'] = $where; $args['select'] = 'id,level,name'; $args['order'] = 'level asc'; $list['agent_level_list'] = AgentLevel::lists($args, true); foreach($list['agent_level_list'] as $agent_level){ if(in_array($agent_level['level'],$configs['agent_level_select'])){ $list['agent_level_select_list'][] = $agent_level; } } } $list['list'] = $configs; return $this->success('操作成功', $list); } else { $postData = \Yii::$app->request->post(); $group = $postData['group'] ?? ''; if (empty($group)) { return $this->error('参数错误'); } $rules = [ 'basic' => [ [['is_enable', 'is_self_buy', 'enable_goods_deduct', 'is_equal', 'is_contain_self', 'equal_settle_type', 'calculation_basis', 'is_equal_self', 'is_equal_prize_first', 'equal_prize_deep', 'over_level', 'team_prize_deep', 'compute_type', 'computing_method','team_achievement_compute_type', 'is_enable_skip_level'], 'required'], [['is_show_at_center','is_drainage_subsidy','is_team_subsidy','is_extra_equal_prize', 'is_enable_province','is_enable_recommend_award','enable_repurchase_reward','is_manage_prize','manage_prize_deep', 'is_find_equal_parent','find_a_level','alone_equal_settle_type','is_enable_diff_bonus','is_equal_by_upgrade','is_upgrade_to_agent','is_equal_computing_method','equal_computing_method','is_over_computing_method','over_computing_method', 'is_enable_skip_level', 'skip_level', 'equal_prize_type', 'is_enable_to_buyer_equal', 'skip_equal_level', 'is_enable_me_over_equal'], 'integer'], [['compute_delay_day'], 'integer', 'min' => 0, 'max' => 30], [['agent_level_select','agent_level_info','over_settle_type','over_calculation_basis','parent_diff_bonus','diff_bonus_area','diff_bonus_user'],'safe'] ], 'more' => [ [['is_enable_team_buy_detail', 'compute_type', 'is_check', 'is_apply',], 'integer'], [['protocol'],'string'] ], ]; $res = \Yii::$app->services->validate->validate($postData[$group], $rules[$group]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $postData['mall_id'] = $this->mall_id; \Yii::$app->services->setting->addons->set($this->mall_id, 'Agent', [$group => $postData[$group]]); return $this->success('操作成功'); } } return $this->render('setting'); } }