1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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;
- }
- // 每个月注册数量
- async user(): Promise<Array<any>> {
- const result = [];
- const time = moment().format('YYYY');
- for (let i = 1; i < 13; i++) {
- let create_time;
- if (i < 10) create_time = `${time}-0${i}`;
- else create_time = `${time}-${i}`;
- result.push(
- await this.userModel
- .count({ create_time: { $regex: create_time } })
- .lean()
- );
- }
- return result;
- }
- }
|