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 f17f120

Browse files
committed
广告位改为可配置的
1 parent 8a0f1ed commit f17f120

File tree

3 files changed

+130
-1
lines changed

3 files changed

+130
-1
lines changed

‎app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const addUserHeaderRouter = require('./routes/addUserHeader');
1919
const adminUserRouter = require('./routes/adminUser');
2020
const adminViewsRouter = require('./routes/adminViews');
2121
const adminAuthorityRouter = require('./routes/adminAuthority');
22+
const adRouter = require('./routes/ad');
2223

2324
const app = express();
2425

@@ -47,6 +48,7 @@ app.use('/api/vue-blog/adminUser', adminUserRouter);
4748
app.use('/api/vue-blog/views', adminViewsRouter);
4849
app.use('/api/vue-blog/adminAuthority', adminAuthorityRouter);
4950
app.use('/api/vue-blog/column', columnRouter);
51+
app.use('/api/vue-blog/ad', adRouter);
5052

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

‎routes/ad.js

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
const express = require('express')
2+
const router = express.Router()
3+
const mysql = require('../mysql/db')
4+
const qiniu = require('qiniu')
5+
const {
6+
config
7+
} = require('../config.js')
8+
9+
router.get('/getToken', getToken)
10+
router.get('/list', adList)
11+
router.post('/add', adAdd)
12+
router.get('/detail', adDetail)
13+
router.post('/delete', adDelete)
14+
router.post('/changeSort', adChangeSort)
15+
16+
async function getToken(req, res, next) {
17+
const mac = new qiniu.auth.digest.Mac(config.accessKey, config.secretKey);
18+
const options = {
19+
scope: `${config.bucket}`,
20+
expires: 7200
21+
}
22+
const putPolicy = new qiniu.rs.PutPolicy(options);
23+
const uploadToken = putPolicy.uploadToken(mac);
24+
res.json({
25+
isok: true,
26+
msg: '上传凭证获取成功',
27+
upToken: uploadToken
28+
});
29+
}
30+
31+
async function adList(req, res, next) {
32+
try {
33+
let selectData = await mysql.query("SELECT adId, adName, adUrl, adSort, adPcImg, adMImg FROM vue_blog_ad ORDER BY adSort")
34+
return res.json({
35+
isok: true,
36+
data: selectData,
37+
msg: ''
38+
});
39+
} catch (error) {
40+
return res.json({
41+
isok: false,
42+
msg: error
43+
});
44+
}
45+
next();
46+
}
47+
48+
async function adAdd(req, res, next) {
49+
try {
50+
if (req.body.id) {
51+
await mysql.query('UPDATE vue_blog_ad SET adName = ?, adUrl = ?, adPcImg = ?, adMImg = ? WHERE adId = ?',
52+
[req.body.name, req.body.url, req.body.pcImg, req.body.mImg, req.body.id])
53+
} else {
54+
let adList = await mysql.query("SELECT adId, adName, adUrl, adSort FROM vue_blog_ad ORDER BY adSort")
55+
let sort = adList.length ? adList[adList.length - 1].adSort * 1 + 1 : 1
56+
await mysql.query('INSERT INTO vue_blog_ad (adName, adUrl, adPcImg, adMImg, adSort) VALUES (?, ?, ?, ?, ?)',
57+
[req.body.name, req.body.url, req.body.pcImg, req.body.mImg, sort])
58+
}
59+
return res.json({
60+
isok: true,
61+
msg: ''
62+
});
63+
} catch (error) {
64+
return res.json({
65+
isok: false,
66+
msg: error
67+
});
68+
}
69+
}
70+
71+
async function adDetail(req, res, next) {
72+
try {
73+
let selectData = await mysql.query("SELECT adId, adName, adUrl, adPcImg, adMImg FROM vue_blog_ad WHERE adId = ?",
74+
[req.query.id])
75+
return res.json({
76+
isok: true,
77+
data: selectData[0],
78+
msg: ''
79+
});
80+
} catch (error) {
81+
return res.json({
82+
isok: false,
83+
msg: error
84+
});
85+
}
86+
next();
87+
}
88+
89+
async function adDelete(req, res, next) {
90+
try {
91+
await mysql.query('DELETE FROM vue_blog_ad WHERE adId = ?',
92+
[req.body.id])
93+
return res.json({
94+
isok: true,
95+
msg: ''
96+
});
97+
} catch (error) {
98+
return res.json({
99+
isok: false,
100+
msg: error
101+
});
102+
}
103+
next();
104+
}
105+
106+
async function adChangeSort(req, res, next) {
107+
try {
108+
if (req.body.list.length) {
109+
for (let i = 0, len = req.body.list.length; i < len; i++) {
110+
await mysql.query("UPDATE vue_blog_ad SET adSort = ? WHERE adId = ?",
111+
[req.body.list[i].adSort, req.body.list[i].adId])
112+
}
113+
}
114+
return res.json({
115+
isok: true,
116+
msg: '更新成功'
117+
});
118+
} catch (error) {
119+
return res.json({
120+
isok: false,
121+
msg: error
122+
});
123+
}
124+
}
125+
126+
module.exports = router;

‎routes/column.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ async function columnEditor(req, res, next) {
1919
[req.body.name, req.body.desc, req.body.id])
2020
} else {
2121
let columnList = await mysql.query("SELECT columnId, columnTitle, columnContent, columnNumber, DATE_FORMAT(columnCreateTime, '%Y-%m-%d %r') as time, columnSort FROM vue_blog_column ORDER BY columnSort")
22+
let sort = columnList.length ? columnList[columnList.length - 1].columnSort * 1 + 1 : 1
2223
await mysql.query('INSERT INTO vue_blog_column (columnTitle, columnContent, columnCreateTime, columnSort) VALUES (?, ?, ?, ?)',
23-
[req.body.name, req.body.desc, moment().format('YYYY-MM-DD HH:mm:ss'), columnList[columnList.length-1].columnSort*1+1])
24+
[req.body.name, req.body.desc, moment().format('YYYY-MM-DD HH:mm:ss'), sort])
2425
}
2526
return res.json({
2627
isok: true,

0 commit comments

Comments
(0)

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