join('eb_user u', 'ud.uid = u.uid') ->where('ud.is_del', 0) ->when(isset($where['nickname']) && $where['nickname'], function ($query) use ($where) { $query->where('u.nickname', 'like', "%{$where['nickname']}%"); }) ->when(isset($where['level_id']) && $where['level_id'] !== '', function ($query) use ($where) { $query->where('ud.level_id', $where['level_id']); }) ->field('ud.*, u.nickname, u.avatar') ->order('ud.add_time desc'); $data = $query->page((int)$where['page'], (int)$where['limit'])->select(); $data = $data ? $data->toArray() : []; // 补充经销商等级名称 foreach ($data as &$item) { $levelInfo = SystemDealerLevel::where('id', $item['level_id'])->find(); if ($levelInfo) { $item['level_name'] = $levelInfo['name']; } else { $item['level_name'] = '未知'; } } $count = self::alias('ud') ->join('eb_user u', 'ud.uid = u.uid') ->where('ud.is_del', 0) ->when(isset($where['nickname']) && $where['nickname'], function ($query) use ($where) { $query->where('u.nickname', 'like', "%{$where['nickname']}%"); }) ->when(isset($where['level_id']) && $where['level_id'] !== '', function ($query) use ($where) { $query->where('ud.level_id', $where['level_id']); }) ->count(); return compact('data', 'count'); } /** * 清除用户经销商等级(软删除 + 更新用户表标识) * @param int $uid 用户ID * @return bool */ public static function cleanUpDealerLevel($uid) { self::startTrans(); try { $delRes = self::where('uid', $uid)->update(['is_del' => 1]); if ($delRes !== false) { User::where('uid', $uid)->update(['dealer' => 0]); self::commit(); return true; } else { self::rollback(); return false; } } catch (\Exception $e) { self::rollback(); return false; } } }