160 lines
5.8 KiB
PHP
160 lines
5.8 KiB
PHP
<?php
|
|
|
|
|
|
namespace Yunshop\Commission\admin;
|
|
|
|
use app\common\facades\Setting;
|
|
use Illuminate\Http\Request;
|
|
use app\common\components\BaseController;
|
|
use Yunshop\Commission\models\AgentLevel;
|
|
use app\common\helpers\PaginationHelper;
|
|
use Yunshop\Commission\models\Agents;
|
|
use Yunshop\Commission\services\AgentLevelService;
|
|
use app\common\helpers\Url;
|
|
|
|
class LevelController extends BaseController
|
|
{
|
|
/**
|
|
* @return string
|
|
* @throws \Throwable
|
|
*/
|
|
public function index()
|
|
{
|
|
$set = Setting::get('plugin.commission');
|
|
$pageSize = 10;
|
|
$list = AgentLevel::getLevels()->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');
|
|
}
|
|
}
|
|
}
|