alias($alias); $alias .= '.'; } // 基础条件:未删除 $model = $model->where("{$alias}is_del", 0); // 筛选:显示状态(1=显示,0=隐藏) if (isset($where['is_show']) && $where['is_show'] !== '') { $model = $model->where("{$alias}is_show", $where['is_show']); } // 搜索:代理等级名称(模糊匹配) if (isset($where['name']) && $where['name']) { $model = $model->where("{$alias}name", 'LIKE', "%{$where['name']}%"); } return $model; } /** * 获取代理等级列表(带分页、排序) * @param array $where 分页及筛选条件(page、limit、is_show、name等) * @return array 格式:['data' => 列表数据, 'count' => 总数] */ public static function getSystemAgentList($where) { // 分页查询:按等级排序(grade越大等级越高) $data = self::setWhere($where) ->order('grade desc') ->page((int)$where['page'], (int)$where['limit']) ->select(); $data = $data ? $data->toArray() : []; // 补充格式化字段(如有效期文本) foreach ($data as &$item) { $item['is_forever_text'] = $item['is_forever'] ? '永久有效' : '限时有效'; $item['valid_days_text'] = $item['is_forever'] ? '—' : "{$item['valid_days']}天"; } // 统计符合条件的总数 $count = self::setWhere($where)->count(); return compact('data', 'count'); } /** * 根据等级ID获取单个代理等级配置详情 * @param int $id 代理等级ID * @return array|null 等级详情(含格式化字段) */ public static function getAgentLevelConfig($id) { $level = self::setWhere([])->where('id', $id)->find(); if (!$level) return null; $level = $level->toArray(); // 格式化显示字段 $level['is_forever_text'] = $level['is_forever'] ? '永久有效' : '限时有效'; $level['valid_days_text'] = $level['is_forever'] ? '—' : "{$level['valid_days']}天"; $level['rebates_text'] = "直推:{$level['direct_rebates']}% | 间接:{$level['indirect_rebates']}% | 伞下:{$level['umbrella_rebates']}%"; return $level; } }