添加:经销商添加人数限制,每个等级单独设置

This commit is contained in:
wuhui_zzw 2023-10-11 14:13:59 +08:00
parent 54e1ba3dc9
commit cd9a571d4d
5 changed files with 43 additions and 23 deletions

View File

@ -200,6 +200,7 @@ class TeamDividendLevelSetController extends BaseController
$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();

View File

@ -116,40 +116,39 @@ class NewUpgrateJob implements ShouldQueue
// 默认可以升级
$upgradeRet = false;
foreach ($upgradeLevels as $level) {
// \Log::debug('经销商升级 - 当前等级信息:',$level->toArray());
// 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级)
$hasNum = (int)TeamDividendAgencyModel::uniacid()->count();
// \Log::debug('经销商升级 - 数量限制比较:',[$hasNum,(int)$level->number_limit]);
if((int)$level->number_limit <= $hasNum && (int)$level->number_limit > 0) continue;
//dump($level->level_name);
// 没有升级条件
if (!$level->hasOneUpgradeSet || !$level->hasOneUpgradeSet->parase) {
continue;
}
// 升级条件
$parase = unserialize($level->hasOneUpgradeSet->parase);
// 升级后的等级设置
$afterLevelSetting = $level->toArray();
$afterLevelSetting['has_one_upgrade_set']['parase'] = unserialize($afterLevelSetting['has_one_upgrade_set']['parase']);
$this->uplogService->setAfterLevelSetting($afterLevelSetting);
// 升级后的等级id
$this->uplogService->setAfterLevelId($level['id']);
// 记录
//$logModel->level_ups = $parase[0];
// 升级条件 组
$upgradeGroup = $parase[0]['group'];
if ($this->order) {
if ($parase[0]['become'] != $this->order_status) {
continue;
}
}
if ($parase[0]['become'] == TeamDividendLevelUpgrade::ORDER_PAY) {
$order_status = Order::WAIT_SEND;
} else {
$order_status = Order::COMPLETE;
}
if ($upgradeGroup) {
// 升级条件编号
$upgradeGroupSerialNumber = TeamDividendLevelUpgrade::getUpgradeIsSerialNumber();

View File

@ -17,13 +17,14 @@ class TeamDividendLevelModel extends BackendModel
protected $guarded = [''];
public $attributes = [
'upgrade_reward_point' => 0,
'upgrade_reward_gold' => 0,
'code_num' => 0,
'award_hierarchy' => 0,
'award_ratio' => 0,
'award_gratitude' => 0,
'auto_withdraw_day' => 0,
'upgrade_reward_gold' => 0,
'code_num' => 0,
'award_hierarchy' => 0,
'award_ratio' => 0,
'award_gratitude' => 0,
'auto_withdraw_day' => 0,
'auto_withdraw_period' => 0,
'number_limit' => 0,
];
/**

View File

@ -9,11 +9,11 @@ use Illuminate\Database\Eloquent\Model;
use Yunshop\CollectionRoom\models\CollectionRoomModel;
use Yunshop\TeamDividend\events\LevelChangeEvent;
use Yunshop\TeamDividend\models\TeamDividendAgencyModel;
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
class DealerObserver extends BaseObserver
{
// 添加后
public function created(Model $model){
\Log::debug('新增经销商 - created - 用户uid',$model->toArray());
if((int)$model->uid > 0){
@ -23,21 +23,29 @@ class DealerObserver extends BaseObserver
}
public function updating(Model $model)
{
/**
* @var TeamDividendAgencyModel $model
*/
// 修改前
public function updating(Model $model){
if ($model->getOriginal('level') != $model->level) {
/**
* @var TeamDividendAgencyModel $model
*/
event(new LevelChangeEvent($model));
// 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级)
$hasNum = (int)TeamDividendAgencyModel::uniacid()->count();
$levelNumberLimit = (int)TeamDividendLevelModel::uniacid()->where('id',$model->level)->value('number_limit');
if((int)$levelNumberLimit <= $hasNum && (int)$levelNumberLimit > 0) return false;
}
}
public function creating(Model $model)
{
// 添加前
public function creating(Model $model){
/**
* @var TeamDividendAgencyModel $model
*/
event(new LevelChangeEvent($model));
// 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级)
$hasNum = (int)TeamDividendAgencyModel::uniacid()->count();
$levelNumberLimit = (int)TeamDividendLevelModel::uniacid()->where('id',$model->level)->value('number_limit');
if((int)$levelNumberLimit <= $hasNum && (int)$levelNumberLimit > 0) return false;
}
}

View File

@ -44,6 +44,17 @@
</div>
</div>
<div class="form-group">
<label class="col-xs-12 col-sm-3 col-md-2 control-label">等级人数限制</label>
<div class="col-sm-6 col-xs-6">
<div class='input-group col-xs-4'>
<input type='text' name='dividend[number_limit]' class="form-control discounts_value" value="{{$dividend->number_limit?$dividend->number_limit:0}}"/>
<div class='input-group-addon waytxt'></div>
</div>
<span class="help-block">当前等级总人数达到指定数量后其他人则不能升级到当前等级。为空或者0则不限制人数</span>
</div>
</div>
<div class="form-group">
<label class="col-xs-12 col-sm-3 col-md-2 control-label">提成比例</label>
<div class="col-sm-6 col-xs-6">