添加:分销商等级区分为普通等级和文创等级

This commit is contained in:
wuhui_zzw 2023-11-23 15:41:24 +08:00
parent 5caf09c315
commit b187ffd571
8 changed files with 230 additions and 157 deletions

View File

@ -33,23 +33,31 @@ class AgentController extends BaseController
$page = PaginationHelper::show($pageList->total(), $pageList->currentPage(), $pageList->perPage());
$agentLevels = AgentLevel::getLevels()->get();
$defaultLevelName = AgentLevel::getDefaultLevelName();
$level_list = AgentLevel::uniacid()->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray();
// 普通等级获取
$level_list = AgentLevel::uniacid()->where('level_type',0)->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray();
array_unshift($level_list, ['id' => 0, 'name' => $defaultLevelName]);
// 文创等级获取
$cultural_level = AgentLevel::uniacid()->where('level_type',1)->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray();
array_unshift($cultural_level, ['id' => 0, 'name' => $defaultLevelName]);
$pageList->each(function ($v) use ($level_list,$cultural_level) {
if (!in_array($v->agent_level_id, array_column($level_list, 'id'))) {
$v->agent_level_id = 0;
}
if (!in_array($v->cultural_level_id, array_column($cultural_level, 'id'))) {
$v->cultural_level_id = 0;
}
});
$passwordSet = Setting::getByGroup('pay_password') ?: [];
if(!$search['time']){
$search['time']['start'] = date("Y-m-d H:i:s",time());
$search['time']['end'] = date("Y-m-d H:i:s",time());
}
$pageList->each(function ($v) use ($level_list) {
if (!in_array($v->agent_level_id, array_column($level_list, 'id'))) {
$v->agent_level_id = 0;
}
});
$passwordSet = Setting::getByGroup('pay_password') ?: [];
return view('Yunshop\Commission::admin.agent_list', [
'level_list' => $level_list,
'cultural_level' => $cultural_level,
'set' => $set,
'list' => $agents,
'total' => $pageList->total(),
@ -65,19 +73,25 @@ class AgentController extends BaseController
])->render();
}
public function changeLevel()
{
if (!$agent = Agents::uniacid()->find(request()->id)) {
return $this->errorJson('分销商不存在');
}
public function changeLevel(){
$level_type = request()->input('level_type','default');
// 基本参数获取
if (!$agent = Agents::uniacid()->find(request()->id)) return $this->errorJson('分销商不存在');
$level_id = intval(request()->value) ? : 0;
if ($level_id && !$level = AgentLevel::uniacid()->find($level_id)){
return $this->errorJson('分销商等级不存在');
if ($level_id && !$level = AgentLevel::uniacid()->find($level_id)) return $this->errorJson('分销商等级不存在');
// 获取等级类型 判断修改的等级 等级类型0=普通等级1=文创等级
$levelType = (int)AgentLevel::uniacid()->where('id',$level_id)->value('level_type');
if($level_type == 'cultural'){
$before_level_id = $agent->cultural_level_id;
$agent->cultural_level_id = $level_id;
$agent->save();
}else{
$before_level_id = $agent->agent_level_id;
$agent->agent_level_id = $level_id;
$agent->save();
}
$before_level_id = $agent->agent_level_id;
$agent->agent_level_id = $level_id;
$agent->save();
Log::addLog($before_level_id, $agent->agent_level_id, $agent, '后台修改');
Log::addLog($before_level_id, $level_id, $agent, '后台修改');
return $this->successJson('修改成功');
}

View File

@ -97,6 +97,7 @@ class AgentLevel extends BaseModel
//'level' => 'required|unique:yz_agent_level',
'level' => ['required', Rule::unique($this->table)
->ignore($this->id)
->where('level_type', $this->level_type)
->where('uniacid', \YunShop::app()->uniacid)]
];
$arr += static::getOpenLevel();

View File

@ -37,7 +37,7 @@ class Agents extends BaseModel
/**
* @var array
*/
protected $appends = ['agent_level'];
protected $appends = ['agent_level','cultural_level'];
public $AgentLevel;
@ -97,6 +97,26 @@ class Agents extends BaseModel
return $this->AgentLevel;
}
public function getCulturalLevelAttribute()
{
$set = \Setting::get('plugin.commission');
if (!isset($this->CulturalLevel)) {
$this->CulturalLevel = AgentLevel::getAgentLevelByid($this->cultural_level_id);
if (!isset($this->CulturalLevel)) {
$this->CulturalLevel['name'] = AgentLevel::getDefaultLevelName();
if ($set['level'] >= 1) {
$this->CulturalLevel['first_level'] = $set['first_level'];
} elseif ($set['level'] >= 2) {
$this->CulturalLevel['second_level'] = $set['second_level'];
} elseif ($set['level'] >= 3) {
$this->CulturalLevel['third_level'] = $set['third_level'];
}
}
}
return $this->CulturalLevel;
}
/**
* @return mixed
@ -485,10 +505,16 @@ class Agents extends BaseModel
* @return mixed
* 修改分销商等级
*/
public static function updatedLevelByMemberId($levelId, $memberID)
{
return self::where('member_id', $memberID)
->update(['agent_level_id' => $levelId, 'updated_at' => time()]);
public static function updatedLevelByMemberId($levelId, $memberID){
//等级类型0=普通等级1=文创等级
$levelType = AgentLevel::uniacid()->where('id',$levelId)->value('level_type');
$update = [
'updated_at' => time()
];
if($levelType == 1) $update['cultural_level_id'] = $levelId;
else $update['agent_level_id'] = $levelId;
return self::where('member_id', $memberID)->update($update);
}

View File

@ -19,8 +19,8 @@ use Yunshop\Love\Common\Services\ConstService;
use Yunshop\Merchant\common\services\CenterUpgradeService;
use Yunshop\TeamDividend\admin\models\MemberChild;
class UpgradeService
{
class UpgradeService{
/**
* 订单升级入口
* @param int $memberId
@ -116,7 +116,7 @@ class UpgradeService
// \Log::debug('分销商升级 - 直推间推人数 - 升级条件:',$oneOrTwo);
// 循环所有上级 判断是否可以升级到当前等级
foreach($parentAgent as $parentUser){
if((int)$parentUser['agent_level']['level'] < (int)$levelItem['level']){
if(($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']) < (int)$levelItem['level']){
$oneLvAndTwoLvNum = MemberParent::getOneOrTwoList($parentUser['member_id']);
$subMemberIds = array_column($oneLvAndTwoLvNum,'member_id');
$hasNum = (int)\Yunshop\Commission\models\Log::uniacid()
@ -126,10 +126,10 @@ class UpgradeService
// 判断:是否达到升级要求 需求人数小于等于当前人数-达成升级条件
$people = (int)$oneOrTwo['one_or_two_people'] > 0 ? (int)$oneOrTwo['one_or_two_people'] : 1;
$isReach = (boolean)($people <= $hasNum);
$validateResult = static::validate($levelItem['level'], $parentUser['member_id']);
$validateResult = static::validate($levelItem, $parentUser['member_id']);
// \Log::debug('分销商升级 - 直推间推人数 - 升级:',[
// '当前分销商uid' => $parentUser['member_id'],
// '当前分销商等级权重' => $parentUser['agent_level']['level'],
// '当前分销商等级权重' => ($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']),
// '升级后等级权重' => (int)$levelItem['level'],
// '一二下级id' => implode(',',$subMemberIds),
// '拥有的人数' => $hasNum,
@ -139,7 +139,7 @@ class UpgradeService
// ]);
if($isReach && $validateResult) {
\Yunshop\Commission\models\Log::addLog(
$validateResult['agent_level_id'],
$levelItem['level_type'] == 1 ? $validateResult['cultural_level_id'] : $validateResult['agent_level_id'],
$levelItem['id'],
$validateResult,
"直推间推{$levelNameList[$oneOrTwo['one_or_two_level_id']]}{$people}"
@ -173,7 +173,7 @@ class UpgradeService
$parentMemberIds = array_column($parents,'parent_id');
$parentMemberIds[] = $memberId;
$parentAgent = Agents::uniacid()
->select(['member_id','agent_level_id','is_black'])
->select(['member_id','agent_level_id','cultural_level_id','is_black'])
->whereIn('member_id',$parentMemberIds)
->get()
->toArray();
@ -186,9 +186,13 @@ class UpgradeService
return $parentAgent;
}
// 升级条件判断 - 团队业绩满多少
/**
* Common: 升级条件判断 - 团队业绩满多少
* Author: wu-hui
* Time: 2023/11/23 14:07
* @param $memberId
* @param string $type
*/
public static function teamPerformance($memberId, $type = 'order_receive'){
try{
// 等级 升级条件
@ -200,6 +204,8 @@ class UpgradeService
// 获取全部上级
$parentAgent = self::getParentsCommission($memberId);
foreach($levels as $levelIndex => $levelItem){
// \Log::debug('分销商升级 - 团队业绩满多少 - 开始处理:',$levelItem);
$upgraded = $levelItem['upgraded'] ?? [];
$teamPerformance = $upgraded['team_performance'] ?? [];
// 判断:支付后 完成后 是否存在对应的设置
@ -207,7 +213,7 @@ class UpgradeService
// \Log::debug('分销商升级 - 团队业绩满多少 - 升级条件:',$teamPerformance);
// 循环所有上级 判断是否可以升级到当前等级
foreach($parentAgent as $parentUser){
if((int)$parentUser['agent_level']['level'] < (int)$levelItem['level']){
if(($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']) < (int)$levelItem['level']){
// 获取直推下级列表
$subIds = MemberChild::uniacid()
->where('level',1)
@ -225,10 +231,10 @@ class UpgradeService
if((int)$teamPerformance['team_performance_close_max'] == 1) $maxAmount = max($subPerformance);
$teamOrderPrice = (float)sprintf("%.2f",array_sum($subPerformance) - $maxAmount);
// 是否达到升级条件
$validateResult = static::validate($levelItem['level'], $parentUser['member_id']);
$validateResult = static::validate($levelItem, $parentUser['member_id']);
if($teamOrderPrice >= (float)$teamPerformance['team_performance_total'] && $validateResult) {
\Yunshop\Commission\models\Log::addLog(
$validateResult['agent_level_id'],
$levelItem['level_type'] == 1 ? $validateResult['cultural_level_id'] : $validateResult['agent_level_id'],
$levelItem['id'],
$validateResult,
"团队业绩满{$teamPerformance['team_performance_total']}"
@ -249,9 +255,9 @@ class UpgradeService
{
$isUpgrade = UpgrateConditionsService::teamBuySum($uid,$level_model,'', '');
if ($isUpgrade && $result = static::validate($level_model['level'], $uid)){
if ($isUpgrade && $result = static::validate($level_model, $uid)){
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level_model['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level_model['id'],
$result,
'[或]团队下级购买指定ID商品满[实际-' . $level_model . ']条件-[' . $level_model['upgraded']['team_buy_sum'] . ']'
@ -280,10 +286,10 @@ class UpgradeService
$sum += 1;
}
if ($sum >= $level_model['upgraded']['buy_and_sum']['sum']) {
$result = static::validate($level_model['level'], $uid);
$result = static::validate($level_model, $uid);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level_model['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level_model['id'],
$result,
'[或]分销订单金额[实际-' . $level_model . ']条件-[' . $level_model['upgraded']['buy_and_sum'] . ']'
@ -304,10 +310,10 @@ class UpgradeService
public static function orderMoney($sum_price, $level, $memberId)
{
if ($sum_price >= $level['upgraded']['order_money']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]分销订单金额[实际-' . $sum_price . ']条件-[' . $level['upgraded']['order_money'] . ']'
@ -327,10 +333,10 @@ class UpgradeService
public static function orderCount($count_id, $level, $memberId)
{
if ($count_id >= $level['upgraded']['order_count']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]分销订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['order_count'] . ']'
@ -351,10 +357,10 @@ class UpgradeService
}
$sum_price = $orderModel->where('status', '>=', $status)->sum("price");
if ($sum_price >= $level['upgraded']['self_buy_money']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]自购订单金额[实际-' . $sum_price . '条件-' . $level['upgraded']['self_buy_money'] . ']'
@ -392,11 +398,11 @@ class UpgradeService
if (bccomp($sum, $level['upgraded']['self_love'] ?: 0, 2) == -1) {
return;
}
if (!$result = static::validate($level['level'], $uid)) {
if (!$result = static::validate($level, $uid)) {
return;
}
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]累计获得自购赠送冻结爱心值满[实际-' . $sum . '条件-' . $level['upgraded']['self_love_after_black'] . ']'
@ -443,11 +449,11 @@ class UpgradeService
if (bccomp($sum, $level['upgraded']['self_love_after_black'] ?: 0, 2) == -1) {
return;
}
if (!$result = static::validate($level['level'], $uid)) {
if (!$result = static::validate($level, $uid)) {
return;
}
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]取消黑名单后累计获得自购赠送冻结爱心值满[实际-' . $sum . '条件-' . $level['upgraded']['self_love_after_black'] . ']'
@ -471,10 +477,10 @@ class UpgradeService
}
$count_id = $orderModel->where('status', '>=', $status)->count("id");
if ($count_id >= $level['upgraded']['self_buy_count']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]自购订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['self_buy_count'] . ']'
@ -496,10 +502,10 @@ class UpgradeService
\Log::debug("监听一级订单");
\Log::debug("监听upgraded", [$sum_price, $level['upgraded']['first_order_money']]);
if ($sum_price >= $level['upgraded']['first_order_money']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]一级分销订单金额[实际-' . $sum_price . '条件-' . $level['upgraded']['first_order_money'] . ']'
@ -519,10 +525,10 @@ class UpgradeService
public static function firstOrderCount($count_id, $level, $memberId)
{
if ($count_id >= $level['upgraded']['first_order_count']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]一级分销订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['first_order_count'] . ']'
@ -667,10 +673,10 @@ class UpgradeService
$count_member_id = $memberPraentData->count('member_id');
if ($count_member_id >= $level['upgraded']['lower_count']) {
$result = static::validate($level['level'], $member['member_id']);
$result = static::validate($level, $member['member_id']);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]下线人数[实际-' . $count_member_id . '条件-' . $level['upgraded']['lower_count'] . ']'
@ -695,10 +701,10 @@ class UpgradeService
$memberPraentData = YzMember::getLowerData($member['member_id'], '1')->get();
$count_member_id = $memberPraentData->count('member_id');
if ($count_member_id >= $level['upgraded']['first_lower_count']) {
$result = static::validate($level['level'], $member['member_id']);
$result = static::validate($level, $member['member_id']);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]一级下线人数[实际-' . $count_member_id . '条件-' . $level['upgraded']['first_lower_count'] . ']'
@ -749,10 +755,10 @@ class UpgradeService
$count_id = $agentPraentData->count('id');
if ($count_id >= $level['upgraded']['lower_agent_count']) {
$result = static::validate($level['level'], $member['member_id']);
$result = static::validate($level, $member['member_id']);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]下级分销人数[实际-' . $count_id . '条件-' . $level['upgraded']['lower_agent_count'] . ']'
@ -776,10 +782,10 @@ class UpgradeService
$count_id = $agentPraentData->count('id');
if ($count_id >= $level['upgraded']['first_lower_agent_count']) {
$result = static::validate($level['level'], $member['member_id']);
$result = static::validate($level, $member['member_id']);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]下级一级分销人数[实际-' . $count_id . '条件-' . $level['upgraded']['first_lower_agent_count'] . ']'
@ -811,10 +817,10 @@ class UpgradeService
foreach ($levels as $level) {
if (isset($level['upgraded']['settle_money'])) {
if ($agentModel->commission_total >= $level['upgraded']['settle_money']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]佣金[实际-' . $agentModel->commission_total . '条件-' . $level['upgraded']['settle_money'] . ']'
@ -847,10 +853,10 @@ class UpgradeService
foreach ($levels as $level) {
if (isset($level['upgraded']['goods'])) {
if ($goodsId == $level['upgraded']['goods']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]购买指定商品[实际-' . $goodsId . '条件-' . json_encode($level['upgraded']['goods'], true) . ']'
@ -884,10 +890,10 @@ class UpgradeService
if (isset($level['upgraded']['many_good'])) {
// if (empty(($level['upgraded']['self_order_after']))) {
if (in_array($goodsId, $level['upgraded']['many_good'])) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]购买指定商品之一[实际-' . $goodsId . '条件-' . json_encode(
@ -925,10 +931,10 @@ class UpgradeService
if (isset($level['upgraded']['goods'])) {
if ($level['upgraded']['self_order_after'] == 1) {
if ($goodsId == $level['upgraded']['goods']) {
$result = static::validate($level['level'], $memberId);
$result = static::validate($level, $memberId);
if ($result) {
\Yunshop\Commission\models\Log::addLog(
$result['agent_level_id'],
$level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'],
$level['id'],
$result,
'[或]购买指定商品付款后[实际-' . $goodsId . '条件-' . json_encode(
@ -946,17 +952,18 @@ class UpgradeService
return;
}
/**
* @return array
*/
public static function getLevelUpgraded()
{
$result = AgentLevel::getLevels()->orderBy('level', 'desc')->get();
// 获取等级信息
public static function getLevelUpgraded(){
$result = AgentLevel::getLevels()
->orderBy('level', 'desc')
->get();
$levelData = [];
foreach ($result as $key => $level) {
$levelData[$key] = [
'id' => $level['id'],
'level' => $level['level'],
'level_type' => $level['level_type'],
'name' => $level['name'],
'upgraded' => unserialize($level['upgraded']),
];
@ -975,15 +982,26 @@ class UpgradeService
if ($agentModel->agent_not_upgrade) {
return false;
}
$agentLevel = isset($agentModel->agentLevel['level']) ? $agentModel->agentLevel['level'] : 0;
if ($level <= $agentLevel) {
$levelWeight = isset($agentModel->agentLevel['level']) ? $agentModel->agentLevel['level'] : 0;
if((int)$level['level_type'] == 1 ) $levelWeight = isset($agentModel->culturalLevel['level']) ? $agentModel->culturalLevel['level'] : 0;
if ((int)$level['level'] <= $levelWeight) {
return false;
}
return $agentModel;
}
public static function upgrade($level, $memberId, $agent)
{
// \Log::debug("分销商升级 - 升级开始", [
// '新等级' => $level,
// '用户id' => $memberId,
// '旧普通等级' => $agent->agent_level_id,
// '旧文创等级' => $agent->cultural_level_id,
// ]);
$set = Setting::get('plugin.commission');
$newLevel = AgentLevel::getAgentLevelByid($level['id']);
if (!$newLevel) {
@ -991,13 +1009,13 @@ class UpgradeService
return;
}
$newLevel = $newLevel->toArray();
$oldLevel = AgentLevel::getAgentLevelByid($agent->agent_level_id);
$oldLevel = AgentLevel::getAgentLevelByid($level['level_type'] == 1 ? $agent->cultural_level_id : $agent->agent_level_id);
// 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级)
$hasNum = (int)\Yunshop\Commission\models\Log::uniacid()->where('after_level_id',$level['id'])->where('uid','!=',$memberId)->count(DB::raw('DISTINCT(uid)'));
if((int)$newLevel['number_limit'] <= $hasNum && (int)$newLevel['number_limit'] > 0) {
\Log::debug("分销商等级变更 - 人数限制判断", [
'next_lv_id' => $level['id'],
'current_lv_id' => $agent->agent_level_id,
'current_lv_id' => $level['level_type'] == 1 ? $agent->cultural_level_id : $agent->agent_level_id,
'next_lv_limit' => $newLevel['number_limit'],
'has_num' => $hasNum,
]);
@ -1067,6 +1085,8 @@ class UpgradeService
'settle_money' => '结算佣金总额满' . $data['settle_money'] . '元',
'self_love' => '累计获得自购赠送冻结' . (defined(LOVE_NAME) ? LOVE_NAME : '爱心值') . '满' . $data['self_love'],
'self_love_after_black' => '移出黑名单后累计获得自购赠送冻结' . (defined(LOVE_NAME) ? LOVE_NAME : '爱心值') . '满' . $data['self_love_after_black'],
'one_or_two' => "直推间推某个等级满{$data['one_or_two']['one_or_two_people']}",
'team_performance' => "团队业绩满{$data['team_performance']['team_performance_total']}" . ($data['team_performance']['team_performance_close_max'] == 1 ? ';去除最大的那条线' : ''),
];
$remark = '[与]';
@ -1075,6 +1095,10 @@ class UpgradeService
}
$remark = rtrim($remark, '~');
}
\Yunshop\Commission\models\Log::addLog($agentModel['agent_level_id'], $level['id'], $agentModel, $remark);
\Yunshop\Commission\models\Log::addLog(
$level['level_type'] == 1 ? $agentModel['cultural_level_id'] : $agentModel['agent_level_id'],
$level['id'],
$agentModel,
$remark);
}
}

View File

@ -123,23 +123,23 @@
<table class="table table-hover" style="overflow:visible;">
<thead>
<tr>
<th style='width:8%;'>会员ID</th>
<th style='width:15%;'>推荐人</th>
<th style='width:15%;'>昵称</th>
<th style='width:15%;'>姓名</br>手机</th>
<th style='width:10%;'>分销商等级</br>下级分销商人数</th>
<th style='width:9%;'>累计佣金</br>已打款佣金</th>
<th style='width:6%;'>关注</th>
<th style='width:5%;'>黑名单</th>
<th style='width:20%;'>操作</th>
<th style='text-align: center;width: 80px'>会员ID</th>
<th style='text-align: center;width: 120px'>推荐人</th>
<th style='text-align: center;width: 120px'>昵称</th>
<th style='text-align: center;width: 150px'>姓名<br />手机</th>
<th style='text-align: center;width: 150px'>分销商等级<br />文创等级</th>
<th style='text-align: center;width: 80px'>下级分销商人数</th>
<th style='text-align: center;width: 100px'>累计佣金<br />已打款佣金</th>
<th style='text-align: center;width: 80px'>关注</th>
<th style='text-align: center;width: 80px'>黑名单</th>
<th style='text-align: center;width: 80px'>操作</th>
</tr>
</thead>
<tbody>
@foreach($list as $row)
<tr>
<td>{{$row['member_id']}}</td>
<td>
<td style='text-align: center;'>{{$row['member_id']}}</td>
<td style='text-align: center;'>
@if($row->toParent)
<img src="{{tomedia($row->toParent['avatar'])}}"
style="width: 30px; height: 30px;border:1px solid #ccc;padding:1px;">
@ -149,51 +149,39 @@
<label class='label label-primary'>总店</label>
@endif
</td>
<td>
<td style='text-align: center;'>
<img src="{{tomedia($row->Member['avatar'])}}"
style="width: 30px; height: 30px;border:1px solid #ccc;padding:1px;">
</br>
{{$row->Member['nickname']}}
</td>
<td>
{{$row->Member['realname']}}
</br>
{{$row->Member['mobile']}}
<td style='text-align: center;'>
{{$row->Member['realname'] ?? '/'}}
<br />
{{$row->Member['mobile'] ?? '/'}}
</td>
<td>
<select class="form-control tpl-agent-level" name="level_id"
data-agencyid="{{$row['id']}}"
data-oldlevelid="{{$row['agent_level_id']}}">
<td style='text-align: center;'>
<select class="form-control tpl-agent-level" name="level_id" data-agencyid="{{$row['id']}}" data-oldlevelid="{{$row['agent_level_id']}}">
<option>请选择等级</option>
@foreach($level_list as $value)
<option value="{{$value['id']}}"
@if($row['agent_level_id']==$value['id'])
selected
@endif
>{{$value['name']}}</option>
<option value="{{$value['id']}}" @if($row['agent_level_id']==$value['id']) selected @endif>{{$value['name']}}</option>
@endforeach
</select>
<select class="form-control tpl-agent-level" name="level_id" data-agencyid="{{$row['id']}}" data-leveltype="cultural" data-oldlevelid="{{$row['cultural_level_id']}}" style="margin-top: 10px">
<option>请选择等级</option>
@foreach($cultural_level as $cultural_value)
<option value="{{$cultural_value['id']}}" @if($row['cultural_level_id']==$cultural_value['id']) selected @endif>{{$cultural_value['name']}}</option>
@endforeach
</select>
{{-- @if($row->agentLevel['name'] == '默认等级')--}}
{{-- {{$defaultlevelname}}--}}
{{-- @else--}}
{{-- {{$row->agentLevel['name']}}--}}
{{-- @endif--}}
</br>{{$row['lowers']}}
</td>
<td>
{{$row['commission_total']}}
</br>
{{$row['commission_pay']}}
</td>
<td>
@if($row['fans']['follow']) 已关注 @else 未关注 @endif
</td>
<td>
@if($row['is_black']) @else @endif
<td style='text-align: center;'>{{$row['lowers']}}</td>
<td style='text-align: center;'>
{{$row['commission_total'] ?? '0.00'}}
<br />
{{$row['commission_pay'] ?? '0.00'}}
</td>
<td style='text-align: center;'>@if($row['fans']['follow']) 已关注 @else 未关注 @endif</td>
<td style='text-align: center;'>@if($row['is_black']) @else @endif</td>
<td style="overflow:visible;">
<div class="btn-group btn-group-sm dropdown-box" data-type="1">
<a class="btn btn-default dropdown" data-expanded="1"
@ -253,7 +241,6 @@
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
@ -289,13 +276,14 @@
$('.tpl-agent-level').change(function () {
var agencyId = $(this).data('agencyid');
var leveltype = $(this).data('leveltype');
var levelId = $(this).val();
var old_level_id = $(this).data('oldlevelid');
if(confirm('确定要修改分销商等级吗') === true){
$.ajax({
url: "{!! yzWebUrl('plugin.commission.admin.agent.changeLevel') !!}",
type: "post",
data: {id: agencyId, value: levelId},
data: {id: agencyId, value: levelId, level_type: leveltype},
cache: false,
success: function ($data) {
// console.log($data);

View File

@ -23,6 +23,21 @@
</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">
<label class="radio-inline">
<input type="radio" name="level[level_type]" value="0" @if (empty($levelModel['level_type'])) checked @endif> 普通等级
</label>
<label class="radio-inline">
<input type="radio" name="level[level_type]" value="1" @if (1 == $levelModel['level_type']) checked @endif style="margin: 4px 0 0; position:inherit"> 文创等级
</label>
</div>
<span class="help-block">用户升级到普通等级会改变经销商等级不会改变文创等级,升级到文创等级则不会改变经销商等级只会改变文创等级</span>
</div>
</div>
<div class="form-group">
<label class="col-xs-12 col-sm-3 col-md-2 control-label"><span style='color:red'>*</span>等级名称</label>
<div class="col-sm-9 col-xs-12">

View File

@ -2,6 +2,11 @@
@section('content')
@section('title', trans('分销等级管理'))
<style>
.panel-body .label{
font-size: 14px!important;
}
</style>
<section class="content">
<div class="right-titpos">
<ul class="add-snav">
@ -16,33 +21,32 @@
<table class="table table-hover">
<thead>
<tr>
<th>等级权重</th>
<th>等级名称</th>
@if($set['level']>=1)
<th>一级比例</th> @endif
@if($set['level']>=2)
<th>二级比例</th> @endif
@if($set['level']>=3)
<th>三级比例</th> @endif
<th style="text-align: center;width: 80px!important;">等级权重</th>
<th style="text-align: center;width: 150px!important;">等级名称</th>
<th style="text-align: center;width: 150px!important;">等级类型</th>
@if($set['level']>=1)<th style="text-align: center;width: 120px!important;">一级比例</th> @endif
@if($set['level']>=2)<th style="text-align: center;width: 120px!important;">二级比例</th> @endif
@if($set['level']>=3)<th style="text-align: center;width: 120px!important;">三级比例</th> @endif
<th style="width: 210px;">升级条件</th>
<th>等级人数</th>
<th style="15%">操作</th>
<th style="text-align: center;width: 120px!important;">等级人数</th>
<th style="text-align: center;width: 200px!important;">操作</th>
</tr>
</thead>
<tbody>
@foreach($list as $row)
<tr>
<td>{{$row->level}}</td>
<td>{{$row->name}}</td>
@if($set['level']>=1)
<td>{{$row->first_level}}%</td>
@endif
@if($set['level']>=2)
<td>{{$row->second_level}}%</td>
@endif
@if($set['level']>=3)
<td>{{$row->third_level}}%</td>
@endif
<td style="text-align: center;">{{$row->level}}</td>
<td style="text-align: center;">{{$row->name}}</td>
<td style="text-align: center;">
@if($row->level_type == 1)
<span class="label label-warning">文创等级</span>
@else
<span class="label label-default">普通等级</span>
@endif
</td>
@if($set['level']>=1)<td style="text-align: center;">{{$row->first_level}}%</td>@endif
@if($set['level']>=2)<td style="text-align: center;">{{$row->second_level}}%</td>@endif
@if($set['level']>=3)<td style="text-align: center;">{{$row->third_level}}%</td>@endif
<td>
@if($row['upgrades'])
@foreach($row['upgrades'] as $type => $upgrade)
@ -59,10 +63,8 @@
无升级条件
@endif
</td>
<td>
{{$row->agent_count}}
</td>
<td>
<td style="text-align: center;">{{$row->agent_count}}</td>
<td style="text-align: center;">
<a class='btn btn-default' href="{{yzWebUrl("plugin.commission.admin.level.edit", ['id'=>$row['id']])}}">编辑</a>
<a class='btn btn-default' href="{{yzWebUrl("plugin.commission.admin.level.deleted", ['id'=>$row['id']])}}"
onclick="return confirm('确认删除此等级吗?');return false;">删除</a>

View File

@ -333,6 +333,8 @@ class CulturalSpace extends BaseModel
$teamAmount = $this->getTeamOrderAmount($uid);
// 获取加权收益
$weightIncome = ShareholderDividendModel::getIncome((int)$uid,(int)1)->sum('yz_member_income.amount');
// 分享奖励
$shareReward = 0;
// $isPartner = 0;
$list = [
@ -346,6 +348,7 @@ class CulturalSpace extends BaseModel
'team_performance' => ['key_name' => 'team_performance','title' => '团队总业绩','num' => $teamAmount['team_amount'],'sort' => 8],
'weight_income' => ['key_name' => 'weight_income','title' => '加权收益','num' => $weightIncome,'sort' => 9],
'shareholding_income' => ['key_name' => 'shareholding_income','title' => '股权收益','num' => 0,'sort' => 10],
'share_reward' => ['key_name' => 'shareholding_income','title' => '分享奖励','num' => $shareReward,'sort' => 11],
];
// 合伙人等级增加显示加权收益,不显示服务收益、贡献收益、贡献值分红
// if($isPartner) unset($list['service_income'],$list['contribution_income'],$list['contribution_bonus']);