const User = require('../models/User'); const Category = require('../models/Category'); const Post = require('../models/Post'); const Comment = require('../models/Comment'); const Link = require('../models/Link'); // 用户管理 exports.userList = async (req, res) => { try { const users = await User.find().sort({ createdAt: -1 }); res.render('admin/users/list', { users }); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.updateUserStatus = async (req, res) => { try { const user = await User.findByIdAndUpdate( req.params.id, { isActive: req.body.isActive }, { new: true } ); if (!user) return res.status(404).json({ error: '用户不存在' }); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.resetPassword = async (req, res) => { try { const user = await User.findById(req.params.id); if (!user) return res.status(404).json({ error: '用户不存在' }); user.password = req.body.newPassword; await user.save(); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; // 分类管理 exports.categoryList = async (req, res) => { try { const categories = await Category.find().sort({ order: 1 }); res.render('admin/categories/list', { categories }); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.createCategory = async (req, res) => { try { const { name, slug, order, isTop } = req.body; const category = new Category({ name, slug, order, isTop }); await category.save(); res.redirect('/admin/categories'); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.updateCategoryTopStatus = async (req, res) => { try { const category = await Category.findByIdAndUpdate( req.params.id, { isTop: req.body.isTop }, { new: true } ); if (!category) return res.status(404).json({ error: '分类不存在' }); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.deleteCategory = async (req, res) => { try { await Category.findByIdAndDelete(req.params.id); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; // 文章管理 exports.postList = async (req, res) => { try { const posts = await Post.find().sort({ createdAt: -1 }); res.render('admin/posts/list', { posts }); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.updatePostTopStatus = async (req, res) => { try { const post = await Post.findByIdAndUpdate( req.params.id, { isTop: req.body.isTop }, { new: true } ); if (!post) return res.status(404).json({ error: '文章不存在' }); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.updatePostPublishStatus = async (req, res) => { try { const post = await Post.findByIdAndUpdate( req.params.id, { isPublished: req.body.isPublished }, { new: true } ); if (!post) return res.status(404).json({ error: '文章不存在' }); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.deletePost = async (req, res) => { try { await Post.findByIdAndDelete(req.params.id); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.createPost = async (req, res) => { try { const { title, content, category, isPublished, isTop } = req.body; const author = req.user._id; const post = new Post({ title, content, category, author, isPublished: isPublished || false, isTop: isTop || false }); await post.save(); res.json({ success: true, post }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; exports.updatePost = async (req, res) => { try { const { title, content, category, isPublished, isTop } = req.body; const post = await Post.findByIdAndUpdate( req.params.id, { title, content, category, isPublished, isTop }, { new: true } ); if (!post) return res.status(404).json({ error: '文章不存在' }); res.json({ success: true, post }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; // 评论管理 exports.commentList = async (req, res) => { try { const comments = await Comment.find().populate('user post').sort({ createdAt: -1 }); res.render('admin/comments/list', { comments }); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.deleteComment = async (req, res) => { try { await Comment.findByIdAndDelete(req.params.id); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } }; // 友情链接管理 exports.linkList = async (req, res) => { try { const links = await Link.find().sort({ order: 1 }); res.render('admin/links/list', { links }); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.createLink = async (req, res) => { try { const { name, url, description, order } = req.body; const link = new Link({ name, url, description, order }); await link.save(); res.redirect('/admin/links'); } catch (err) { console.error(err); res.status(500).send('服务器错误'); } }; exports.deleteLink = async (req, res) => { try { await Link.findByIdAndDelete(req.params.id); res.json({ success: true }); } catch (err) { console.error(err); res.status(500).json({ error: '服务器错误' }); } };