117 行
3.9 KiB
PHP
117 行
3.9 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller\shopro\regional_agent;
|
|
|
|
use app\admin\controller\shopro\Base;
|
|
use app\admin\model\shopro\regional_agent\Level as LevelModel;
|
|
use think\Db;
|
|
use Exception;
|
|
|
|
class Level extends Base
|
|
{
|
|
protected $model = null;
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
$this->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('删除成功');
|
|
}
|
|
}
|