添加:分销商等级区分为普通等级和文创等级
This commit is contained in:
parent
5caf09c315
commit
b187ffd571
|
|
@ -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('修改成功');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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']);
|
||||
|
|
|
|||
Loading…
Reference in New Issue