Authored by 邱骏

articleListWithOutImg

@@ -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