文件
xionggeshop/application/admin/controller/shopro/regional_agent/Level.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('删除成功');
}
}