- 修改 admin/vite.config.js 添加 base: '/admin/' 解决静态资源路径问题 - 修复后台 index.html 资源引用从 /assets/ → /admin/assets/ - 更新优化器默认 API 地址为服务器地址 - 添加友链管理相关代码 - 修复多处分类管理页面
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.database import get_db
|
|
from app.models.link import Link
|
|
from app.schemas.link import LinkCreate, LinkResponse, LinkApply
|
|
|
|
router = APIRouter(tags=["友情链接"])
|
|
|
|
|
|
@router.get("/links", response_model=list[LinkResponse])
|
|
def list_links(db: Session = Depends(get_db)):
|
|
"""公开:获取已通过审核的友情链接"""
|
|
return db.query(Link).filter(Link.status == "approved").order_by(Link.sort_order, Link.id).all()
|
|
|
|
|
|
@router.post("/links/apply", response_model=LinkResponse)
|
|
def apply_link(link_data: LinkApply, db: Session = Depends(get_db)):
|
|
"""公开:申请友链"""
|
|
# 检查是否已存在同名或同URL的申请/已通过友链
|
|
existing = db.query(Link).filter(
|
|
(Link.name == link_data.name) | (Link.url == link_data.url)
|
|
).first()
|
|
if existing:
|
|
return existing # 已存在则返回已有记录
|
|
|
|
link = Link(
|
|
name=link_data.name,
|
|
url=link_data.url,
|
|
description=link_data.description,
|
|
contact=link_data.contact,
|
|
status="pending",
|
|
sort_order=999, # 新申请放在最后
|
|
)
|
|
db.add(link)
|
|
db.commit()
|
|
db.refresh(link)
|
|
return link |