Files
soul/app/api/db/users/route.ts
卡若 b60edb3d47 feat: 完整重构小程序匹配功能 + 修复UI对齐 + 文章数据API
主要更新:
1. 按H5网页端完全重构匹配功能(match页面)
   - 4种匹配类型: 创业合伙/资源对接/导师顾问/团队招募
   - 资源对接等类型弹出手机号/微信号输入框
   - 去掉重新匹配按钮,改为返回按钮

2. 修复所有卡片对齐和宽度问题
   - 目录页附录卡片居中
   - 首页阅读进度卡片满宽度
   - 我的页面菜单卡片对齐
   - 推广中心分享卡片统一宽度

3. 修复目录页图标和文字对齐
   - section-icon固定40rpx宽高
   - section-title与图标垂直居中

4. 更新真实完整文章标题(62篇)
   - 从book目录读取真实markdown文件名
   - 替换之前的简化标题

5. 新增文章数据API
   - /api/db/chapters - 获取完整书籍结构
   - 支持按ID获取单篇文章内容
2026-01-21 15:49:12 +08:00

115 lines
2.8 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { userDB } from '@/lib/db'
// 获取所有用户
export async function GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url)
const id = searchParams.get('id')
const phone = searchParams.get('phone')
if (id) {
const user = await userDB.getById(id)
return NextResponse.json({ success: true, user })
}
if (phone) {
const user = await userDB.getByPhone(phone)
return NextResponse.json({ success: true, user })
}
const users = await userDB.getAll()
return NextResponse.json({ success: true, users })
} catch (error: any) {
console.error('Get users error:', error)
return NextResponse.json({
success: false,
error: error.message
}, { status: 500 })
}
}
// 创建用户
export async function POST(req: NextRequest) {
try {
const body = await req.json()
const { phone, nickname, password, referral_code, referred_by } = body
// 检查手机号是否已存在
const existing = await userDB.getByPhone(phone)
if (existing) {
return NextResponse.json({
success: false,
error: '该手机号已注册'
}, { status: 400 })
}
const user = await userDB.create({
id: `user_${Date.now()}`,
phone,
nickname,
password,
referral_code: referral_code || `REF${Date.now().toString(36).toUpperCase()}`,
referred_by
})
return NextResponse.json({ success: true, user })
} catch (error: any) {
console.error('Create user error:', error)
return NextResponse.json({
success: false,
error: error.message
}, { status: 500 })
}
}
// 更新用户
export async function PUT(req: NextRequest) {
try {
const body = await req.json()
const { id, ...updates } = body
if (!id) {
return NextResponse.json({
success: false,
error: '缺少用户ID'
}, { status: 400 })
}
await userDB.update(id, updates)
const user = await userDB.getById(id)
return NextResponse.json({ success: true, user })
} catch (error: any) {
console.error('Update user error:', error)
return NextResponse.json({
success: false,
error: error.message
}, { status: 500 })
}
}
// 删除用户
export async function DELETE(req: NextRequest) {
try {
const { searchParams } = new URL(req.url)
const id = searchParams.get('id')
if (!id) {
return NextResponse.json({
success: false,
error: '缺少用户ID'
}, { status: 400 })
}
await userDB.delete(id)
return NextResponse.json({ success: true })
} catch (error: any) {
console.error('Delete user error:', error)
return NextResponse.json({
success: false,
error: error.message
}, { status: 500 })
}
}