withCount(['agent'=>function($a){ $a->join('yz_member', 'yz_agents.member_id', 'yz_member.member_id') ->whereNull('yz_member.deleted_at'); }])->orderBy('level', 'desc')->paginate($pageSize); $pager = PaginationHelper::show($list->total(), $list->currentPage(), $list->perPage()); return view('Yunshop\Commission::admin.level_list', [ 'set' => $set, 'list' => AgentLevelService::setUpgrades($list->items()), 'pager' => $pager ])->render(); } public function add() { $set = Setting::get('plugin.commission'); $LevelModel = new AgentLevel(); $requestLevel = \YunShop::request()->level; if ($requestLevel) { $requestLevel->first_level = floatval($requestLevel->first_level) ? : 0; $requestLevel->second_level = floatval($requestLevel->second_level) ? : 0; $requestLevel->additional_ratio = floatval($requestLevel->additional_ratio) ? : 0; //将数据赋值到model $LevelModel->setRawAttributes($requestLevel); //其他字段赋值 $LevelModel->uniacid = \YunShop::app()->uniacid; $upgrades = AgentLevelService::addUpgrades(\YunShop::request()->upgrade_type, \YunShop::request()->upgrade_value); $LevelModel->upgraded = $upgrades; if($requestLevel['level']==0){ return $this->message('等级权重不可为0为空','','fail'); } $validator = $LevelModel->validator(); if ($validator->fails()) {//检测失败 return $this->errorLink($validator); } else { //数据保存 if ($LevelModel->save()) { //显示信息并跳转 return $this->message('分销商等级创建成功', Url::absoluteWeb('plugin.commission.admin.level.index')); } else { return $this->message('分销商等级创建失败', '','fail'); } } } $upgrade_data = AgentLevelService::setUpgradedata(); $upgrade_config = AgentLevelService::upgradeConfig(); return view('Yunshop\Commission::admin.level_info', [ 'set' => $set, 'upgrade_data' => $upgrade_data, 'upgrade_config' => $upgrade_config, 'levelModel' => $LevelModel, 'level_list' => AgentLevel::uniacid()->select(['id','name'])->get()->toArray() ])->render(); } public function edit() { $set = Setting::get('plugin.commission'); $id = intval(\YunShop::request()->id); $LevelModel = AgentLevel::getAgentLevelByid($id); if (!$LevelModel) { return $this->message('无此记录或已被删除', '', 'fail'); } $requestLevel = \YunShop::request()->level; if ($requestLevel) { //将数据赋值到model $LevelModel->fill($requestLevel); $upgrades = AgentLevelService::addUpgrades(\YunShop::request()->upgrade_type, \YunShop::request()->upgrade_value); $LevelModel->upgraded = $upgrades; //字段检测 if($requestLevel['level']==0){ return $this->message('等级权重不可为0'); } $validator = $LevelModel->validator(); if ($validator->fails()) {//检测失败 return $this->errorLink($validator); } else { //数据保存 if ($LevelModel->save()) { //显示信息并跳转 return $this->message('分销商等级编辑成功', Url::absoluteWeb('plugin.commission.admin.level.index')); } else { $this->error('分销商等级编辑失败'); } } } $upgrade_data = AgentLevelService::setUpgradedata($LevelModel->upgraded); $upgrade_config = AgentLevelService::upgradeConfig(); return view('Yunshop\Commission::admin.level_info', [ 'set' => $set, 'upgrade_data' => $upgrade_data, 'upgrade_config' => $upgrade_config, 'levelModel' => $LevelModel, 'level_list' => AgentLevel::uniacid()->select(['id','name'])->get()->toArray() ])->render(); } private function errorLink($validator) { $msg = []; if ($message = $validator->messages()->getMessages()) { foreach ($message as $v) { foreach ($v as $vv) { $msg[] = $vv; } } } $msg = $msg ? implode('|', $msg) : $validator->messages(); return $this->message($msg, '', 'fail'); } public function deleted() { $id = intval(\YunShop::request()->id); $LevelModel = AgentLevel::getAgentLevelByid($id); if (!$LevelModel) { return $this->message('无此记录或已被删除', '', 'error'); } $result = AgentLevel::daletedLevel($id); if ($result) { return $this->message('删除分销商等级成功', Url::absoluteWeb('plugin.commission.admin.level.index')); } else { return $this->message('删除销商等级失败', '', 'error'); } } }