Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1a06c38

Browse files
committed
添加博客专栏相关内容
1 parent c7384d2 commit 1a06c38

File tree

5 files changed

+172
-2
lines changed

5 files changed

+172
-2
lines changed

‎app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const getArticleDetailRouter = require('./routes/getArticleDetail');
2525
const deleteArticleRouter = require('./routes/deleteArticle');
2626
const addStarRouter = require('./routes/addStar');
2727
const imagesRouter = require('./routes/images');
28+
const columnRouter = require('./routes/column');
2829
const addUserHeaderRouter = require('./routes/addUserHeader');
2930
const adminUserRouter = require('./routes/adminUser');
3031
const adminViewsRouter = require('./routes/adminViews');
@@ -60,6 +61,7 @@ app.use('/api/vue-blog/addUserHeader', addUserHeaderRouter);
6061
app.use('/api/vue-blog/adminUser', adminUserRouter);
6162
app.use('/api/vue-blog/adminViews', adminViewsRouter);
6263
app.use('/api/vue-blog/adminAuthority', adminAuthorityRouter);
64+
app.use('/api/vue-blog/column', columnRouter);
6365

6466
// catch 404 and forward to error handler
6567
app.use(function(req, res, next) {

‎routes/adminViews.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,13 @@ async function selectViewsDetail(req, res, next) {
4949
let selectData = await mysql.query("SELECT routeFrom, routeTo, DATE_FORMAT(time, '%Y-%m-%d %r') as time FROM vue_blog_views WHERE DATEDIFF(time, ?) >= 0 AND DATEDIFF(?, time) >= 0 ORDER BY time DESC LIMIT ? OFFSET ?",
5050
[req.query.start, req.query.end, limitNumber, offsetNumber])
5151
let totalData = await mysql.query("SELECT * FROM vue_blog_views WHERE DATEDIFF(time, ?) >= 0 AND DATEDIFF(?, time) >= 0", [req.query.start, req.query.end])
52+
let allTotalData = await mysql.query("SELECT * FROM vue_blog_views")
5253
return res.json({
5354
isok: true,
5455
data: {
5556
selectData,
56-
total: totalData.length
57+
total: totalData.length,
58+
allTotal: allTotalData.length
5759
},
5860
msg: ''
5961
});

‎routes/articleList.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ async function articleList(req, res, next) {
2626
let term = `DATE_FORMAT(articleCreateTime, '%Y-%m') = '${req.query.dateTime}'`
2727
whereSql = whereSql ? whereSql + `AND ${term}` : `WHERE ${term}`
2828
}
29+
if (req.query.columnId) {
30+
let term = `articleColumn = ${req.query.columnId}`
31+
whereSql = whereSql ? whereSql + `AND ${term}` : `WHERE ${term}`
32+
}
2933
if (req.query.author) {
3034
let articleAuthorId = req.query.author
3135
if (articleAuthorId === 'admin') {

‎routes/column.js

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
const express = require('express')
2+
const router = express.Router()
3+
const mysql = require('./../mysql/db')
4+
const moment = require('moment')
5+
6+
router.post('/editor', columnEditor)
7+
router.get('/list', columnList)
8+
router.post('/delete', columnDelete)
9+
router.get('/detail', columnDetail)
10+
router.get('/articleList', columnArticle)
11+
router.post('/articleSet', columnArticleSet)
12+
router.get('/articleAllList', columnArticleAllList)
13+
14+
async function columnEditor(req, res, next) {
15+
try {
16+
if (req.body.id) {
17+
await mysql.query('UPDATE vue_blog_column SET columnTitle = ?, columnContent = ? WHERE columnId = ?',
18+
[req.body.name, req.body.desc, req.body.id])
19+
} else {
20+
await mysql.query('INSERT INTO vue_blog_column (columnTitle, columnContent, columnCreateTime) VALUES (?, ?, ?)',
21+
[req.body.name, req.body.desc, moment().format('YYYY-MM-DD HH:mm:ss')])
22+
}
23+
return res.json({
24+
isok: true,
25+
msg: ''
26+
});
27+
} catch (error) {
28+
return res.json({
29+
isok: false,
30+
msg: error
31+
});
32+
}
33+
next();
34+
}
35+
36+
async function columnList(req, res, next) {
37+
try {
38+
let selectData = await mysql.query("SELECT columnId, columnTitle, columnContent, columnNumber, DATE_FORMAT(columnCreateTime, '%Y-%m-%d %r') as time FROM vue_blog_column")
39+
return res.json({
40+
isok: true,
41+
data: selectData,
42+
msg: ''
43+
});
44+
} catch (error) {
45+
return res.json({
46+
isok: false,
47+
msg: error
48+
});
49+
}
50+
next();
51+
}
52+
53+
async function columnDelete(req, res, next) {
54+
try {
55+
let selectData = await mysql.query("SELECT columnNumber FROM vue_blog_column WHERE columnId = ?",
56+
[req.body.id])
57+
if (selectData[0].columnNumber) {
58+
return res.json({
59+
isok: false,
60+
msg: '请先将该专栏下的文章移出!'
61+
});
62+
} else {
63+
await mysql.query('DELETE FROM vue_blog_column WHERE columnId = ?',
64+
[req.body.id])
65+
return res.json({
66+
isok: true,
67+
msg: ''
68+
});
69+
}
70+
} catch (error) {
71+
return res.json({
72+
isok: false,
73+
msg: error
74+
});
75+
}
76+
next();
77+
}
78+
79+
async function columnDetail(req, res, next) {
80+
try {
81+
let selectData = await mysql.query("SELECT columnId, columnTitle, columnContent, columnNumber, DATE_FORMAT(columnCreateTime, '%Y-%m-%d %r') as time FROM vue_blog_column WHERE columnId = ?",
82+
[req.query.id])
83+
return res.json({
84+
isok: true,
85+
data: selectData[0],
86+
msg: ''
87+
});
88+
} catch (error) {
89+
return res.json({
90+
isok: false,
91+
msg: error
92+
});
93+
}
94+
next();
95+
}
96+
97+
async function columnArticle(req, res, next) {
98+
try {
99+
let limitNumber = req.query.limit * 1 || 10
100+
let offsetNumber = (req.query.page * 1 - 1) * limitNumber
101+
let selectData = await mysql.query("SELECT articleId, articleTitle FROM vue_blog WHERE articleColumn = ? ORDER BY articleCreateTime DESC LIMIT ? OFFSET ?",
102+
[req.query.id, limitNumber, offsetNumber])
103+
let totalSelectData = await mysql.query("SELECT articleId, articleTitle FROM vue_blog WHERE articleColumn = ? ORDER BY articleCreateTime DESC",
104+
[req.query.id])
105+
await mysql.query('UPDATE vue_blog_column SET columnNumber = ? WHERE columnId = ?',
106+
[totalSelectData.length, req.query.id])
107+
return res.json({
108+
isok: true,
109+
data: {
110+
selectData,
111+
total: totalSelectData.length
112+
},
113+
msg: ''
114+
});
115+
} catch (error) {
116+
return res.json({
117+
isok: false,
118+
msg: error
119+
});
120+
}
121+
next();
122+
}
123+
124+
async function columnArticleSet(req, res, next) {
125+
try {
126+
for (let i = 0, len = req.body.id.length; i < len; i++) {
127+
await mysql.query("UPDATE vue_blog SET articleColumn = ? WHERE articleId = ?",
128+
[req.body.type == 'delete' ? -1 : req.body.columnId, req.body.id[i] * 1])
129+
}
130+
return res.json({
131+
isok: true,
132+
msg: ''
133+
});
134+
} catch (error) {
135+
return res.json({
136+
isok: false,
137+
msg: error
138+
});
139+
}
140+
next();
141+
}
142+
143+
async function columnArticleAllList(req, res, next) {
144+
try {
145+
let selectData = await mysql.query("SELECT articleId, articleTitle FROM vue_blog WHERE articleColumn = -1 OR articleColumn = 0 OR articleColumn = ? ORDER BY articleCreateTime",
146+
[req.query.id])
147+
return res.json({
148+
isok: true,
149+
data: {
150+
selectData
151+
},
152+
msg: ''
153+
});
154+
} catch (error) {
155+
return res.json({
156+
isok: false,
157+
msg: error
158+
});
159+
}
160+
next();
161+
}
162+
module.exports = router;

‎routes/getAside.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ async function getAside(req, res, next) {
1515
info: selectSqlOne
1616
})
1717
}
18-
let selectSqlTwo = await mysql.query(`SELECT columnId AS id, columnTitle AS title, columentNumber AS num FROM vue_blog_column ORDER BY columnCreateTime`)
18+
let selectSqlTwo = await mysql.query(`SELECT columnId AS id, columnTitle AS title, columnNumber AS num FROM vue_blog_column ORDER BY columnCreateTime`)
1919
if (selectSqlTwo.length) {
2020
selectData.push({
2121
title: '博客专栏',

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /