添加:升级经销商可以获得赠送名额,赠送后指定用户可以升级到对应的经销商等级
This commit is contained in:
parent
83e48188ef
commit
3c0efc948e
|
|
@ -142,6 +142,15 @@ class TeamAgencyController extends BaseController
|
|||
// $agency_model->relation = $agentData['relation'];
|
||||
|
||||
if ($agency_model->save()) {
|
||||
|
||||
// 升级后等级
|
||||
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agentData['level']);
|
||||
// 升级前等级
|
||||
$o_level = NULL;
|
||||
// 升级日志
|
||||
Uplog::addLog($agency_model, $o_level, $c_level);
|
||||
|
||||
|
||||
//签合同
|
||||
$data=[
|
||||
'member_id'=>$agentData['uid'],
|
||||
|
|
|
|||
|
|
@ -114,4 +114,34 @@ class Uplog extends BaseModel
|
|||
$builder->uniacid();
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Common: 获取某个用户持有某个等级的名额信息
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/24 19:04
|
||||
* @param $uid
|
||||
* @param $teamLevelId
|
||||
* @return int[]
|
||||
*/
|
||||
public static function getQuota($uid,$teamLevelId){
|
||||
$info = Uplog::uniacid()
|
||||
->where('uid',$uid)
|
||||
->where('after_level_id',$teamLevelId)
|
||||
->orderBy('created_at','ASC')
|
||||
->first();
|
||||
// 已使用
|
||||
$useQuota = TeamDividendAgencyModel::uniacid()
|
||||
->where('give_uid',$uid)
|
||||
->where('give_level_id',$info['give_limit_level_id'])
|
||||
->count();
|
||||
|
||||
return [
|
||||
'total_quota' => (int)$info->give_limit,// 总数
|
||||
'use_quota' => (int)$useQuota,// 已使用
|
||||
'surplus_quota' => (int)$info->give_limit - (int)$useQuota,// 剩余
|
||||
'give_limit_level_id' => (int)$info->give_limit_level_id,// 升级等级id
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
namespace Yunshop\TeamDividend\services\upgrate;
|
||||
|
||||
|
||||
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
|
||||
use Yunshop\TeamDividend\models\Uplog;
|
||||
|
||||
class UplogService
|
||||
|
|
@ -52,6 +53,13 @@ class UplogService
|
|||
|
||||
public function store()
|
||||
{
|
||||
|
||||
if($this->uplogModel->after_level_id > 0){
|
||||
$lvInfo = TeamDividendLevelModel::find($this->uplogModel->after_level_id);
|
||||
$this->uplogModel->give_limit = (int)$lvInfo->give_limit;
|
||||
$this->uplogModel->give_limit_level_id = (int)$lvInfo->give_limit_level_id;
|
||||
}
|
||||
|
||||
$this->uplogModel->conditions = $this->conditions;
|
||||
$this->uplogModel->save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,6 +119,27 @@
|
|||
<span class="help-block">当前等级总人数达到指定数量后,其他人则不能升级到当前等级。为空或者0则不限制人数</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-12 col-sm-3 col-md-2 control-label">赠送升级名额</label>
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<div class='input-group col-xs-4'>
|
||||
<input type='text' name='dividend[give_limit]' class="form-control discounts_value" value="{{$dividend->give_limit?:0}}"/>
|
||||
<div class='input-group-addon waytxt'>个</div>
|
||||
</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">名额升级等级</label>
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<select name='dividend[give_limit_level_id]' class='form-control'>
|
||||
@foreach ($level_list as $key => $item)
|
||||
<option value='{{$item['id']}}' @if($dividend->give_limit_level_id == $item['id']) selected @endif>{{$item['level_name']}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</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">
|
||||
|
|
@ -883,9 +904,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<span class="help-block">普通赠送-赠送指定的权重值;阶梯赠送-根据用户成为经销商的时间顺序排序,获取对应的权重值;超过最大名次则不赠送权重值</span>
|
||||
<div class="input-group weight-value-top-content">
|
||||
{{-- <div class="input-group weight-value-top-content">
|
||||
<div class='input-group-addon waytxt weight-value-lable'>赠送级别</div>
|
||||
<div class='input-group-addon waytxt weight-value-radio'>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="wv[lv_type]" value="0" @if ((int)$wv['lv_type'] != 1) checked @endif> 二级
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="wv[lv_type]" value="0" @if ((int)$wv['lv_type'] != 1) checked @endif> 二级
|
||||
</label>
|
||||
|
|
@ -894,7 +918,7 @@
|
|||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<span class="help-block">二级-赠送购买人、购买人上级;三级-赠送购买人、购买人上级、购买人上级的上级</span>
|
||||
<span class="help-block">二级-赠送购买人、购买人上级;三级-赠送购买人、购买人上级、购买人上级的上级</span>--}}
|
||||
{{--赠送固定值--}}
|
||||
<div class='input-group wv-gift-type-num @if ((int)$wv['gift_type'] == 1) hide @endif'>
|
||||
<div class='input-group-addon waytxt'>赠送</div>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ use app\common\services\password\PasswordService;
|
|||
use Illuminate\Support\Facades\DB;
|
||||
use Yunshop\TeamDividend\models\TeamDividendAgencyModel;
|
||||
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
|
||||
use Yunshop\TeamDividend\models\Uplog;
|
||||
use Yunshop\TeamDividend\services\UpgradeService;
|
||||
use Yunshop\WeightValue\models\WeightValue;
|
||||
use Yunshop\WeightValue\models\WeightValueLog;
|
||||
use Yunshop\WeightValue\models\WeightValueTransfer;
|
||||
|
|
@ -226,8 +228,110 @@ class IndexController extends ApiController{
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Common: 使用升级名额 - 获取信息
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/24 18:13
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function useUpgradeInfo(){
|
||||
// 基本参数
|
||||
$uid = \YunShop::app()->getMemberId();
|
||||
$teamLevelId = (int)request()->input('team_level_id');// 经销商等级id
|
||||
if($teamLevelId <= 0) return $this->errorJson('非法请求,等级不明确!');
|
||||
$giveLimitInfo = Uplog::getQuota($uid,$teamLevelId);
|
||||
$levelName = TeamDividendLevelModel::uniacid()->where('id',$giveLimitInfo['give_limit_level_id'])->value('level_name');
|
||||
|
||||
|
||||
return $this->successJson('获取数据成功', [
|
||||
'level_name' => $levelName,
|
||||
'surplus_quota' => $giveLimitInfo['surplus_quota'],
|
||||
]);
|
||||
}
|
||||
/**
|
||||
* Common: 使用升级名额 - 升级处理
|
||||
* Author: wu-hui
|
||||
* Time: 2023/10/24 19:07
|
||||
* @return \Illuminate\Http\JsonResponse|void
|
||||
*/
|
||||
public function useUpgradeHandle(){
|
||||
// 基本参数
|
||||
$uid = \YunShop::app()->getMemberId();
|
||||
$teamLevelId = (int)request()->input('team_level_id');// 经销商等级id
|
||||
$transferId = (int)request()->input('transfer_id');// 受让人id
|
||||
if($teamLevelId <= 0) return $this->errorJson('非法请求,等级不明确!');
|
||||
if($transferId <= 0) return $this->errorJson('非法请求,受让人不明确!');
|
||||
// 判断:受让人是否为经销商
|
||||
$isHas = (int)TeamDividendAgencyModel::uniacid()->where('uid',$transferId)->value('id');
|
||||
if($isHas > 0) return $this->errorJson('升级失败,当前用户非普通用户!');
|
||||
// 判断:名额是否足够
|
||||
$giveLimitInfo = Uplog::getQuota($uid,$teamLevelId);
|
||||
if((int)$giveLimitInfo['surplus_quota'] <= 0) return $this->errorJson('名额不足!');
|
||||
// 可以赠送 处理
|
||||
$memberInfo = Member::uniacid()
|
||||
->where('uid',$transferId)
|
||||
->whereHas('yzMember', function ($query) {
|
||||
$query->whereNull('deleted_at');
|
||||
})
|
||||
->with('yzMember')
|
||||
->with('hasOneFans')
|
||||
->with('hasOneMiniApp')
|
||||
->first();
|
||||
if($memberInfo) $memberInfo = $memberInfo->toArray();
|
||||
$agentData = [
|
||||
'uid' => $transferId,
|
||||
'parent_id' => (int)$memberInfo['yz_member']['parent_id'],
|
||||
'relation' => $memberInfo['yz_member']['relation'],
|
||||
'level' => $giveLimitInfo['give_limit_level_id'],
|
||||
'uniacid' => \YunShop::app()->uniacid,
|
||||
'upgrade_at' => time(),
|
||||
'give_uid' => $uid,
|
||||
'give_level_id' => $giveLimitInfo['give_limit_level_id'],
|
||||
];
|
||||
|
||||
$agency_model = new \Yunshop\TeamDividend\admin\models\TeamDividendAgencyModel();
|
||||
$agency_model->fill($agentData);
|
||||
$validator = $agency_model->validator();
|
||||
if ($validator->fails()) {
|
||||
return $this->errorJson($validator->messages());
|
||||
} else {
|
||||
if ($agency_model->save()) {
|
||||
// 升级后等级
|
||||
$c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agentData['level']);
|
||||
// 升级前等级
|
||||
$o_level = NULL;
|
||||
// 升级日志
|
||||
Uplog::addLog($agency_model, $o_level, $c_level);
|
||||
|
||||
//签合同
|
||||
$data=[
|
||||
'member_id'=>$agentData['uid'],
|
||||
'created_at' => time(),
|
||||
];
|
||||
event(new \app\common\events\plugin\TeamDividendEvent($data));
|
||||
//激活码
|
||||
$upgrade_set = (new UpgradeService())->getUpgradeById($agentData['level']);
|
||||
|
||||
if ($upgrade_set) {
|
||||
$set = \Setting::get('plugin.team_dividend');
|
||||
if ($set['is_activation_code'] && $upgrade_set[0]->code_num) {
|
||||
$level_list = TeamDividendLevelModel::getList()->get();
|
||||
$code_num = unserialize($upgrade_set[0]->code_num);
|
||||
foreach($level_list as $key => $level) {
|
||||
if($code_num['level_'.$level->id]) {
|
||||
(new UpgradeService())->senCode($agentData['uid'], $code_num['level_'.$level->id], $level->id, $level->level_name);
|
||||
}
|
||||
}
|
||||
\Log::debug('激活码');
|
||||
}
|
||||
}
|
||||
(new UpgradeService())->becomeAgencyNotify($agentData['uid']);
|
||||
|
||||
return $this->successJson('升级成功!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -284,7 +284,8 @@ class WeightValue extends BaseModel{
|
|||
\Log::debug('------经销商升级赠送权重值 - 开始处理------',['uid'=>$uid,'level_id'=>$levelId]);
|
||||
// 获取当前用户及上级信息
|
||||
$agents = $this->getParent($uid);
|
||||
$parents = array_merge($agents['current_user'],$agents['parents']);
|
||||
// $parents = array_merge($agents['current_user'],$agents['parents']);
|
||||
$parents = $agents['current_user'];// 修改:经销商升级仅赠送给本人
|
||||
// 等级赠送设置信息
|
||||
$levelWvSet = $this->getLevelWeightValue($levelId);
|
||||
if(!$levelWvSet){
|
||||
|
|
@ -293,7 +294,7 @@ class WeightValue extends BaseModel{
|
|||
}
|
||||
$changeRecord = [];// 变更记录
|
||||
// 判断:赠送等级为二级时,删除第三个用户 赠送等级:0=二级,1=三级
|
||||
if($levelWvSet['lv_type'] == 1 && count($parents) >= 3) unset($parents[2]);
|
||||
// if($levelWvSet['lv_type'] == 1 && count($parents) >= 3) unset($parents[2]);
|
||||
// 获取:当前需要操作的所有经销商的领取记录 是否已经领取升级赠送的权重值
|
||||
$parentUidS = array_column($parents,'uid');
|
||||
$getRecord = WeightValueLog::uniacid()
|
||||
|
|
@ -585,6 +586,9 @@ class WeightValue extends BaseModel{
|
|||
$weightValue = self::getWeightValueQuantity((int)$uid,(int)$teamLevelId);
|
||||
// 团队订单信息
|
||||
$teamOrderInfo = self::getTeamOrderInfo($uid);
|
||||
// 我的名额
|
||||
$giveLimitNum = Uplog::getQuota($uid,$teamLevelId);
|
||||
|
||||
$list = [
|
||||
// 下级购买除【升级商品(购买当前商品可以升级到经销商)】外其他商品的 推广奖励(计算分销商奖励)
|
||||
'direct_push_give' => ['key_name' => 'direct_push_give','title' => '直推奖励','num' => (float)$directPush,'sort' => 1],
|
||||
|
|
@ -598,6 +602,8 @@ class WeightValue extends BaseModel{
|
|||
'order_money' => ['key_name' => 'order_money','title' => '总订单金额','num' => $teamOrderInfo['total_price'],'sort' => 11],
|
||||
// 本团队所有相关订单总数 (不包括本人)
|
||||
'order_num' => ['key_name' => 'order_num','title' => '总订单数','num' => $teamOrderInfo['total'],'sort' => 12],
|
||||
// 我的赠送升级名额
|
||||
'give_limit' => ['key_name' => 'give_limit','title' => '我的名额','num' => (int)$giveLimitNum['surplus_quota'],'sort' => 13],
|
||||
];
|
||||
// 获取经销商特殊身份 特殊身份:0=无特殊身份,1=经纪人,2=代理商,3=省级代理
|
||||
$identityType = (int)TeamDividendLevelModel::uniacid()->where('id',$teamLevelId)->value('identity_type');
|
||||
|
|
|
|||
Loading…
Reference in New Issue