123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- 'use strict';
- const Controller = require('egg').Controller;
- // 车辆数量统计分析管理
- class CarNumberController extends Controller {
- constructor(ctx) {
- super(ctx);
- // 特殊的入参校验可以重写在这,默认可以使用commonRule
- this.createRule = {
- startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含
- endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日)
- type: [ '1', '2' ], // 类型分为 0日 1月 2年
- };
- this.createSaledRule = {
- saledTime: { type: 'number', min: 0, required: false },
- };
- }
- // 实销车辆统计分析 实销车辆百分比统计分析 入网车辆总数统计分析
- async index() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getDataAdd(payload, { count: item => parseFloat((item.saledCount * 100 / item.count).toFixed(0)),
- value: [ 'saledCount', 'count' ] });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 实销车辆统计分析 实销车辆百分比统计分析 入网车辆总数统计分析
- async increment() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getData(payload);
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 在线车辆分布统计分析
- async online() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getData(payload);
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 活跃车辆
- async active() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // 调用 Service 进行业务处理
- const data = ctx.getDataAdd(payload, {
- count: item => item.count - item.activeCount,
- value: [ 'activeCount', 'count' ] });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 车辆上报分类信息统计
- async report() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getData(payload, {
- count: item => item.vhl_val_cnt + item.alarm_cnt + item.failure_cnt,
- value: [ 'vhl_val_cnt', 'alarm_cnt', 'failure_cnt' ],
- });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async onlineCount() {
- const { ctx } = this;
- // 调用 Service 进行业务处理
- const data = await ctx.getOnlineCount();
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async saledCity() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createSaledRule);
- // 调用 Service 进行业务处理
- const data = await ctx.getSaledCity(payload);
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- async activeExt() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate({});
- // 调用 Service 进行业务处理
- const data = await ctx.getActiveExt(payload);
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- }
- module.exports = CarNumberController;
|