123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 'use strict';
- const Controller = require('egg').Controller;
- // 车辆行驶数据分析模块
- class VehicleDrivingController2 extends Controller {
- constructor(ctx) {
- super(ctx);
- // 特殊的入参校验可以重写在这,默认可以使用commonRule
- this.createRule = {
- level: [ 'province', 'city' ], // 查询等级:省份,城市
- startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含
- endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日)
- };
- }
- // 驾驶行为 基础
- async index() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // // 调用 Service 进行业务处理
- const data = await service.drivingBehaviorInfoService2.index(payload, this.ctx.params.id);
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 驾驶行为 月年
- async mixMY() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // // 调用 Service 进行业务处理
- let key = this.ctx.params.id;
- switch (payload.type) {
- case '1':
- key += 'Month';
- break;
- case '2':
- key += 'Year';
- break;
- default:
- break;
- }
- const data = await service.drivingBehaviorInfoService2.mixMY(payload, key);
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 驾驶行为 不同车速下耗电量
- async avgSpeedPower() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // // 调用 Service 进行业务处理
- const data = await service.drivingBehaviorInfoService2.avg(payload, 'avgSpeedPower');
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 驾驶行为 油耗
- async avgOil() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // 调用 Service 进行业务处理
- const data = await service.drivingBehaviorInfoService2.avgOil(payload);
- // // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 驾驶行为 充电模式
- async chargeType() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // // 调用 Service 进行业务处理
- const data = await service.drivingBehaviorInfoService2.sum(payload, 'chargeType');
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 驾驶行为 平均量
- async count() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // // 调用 Service 进行业务处理
- const data = await service.drivingBehaviorInfoService2.count(payload, this.ctx.params.id);
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- }
- module.exports = VehicleDrivingController2;
|