'use strict'; const Controller = require('egg').Controller; // 单车行为统计分析 class CarController extends Controller { constructor(ctx) { super(ctx); this.createRule = { pageNumber: { type: 'number', min: 0, required: false }, pageSize: { type: 'number', min: 0, required: false }, startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含 endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日) mode: { type: 'string', required: false }, // 分为4种 0代表0-60 1代表60-75 2代表75-90 3代表90-100 modeKey: { type: 'string', required: false }, // 分为2种 driving_safety_score驾驶得分(默认) energyConservationScore节能得分 }; this.createIndexRule = { pageNumber: { type: 'number', min: 0, required: false }, pageSize: { type: 'number', min: 0, required: false }, startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含 endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日) vin: { type: 'string' }, // 车辆vin }; this.createVinRule = { pageNumber: { type: 'number', min: 0, required: false }, pageSize: { type: 'number', min: 0, required: false }, startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含 endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日) vin: { type: 'string' }, // 车辆vin }; this.createListRule = { pageNumber: { type: 'number', min: 0, required: false }, pageSize: { type: 'number', min: 0, required: false }, }; } // 单车 用户驾驶评分分布/节能驾驶评分分布 列表 async listWithDrive() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { let data; if (payload.modeKey == 'driving_safety_score') { data = { list: [{ _id: '5eda1a7a96e2d37b6c004840', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '95.0', speeding_score: '99.0', turn_score: '99.0', hs_turn_score: '100.0', at_night_drive_score: '100.0', un_tie_sb_score: '100.0', leave_sw_score: '99.0', dsm_score: '100.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004841', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '95.0', speeding_score: '99.0', turn_score: '99.0', hs_turn_score: '100.0', at_night_drive_score: '100.0', un_tie_sb_score: '100.0', leave_sw_score: '99.0', dsm_score: '100.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004842', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '94.7', speeding_score: '99.0', turn_score: '99.0', hs_turn_score: '100.0', at_night_drive_score: '100.0', un_tie_sb_score: '90.0', leave_sw_score: '99.0', dsm_score: '90.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004843', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99', decelerate_score: '93.95', speeding_score: '99', turn_score: '99', hs_turn_score: '100', at_night_drive_score: '100', un_tie_sb_score: '100', leave_sw_score: '99', dsm_score: '100', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', speeding_score: '99', turn_score: '99', hs_turn_score: '100', at_night_drive_score: '100', un_tie_sb_score: '100', leave_sw_score: '99', dsm_score: '100', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', speeding_score: '99', turn_score: '99', hs_turn_score: '100', at_night_drive_score: '100', un_tie_sb_score: '100', leave_sw_score: '99', dsm_score: '100', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }], total: 116 }; } else if (payload.modeKey == 'energyConservationScore') { data = { list: [{ _id: '5eda1a7a96e2d37b6c004840', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '95.0', sa_score: '60.0', sd_score: '60.0', oil_score: '60.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004841', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '95.0', sa_score: '60.0', sd_score: '60.0', oil_score: '60.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004842', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99.0', decelerate_score: '94.7', sa_score: '60.0', sd_score: '60.0', oil_score: '60.0', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004843', vin: 'LFPH6BCP8L2L00061', acceleration_score: '99', decelerate_score: '93.95', sa_score: '60', sd_score: '60', oil_score: '60', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229', user_real_name: '王雨恒' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004844', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004845', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004845', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004845', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004845', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004846', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004846', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004846', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }, { _id: '5eda1a7a96e2d37b6c004846', vin: 'FAWHQC229TEST0008', acceleration_score: '82.74', decelerate_score: '99', sa_score: '60', sd_score: '60', oil_score: '99', series_code: 'C229', series_name: 'C229', model_code: 'EV-4WD-C229', model_name: 'EV-4WD-C229' }], total: 116 }; } ctx.success({ data }); } else { const data = await service.carService.listWithDrive(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 单车信息查询 async list() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createListRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { list: [ { model_code: 'CA7155A6中配', model_name: 'CA7155A6中配', series_code: 'D357', series_name: 'D357', vin: 'TESTE202005080001', }, ], total: 94462, }; ctx.success({ data }); } else { const data = await service.carService.list(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 单车行为查询 async indexSingle() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createIndexRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { avg_speed: 0, drive_duration: 0, mileage: 0, mileage_cnt: 0, week_drive_duration: 0, week_mileage: 0, week_mileage_cnt: 0, work_drive_duration: 0, work_mileage: 0, work_mileage_cnt: 0, }; ctx.success({ data }); } else { const data = await service.carService.indexSingle(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 单车 出行分布信息 async indexTrip() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createIndexRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = [ { count: 2, dsmCount: 0, _id: 7, }, ]; ctx.success({ data }); } else { const data = await service.carService.indexTrip(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 单车 单次行程 列表 async listWithTravel() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createVinRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { list: [ { acc_avg_speed: '0.00', acc_cnt: 5, acc_duration: 0, acceleration_cnt: 7, air_duration: 2431559, avg_oil: '19.1', avg_power_consumption: '0.00', avg_speed: '6.13', bsd_cnt: 13, bsd_status: 1, decelerate_cnt: 3, drive_duration: 3697679, dsm_duration: 1098068, dsm_status: 1, end_time: 1593338800366, fcw_cnt: 0, fcw_status: 2, ldw_cnt: 0, ldw_status: 2, leave_sw_cnt: 13, lka_cnt: 0, lka_status: 2, mileage: '6.3', out_avg_degrees: '25.31', speeding_cnt: 26, start_time: 1593335102687, total_score: '83', turn_cnt: 0, un_tie_sb_duration: 334237, }, ], total: 10, }; ctx.success({ data }); } else { const data = await service.carService.listWithTravel(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 单车 单次充电周期 列表 async listWithCharging() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createVinRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { list: [ { airAvgDegrees: 0, airDuration: 0, avgPowerConsumption: 0, avgSpeed: 0, driveDuration: 0, endElectricity: 0, end_time: 1593338800366, mileage: 0, outAvgDegrees: 0, startElectricity: 0, start_time: 1593335102687, }, ], total: 10, }; ctx.success({ data }); } else { const data = await service.carService.listWithCharging(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } async tbox() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { list: [ { _id: '20200915LFPH4ACP9L1B31841', _class: 'com.faw.etl.vdd.mongo.entity.TboxOnlineInfo', vin: 'LFPH4ACP9L1B31841', series_code: 'H5', series_name: 'H5', online_time: 1600181574637, }, ], total: 285713, }; ctx.success({ data }); } else { const data = await service.carService.tbox(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } } module.exports = CarController;