model = new LevelModel(); } public function index() { if ($this->request->isAjax()) { $list = $this->model->order('level asc')->select(); $this->success('公司等级列表', null, $list); } return $this->view->fetch(); } public function add() { if ($this->request->isPost()) { $params = $this->request->post(); if (empty($params['name']) || empty($params['area_level'])) { $this->error('请填写等级名称和区域层级'); } if (empty($params['level'])) { $maxLevel = $this->model->max('level'); $params['level'] = intval($maxLevel) + 1; } if ($this->model->get($params['level'])) { $this->error('等级权重已存在'); } $params['commission_type'] = $params['commission_type'] ?? 'rate'; $params['commission_rate'] = floatval($params['commission_rate'] ?? 0); $params['commission_money'] = floatval($params['commission_money'] ?? 0); if ($params['commission_type'] === 'rate' && $params['commission_rate'] <= 0) { $this->error('请填写差价比例'); } if ($params['commission_type'] === 'money' && $params['commission_money'] <= 0) { $this->error('请填写固定差价金额'); } Db::startTrans(); try { $this->model->allowField(true)->save($params); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('添加成功'); } $existLevel = $this->model->column('level'); $this->assignconfig('existLevel', $existLevel); return $this->view->fetch(); } public function edit($level = null) { if (!$level) { $level = $this->request->get('level'); } $row = $this->model->get($level); if (!$row) { $this->error('等级不存在'); } if ($this->request->isPost()) { $params = $this->request->post(); $params['commission_type'] = $params['commission_type'] ?? 'rate'; $params['commission_rate'] = floatval($params['commission_rate'] ?? 0); $params['commission_money'] = floatval($params['commission_money'] ?? 0); if ($params['commission_type'] === 'rate' && $params['commission_rate'] <= 0) { $this->error('请填写差价比例'); } if ($params['commission_type'] === 'money' && $params['commission_money'] <= 0) { $this->error('请填写固定差价金额'); } Db::startTrans(); try { $row->allowField(true)->save($params); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('保存成功'); } $this->assignconfig('row', $row); return $this->view->fetch(); } public function del($ids = null) { $level = $this->model->get($ids); if (!$level) { $this->error('等级不存在'); } $used = \app\admin\model\shopro\regional_agent\Agent::where('level', $level['level'])->count(); if ($used > 0) { $this->error('该等级已有公司使用,无法删除'); } $level->delete(); $this->success('删除成功'); } }