修改:经销商升级赠送权重值
This commit is contained in:
parent
0cd0069f0f
commit
eaea295d6c
|
|
@ -428,6 +428,10 @@ class NewUpgrateJob implements ShouldQueue
|
|||
];
|
||||
(new LoveChangeService())->teamLevelAward($data);
|
||||
}
|
||||
// 升级赠送权重值
|
||||
(new WeightValue())->upgradeGiveInit($uid,(int)$level->id);
|
||||
// 升级赠送画
|
||||
// CollectionRoomModel::addInfo($member->uid);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -506,7 +510,5 @@ class NewUpgrateJob implements ShouldQueue
|
|||
'relation' => $member->yzMember->relation,
|
||||
'upgrade_at' => time(),
|
||||
]);
|
||||
// 会员升级经销商 赠送一幅画
|
||||
CollectionRoomModel::addInfo($member->uid);
|
||||
}
|
||||
}
|
||||
|
|
@ -10,19 +10,9 @@ use Yunshop\CollectionRoom\models\CollectionRoomModel;
|
|||
use Yunshop\TeamDividend\events\LevelChangeEvent;
|
||||
use Yunshop\TeamDividend\models\TeamDividendAgencyModel;
|
||||
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
|
||||
use Yunshop\WeightValue\models\WeightValue;
|
||||
|
||||
class DealerObserver extends BaseObserver
|
||||
{
|
||||
// 添加后
|
||||
public function created(Model $model){
|
||||
\Log::debug('新增经销商 - created - 用户uid:',$model->toArray());
|
||||
if((int)$model->uid > 0){
|
||||
// 会员升级经销商 赠送一幅画
|
||||
CollectionRoomModel::addInfo((int)$model->uid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class DealerObserver extends BaseObserver{
|
||||
// 修改前
|
||||
public function updating(Model $model){
|
||||
if ($model->getOriginal('level') != $model->level) {
|
||||
|
|
@ -48,4 +38,26 @@ class DealerObserver extends BaseObserver
|
|||
if((int)$levelNumberLimit <= $hasNum && (int)$levelNumberLimit > 0) return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 保存后 添加|编辑
|
||||
public function saved(Model $model){
|
||||
\Log::debug('经销商信息保存 - 保存成功后:',['old_lv'=>$model->getOriginal('level'),'lv'=>$model->level]);
|
||||
// 经销商等级变更
|
||||
if((int)$model->uid > 0 && (int)$model->getOriginal('level') != (int)$model->level){
|
||||
// 经销商升级赠送权重值处理
|
||||
(new WeightValue())->upgradeGiveInit($model->uid,(int)$model->level);
|
||||
|
||||
|
||||
|
||||
// 会员升级经销商 赠送一幅画
|
||||
// CollectionRoomModel::addInfo((int)$model->uid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,13 @@ class IndexController extends BaseController{
|
|||
|
||||
return view('Yunshop\WeightValue::index.index',$data)->render();
|
||||
}
|
||||
// 查看变更记录
|
||||
/**
|
||||
* Common: 查看变更记录
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/16 17:48
|
||||
* @return array|\Illuminate\Http\JsonResponse|string
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function changeRecord(){
|
||||
// 参数获取
|
||||
$memberId = (int)request()->input('member_id');
|
||||
|
|
@ -72,11 +78,17 @@ class IndexController extends BaseController{
|
|||
|
||||
|
||||
|
||||
public function test(){
|
||||
// (new WeightValue())->upgradeGiveInit(1,1);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class WeightValue extends BaseModel{
|
|||
// 当前订单全部商品
|
||||
$goodsList = $this->getGoodsList($model->id);
|
||||
// 获取当前用户及上级信息
|
||||
$agents = $this->getParent($model->uid);// 全部上级信息(包含购买人)
|
||||
$agents = $this->getParent($model->uid);
|
||||
// 循环处理每个商品
|
||||
$changeRecord = [];// 变更记录
|
||||
foreach($goodsList as $goodsInfo){
|
||||
|
|
@ -203,6 +203,83 @@ class WeightValue extends BaseModel{
|
|||
return (float)0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Common: 经销商升级赠送权重值 - 开始处理
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/16 18:24
|
||||
* @param $uid
|
||||
* @param $levelId
|
||||
*/
|
||||
public function upgradeGiveInit($uid,$levelId){
|
||||
\Log::debug('------经销商升级赠送权重值 - 开始处理------',['uid'=>$uid,'level_id'=>$levelId]);
|
||||
$parents = $this->getParent($uid);// 获取当前用户及上级信息
|
||||
$levelWvSet = $this->getLevelWeightValue($levelId);// 等级赠送设置信息
|
||||
if(!$levelWvSet){
|
||||
\Log::debug('------经销商升级赠送权重值 - 错误 - 当前等级不存在设置信息------',$levelId);
|
||||
return;
|
||||
}
|
||||
$changeRecord = [];// 变更记录
|
||||
// 判断:赠送等级为二级时,删除第三个用户 赠送等级:0=二级,1=三级
|
||||
if($levelWvSet['lv_type'] == 1 && count($parents) >= 3) unset($parents[2]);
|
||||
// 获取:当前需要操作的所有经销商的领取记录 是否已经领取升级赠送的权重值
|
||||
$parentUidS = array_column($parents,'uid');
|
||||
$getRecord = WeightValueLog::uniacid()
|
||||
->whereIn('member_id',$parentUidS)
|
||||
->where('source',1)
|
||||
->where('team_dividend_agency_level_id',$levelId)
|
||||
->pluck('member_id');
|
||||
$getRecord = $getRecord ? $getRecord->toArray() : [];// 已领取记录列表
|
||||
// 循环上级信息 处理每一个用户
|
||||
foreach($parents as $agentKey => $agentInfo){
|
||||
// 判断:当前用户是否已经领取 已领取不可重复领取
|
||||
if(in_array($agentInfo['uid'],$getRecord)) continue;
|
||||
// 用户当前持有的权重值
|
||||
$currentAgentHasWeightValue = (float)$parents[$agentKey]['weight_value']['quantity'] ?? 0;
|
||||
// 获取当前用户应得的权重值
|
||||
$weightValue = (float)sprintf("%.2f",$this->getWeightValue($levelWvSet,$agentInfo));
|
||||
// 应得权重值大于0 记录改变信息并且修改持有权重值
|
||||
if((float)$weightValue > 0){
|
||||
$changeAfter = sprintf("%.2f",($currentAgentHasWeightValue + $weightValue));
|
||||
$changeRecord[] = [
|
||||
'uniacid' => \YunShop::app()->uniacid,
|
||||
'member_id' => $agentInfo['uid'],// 用户id
|
||||
'team_dividend_agency_level_id' => $agentInfo['team_dividend_agency_level_id'],// 经销商等级id
|
||||
'change_type' => 1,// 变更类型:0=减少,1=增加
|
||||
'change_quantity' => $weightValue,// 变更数量
|
||||
'change_front' => (float)$currentAgentHasWeightValue,// 变更前拥有的数量
|
||||
'change_after' => $changeAfter,// 变更后拥有的数量
|
||||
'remark' => "经销商升级赠送",// 备注
|
||||
'created_at' => time(),// 变更时间
|
||||
'source' => 1
|
||||
];
|
||||
$parents[$agentKey]['weight_value']['quantity'] = $changeAfter;
|
||||
}
|
||||
}
|
||||
// 修改用户权重值变更信息 | 处理权重值变更记录
|
||||
if($changeRecord){
|
||||
$updateWeightValueList = array_column($parents,'weight_value');
|
||||
self::updateInfo($updateWeightValueList);
|
||||
WeightValueLog::insert($changeRecord);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Common: 经销商升级赠送权重值 - 获取对应等级的设置
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/16 17:57
|
||||
* @param $levelId
|
||||
* @return array
|
||||
*/
|
||||
private function getLevelWeightValue($levelId){
|
||||
$first = GoodsWeightValue::uniacid()
|
||||
->where('team_dividend_level_id',$levelId)
|
||||
->select(['is_open','gift_type','lv_type','quantity','ladder'])
|
||||
->first();
|
||||
|
||||
return $first ? $first->toArray() : [];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue