1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 'use strict';
- const Controller = require('egg').Controller;
- // 车辆云状态统计分析模块
- class CarStatusCloudController extends Controller {
- constructor(ctx) {
- super(ctx);
- // 特殊的入参校验可以重写在这,默认可以使用commonRule
- this.createRule = {
- vin: { type: 'string', required: false },
- startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含
- endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日)
- };
- }
- async normal() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // // 调用 Service 进行业务处理
- const data = await ctx.getData(payload,
- { count: item => item.danger_drive_cnt + item.safety_air_bag_cnt + item.fault_cnt +
- item.long_drive_cnt + item.speeding_cnt + item.un_tie_sb_cnt + item.leave_sw_cnt
- + item.acceleration_cnt + item.decelerate_cnt + item.turn_cnt + item.clu_cnt,
- value: [ 'danger_drive_cnt', 'safety_air_bag_cnt', 'fault_cnt', 'long_drive_cnt', 'speeding_cnt', 'un_tie_sb_cnt', 'leave_sw_cnt',
- 'acceleration_cnt', 'decelerate_cnt', 'turn_cnt', 'clu_cnt' ] });
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async fault() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // // 调用 Service 进行业务处理
- const data = await ctx.getData(payload,
- { count: item => item.fault_type1 + item.fault_type2 + item.fault_type3 + item.fault_type4
- + item.fault_type5 + item.fault_type6 + item.fault_type7,
- value: [ 'fault_type1', 'fault_type2', 'fault_type3', 'fault_type4',
- 'fault_type5', 'fault_type6', 'fault_type7' ] });
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async intelligence() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // // 调用 Service 进行业务处理
- const data = await ctx.getData(payload,
- { count: item => item.v_parking_cnt + item.acc_cnt,
- value: [ 'v_parking_cnt', 'acc_cnt' ] });
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async intelligenceMix() {
- const { ctx, service } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // // 调用 Service 进行业务处理
- const data = await ctx.getDataAdd(payload,
- { count: 'intel',
- value: [ 'pack', 'acc', 'intel', 'mileage_cnt' ] });
- // // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- }
- module.exports = CarStatusCloudController;
|