Преглед изворни кода

后台控制面板加入消息列表显示

olym пре 7 година
родитељ
комит
0f87d9cdc9

+ 3 - 1
modules/common/helper/mongoose_helper.js

@@ -55,9 +55,11 @@ class MongooseHelper {
         let self = this;
         let limit = 0;
         let skip = 0;
+        let sort = {};
         if (option !== null && Object.keys(option).length > 0) {
             limit = option.pageSize !== undefined ? option.pageSize : limit;
             skip = option.offset !== undefined ? option.offset : skip;
+            sort = option.sort !== undefined ? option.sort : sort;
         }
         return new Promise(function (resolve, reject) {
             self.model.find(conditions, fields, option, function (error, data) {
@@ -66,7 +68,7 @@ class MongooseHelper {
                 } else {
                     resolve(data);
                 }
-            }).skip(skip).limit(limit);
+            }).skip(skip).limit(limit).sort(sort);
         });
     }
 

+ 8 - 2
modules/users/controllers/dashboard_controller.js

@@ -6,6 +6,7 @@
  * @version
  */
 import BaseController from "../../common/base/base_controller";
+import MessageModel from "../models/message_model";
 
 class DashboardController extends BaseController {
 
@@ -31,11 +32,16 @@ class DashboardController extends BaseController {
      * @param {object} response
      * @return {void}
      */
-    index(request, response) {
+    async index(request, response) {
+        // 获取已发布的通知
+        let messageModel = new MessageModel();
+        let messageList = await messageModel.getList({status: 1}, 1, 5, {release_time: -1});
+
         let renderData = {
             parentTitle: DashboardController.parentTitle,
             parentIndex: DashboardController.parentIndex,
-            layout: 'users/views/layout/layout'
+            layout: 'users/views/layout/layout',
+            messageList: messageList
         };
         response.render('users/views/dashboard/index', renderData);
     }

+ 2 - 1
modules/users/controllers/notify_controller.js

@@ -184,7 +184,8 @@ class NotifyController extends BaseController {
 
         try {
             let messageModel = new MessageModel();
-            let result = messageModel.release(id);
+            let sessionUserData = request.session.managerData;
+            let result = messageModel.release(id, sessionUserData.username);
 
             if (!result) {
                 throw '发布消息失败';

+ 11 - 7
modules/users/models/message_model.js

@@ -63,17 +63,19 @@ class MessageModel extends BaseModel {
      * @param {object} condition
      * @param {number} page
      * @param {Number} pageSize
+     * @param {Object} sort
      * @return {promise}
      */
-    async getList(condition = null, page = 1, pageSize = 30) {
+    async getList(condition = null, page = 1, pageSize = 30, sort = {}) {
         page = parseInt(page);
         page = page <= 1 ? 1 : page;
         let option = {pageSize: pageSize, offset: parseInt((page - 1) * pageSize)};
+        option.sort = sort;
 
-        let userList = await this.db.find(condition, null, option);
-        userList = userList.length > 0 ? userList : [];
+        let messageList = await this.db.find(condition, null, option);
+        messageList = messageList.length > 0 ? messageList : [];
 
-        return userList;
+        return messageList;
     }
 
     /**
@@ -122,13 +124,15 @@ class MessageModel extends BaseModel {
     /**
      * 发布消息
      *
-     * @param {Number} id
+     * @param {String} id
+     * @param {String} releaseUser
      * @return {Promise}
      */
-    async release(id) {
+    async release(id, releaseUser) {
         let data = {
             status: 1,
-            release_time: new Date().getTime()
+            release_time: new Date().getTime(),
+            release_user: releaseUser
         };
 
         return await this.updateById(id, data);

+ 2 - 0
modules/users/models/schemas/message.js

@@ -38,6 +38,8 @@ let modelSchema = {
     },
     // 创建者
     creator: String,
+    // 发布者
+    release_user: String,
     // 最后修改人
     last_update: {
         type: String,

+ 5 - 23
web/users/views/dashboard/index.html

@@ -16,31 +16,13 @@
                 </tr>
                 </thead>
                 <tbody>
+                <% messageList.forEach(function(message) { %>
                 <tr>
-                    <td><a href="#">标题A</a></td>
-                    <td>2017-02-01 09:30</td>
-                    <td>陈特</td>
-                </tr>
-                <tr>
-                    <td><a href="#">标题B</a></td>
-                    <td>2017-02-01 09:30</td>
-                    <td>陈特</td>
-                </tr>
-                <tr>
-                    <td><a href="#">标题C</a></td>
-                    <td>2017-02-01 09:30</td>
-                    <td>陈特</td>
-                </tr>
-                <tr>
-                    <td>【内部】<a href="#">标题D</a></td>
-                    <td>2017-02-01 09:30</td>
-                    <td>陈特</td>
-                </tr>
-                <tr>
-                    <td><a href="#">标题E</a></td>
-                    <td>2017-02-01 09:30</td>
-                    <td>陈特</td>
+                    <td><%= message.message_type === 2 ? '【内部】' : '' %><a href="#"><%= message.title %></a></td>
+                    <td><%= moment(message.release_time).format('YYYY-MM-DD HH:mm:ss') %></td>
+                    <td><%= message.release_user %></td>
                 </tr>
+                <% }); %>
                 </tbody>
             </table>
         </div>