From b187ffd5718987c96ffc59552505ee9fd978b7ca Mon Sep 17 00:00:00 2001
From: wuhui_zzw <1760308791@qq.com>
Date: Thu, 23 Nov 2023 15:41:24 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=88=86=E9=94=80?=
=?UTF-8?q?=E5=95=86=E7=AD=89=E7=BA=A7=E5=8C=BA=E5=88=86=E4=B8=BA=E6=99=AE?=
=?UTF-8?q?=E9=80=9A=E7=AD=89=E7=BA=A7=E5=92=8C=E6=96=87=E5=88=9B=E7=AD=89?=
=?UTF-8?q?=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../commission/src/admin/AgentController.php | 54 ++++---
plugins/commission/src/models/AgentLevel.php | 1 +
plugins/commission/src/models/Agents.php | 36 ++++-
.../src/services/UpgradeService.php | 144 ++++++++++--------
.../views/admin/agent_list.blade.php | 82 +++++-----
.../views/admin/level_info.blade.php | 15 ++
.../views/admin/level_list.blade.php | 52 ++++---
.../src/models/CulturalSpace.php | 3 +
8 files changed, 230 insertions(+), 157 deletions(-)
diff --git a/plugins/commission/src/admin/AgentController.php b/plugins/commission/src/admin/AgentController.php
index 4b5e9279..696bcd8c 100644
--- a/plugins/commission/src/admin/AgentController.php
+++ b/plugins/commission/src/admin/AgentController.php
@@ -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('修改成功');
}
diff --git a/plugins/commission/src/models/AgentLevel.php b/plugins/commission/src/models/AgentLevel.php
index 6e909f80..a2d3d9c7 100644
--- a/plugins/commission/src/models/AgentLevel.php
+++ b/plugins/commission/src/models/AgentLevel.php
@@ -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();
diff --git a/plugins/commission/src/models/Agents.php b/plugins/commission/src/models/Agents.php
index cdd631a8..96db60a6 100644
--- a/plugins/commission/src/models/Agents.php
+++ b/plugins/commission/src/models/Agents.php
@@ -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);
}
diff --git a/plugins/commission/src/services/UpgradeService.php b/plugins/commission/src/services/UpgradeService.php
index f399a519..675c3494 100644
--- a/plugins/commission/src/services/UpgradeService.php
+++ b/plugins/commission/src/services/UpgradeService.php
@@ -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);
}
}
\ No newline at end of file
diff --git a/plugins/commission/views/admin/agent_list.blade.php b/plugins/commission/views/admin/agent_list.blade.php
index 1f0d3390..c47d2f52 100644
--- a/plugins/commission/views/admin/agent_list.blade.php
+++ b/plugins/commission/views/admin/agent_list.blade.php
@@ -123,23 +123,23 @@
- | 会员ID |
- 推荐人 |
- 昵称 |
- 姓名手机 |
- 分销商等级下级分销商人数 |
- 累计佣金已打款佣金 |
- 关注 |
- 黑名单 |
- 操作 |
-
+ 会员ID |
+ 推荐人 |
+ 昵称 |
+ 姓名 手机 |
+ 分销商等级 文创等级 |
+ 下级分销商人数 |
+ 累计佣金 已打款佣金 |
+ 关注 |
+ 黑名单 |
+ 操作 |
@foreach($list as $row)
- | {{$row['member_id']}} |
-
+ | {{$row['member_id']}} |
+
@if($row->toParent)
@@ -149,51 +149,39 @@
@endif
|
-
+ |
{{$row->Member['nickname']}}
|
-
-
- {{$row->Member['realname']}}
-
- {{$row->Member['mobile']}}
+ |
+ {{$row->Member['realname'] ?? '/'}}
+
+ {{$row->Member['mobile'] ?? '/'}}
|
-
-
- |
-
@endforeach
@@ -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);
diff --git a/plugins/commission/views/admin/level_info.blade.php b/plugins/commission/views/admin/level_info.blade.php
index 18831b1f..01bc039d 100644
--- a/plugins/commission/views/admin/level_info.blade.php
+++ b/plugins/commission/views/admin/level_info.blade.php
@@ -23,6 +23,21 @@
+
+