12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 'use strict';
- const Controller = require('egg').Controller;
- // 消息中心统计分析管理
- class MsgCenterController extends Controller {
- constructor(ctx) {
- super(ctx);
- // 特殊的入参校验可以重写在这,默认可以使用commonRule
- this.createRule = {
- msgType: { type: 'number', required: false },
- startTime: { type: 'number', min: 0 }, // 开始时间的时间戳 包含
- endTime: { type: 'number', min: 0 }, // 结束时间的时间戳 不包含(客户端处理结束时间 下一日 ,下一月第一日 ,下一年第一日)
- type: [ '0', '1', '2' ], // 类型分为 0日 1月 2年
- };
- }
- // 消息渠道统计
- async channel() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getData(payload, {
- value: [ 'colorTotal', 'grayTotal' ],
- });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 消息查看率统计
- async read() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate(this.createRule);
- // 调用 Service 进行业务处理
- const data = await ctx.getDataAdd(payload, {
- value: [ 'readCount', 'total' ],
- });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- // 消息抵达率统计
- async over() {
- const { ctx } = this;
- // 校验参数 组装参数
- const payload = ctx.validate();
- // 调用 Service 进行业务处理
- const data = await ctx.getData(payload, {
- value: [ 'readTotal', 'unReadTotal' ],
- });
- // 设置响应内容和响应状态码
- ctx.success({ data });
- }
- }
- module.exports = MsgCenterController;
|