123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- '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;
|