wzp
2021-09-16 96eac0ce567dc3eef6900ce57dcb4c029fac2082
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<%@ Page Language="C#"  masterpagefile="~/Main.master" AutoEventWireup="true" CodeFile="GwStatisV3.aspx.cs" Inherits="GwStatisV3Page" %>
 
<asp:Content ID="Content1" ContentPlaceHolderID="title" runat="Server">
    报表统计V3
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="Server">
    <script>
        $(function () {
        $(".input-daterange").datepicker({ keyboardNavigation: !1, forceParse: !1, autoclose: !0 });
            
            //查询
            $(".action-query").on("click", function () {
                var clientid = $("#clientid").val();
                var spid = $("#spid").val();
                var apid = $("#apid").val();
                var opid = $("#opid").val();
                var begintime = $("#begintime").val();
                var endtime = $("#endtime").val();
                var statistype = $("#statistype").val();
 
                var statisoption = 0;
 
                $(".statusoption").each(function () {
                    var me = $(this);
                    if (me.is(":checked"))
                        statisoption += parseInt(me.val());
                });
 
                $.post("gwstatisv3.ashx", { action: "loadStatisV3",
                    clientid: clientid, spid: spid, apid: apid, opid: opid, statistype: statistype, statisoption: statisoption, begintime: begintime, endtime: endtime
                }, function (result) {
                    if (!result.OK)
                        alert(result.Message);
                    else {
                        $("#resultTable").html(result.Message);
                    }
                }, "json");
            });
 
            //导出表格
            $(".action-export").on("click", function() {
                var clientid = $("#clientid").val();
                var spid = $("#spid").val();
                var apid = $("#apid").val();
                var opid = $("#opid").val();
                var begintime = $("#begintime").val();
                var endtime = $("#endtime").val();
                var statistype = $("#statistype").val();
 
                var statisoption = 0;
 
                $(".statusoption").each(function() {
                    var me = $(this);
                    if (me.is(":checked"))
                        statisoption += parseInt(me.val());
                });
                var url = "ExportDocument.aspx?action=exportGwStatisV3&ApMID=" + apid + "&ClientID=" + clientid + "&SPID=" + spid + "&OPID=" + opid
                + "&BeginTime=" + begintime + "&EndTime=" + endtime + "&Statistype=" + statistype + "&Statisoption=" + statisoption;
                window.location.href = url;
                
            });
            
        });
    </script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" runat="Server">
    <div class="searchCanvas form-inline">
        <div class="ibox">
            <div class="form-group ">
                <div class="input-group m-b">
                    <span class="input-group-addon">客户</span>
                    <select name="clientid" id="clientid" class="form-control">
                        <%=GenerateClientIDOptions()%>
                    </select>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <span class="input-group-addon">接入点</span>
                    <select name="apid" id="apid" class="form-control">
                        <%=GenerateAPIDOptions()%>
                    </select>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <span class="input-group-addon">通道</span>
                    <select name="opid" id="opid" class="form-control">
                        <%=GenerateOPIDOptions()%>
                    </select>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <span class="input-group-addon">帐号</span>
                    <select name="spid" id="spid" class="form-control">
                        <%=GenerateSpIDOptions()%>
                    </select>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <span class="input-group-addon">报表类型</span>
                    <select name="statistype" id="statistype" class="form-control">
                        <option value='YYYY"年"MM"月"DD"日"' <%=(StatisType==@"YYYY""年""MM""月""DD""日""" ? "selected" : "")%>>
                            日报表</option>
                        <option value='YYYY"年"MM"月"' <%=(StatisType==@"YYYY""年""MM""月""" ? "selected" : "")%>>
                            月报表</option>
                        <option value='YYYY"年第"WW"周"' <%=(StatisType==@"YYYY""年第""WW""周""" ? "selected" : "")%>>
                            周报表</option>
                    </select>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <input type="checkbox" class="statusoption icheck-me" data-color="blue" data-skin="minimal"
                        name="StatisOption" value="1" <%=((SelectedOptions & Dao.StatisOption.APID) == Dao.StatisOption.APID ? "checked" : "")%> />接入点
                    <input type="checkbox" class="statusoption icheck-me" data-color="blue" data-skin="minimal"
                        name="StatisOption" value="2" <%=((SelectedOptions & Dao.StatisOption.OPID) == Dao.StatisOption.OPID ? "checked" : "")%> />
                    通道
                    <input type="checkbox" class="statusoption icheck-me" data-color="blue" data-skin="minimal"
                        name="StatisOption" value="8" <%=((SelectedOptions & Dao.StatisOption.ClientID) == Dao.StatisOption.ClientID ? "checked" : "")%> />客户
                    <input type="checkbox" class="statusoption icheck-me" data-color="blue" data-skin="minimal"
                        name="StatisOption" value="4" <%=((SelectedOptions & Dao.StatisOption.SpID) == Dao.StatisOption.SpID ? "checked" : "")%> />账号
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <div class="input-daterange input-group <%--col-sm-10--%>" id="datepicker">
                        <span class="input-group-addon">时间范围&nbsp;<i class="fa fa-calendar"></i></span>
                        <input type="text" class="input-sm form-control" name="begintime" id="begintime"
                            value="<%=StartTime.ToString("yyyy-MM-dd") %>" />
                        <span class="input-group-addon">到</span> <span class="input-group-addon"><i class="fa fa-calendar">
                        </i></span>
                        <input type="text" class="input-sm form-control" name="endtime" id="endtime" value="<%=EndTime.ToString("yyyy-MM-dd") %>" />
                    </div>
                </div>
            </div>
            <div class="form-group ">
                <div class="input-group m-b">
                    <input type="button" value="查询" class="btn-primary btn action-query <%--btn-toolbar--%>" />
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <input type="button" value="导出" class="btn-warning btn action-export" />
                </div>
            </div>
        </div>
    </div>
    <div class="table-responsive">
        <table class="table table-striped table-bordered table-hover" id="resultTable">
        </table>
    </div>
    <div>
        <h4>
            统计说明</h4>
        <ul>
            <li class="text-info">业务统计为非实时统计,由后台进程每2小时统计一次。</li>
            <li>AP接收总量:客户提交到网关的计费总数 </li>
            <li>AP客户提交失败:客户提交到网关失败计费数(该部分数量不会从账户余额中扣除,返还中应忽略该部分,具体错误包含:签名不正确、余额不足、账号状态异常、提交字数超长等,即CMPP_SUBMIT_RES中直接返回失败的情况);</li>
            <li>AP未转发:客户提交到网关,但网关尚未通过通道提交</li>
            <li>AP转发失败:AP转发失败包括:通道提交失败+用户接收失败+业务处理直接拒绝;业务处理直接拒绝 指 网关业务服务器处理过程中发现错误的计费量(该部分包含 用户黑名单、非法关键字以及 无法找到合适通道等错误;在CMPP协议中,该部分错误将通过CMPP_REPORT体现)</li>
            <li>AP未知:通道提交成功,尚未收到成功或失败的状态报告</li>
            
            <li>AP需返还量:AP未知 + AP转发失败 + AP未转发</li>
            
            <li>OP提交总量:此网关提交到运营商通道的计费总数;</li>
            <li>OP失败:用户手机接收失败的计费数;</li>
            <li>OP成功:用户手机接收成功的计费数;</li>
            <li>OP未知:转发提交成功,但尚未收到状态报告的计费数;</li>
        </ul>
    </div>
</asp:Content>