feat: 系统配置 + 用户签名
- 新增 sys_config 表,存储应用版本号、标语、描述 - 关于小菜弹窗版本号改为从数据库动态获取 - 用户表新增 slogan 字段(个性签名) - 编辑资料页面支持修改签名 - 管理后台新增系统配置管理页面 - 更新 CLAUDE.md 文档
This commit is contained in:
@@ -48,7 +48,7 @@ const upload = multer({
|
||||
router.get('/me', async (req: AuthRequest, res: Response) => {
|
||||
try {
|
||||
const [rows] = await pool.query(
|
||||
'SELECT id, nickname, avatar_url, role, created_at FROM users WHERE id = ?',
|
||||
'SELECT id, nickname, avatar_url, slogan, role, created_at FROM users WHERE id = ?',
|
||||
[req.userId]
|
||||
)
|
||||
const user = (rows as any[])[0]
|
||||
@@ -62,10 +62,10 @@ router.get('/me', async (req: AuthRequest, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
/** 更新用户昵称 */
|
||||
/** 更新用户昵称/签名 */
|
||||
router.put('/me', async (req: AuthRequest, res: Response) => {
|
||||
try {
|
||||
const { nickname } = req.body
|
||||
const { nickname, slogan } = req.body
|
||||
|
||||
if (nickname !== undefined) {
|
||||
if (typeof nickname !== 'string' || nickname.trim().length === 0) {
|
||||
@@ -76,6 +76,15 @@ router.put('/me', async (req: AuthRequest, res: Response) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (slogan !== undefined) {
|
||||
if (typeof slogan !== 'string') {
|
||||
return res.status(400).json({ code: 40001, message: '签名格式错误' })
|
||||
}
|
||||
if (slogan.length > 100) {
|
||||
return res.status(400).json({ code: 40001, message: '签名不能超过100个字符' })
|
||||
}
|
||||
}
|
||||
|
||||
const updates: string[] = []
|
||||
const params: any[] = []
|
||||
|
||||
@@ -84,6 +93,11 @@ router.put('/me', async (req: AuthRequest, res: Response) => {
|
||||
params.push(nickname.trim())
|
||||
}
|
||||
|
||||
if (slogan !== undefined) {
|
||||
updates.push('slogan = ?')
|
||||
params.push(slogan.trim())
|
||||
}
|
||||
|
||||
if (updates.length === 0) {
|
||||
return res.status(400).json({ code: 40001, message: '没有需要更新的字段' })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user