修改:分销关系链 限时绑定开启后,解除时不在解除固定绑定的关系

添加:未固定绑定的分销商 在支付成功后立即与上级固定绑定关系
This commit is contained in:
wuhui_zzw 2024-04-25 14:00:27 +08:00
parent 77d86ff27f
commit bae78b6a27
3 changed files with 25 additions and 9 deletions

View File

@ -334,7 +334,12 @@ class UserDao extends BaseDao
public function syncSpreadStatus()
{
return User::getDB()->where('spread_uid', '>', 0)->whereNotNull('spread_limit')->where('spread_limit', '<=', date('Y-m-d H:i:s'))->update(['spread_time' => null, 'spread_uid' => 0, 'spread_limit' => null]);
return User::getDB()
->where('spread_uid','>',0)
->whereNotNull('spread_limit')
->where('spread_limit','<=',date('Y-m-d H:i:s'))
->where('spread_fixed', 0)
->update(['spread_time' => NULL,'spread_uid' => 0,'spread_limit' => NULL]);
}
public function incSpreadCount($uid)

View File

@ -490,15 +490,21 @@ class StoreOrderRepository extends BaseRepository
//自动打印订单
$this->autoPrinter($order->order_id, $order->mer_id);
}
if ($groupOrder->user->spread_uid) {
Queue::push(UserBrokerageLevelJob::class, ['uid' => $groupOrder->user->spread_uid, 'type' => 'spread_pay_num', 'inc' => 1]);
Queue::push(UserBrokerageLevelJob::class, ['uid' => $groupOrder->user->spread_uid, 'type' => 'spread_money', 'inc' => $groupOrder->pay_price]);
}
app()->make(UserRepository::class)->update($groupOrder->uid, [
$userUpdate = [
'pay_count' => Db::raw('pay_count+' . count($groupOrder->orderList)),
'pay_price' => Db::raw('pay_price+' . $groupOrder->pay_price),
'svip_save_money' => Db::raw('svip_save_money+' . $svipDiscount),
]);
];
if ($groupOrder->user->spread_uid) {
Queue::push(UserBrokerageLevelJob::class, ['uid' => $groupOrder->user->spread_uid, 'type' => 'spread_pay_num', 'inc' => 1]);
Queue::push(UserBrokerageLevelJob::class, ['uid' => $groupOrder->user->spread_uid, 'type' => 'spread_money', 'inc' => $groupOrder->pay_price]);
// 判断:如果用户关系未固定绑定 则固定绑定
$config = systemConfig(['extension_limit', 'extension_limit_day', 'integral_user_give']);
if($groupOrder->user->spread_fixed == 0 && $config['extension_limit'] && $config['extension_limit_day']) $userUpdate['spread_fixed'] = 1;
}
app()->make(UserRepository::class)->update($groupOrder->uid, $userUpdate);
$this->giveIntegral($groupOrder);
if (count($profitsharing)) {
$storeOrderProfitsharingRepository->insertAll($profitsharing);

View File

@ -922,8 +922,13 @@ class UserRepository extends BaseRepository
public function bindSpread(User $user, int $spreadUid){
// 获取邀请人 分销商转正申请信息 $formalStatus == 1 &&
// $formalStatus = (int)UserBrokerageApplyFormal::where('uid', $spreadUid)->value('status');
if ($spreadUid && !$user->spread_uid && $user->uid != $spreadUid && ($spread = $this->dao->get($spreadUid)) && $spread->spread_uid != $user->uid && !$spread->cancel_time) {
// 判断:是否固定绑定
if($user->spread_fixed == 0 && $user->spread_limit && $user->spread_uid > 0){
throw new ValidateException("已存在临时上级!");
}
// 判断:是否允许绑定
$spread = $this->dao->get($spreadUid);
if ($spreadUid && !$user->spread_uid && $user->uid != $spreadUid && $spread && $spread->spread_uid != $user->uid && !$spread->cancel_time) {
$config = systemConfig(['extension_limit', 'extension_limit_day', 'integral_user_give']);
event('user.spread.before', compact('user','spreadUid'));
Db::transaction(function () use ($spread, $spreadUid, $user, $config) {