新增消息发送统计图表
This commit is contained in:
parent
0faa4e3dd8
commit
9f05383de0
@ -0,0 +1,72 @@
|
||||
package cn.com.tenlion.usercenter.controller.api.versualreport;
|
||||
|
||||
import cn.com.tenlion.usercenter.service.visualreport.IUnifiedMessagingService;
|
||||
import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.result.ErrorResult;
|
||||
import ink.wgink.pojo.result.SuccessResultData;
|
||||
import ink.wgink.util.RegexUtil;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: UnifiedMessagingCountroller
|
||||
* @Description: 统一消息统计可视化
|
||||
* @Author: wanggeng
|
||||
* @Date: 2021/10/24 4:04 下午
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "统一消息统计可视化接口")
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/visual-report/unified-messaging")
|
||||
public class UnifiedMessagingController {
|
||||
|
||||
@Autowired
|
||||
private IUnifiedMessagingService unifiedMessagingService;
|
||||
|
||||
@ApiOperation(value = "日发送统计", notes = "日发送统计接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "date", value = "当天", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("day-send-count/{date}")
|
||||
public SuccessResultData<Map<String, Object>> daySendCount(@PathVariable("date") String date) {
|
||||
if (!RegexUtil.isDate(date)) {
|
||||
throw new ParamsException("日期格式错误");
|
||||
}
|
||||
return new SuccessResultData<>(unifiedMessagingService.daySendCount(date));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "周发送统计", notes = "周发送统计接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "day", value = "当天", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("week-send-count/{day}")
|
||||
public SuccessResultData<Map<String, Object>> weekSendCount(@PathVariable("day") String day) {
|
||||
if (!RegexUtil.isDate(day)) {
|
||||
throw new ParamsException("日期格式错误");
|
||||
}
|
||||
return new SuccessResultData<>(unifiedMessagingService.weekSendCount(day));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "月发送统计", notes = "月发送统计接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "day", value = "当天", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("month-send-count/{day}")
|
||||
public SuccessResultData<Map<String, Object>> monthSendCount(@PathVariable("day") String day) {
|
||||
if (!RegexUtil.isDate(day)) {
|
||||
throw new ParamsException("日期格式错误");
|
||||
}
|
||||
return new SuccessResultData<>(unifiedMessagingService.monthSendCount(day));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package cn.com.tenlion.usercenter.controller.route.visualreport;
|
||||
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
* @ClassName: UnifiedMessagingRouteController
|
||||
* @Description: 统一消息统计可视化路由
|
||||
* @Author: wanggeng
|
||||
* @Date: 2021/10/24 3:30 下午
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "统一消息统计可视化路由")
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/visual-report/unified-messaging")
|
||||
public class UnifiedMessagingRouteController {
|
||||
|
||||
@GetMapping("report")
|
||||
public ModelAndView report() {
|
||||
return new ModelAndView("visual-report/report");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.com.tenlion.usercenter.service.visualreport;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: IUnifiedMessagingService
|
||||
* @Description: 统一消息可视化统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2021/10/24 4:05 下午
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface IUnifiedMessagingService {
|
||||
|
||||
/**
|
||||
* 日发送统计
|
||||
*
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> daySendCount(String date);
|
||||
|
||||
/**
|
||||
* 周发送统计
|
||||
*
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> weekSendCount(String date);
|
||||
|
||||
/**
|
||||
* 月发送统计
|
||||
*
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> monthSendCount(String date);
|
||||
}
|
@ -0,0 +1,184 @@
|
||||
package cn.com.tenlion.usercenter.service.visualreport.service;
|
||||
|
||||
import cn.com.tenlion.usercenter.service.visualreport.IUnifiedMessagingService;
|
||||
import ink.wgink.common.base.DefaultBaseService;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.instantmessage.pojo.pos.NoticePO;
|
||||
import ink.wgink.module.instantmessage.service.INoticeService;
|
||||
import ink.wgink.module.sms.pojo.pos.sms.SmsPO;
|
||||
import ink.wgink.module.sms.service.sms.ISmsService;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: UnifiedMessagingServiceImpl
|
||||
* @Description: 统一消息统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2021/10/24 4:06 下午
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Service
|
||||
public class UnifiedMessagingServiceImpl extends DefaultBaseService implements IUnifiedMessagingService {
|
||||
|
||||
@Autowired
|
||||
private ISmsService smsService;
|
||||
@Autowired
|
||||
private INoticeService noticeService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> daySendCount(String date) {
|
||||
List<SmsPO> smsPOs = smsService.listPOByDate(date);
|
||||
List<NoticePO> noticePOs = noticeService.listPOByDate(date);
|
||||
|
||||
int smsSendCount = smsPOs.size();
|
||||
int smsSendSuccessCount = 0;
|
||||
|
||||
int noticeSendCount = noticePOs.size();
|
||||
int noticeSendSuccessCount = 0;
|
||||
|
||||
for (SmsPO smsPO : smsPOs) {
|
||||
if (smsPO.getSendStatus() == 1) {
|
||||
smsSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
for (NoticePO noticePO : noticePOs) {
|
||||
if (noticePO.getIsSend() == 1) {
|
||||
noticeSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
Map<String, Object> resultJsonMap = getHashMap(12);
|
||||
resultJsonMap.put("smsSendCount", smsSendCount);
|
||||
resultJsonMap.put("smsSendSuccessCount", smsSendSuccessCount);
|
||||
resultJsonMap.put("smsSendSuccessPercent", smsSendCount > 0 ? String.format("%.2f", (smsSendSuccessCount / (double) smsSendCount * 100)) : "0.00");
|
||||
resultJsonMap.put("noticeSendCount", noticeSendCount);
|
||||
resultJsonMap.put("noticeSendSuccessCount", noticeSendSuccessCount);
|
||||
resultJsonMap.put("noticeSendSuccessPercent", noticeSendCount > 0 ? String.format("%.2f", (noticeSendSuccessCount / (double) noticeSendCount * 100)) : "0.00");
|
||||
|
||||
return resultJsonMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> weekSendCount(String date) {
|
||||
DateTime dateDateTime = DateTime.parse(date, DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
DateTime firstDateTime = dateDateTime.dayOfWeek().withMinimumValue();
|
||||
String startTime = firstDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
DateTime endDateTime = dateDateTime.dayOfWeek().withMaximumValue();
|
||||
String endTime = endDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
|
||||
List<SmsPO> smsPOs = smsService.listPOByStartTimeAndEndTime(startTime, endTime);
|
||||
List<NoticePO> noticePOs = noticeService.listPOByStartTimeAndEndTime(startTime, endTime);
|
||||
|
||||
List<String> xDatas = new ArrayList<>();
|
||||
List<Integer> ySmsSendDatas = new ArrayList<>();
|
||||
List<Integer> ySmsSendSuccessDatas = new ArrayList<>();
|
||||
List<Integer> yNoticeSendDatas = new ArrayList<>();
|
||||
List<Integer> yNoticeSendSuccessDatas = new ArrayList<>();
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int smsSendCount = 0;
|
||||
int smsSendSuccessCount = 0;
|
||||
int noticeSendCount = 0;
|
||||
int noticeSendSuccessCount = 0;
|
||||
DateTime dayOfWeek = dateDateTime.withDayOfWeek(i + 1);
|
||||
String dayOfWeekDate = dayOfWeek.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
|
||||
xDatas.add(dayOfWeekDate);
|
||||
for (SmsPO smsPO : smsPOs) {
|
||||
if (!smsPO.getGmtCreate().startsWith(dayOfWeekDate)) {
|
||||
continue;
|
||||
}
|
||||
smsSendCount++;
|
||||
if (smsPO.getSendStatus() == 1) {
|
||||
smsSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
for (NoticePO noticePO : noticePOs) {
|
||||
if (!noticePO.getGmtCreate().startsWith(dayOfWeekDate)) {
|
||||
continue;
|
||||
}
|
||||
noticeSendCount++;
|
||||
if (noticePO.getIsSend() == 1) {
|
||||
noticeSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
ySmsSendDatas.add(smsSendCount);
|
||||
ySmsSendSuccessDatas.add(smsSendSuccessCount);
|
||||
yNoticeSendDatas.add(noticeSendCount);
|
||||
yNoticeSendSuccessDatas.add(noticeSendSuccessCount);
|
||||
}
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("xDatas", xDatas);
|
||||
result.put("ySmsSendDatas", ySmsSendDatas);
|
||||
result.put("ySmsSendSuccessDatas", ySmsSendSuccessDatas);
|
||||
result.put("yNoticeSendDatas", yNoticeSendDatas);
|
||||
result.put("yNoticeSendSuccessDatas", yNoticeSendSuccessDatas);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> monthSendCount(String date) {
|
||||
DateTime dateDateTime = DateTime.parse(date, DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
DateTime firstDateTime = dateDateTime.dayOfMonth().withMinimumValue();
|
||||
String startTime = firstDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
DateTime endDateTime = dateDateTime.dayOfMonth().withMaximumValue();
|
||||
String endTime = endDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
|
||||
List<SmsPO> smsPOs = smsService.listPOByStartTimeAndEndTime(startTime, endTime);
|
||||
List<NoticePO> noticePOs = noticeService.listPOByStartTimeAndEndTime(startTime, endTime);
|
||||
|
||||
List<String> xDatas = new ArrayList<>();
|
||||
List<Integer> ySmsSendDatas = new ArrayList<>();
|
||||
List<Integer> ySmsSendSuccessDatas = new ArrayList<>();
|
||||
List<Integer> yNoticeSendDatas = new ArrayList<>();
|
||||
List<Integer> yNoticeSendSuccessDatas = new ArrayList<>();
|
||||
int totalDay = dateDateTime.dayOfMonth().getMaximumValue();
|
||||
for (int i = 0; i < totalDay; i++) {
|
||||
int smsSendCount = 0;
|
||||
int smsSendSuccessCount = 0;
|
||||
int noticeSendCount = 0;
|
||||
int noticeSendSuccessCount = 0;
|
||||
DateTime dayOfWeek = dateDateTime.withDayOfMonth(i + 1);
|
||||
String dayOfWeekDate = dayOfWeek.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
|
||||
xDatas.add(dayOfWeekDate);
|
||||
for (SmsPO smsPO : smsPOs) {
|
||||
if (!smsPO.getGmtCreate().startsWith(dayOfWeekDate)) {
|
||||
continue;
|
||||
}
|
||||
smsSendCount++;
|
||||
if (smsPO.getSendStatus() == 1) {
|
||||
smsSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
for (NoticePO noticePO : noticePOs) {
|
||||
if (!noticePO.getGmtCreate().startsWith(dayOfWeekDate)) {
|
||||
continue;
|
||||
}
|
||||
noticeSendCount++;
|
||||
if (noticePO.getIsSend() == 1) {
|
||||
noticeSendSuccessCount++;
|
||||
}
|
||||
}
|
||||
ySmsSendDatas.add(smsSendCount);
|
||||
ySmsSendSuccessDatas.add(smsSendSuccessCount);
|
||||
yNoticeSendDatas.add(noticeSendCount);
|
||||
yNoticeSendSuccessDatas.add(noticeSendSuccessCount);
|
||||
}
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("xDatas", xDatas);
|
||||
result.put("ySmsSendDatas", ySmsSendDatas);
|
||||
result.put("ySmsSendSuccessDatas", ySmsSendSuccessDatas);
|
||||
result.put("yNoticeSendDatas", yNoticeSendDatas);
|
||||
result.put("yNoticeSendSuccessDatas", yNoticeSendSuccessDatas);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
323
src/main/resources/templates/visual-report/report.html
Normal file
323
src/main/resources/templates/visual-report/report.html
Normal file
@ -0,0 +1,323 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" class="layui-fluid layui-anim layui-anim-fadein">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<!-- 发送数量,默认今日 -->
|
||||
<div class="layui-col-sm6 layui-col-md6 layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
短信发送量
|
||||
<span class="layui-badge layui-bg-blue layuiadmin-badge">天</span>
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="smsSendCount" class="layuiadmin-big-font">0</p>
|
||||
<p>
|
||||
成功率
|
||||
<span class="layuiadmin-span-color">
|
||||
<span id="smsSendSuccessPercent">0</span>% <i class="layui-inline fa fa-arrow-up"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-sm6 layui-col-md6 layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
通知发送量
|
||||
<span class="layui-badge layui-bg-blue layuiadmin-badge">天</span>
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="noticeSendCount" class="layuiadmin-big-font">0</p>
|
||||
<p>
|
||||
成功率
|
||||
<span class="layuiadmin-span-color">
|
||||
<span id="noticeSendSuccessPercent">0</span>% <i class="layui-inline fa fa-arrow-up"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 周统计情况 -->
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-sm12 layui-col-md12 layui-col-xs12" style="height: 300px;">
|
||||
<div id="weekSendChart" class="layui-col-xs12" style="height: 100%; background: #fff; padding: 7.5px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 月统计情况 -->
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-sm12 layui-col-md12 layui-col-xs12" style="height: 300px;">
|
||||
<div id="monthSendChart" class="layui-col-xs12" style="height: 100%; background: #fff; padding: 7.5px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'laydate', 'animate-numbers', 'common', 'echarts'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
var common = layui.common;
|
||||
var resizeTimeout = null;
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
count: {
|
||||
smsSendCount: 0,
|
||||
smsSendSuccessPercent: 0,
|
||||
noticeSendCount: 0,
|
||||
noticeSendSuccessPercent: 0,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initSendCount: function(date) {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/visual-report/unified-messaging/day-send-count/{date}', [date]), {}, null, function(code, data) {
|
||||
self.count.smsSendCount = data.data.smsSendCount;
|
||||
self.count.smsSendSuccessPercent = data.data.smsSendSuccessPercent;
|
||||
self.count.noticeSendCount = data.data.noticeSendCount;
|
||||
self.count.noticeSendSuccessPercent = data.data.noticeSendSuccessPercent;
|
||||
|
||||
self.$nextTick(function() {
|
||||
$('#smsSendCount').animateNumbers(self.count.smsSendCount);
|
||||
$('#smsSendSuccessPercent').animateNumbers(self.count.smsSendSuccessPercent);
|
||||
$('#noticeSendCount').animateNumbers(self.count.noticeSendCount);
|
||||
$('#noticeSendSuccessPercent').animateNumbers(self.count.noticeSendSuccessPercent);
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
})
|
||||
},
|
||||
autoPlaySendCount: function(chart, option) {
|
||||
var currentIndex = -1;
|
||||
setInterval(function() {
|
||||
var dataLen = option.series[0].data.length;
|
||||
// 取消之前高亮的图形
|
||||
chart.dispatchAction({
|
||||
type: 'downplay',
|
||||
seriesIndex: 0,
|
||||
dataIndex: currentIndex
|
||||
});
|
||||
currentIndex = (currentIndex + 1) % dataLen;
|
||||
// 高亮当前图形
|
||||
chart.dispatchAction({
|
||||
type: 'highlight',
|
||||
seriesIndex: 0,
|
||||
dataIndex: currentIndex
|
||||
});
|
||||
// 显示 tooltip
|
||||
chart.dispatchAction({
|
||||
type: 'showTip',
|
||||
seriesIndex: 0,
|
||||
dataIndex: currentIndex
|
||||
});
|
||||
}, 3000);
|
||||
},
|
||||
initWeekSendCount: function(date) {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/visual-report/unified-messaging/week-send-count/{date}', [date]), {}, null, function(code, data) {
|
||||
var option = {
|
||||
title: {
|
||||
text: '周短信/通知发送情况'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross',
|
||||
label: {
|
||||
backgroundColor: '#6a7985'
|
||||
}
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: data.data.xDatas
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '短信发送数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.ySmsSendDatas
|
||||
},
|
||||
{
|
||||
name: '通知发送数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.yNoticeSendDatas
|
||||
},
|
||||
{
|
||||
name: '短信发送成功数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.yNoticeSendSuccessDatas
|
||||
},
|
||||
{
|
||||
name: '通知发送成功数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.ySmsSendSuccessDatas
|
||||
},
|
||||
]
|
||||
};
|
||||
var weekSendChart = echarts.init(document.getElementById('weekSendChart'));
|
||||
weekSendChart.setOption(option);
|
||||
self.autoPlaySendCount(weekSendChart, option);
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
})
|
||||
},
|
||||
initMonthSendCount: function(date) {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/visual-report/unified-messaging/month-send-count/{date}', [date]), {}, null, function(code, data) {
|
||||
var option = {
|
||||
title: {
|
||||
text: '月短信/通知发送情况'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross',
|
||||
label: {
|
||||
backgroundColor: '#6a7985'
|
||||
}
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: data.data.xDatas
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '短信发送数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.ySmsSendDatas
|
||||
},
|
||||
{
|
||||
name: '通知发送数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.yNoticeSendDatas
|
||||
},
|
||||
{
|
||||
name: '短信发送成功数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.yNoticeSendSuccessDatas
|
||||
},
|
||||
{
|
||||
name: '通知发送成功数量',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
areaStyle: {},
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: data.data.ySmsSendSuccessDatas
|
||||
},
|
||||
]
|
||||
};
|
||||
var monthSendChart = echarts.init(document.getElementById('monthSendChart'));
|
||||
monthSendChart.setOption(option);
|
||||
self.autoPlaySendCount(monthSendChart, option);
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
})
|
||||
},
|
||||
|
||||
},
|
||||
mounted: function() {
|
||||
var self = this;
|
||||
var date = common.formatDate('yyyy-MM-dd', new Date());
|
||||
|
||||
self.initSendCount(date);
|
||||
self.initWeekSendCount(date);
|
||||
self.initMonthSendCount(date);
|
||||
|
||||
$win.on('resize', function() {
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(function() {
|
||||
}, 500);
|
||||
});
|
||||
|
||||
$(document).on('click', '#search', function() {
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user