wq 4 anni fa
parent
commit
f91233e62b
2 ha cambiato i file con 46 aggiunte e 20 eliminazioni
  1. 31 13
      app/controller/noticeController.js
  2. 15 7
      app/service/noticeService.js

+ 31 - 13
app/controller/noticeController.js

@@ -9,23 +9,41 @@ class NoticeController extends Controller {
 
 //我发布的通知
   async listForPage() {
-    const { ctx } = this;
+    const { ctx ,service} = this;
     const user = ctx.user;
     if (user.role._id != this.app.config.defaultAdminRoleId) {
-      ctx.query.userid = ctx.user._id;
-    }else{
+      ctx.query.userid = ctx.user._id;                                          //不是admin的情况
+      if(ctx.query.status == 1){                                                //不是admin情况选择   我发布的通知
+        delete ctx.query.status;
+        ctx.query.sort = { createTime: -1 };
+        if (!ctx.query.searchtitle) {
+          delete ctx.query.searchtitle;
+        }else{
+          ctx.query.title = ctx.query.searchtitle;
+          ctx.query.title ={$regex: ctx.query.searchtitle}
+          delete ctx.query.searchtitle;
+        }
+        this.ctx.logger.info(ctx.query);
+        const result0 = await this.tag().listForPage(ctx.query);
+        ctx.success(result0);
+      }else{                                                                  //不是admin情况下选择     发布给我的通知
+        const result1 =  await service.noticeService.pcListForPage(ctx.query,user);
+        ctx.success(result1);
+      }
+    }else{                                                                     //是admin情况下只能看     所有通知
       delete ctx.query.userid;
+      delete ctx.query.status;
+      ctx.query.sort = { createTime: -1 };
+      if (!ctx.query.searchtitle) {
+        delete ctx.query.searchtitle;
+      }else{
+        ctx.query.title = ctx.query.searchtitle;
+        ctx.query.title ={$regex: ctx.query.searchtitle}
+        delete ctx.query.searchtitle;
+      }
+      const result2 = await this.tag().listForPage(ctx.query);
+      ctx.success(result2);
     }
-    ctx.query.sort = { createTime: -1 };
-    if (!ctx.query.searchtitle) {
-      delete ctx.query.searchtitle;
-    }else{
-      ctx.query.title = ctx.query.searchtitle;
-      ctx.query.title ={$regex: ctx.query.searchtitle}
-      delete ctx.query.searchtitle;
-    }
-    const result = await this.tag().listForPage(ctx.query);
-    ctx.success(result);
   }
 
   //PC端发给我的通知

+ 15 - 7
app/service/noticeService.js

@@ -21,10 +21,12 @@ class NoticeService extends Service {
   async pcListForPage(data,user) {
     const { model } = this.ctx;
     const page = data.page;
+    const level = user.dept.level;
     const rows = Number.parseInt(data.rows) || this.app.config.defaultPageSize;
     delete data.page;
     delete data.rows;
-
+    // this.ctx.logger.info(user);
+    // this.ctx.logger.info("==========================================================================");
     const where = {};
 
     if (!data.searchtitle) {
@@ -33,12 +35,18 @@ class NoticeService extends Service {
       where.title ={$regex: data.searchtitle}
       delete data.searchtitle;
     }
-
-    where.$or = [{ deptId: user.dept1._id }, { deptId: user.dept2._id }, { deptId: user.dept3._id }];
-
-
-    const total = await model.InfoModel.find(where).countDocuments();
-    const result = await model.InfoModel.find(where).skip((page - 1) * rows)
+    if(level == 1){
+      where.$or = [{ dept1: user.dept1._id }];
+      where.userid = { $ne: user._id }
+    }else if(level==2){
+      where.$or = [{ deptId: user.dept1._id }, { deptId: user.dept2._id }];
+      where.userid = { $ne: user._id }
+    }else if(level >= 3){
+      where.$or = [{ deptId: user.dept1._id }, { deptId: user.dept2._id }, { deptId: user.dept3._id }];
+      where.userid = { $ne: user._id }
+    }
+    const total = await model.NoticeModel.find(where).countDocuments();
+    const result = await model.NoticeModel.find(where).skip((page - 1) * rows)
         .limit(rows)
         .sort({ createTime: -1 });
     return {