quanwei
2025-11-28 3ea53e61cc23fdb3ddf8b38a199ca60a6da8c407
admin/app/job/event/VipUserGrade.php
@@ -3,9 +3,10 @@
namespace app\job\event;
use app\common\model\plus\vip\Grade as GradeModel;
use app\common\model\plus\vip\User as UserModel;
use app\common\model\plus\vip\User as vipUserModel;
use app\common\model\plus\vip\Order as OrderModel;
use app\common\model\supplier\Supplier;
use app\job\model\user\User as UserModel;
/**
 * VIP用户等级事件管理
 */
@@ -31,7 +32,7 @@
        }
        log_write('VIP用户升级$user_id='.$userId);
        // 用户模型
        $user = UserModel::detail($userId);
        $user = vipUserModel::detail($userId);
        // 获取所有等级
        $list = GradeModel::getUsableList($user['app_id']);
        if ($list->isEmpty()) {
@@ -56,7 +57,7 @@
            }
        }
        if($upgradeGrade){
            if($user['grade_id'] == $upgradeGrade['grade_id']){
            if($user['grade_id'] == $upgradeGrade['grade_id']||$user['grade']['weight'] >= $upgradeGrade['weight']){
                return true;
            }
            $this->dologs('setVipUserGrade', [
@@ -64,7 +65,7 @@
                'grade_id' => $upgradeGrade['grade_id'],
            ]);
            // 修改会员的等级
            (new UserModel())->upgradeGrade($user, $upgradeGrade);
            (new vipUserModel())->upgradeGrade($user, $upgradeGrade);
        }
    }
@@ -78,11 +79,25 @@
        if($grade['is_purchase_count'] == 1 && $user['user']['purchase_count'] >= $grade['purchase_count']){
            $purchase_count = true;
        }
        $supplier_count = false;
        $referee_supplier_count = (new Supplier())->where('referee_id', $user['user_id'])->count();
        // 直推供应商多少人
        if($grade['is_supplier_count'] == 1 && $referee_supplier_count >= $grade['supplier_count']){
            $supplier_count = true;
        }
        // 推荐人等级
        $user_referee_grade_count = (new UserModel())->getRefereeGradeCount($user['user_id'], $grade['referee_grade_ids']);
        $referee_grade_count=false;
        if($grade['is_referee_grade'] == 1 && $user_referee_grade_count >= $grade['referee_grade_count']){
            $referee_grade_count = true;
        }
        if($grade['condition_type'] == 'and'){
            $grade['is_purchase_count']!=1 && $purchase_count=true;
            return $purchase_count;
            $grade['is_supplier_count']!=1 && $supplier_count=true;
            $grade['is_referee_grade']!=1 && $referee_grade_count=true;
            return $purchase_count && $supplier_count && $referee_grade_count;
        }else{
            return $purchase_count;
            return $purchase_count || $supplier_count || $referee_grade_count;
        }
    }