Showing
3 changed files
with
107 additions
and
0 deletions
@@ -87,6 +87,82 @@ const article = { | @@ -87,6 +87,82 @@ const article = { | ||
87 | }, | 87 | }, |
88 | 88 | ||
89 | /** | 89 | /** |
90 | + * 文章列表 | ||
91 | + * @param req | ||
92 | + * @param res | ||
93 | + * @param next | ||
94 | + */ | ||
95 | + list2(req, res, next) { | ||
96 | + const query = req.query; | ||
97 | + const actId = query.actId; | ||
98 | + const pageNo = query.pageNo || 1; | ||
99 | + const pageSize = query.pageSize || 10; | ||
100 | + const orderBy = query.orderBy || 'createTime'; | ||
101 | + const order = ((query.order || 'desc') + '').toLowerCase(); | ||
102 | + const orderByFields = ['createTime', 'goodCount', 'id']; | ||
103 | + | ||
104 | + console.log('query', query); | ||
105 | + if (!actId) { | ||
106 | + return res.json({ | ||
107 | + code: 400, | ||
108 | + message: INVALID_PARAMS | ||
109 | + }); | ||
110 | + } | ||
111 | + | ||
112 | + if (order !== 'asc' && order !== 'desc') { | ||
113 | + return res.json({ | ||
114 | + code: 400, | ||
115 | + message: INVALID_PARAMS | ||
116 | + }); | ||
117 | + } | ||
118 | + | ||
119 | + if (orderByFields.indexOf(orderBy) === -1) { | ||
120 | + return res.json({ | ||
121 | + code: 400, | ||
122 | + message: INVALID_PARAMS | ||
123 | + }); | ||
124 | + } | ||
125 | + | ||
126 | + req.ctx(ArticleModel).articleListWithOutImg({ | ||
127 | + actId, | ||
128 | + order, | ||
129 | + orderBy, | ||
130 | + pageNo, | ||
131 | + pageSize | ||
132 | + }) | ||
133 | + .then(result => { | ||
134 | + console.log('result', result); | ||
135 | + let list = []; | ||
136 | + | ||
137 | + _.each(result, item => { | ||
138 | + let data = {}; | ||
139 | + | ||
140 | + _.each(item, (val, key) => { | ||
141 | + data[camelcase(key)] = val; | ||
142 | + }); | ||
143 | + list.push(data); | ||
144 | + }); | ||
145 | + return list; | ||
146 | + }) | ||
147 | + .then(list => { | ||
148 | + req.ctx(ArticleModel).allArticlesNum(actId) | ||
149 | + .then(totalCount => { | ||
150 | + res.json({ | ||
151 | + code: 200, | ||
152 | + data: list, | ||
153 | + pageNo, | ||
154 | + pageSize, | ||
155 | + totalCount, | ||
156 | + totalPage: Math.ceil(totalCount / pageSize), | ||
157 | + message: GET_SUCCESS | ||
158 | + }); | ||
159 | + }); | ||
160 | + }) | ||
161 | + .catch(next); | ||
162 | + | ||
163 | + }, | ||
164 | + | ||
165 | + /** | ||
90 | * 发布文章 | 166 | * 发布文章 |
91 | * @param req | 167 | * @param req |
92 | * @param res | 168 | * @param res |
@@ -52,6 +52,36 @@ class ArticleModel extends global.yoho.BaseModel { | @@ -52,6 +52,36 @@ class ArticleModel extends global.yoho.BaseModel { | ||
52 | } | 52 | } |
53 | 53 | ||
54 | /** | 54 | /** |
55 | + * 获取文章列表无图 | ||
56 | + * @returns {*} | ||
57 | + */ | ||
58 | + articleListWithOutImg({actId, pageNo, pageSize, orderBy, order}) { | ||
59 | + const orderMapping = { | ||
60 | + goodCount: 'good_count', | ||
61 | + createTime: 'create_time', | ||
62 | + id: 'id' | ||
63 | + }; | ||
64 | + | ||
65 | + let limitSql; | ||
66 | + let orderSql; | ||
67 | + let whereSql; | ||
68 | + | ||
69 | + whereSql = `WHERE act_id = ${actId}`; | ||
70 | + orderSql = `ORDER BY ${orderMapping[orderBy]} ${order}`; | ||
71 | + limitSql = `LIMIT ${(pageNo - 1) * pageSize}, ${pageSize}`; | ||
72 | + console.log('sql', orderSql); | ||
73 | + return mysqlCli.query( | ||
74 | + `SELECT | ||
75 | + id, | ||
76 | + good_count, | ||
77 | + content, | ||
78 | + create_time | ||
79 | + FROM ${TABLE_ACT_ARTICLE} | ||
80 | + ${whereSql} ${orderSql} ${limitSql};` | ||
81 | + ); | ||
82 | + } | ||
83 | + | ||
84 | + /** | ||
55 | * 获取文章总数 | 85 | * 获取文章总数 |
56 | * @returns {*} | 86 | * @returns {*} |
57 | */ | 87 | */ |
@@ -10,6 +10,7 @@ const article = require('./controllers/article'); | @@ -10,6 +10,7 @@ const article = require('./controllers/article'); | ||
10 | 10 | ||
11 | router.post('/like', article.like); | 11 | router.post('/like', article.like); |
12 | router.get('/list', article.list); | 12 | router.get('/list', article.list); |
13 | +router.get('/list2', article.list2); | ||
13 | router.post('/publish', auth, article.publish); | 14 | router.post('/publish', auth, article.publish); |
14 | router.get('/querySingle', article.querySingle); | 15 | router.get('/querySingle', article.querySingle); |
15 | 16 |
-
Please register or login to post a comment