bztang-admin/plugins/team-dividend/src/admin/TeamDividendLevelSetControl...

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'));
}
}