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