297 lines
13 KiB
PHP
297 lines
13 KiB
PHP
<?php
|
|
|
|
|
|
namespace Yunshop\TeamDividend\admin;
|
|
|
|
use app\common\components\BaseController;
|
|
use app\common\helpers\PaginationHelper;
|
|
use app\common\models\Goods;
|
|
use Illuminate\Support\Str;
|
|
use Yunshop\TeamDividend\admin\models\LevelRedPack;
|
|
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
|
|
use Yunshop\TeamDividend\models\TeamDividendLevelUpgrade;
|
|
|
|
class TeamDividendLevelSetController extends BaseController
|
|
{
|
|
private $pageSize = 20;
|
|
|
|
public function index()
|
|
{
|
|
$list = TeamDividendLevelModel::getList()
|
|
->paginate($this->pageSize)
|
|
->toArray();
|
|
$pager = PaginationHelper::show($list['total'], $list['current_page'], $this->pageSize);
|
|
|
|
$sort_url = 'plugin.team-dividend.admin.team-dividend-level-set.displayorder';
|
|
$delete_msg = '确定要删除该等级吗';
|
|
return view('Yunshop\TeamDividend::admin.level-set', [
|
|
'list' => $list,
|
|
'pager' => $pager,
|
|
'total' => $list['total'],
|
|
'sort_url' => $sort_url,
|
|
'delete_msg' => $delete_msg
|
|
])->render();
|
|
}
|
|
|
|
public function add()
|
|
{
|
|
if (\Request::getMethod() == 'POST') {
|
|
$data = \YunShop::request()->dividend;
|
|
// dd(request()->all());
|
|
$data['upgrade_reward_gold'] = !empty($data['upgrade_reward_gold']) ? $data['upgrade_reward_gold'] : 0;
|
|
foreach ($data['code_num'] as $key => $code_num) {
|
|
if ($code_num) {
|
|
unset($data['has_dividend_rates'][$key]);
|
|
}
|
|
}
|
|
$data['code_num'] = !empty($data['code_num']) ? serialize($data['code_num']) : 0;
|
|
$data['award_hierarchy'] = !empty($data['award_hierarchy']) ? $data['award_hierarchy'] : 0;
|
|
$data['award_ratio'] = !empty($data['award_ratio']) ? $data['award_ratio'] : 0;
|
|
$data['award_gratitude'] = !empty($data['award_gratitude']) ? $data['award_gratitude'] : 0;
|
|
$data['hierarchy_limit'] = !empty($data['hierarchy_limit']) ? $data['hierarchy_limit'] : 0;
|
|
$data['auto_withdraw_day'] = !empty($data['auto_withdraw_day']) ? $data['auto_withdraw_day'] : 0;
|
|
$data['auto_withdraw_period'] = !empty($data['auto_withdraw_period']) ? $data['auto_withdraw_period'] : 0;
|
|
$data['uniacid'] = \YunShop::app()->uniacid;
|
|
|
|
$team_dividend_level_model = new TeamDividendLevelModel();
|
|
|
|
$team_dividend_level_model->fill($data);
|
|
|
|
$validator = $team_dividend_level_model->validator();
|
|
|
|
if ($validator->fails()) {
|
|
$this->error($validator->messages());
|
|
} else {
|
|
if ($team_dividend_level_model->save()) {
|
|
|
|
$redpack_data = request()->time;
|
|
$redpack_data['level_id'] = $team_dividend_level_model->id;
|
|
LevelRedPack::store($redpack_data);
|
|
|
|
$upgrade_type = \YunShop::request()->upgrade_type;
|
|
$upgrade_value = \YunShop::request()->upgrade_value;
|
|
|
|
$upgrade = [$upgrade_type, $upgrade_value];
|
|
|
|
$upgrade_modle = new TeamDividendLevelUpgrade();
|
|
$upgrade_modle->dividend_id = $team_dividend_level_model->id;
|
|
$upgrade_modle->uniacid = \YunShop::app()->uniacid;
|
|
$upgrade_modle->parase = serialize($upgrade);
|
|
|
|
$upgrade_modle->save();
|
|
|
|
return $this->message('经销商等级操作成功', yzWebUrl('plugin.team-dividend.admin.team-dividend-level-set'), 'success');
|
|
}
|
|
}
|
|
}
|
|
$enableSubscription = app('plugins')->isEnabled('subscription');
|
|
$isPluginGold = \YunShop::plugin()->get('love');//爱心值插件
|
|
$settingData = \Setting::get('plugin.team_dividend');
|
|
$goldSet = array_pluck(\Setting::getAllByGroup('Love')->toArray(), 'value', 'key');
|
|
$goldTitle = $goldSet['name'] ? $goldSet['name'] : '爱心值';
|
|
$level_list = TeamDividendLevelModel::getList()->get();
|
|
return view('Yunshop\TeamDividend::admin.level-set-add', [
|
|
'isPluginGold' => $isPluginGold,
|
|
'enableSubscription' => $enableSubscription,
|
|
'settingData' => $settingData,
|
|
'goldTitle' => $goldTitle,
|
|
'level_list' => $level_list,
|
|
'data' => json_encode([])
|
|
])->render();
|
|
}
|
|
|
|
/*public function edit()
|
|
{
|
|
$id = \YunShop::request()->id ? intval(\YunShop::request()->id) : 0;
|
|
|
|
if ($id == 0 || !is_int($id)) {
|
|
return $this->message('参数错误', '', 'error');
|
|
}
|
|
$dividend_model = TeamDividendLevelModel::getLevelById($id);
|
|
$redpackModel = LevelRedPack::select()->where('level_id', $id)->first();
|
|
$upgrateModel = TeamDividendLevelUpgrade::select()->where('dividend_id', $id)->first();
|
|
$data = [
|
|
'id' => $dividend_model->id,
|
|
'uniacid' => $dividend_model->uniacid,
|
|
'level_name' => $dividend_model->level_name,
|
|
'level_weight' => $dividend_model->level_weight,
|
|
'dividend_ratio' => $dividend_model->dividend_ratio,
|
|
'award_hierarchy' => $dividend_model->award_hierarchy,
|
|
'hierarchy_limit' => $dividend_model->hierarchy_limit,
|
|
'upgrade_reward_List' => [
|
|
'gratitude' => $dividend_model->award_gratitude,
|
|
'peers_hierarchy' => $dividend_model->award_hierarchy,
|
|
'peers_ratio' => $dividend_model->award_ratio,
|
|
'upgrade_reward_gold' => $dividend_model->upgrade_reward_gold,
|
|
'upgrade_reward_point' => $dividend_model->upgrade_reward_point
|
|
],
|
|
'code' => $dividend_model->code_num,
|
|
'redpack' => [
|
|
'award_ratio' => $redpackModel->award_ratio,
|
|
'first_time' => $redpackModel->first_time,
|
|
'is_open' => $redpackModel->is_open,
|
|
'second_time' => $redpackModel->second_time,
|
|
'third_time' => $redpackModel->third_time
|
|
]
|
|
];
|
|
if ($upgrateModel) {
|
|
$upgrateModel = $upgrateModel->toArray();
|
|
$data['upgrate_group'] = $upgrateModel['parase']['upgrate_group'];
|
|
$data['upgrate_only'] = $upgrateModel['parase']['upgrate_only'];
|
|
if ($data['upgrate_only']) {
|
|
foreach ($data['upgrate_only'] as $datum) {
|
|
if ($datum['type'] == 'buy_specified_goods') {
|
|
$goods = Goods::select(['id', 'thumb', 'title'])
|
|
->where('id', $datum['value'])
|
|
->first();
|
|
if ($goods) {
|
|
$goods = $goods->toArray();
|
|
$goods['thumb'] = yz_tomedia($goods['thumb']);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return view('Yunshop\TeamDividend::admin.level-set-add', [
|
|
'data' => json_encode($data),
|
|
'goods' => json_encode($goods)
|
|
])->render();
|
|
}*/
|
|
|
|
public function edit()
|
|
{
|
|
$id = \YunShop::request()->id ? intval(\YunShop::request()->id) : 0;
|
|
|
|
if ($id == 0 || !is_int($id)) {
|
|
return $this->message('参数错误', '', 'error');
|
|
}
|
|
|
|
$dividend_model = TeamDividendLevelModel::getLevelById($id);
|
|
$upgrade_modle = TeamDividendLevelUpgrade::getUpgradeByDividendId($id);
|
|
$level_list = TeamDividendLevelModel::getList()->get();
|
|
$dividend_model->code_num = unserialize($dividend_model->code_num);
|
|
|
|
$parase = unserialize($upgrade_modle->parase);
|
|
$upgrade_data = Goods::getGoodsById($parase[1]['goods']);
|
|
$goods = is_array($parase[1]['many_good']) ? Goods::getGoodsByIds($parase[1]['many_good']):[];
|
|
if ($upgrade_data) {
|
|
$upgrade_data->thumb = yz_tomedia($upgrade_data->thumb);
|
|
}
|
|
if ($goods) {
|
|
$goods->each(function ($v) {
|
|
$v->thumb = yz_tomedia($v->thumb);
|
|
});
|
|
}
|
|
|
|
|
|
if (\Request::getMethod() == 'POST') {
|
|
$data = \YunShop::request()->dividend;
|
|
$data['upgrade_reward_gold'] = !empty($data['upgrade_reward_gold'])?$data['upgrade_reward_gold']:0;
|
|
foreach ($data['code_num'] as $key => $code_num) {
|
|
if ($code_num) {
|
|
unset($data['has_dividend_rates'][$key]);
|
|
}
|
|
}
|
|
$data['code_num'] = !empty($data['code_num']) ? serialize($data['code_num']) : 0;
|
|
$data['award_hierarchy'] = !empty($data['award_hierarchy']) ? $data['award_hierarchy'] : 0;
|
|
$data['award_ratio'] = !empty($data['award_ratio']) ? $data['award_ratio'] : 0;
|
|
$data['award_gratitude'] = !empty($data['award_gratitude']) ? $data['award_gratitude'] : 0;
|
|
$data['hierarchy_limit'] = !empty($data['hierarchy_limit']) ? $data['hierarchy_limit'] : 0;
|
|
$data['auto_withdraw_day'] = !empty($data['auto_withdraw_day']) ? $data['auto_withdraw_day'] : '';
|
|
$data['auto_withdraw_period'] = !empty($data['auto_withdraw_period']) ? $data['auto_withdraw_period'] : '';
|
|
$data['number_limit'] = !empty($data['number_limit']) ? $data['number_limit'] : 0;
|
|
$dividend_model->fill($data);
|
|
$validator = $dividend_model->validator();
|
|
|
|
if ($validator->fails()) {
|
|
$this->error($validator->messages());
|
|
} else {
|
|
if ($dividend_model->save()) {
|
|
|
|
$redpack_data = request()->time;
|
|
$redpack_data['level_id'] = $id;
|
|
LevelRedPack::edit($redpack_data);
|
|
|
|
//升级条件
|
|
if ($upgrade_modle) {
|
|
|
|
$upgrade_type = \YunShop::request()->upgrade_type;
|
|
$upgrade_value = \YunShop::request()->upgrade_value;
|
|
|
|
$upgrade = [$upgrade_type, $upgrade_value];
|
|
|
|
$upgrade_modle->parase = serialize($upgrade);
|
|
|
|
|
|
$upgrade_modle->save();
|
|
}else{
|
|
$upgrade_modle = new TeamDividendLevelUpgrade();
|
|
$upgrade_modle->dividend_id = $id;
|
|
$upgrade_modle->uniacid = \YunShop::app()->uniacid;
|
|
$upgrade_type = \YunShop::request()->upgrade_type;
|
|
$upgrade_value = \YunShop::request()->upgrade_value;
|
|
$upgrade = [$upgrade_type, $upgrade_value];
|
|
$upgrade_modle->parase = serialize($upgrade);
|
|
$upgrade_modle->save();
|
|
}
|
|
|
|
return $this->message('经销商等级操作成功', yzWebUrl('plugin.team-dividend.admin.team-dividend-level-set'), 'success');
|
|
}
|
|
}
|
|
}
|
|
$isPluginGold = \YunShop::plugin()->get('love');//爱心值插件
|
|
$enableSubscription = app('plugins')->isEnabled('subscription');
|
|
$goldSet = array_pluck(\Setting::getAllByGroup('Love')->toArray(), 'value', 'key');
|
|
$goldTitle = $goldSet['name'] ? $goldSet['name'] : '爱心值';
|
|
$settingData = \Setting::get('plugin.team_dividend');
|
|
return view('Yunshop\TeamDividend::admin.level-set-add', [
|
|
'dividend' => $dividend_model,
|
|
'code_num' => $dividend_model->code_num,
|
|
'upgrade_type' => $parase[0],
|
|
'upgrade_value' => $parase[1],
|
|
'upgrade_data' => $upgrade_data,
|
|
'level_list' => $level_list,
|
|
'level_set' => 1,
|
|
'isPluginGold' => $isPluginGold,
|
|
'enableSubscription' => $enableSubscription,
|
|
'goldTitle' => $goldTitle,
|
|
'settingData' => $settingData,
|
|
'goods' => $goods,
|
|
])->render();
|
|
}
|
|
|
|
public function deleted()
|
|
{
|
|
$id = \YunShop::request()->id ? intval(\YunShop::request()->id) : 0;
|
|
|
|
if ($id == 0 || !is_int($id)) {
|
|
return $this->message('参数错误', '', 'error');
|
|
}
|
|
|
|
$level = TeamDividendLevelModel::getLevelById($id);
|
|
|
|
if (empty($level)) {
|
|
return $this->message('经销商等级不存在', '', 'error');
|
|
}
|
|
|
|
if (TeamDividendLevelModel::deletedLevle(\YunShop::request()->id)) {
|
|
return $this->message('经销商等级删除成功', yzWebUrl('plugin.team-dividend.admin.team-dividend-level-set.index'));
|
|
} else {
|
|
return $this->message('经销商等级删除失败', yzWebUrl('plugin.team-dividend.admin.team-dividend-level-set.index'), 'error');
|
|
}
|
|
}
|
|
|
|
public function displayorder()
|
|
{
|
|
$displayOrders = \YunShop::request()->display_order;
|
|
|
|
foreach($displayOrders as $id => $displayOrder){
|
|
$dividend_model = TeamDividendLevelModel::find($id);
|
|
$dividend_model->level_weight = $displayOrder? $displayOrder : 1;
|
|
|
|
$dividend_model->save();
|
|
}
|
|
return $this->message('等级权重排序成功', yzWebUrl('plugin.team-dividend.admin.team-dividend-level-set.index'));
|
|
}
|
|
} |