lrf402788946 4 år sedan
förälder
incheckning
27e6d9c3fa
3 ändrade filer med 37 tillägg och 0 borttagningar
  1. 4 0
      app/controller/.achieve_apply.js
  2. 1 0
      app/router/achieve_apply.js
  3. 32 0
      app/service/achieve_apply.js

+ 4 - 0
app/controller/.achieve_apply.js

@@ -90,4 +90,8 @@ module.exports = {
     params: ["!id", "!research_id"],
     params: ["!id", "!research_id"],
     service: "researchDelete",
     service: "researchDelete",
   },
   },
+  menuRemind:{
+    params: ["!user_id"],
+    service: "menuRemind",
+  }
 };
 };

+ 1 - 0
app/router/achieve_apply.js

@@ -6,6 +6,7 @@ module.exports = app => {
   const profix = '/api/achieve/';
   const profix = '/api/achieve/';
   const vision = 'v0';
   const vision = 'v0';
   const target = 'achieveApply';
   const target = 'achieveApply';
+  router.get(target, `${profix}${vision}/${target}/remind/:user_id`, controller[target].menuRemind);
   router.get(target, `${profix}${vision}/${target}/get`, controller[target].getOne);
   router.get(target, `${profix}${vision}/${target}/get`, controller[target].getOne);
   router.post(target, `${profix}${vision}/${target}/:id/research`, controller[target].researchCreate);
   router.post(target, `${profix}${vision}/${target}/:id/research`, controller[target].researchCreate);
   router.post(target, `${profix}${vision}/${target}/:id/research/:research_id`, controller[target].researchUpdate);
   router.post(target, `${profix}${vision}/${target}/:id/research/:research_id`, controller[target].researchUpdate);

+ 32 - 0
app/service/achieve_apply.js

@@ -76,6 +76,38 @@ class Achieve_applyService extends CrudService {
     res.research.remove(research_id);
     res.research.remove(research_id);
     await res.save();
     await res.save();
   }
   }
+
+  async menuRemind({ user_id }) {
+    let res = await this.model.aggregate([
+      { $match: { user_id: ObjectId(user_id) } },
+      { $group: {
+        _id: '$status',
+        count: { $sum: 1 },
+      } },
+    ]);
+    res = JSON.parse(JSON.stringify(res));
+    res = res.map(i => ({ status: i._id, count: 1 }));
+    // 状态合并
+    // cs:0,-1,-5,6合成一个数据
+    // pf:1,-2合成一个
+    // hs:3,4,-5合成一个
+    // zs:5,6合成一个
+    // {name}
+    const computed = list => {
+      return res.reduce((p, n) => {
+        let num = 0;
+        if (list.includes(n.status)) num = n.count;
+        return p + num;
+      }, 0);
+    };
+    const obj = {
+      cs: computed([ '0', '-1' ]),
+      pf: computed([ '1', '-2' ]),
+      hs: computed([ '3', '4' ]),
+      zs: computed([ '5', '6' ]),
+    };
+    return obj;
+  }
 }
 }
 
 
 module.exports = Achieve_applyService;
 module.exports = Achieve_applyService;