zs 1 år sedan
förälder
incheckning
42dd580a6d
2 ändrade filer med 51 tillägg och 0 borttagningar
  1. 15 0
      src/controller/Statistics.controller.ts
  2. 36 0
      src/service/Statistics.service.ts

+ 15 - 0
src/controller/Statistics.controller.ts

@@ -0,0 +1,15 @@
+import { Controller, Get, Inject } from '@midwayjs/decorator';
+import { ApiTags } from '@midwayjs/swagger';
+import { StatisticsService } from '../service/Statistics.service';
+@ApiTags(['统计'])
+@Controller('/Statistics')
+export class StatisticsController {
+  @Inject()
+  service: StatisticsService;
+
+  @Get('/order')
+  async orderView() {
+    const list = await this.service.order();
+    return list;
+  }
+}

+ 36 - 0
src/service/Statistics.service.ts

@@ -0,0 +1,36 @@
+import { Provide } from '@midwayjs/decorator';
+import { InjectEntityModel } from '@midwayjs/typegoose';
+import { ReturnModelType } from '@typegoose/typegoose';
+import { User } from '../entity/User.entity';
+import { OrderDetail } from '../entity/OrderDetail.entity';
+const moment = require('moment');
+interface infoInterface {
+  name: string;
+  value: number;
+}
+@Provide()
+export class StatisticsService {
+  @InjectEntityModel(User)
+  userModel: ReturnModelType<typeof User>;
+
+  @InjectEntityModel(OrderDetail)
+  orderDetailModel: ReturnModelType<typeof OrderDetail>;
+
+  // 每个月下单数量
+  async order(): Promise<Array<any>> {
+    const result = [];
+    const time = moment().format('YYYY');
+    for (let i = 1; i < 13; i++) {
+      let buy_time;
+      if (i < 10) buy_time = `${time}-0${i}`;
+      else buy_time = `${time}-${i}`;
+      const info: infoInterface = { name: '', value: 0 };
+      info.name = i + '月';
+      info.value = await this.orderDetailModel
+        .count({ buy_time: { $regex: buy_time } })
+        .lean();
+      result.push(info);
+    }
+    return result;
+  }
+}