admin/plugins/team-dividend/src/admin/LevelController.php

105 lines
3.5 KiB
PHP

<?php
/**
* Author: 芸众商城 www.yunzshop.com
* Date: 2018/12/24
* Time: 4:55 PM
*/
namespace Yunshop\TeamDividend\admin;
use app\common\components\BaseController;
use app\common\models\Goods;
use Yunshop\TeamDividend\admin\models\LevelRedPack;
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
use Yunshop\TeamDividend\models\TeamDividendLevelUpgrade;
class LevelController extends BaseController
{
// plugin.team-dividend.admin.level.get-goods
public function getGoods()
{
$keyword = request()->keyword;
if (!$keyword) {
return $this->errorJson('关键词不能为空', []);
}
$goods = Goods::getGoodsByName($keyword);
if (!$goods->isEmpty()) {
$goods = set_medias($goods->toArray(), array('thumb', 'share_icon'));
}
return $this->successJson('成功', [
'goods' => $goods
]);
}
// plugin.team-dividend.admin.level.submite
public function submite()
{
$levelData = request()->data;
$level['uniacid'] = \YunShop::app()->uniacid;
$level['level_name'] = $levelData['level_name'] ?:'经销商等级';
$level['level_weight'] = intval($levelData['level_weight']);
$level['dividend_ratio'] = $levelData['dividend_ratio']?:'0';
$level['award_hierarchy'] = intval($levelData['award_hierarchy']);
$level['award_ratio'] = $levelData['award_ratio']?:'0';
$level['created_at'] = time();
$level['updated_at'] = time();
$level['upgrade_reward_point'] = $levelData['upgrade_reward_List']['upgrade_reward_point']?:'0';
$level['upgrade_reward_gold'] = $levelData['upgrade_reward_List']['upgrade_reward_gold']?:'0';
$level['award_gratitude'] = $levelData['upgrade_reward_List']['gratitude']?:'0';
$level['hierarchy_limit'] = intval($levelData['hierarchy_limit']);
$level['code_num'] = $levelData['code'];
// 等级基础设置
if (intval($levelData['id']) > 0) {
$levelModel = TeamDividendLevelModel::select()
->where('id', intval($levelData['id']))
->first();
$levelModel->fill($level);
$levelModel->save();
} else {
$levelModel = TeamDividendLevelModel::create($level);
}
// 红包设置
$this->saveRedpack($levelData['redpack'], $levelModel->id);
// 升级条件
$this->saveUpgrate($levelData, $levelModel->id);
return $this->successJson('提交成功', []);
}
private function saveUpgrate($data, $levelId)
{
$upgrate['uniacid'] = \YunShop::app()->uniacid;
$upgrate['dividend_id'] = $levelId;
$upgrate['parase'] = [
'upgrate_group' => $data['upgrate_group'],
'upgrate_only' =>$data['upgrate_only']
];
$upgrate['created_at'] = time();
$upgrate['updated_at'] = time();
$model = TeamDividendLevelUpgrade::select()->where('dividend_id', $levelId)->first();
if ($model) {
$model->delete();
}
TeamDividendLevelUpgrade::create($upgrate);
}
private function saveRedpack($data, $levelId)
{
$data['level_id'] = $levelId;
$data['is_open'] = intval($data['is_open']);
$data['award_ratio'] = intval($data['award_ratio']);
$data['date'] = [
intval($data['first_time']),
intval($data['second_time']),
intval($data['third_time'])
];
$data['uniacid'] = \YunShop::app()->uniacid;
LevelRedPack::store($data);
}
}