lrf402788946 4 gadi atpakaļ
vecāks
revīzija
2493d171a4
3 mainītis faili ar 59 papildinājumiem un 6 dzēšanām
  1. 37 4
      README.md
  2. 3 2
      app/controller/car/.daily.js
  3. 19 0
      app/service/car/daily.js

+ 37 - 4
README.md

@@ -2,12 +2,17 @@
 
 此项目没有修改框架,所以model部分如果使用子目录,会引发错误,controller和service,router使用子目录不会产生bug
 
-添加模糊查询:naf-framework-mongoose>lib>service>crud-service中
-query和count在操作model前加上下面的代码
+添加模糊查询
+>符号及使用=>在parameters中的query`{key:value} => {key:%value%}`
+
+>位置:`naf-framework-mongoose>lib>service>crud-service`中
+
+`query`和`count`在`操作model前`加上下面的代码
+
 > filter = this.turnFilter(filter);
 
-之后添加函数 turnFilter
->
+之后添加函数 `turnFilter`
+```
 turnFilter(filter){
     let str = /^%\w*%$/;
     let keys = Object.keys(filter);
@@ -21,7 +26,35 @@ turnFilter(filter){
     }
     return filter;
   }
+```
+添加日期范围查询
+>符号及使用=>在parameters中的query,`{key:value} => {'${key}@start/end':'${key}@start/end'}`
+
+>位置:`naf-framework-mongoose>lib>service>crud-service`中
+
+`query`和`count`在`操作model前`加上下面的代码
 
+> filter = this.turnDateRangeQuery(filter);
+
+之后添加函数 `turnDateRangeQuery`
+```
+turnDateRangeQuery(filter){
+    const keys = Object.keys(filter);
+    for (const k of keys) {
+      if (k.includes('@')) {
+         const karr = k.split('@');
+        //  因为是针对处理范围日期,所以必须只有,开始时间和结束时间
+         if (karr.length === 2) {
+            const type = karr[1];
+            if (type === 'start') filter[karr[0]] = { ...get(filter, karr[0], {}), $gte: filter[k] };
+            else filter[karr[0]] = { ...get(filter, karr[0], {}), $lte: filter[k] };
+            delete filter[k]
+         }
+      }
+    }
+    return filter;
+  }
+```
 ## QuickStart
 
 <!-- add docs here for user -->

+ 3 - 2
app/controller/car/.daily.js

@@ -22,8 +22,9 @@ module.exports = {
         car_no: "%car_no%",
         money: "money",
         item: "%item%",
-        date: "date",
-        status:"status"
+        'date@start': "date@start",
+        'date@end': "date@end",
+        status: "status",
       },
     },
     service: "query",

+ 19 - 0
app/service/car/daily.js

@@ -11,6 +11,25 @@ class DailyService extends CrudService {
     super(ctx, 'daily');
     this.model = this.ctx.model.Daily;
   }
+
+  // async query(data, options) {
+  //   const keys = Object.keys(data);
+  //   const query = {};
+  //   for (const k of keys) {
+  //     if (k.includes('-')) {
+  //       const karr = k.split('-');
+  //       if (karr.length === 2) {
+  //         const type = karr[1];
+  //         if (type === 'start') query[karr[0]] = { ..._.get(query, karr[0], {}), $gte: data[k] };
+  //         else query[karr[0]] = { ..._.get(query, karr[0], {}), $lte: data[k] };
+  //       }
+  //     }
+  //   }
+  //   console.log(query);
+  //   const res = await this.model.find(query);
+  //   console.log(res);
+  //   return res;
+  // }
 }
 
 module.exports = DailyService;