'use strict'; const Controller = require('egg').Controller; // 车辆热力分布 class CarHeatController extends Controller { constructor(ctx) { super(ctx); // 特殊的入参校验可以重写在这,默认可以使用commonRule this.createRule = { startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含 endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日) }; this.createVinRule = { vin: { type: 'string' }, // 车辆vin longitude: { type: 'number' }, // 经度 latitude: { type: 'number' }, // 纬度 }; this.createTravelRule = { vin: { type: 'string' }, // 车辆vin pageNumber: { type: 'number', min: 0, required: false }, pageSize: { type: 'number', min: 0, required: false }, startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含 endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日) }; } // 实销车分布 async saled() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate({}); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = ctx.getSaled(payload); ctx.success({ data }); } else { const data = await service.tVehicleRecordService2.saled(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 在线车分布 async online() { const { ctx, service } = this; // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = ctx.getMapP(); ctx.success({ data }); } else { const data = await service.tVehicleOnlineInfoService.online(); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 离线车分布 async offline() { const { ctx, service } = this; // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = ctx.getMapP(); ctx.success({ data }); } else { const data = await service.tVehicleOnlineInfoService.offline(); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 实时快照 async liveStatus() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createVinRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = { address: '吉林省长春市南关区', online_status: '1', car: '下电,网络故障', behavior: '急加速', danger: '安全气囊弹出', idriving_status: '手动驾驶状态', traffic: '1', event: '发动机常见故障,电气系统常见故障' }; ctx.success({ data }); } else { const data = await service.tVehicleOnlineInfoService.liveStatus(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 历史轨迹 async travel() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createTravelRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = ctx.getMapP(10); ctx.success({ data }); } else { const data = await service.tVehicleOnlineInfoService.travel(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } // 活跃车分布 async active() { const { ctx, service } = this; // 校验参数 组装参数 const payload = ctx.validate(this.createRule); // 调用 Service 进行业务处理 if (ctx.isDev()) { const data = ctx.getSaled(payload); ctx.success({ data }); } else { const data = await service.tVehicleRecordService2.activeLocation(payload); // 设置响应内容和响应状态码 ctx.success({ data }); } } } module.exports = CarHeatController;