wzp
2021-09-16 91912ad24d477ff24be56f0a22438303a8eae552
web/web/GwSp.aspx
New file
@@ -0,0 +1,618 @@
<%@ Page Language="C#" masterpagefile="~/Main.master"  AutoEventWireup="true" CodeFile="GwSp.aspx.cs" Inherits="_GwSp" %>
<asp:Content runat="server" ID="Content1" ContentPlaceHolderID="head">
    <script type="text/javascript" language="javascript">
        $(document).ready(function() {
            var pagination = new Pagination();
            pagination.setPageIndex(1);
            pagination.setPageSize(20);
            function loadPageList() {
                var spID = $("#spID").val();
                var apID = $("#apID").val();
                var clientID = $("#clientID").val();
                var opID = $("#opID").val();
                var routerType = $("#routerType").val();
                var clientName = $("#clientName").val();
                var chargeType = $("#chargeType").val();
                var resendStatus = $("#RESEND_STATUS").val();
                $.ajax({
                    url: "GwSp.ashx",
                    type: "POST",
                    data: { action: "loadGwSpAccountPageList", spID: spID, apID: apID, opID: opID, routerType: routerType, clientID: clientID, clientName: clientName, chargeType: chargeType, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize(), resendStatus: resendStatus },
                    success: function(result) {
                        if (result.OK) {
                            $("#gwspTable tbody").html(result.Message.Table);
                            pagination.setRecordCount(result.Message.TotalCount);
                            $("#pagination").html(pagination.getHtml());
                        } else {
                            mytek.alert(result.Message, result.OK);
                        }
                    }
                });
            }
            $(document).on("click", "a[data-index]", function() {
                pagination.setPageIndex($(this).attr("data-index"));
                loadPageList();
            });
            $("#checkAll").click(function() {
                $("input[name='checkbox']").prop("checked", $(this).is(":checked"));
            });
            $(document).on("click", ".action-modal-op", function() {
                var idArray = [];
                $("input[name='checkbox']:checkbox:checked").each(function() {
                    var id = $(this).val();
                    idArray.push(id);
                });
                if (idArray.length == 0) {
                    mytek.alert("请选择要修改的账号!", false);
                    return;
                }
                $("#selected-op-box").text(idArray.join(","));
                $("#opDialog").modal("show");
            });
            $(document).on("click", ".action-update-op", function() {
                var idArray = [];
                $("input[name='checkbox']:checkbox:checked").each(function() {
                    var id = $(this).val();
                    idArray.push(id);
                });
                if (idArray.length == 0) {
                    mytek.alert("请选择要修改的账号!", false);
                    return;
                }
                var unopID = $("#UNOPID").val();
                var ctopID = $("#CTOPID").val();
                var cmopID = $("#CMOPID").val();
                var cmGroupID = $("#CMGROUPID").val();
                var cuGroupID = $("#CUGROUPID").val();
                var ctGroupID = $("#CTGROUPID").val();
                $.ajax({
                    url: "GwSp.ashx",
                    method: "POST",
                    data: { idArray: $.toJSON(idArray), cmopID: cmopID, ctopID: ctopID, unopID: unopID, cmGroupID: cmGroupID, cuGroupID: cuGroupID, ctGroupID: ctGroupID, action: "batchUpdateOp" },
                    success: function(result) {
                        mytek.alert(result.Message, result.OK, function() {
                            loadPageList();
                        });
                    }
                });
            });
            $(document).on("click", ".action-charge", function() {
                var id = $(this).data("id");
                var amount = $("#chargeDialog #amount").val();
                var remark = $("#chargeDialog #remark").val();
                $.post("gwsp.ashx", { action: "charge", spid: id, amount: amount, remark: remark },
                function(result) {
                    if (result.OK) {
                        mytek.alert(result.Message, result.OK, function() {
                            $("#chargeDialog #amount").val("");
                            $("#chargeDialog #remark").val("");
                            $("#chargeDialog").modal("hide");
                            loadPageList();
                        });
                    } else {
                        mytek.alert(result.Message, result.OK);
                    }
                }, "json");
            });
            $(document).on("click", ".action-modal-charge", function(e) {
                var id = $(this).data("id");
                $("#chargeDialog .action-charge").data("id", id);
                $("#chargeDialog .title").text(id + "账户充值");
                $("#chargeDialog").modal("show");
            });
            //编辑账号
            $(document).on("click", ".action-modal-edit", function() {
                var id = $(this).data("id");
                window.location.href = "gwspupdate.aspx?spid=" + id;
            });
            $(document).on("click", ".action-create", function() {
                window.location.href = "gwspupdate.aspx";
            });
          //新加
            $(document).on("click", ".action-updateStatus", function () {
                var spid = $(this).attr("data-spid");
                var status=$(this).attr("data-status");
                mytek.confirm("是否需要修改该账户状态?", "是否操作!", function (b) {
                    if (b) {
                        $.post("gwsp.ashx", { action: "updateSpStatus", spid: spid,status:status }, function (r) {
                            mytek.alert(r.Message, r.OK, function () {
                                loadPageList();
                            });
                        });
                    }
                });
            });;
          //结束
            $(document).on("click", ".action-delete", function() {
                var id = $(this).data("id");
                mytek.confirm("是否需要删除该账户?", "账户删除后将无法恢复,请谨慎操作!", function(b) {
                    if (b) {
                        $.post("gwsp.ashx", { action: "delete", spid: id }, function(r) {
                            mytek.alert(r.Message, r.OK, function() {
                                loadPageList();
                            });
                        });
                    }
                });
            });
            $(document).on("click", ".action-query", function() {
                pagination.setPageIndex(1);
                loadPageList();
            });
            loadPageList();
            $(document).on("click", ".action-export", function() {
                var spID = $("#spID").val();
                var apID = $("#apID").val();
                var clientID = $("#clientID").val();
                var url = "ExportDocument.aspx?action=exPortGwSp&SpID=" + spID + "&ApID=" + apID + "&ClientID=" + clientID + "";
                window.location.href = url;
            });
            $(document).on("click", ".action-modal-Acctunchargelog", function() {
                var id = $(this).data("id");
                window.location.href = "GwSpChargeLog.aspx?id=" + id + "";
            });
            var serverIp =<%=Newtonsoft.Json.JsonConvert.SerializeObject(ConfigurationManager.AppSettings["serverIp"])%>;
            var apList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.ApList)%>;
            var opList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.OpList)%>;
            var diverterList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.DiverterList)%>;
            $(document).on("click", ".action-create-summary", function() {
                var spID = $(this).data("id");
                $.ajax({
                    url: "GwSp.ashx",
                    type: "POST",
                    data: { action: "getGwspDetailed", spID: spID },
                    success: function(result) {
                        if (result.OK) {
                            var rspID = result.Message.Get.SpID;
                            var str = "";
                            var basePort = getAPPort(result.Message.Get.ApID);
                            if (result.Message.Get.ApID == 230002) {
                                str += "<tr> ";
                                str += "<td >接入方式1:SOAP57-HTTP协议(0214-SMS-软维SOAP接口)</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td>WSDL地址:http://" + serverIp + ":" + basePort + "/sms?wsdl</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td >接入方式2:HTTP-57SMS协议(0169-SMS-软维接口-HTTP)</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                var httpBaseUrl = "http://" + serverIp + ":" + (basePort + 2) + "/sms";
                                str += "<td >下发地址:" + httpBaseUrl + "?action=send</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td >报告地址:" + httpBaseUrl + "?action=report</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td >上行地址:" + httpBaseUrl + "?action=mo</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td >余额地址:" + httpBaseUrl + "?action=overage</td>";
                                str += "</tr>";
                                str += "<tr> ";
                                str += "<td >以上两种接入方式可任选其一</td>";
                                str += "</tr>";
                            }
                            if (result.Message.Get.ApID == 230001) {
                                str += "<tr> ";
                                str += "<td >接入方式:CMPP2.0</td>";
                                str += "</tr>";
                                str += "<tr>";
                                str += "<td>服务器地址:" + serverIp + "</td>";
                                str += "</tr>";
                                str += "<tr>";
                                str += "<td>服务器端口:" + basePort + "</td>";
                            }
                            if (result.Message.Get.ApID == 230000) {
                                str += "<tr> ";
                                str += "<td >接入方式:自服平台直连</td>";
                                str += "</tr>";
                            }
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>账号:" + result.Message.Get.SpID + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>密码:" + result.Message.Get.Password + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>接入码:" + getAPAccessCode(result.Message.Get.ApID, result.Message.Get.AccessCode) + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>最大流量:" + result.Message.Get.Threshold + "条/秒</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>最大连接数:" + result.Message.Get.MaxConnCount + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>单号码最大下发次数:" + result.Message.McExpression + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td style=\"word-wrap: break-word; word-break: break-all; overflow: hidden;\">客户绑定IP:" + (result.Message.Get.ClientIp == "0.0.0.0" || !result.Message.Get.ClientIp ? "不验证" : result.Message.Get.ClientIp) + "</td>";
                            str += "</tr>";
                            if (result.Message.Get.DiverterID > 0) {
                                var diverter = diverterList.find(function(e) { return e.DiverterID == result.Message.Get.DiverterID; });
                                if (diverter != null) {
                                    var diverterItems = $.evalJSON(diverter.Content);
                                    $.each(diverterItems, function(i) {
                                        str += "<tr>";
                                        str += "<td>当匹配关键字" + this.Keywords + (this.SmMaxLength > 0 ? "或者短信字数<=" + this.SmMaxLength + "字符" : "") + (this.SmMinLength > 0 ? "或者短信字数>=" + this.SmMinLength + "字符" : "") + "</td>";
                                        str += "</tr>";
                                        str += "<tr>";
                                        str += "<td>电信发送号码:" + getOPAccessCode(this.CTOPID, this.CTExtNo + result.Message.Get.AccessCode) + "</td>";
                                        str += "</tr>";
                                        str += "<tr>";
                                        str += "<td>移动发送号码:" + getOPAccessCode(this.CMOPID, this.CMExtNo + result.Message.Get.AccessCode) + "</td>";
                                        str += "</tr>";
                                        str += "<tr>";
                                        str += "<td>联通发送号码:" + getOPAccessCode(this.CUOPID, this.CUExtNo + result.Message.Get.AccessCode) + "</td>";
                                        str + "</tr>";
                                    });
                                }
                            }
                            str += "<tr>";
                            str += "<td >默认情况下:</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>电信发送号码:" + getOPAccessCode(result.Message.Get.CTOPID, result.Message.Get.AccessCode) + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>移动发送号码:" + getOPAccessCode(result.Message.Get.CMOPID, result.Message.Get.AccessCode) + "</td>";
                            str += "</tr>";
                            str += "<tr>";
                            str += "<td>联通发送号码:" + getOPAccessCode(result.Message.Get.UNOPID, result.Message.Get.AccessCode) + "</td>";
                            str += "</tr>";
                            $("#account-abstract").html(str);
                            $("#model-abstract").modal("show");
                        } else {
                            mytek.alert(result.Message, result.OK);
                        }
                    }
                });
            })
            function getAPAccessCode(apId, extNo) {
                var item = apList.find(function(e) { return e.ApID == apId; });
                if (item == null) {
                    return "接入点配置不正确";
                }
                var accessCodes = item.AccessCode.split("|");
                var output = [];
                for (var n = 0; n < accessCodes.length; n++) {
                    output.push(accessCodes[n] + extNo);
                }
                return output.join("或者");
            }
            function getAPPort(apId) {
                var item = apList.find(function(e) { return e.ApID == apId; });
                if (item == null) {
                    return "接入点配置不正确";
                }
                return item.ApPort;
            }
            function getOPAccessCode(opId, extNo) {
                var item = opList.find(function(e) { return e.OpID == opId; });
                if (item == null) {
                    return "通道配置不正确";
                }
                return item.AccessCode + extNo;
            }
        });
    </script>
 </asp:Content>
<asp:Content runat="server" ID="Content2" ContentPlaceHolderID="title">客户账号信息配置</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" runat="Server">
    <form name="SpForm" method="get" action="GwSp.aspx" id="SpForm">
    <input type="hidden" id="IsExport" name="IsExport" value="0" />
    <div class="listCanvas form-inline">
        <div class="ibox">
            <div class="form-group">
                <div class="input-group m-b">
                    <span class="input-group-addon">SP账号</span>
                    <input type="text" name="spID" id="spID" class="form-control col-md-2" />
                </div>
            </div>
            <!-- 2021.2.24 wzp变更成下拉选项,后续可以删除
            <div class="form-group">
                <div class="input-group m-b">
                    <span class="input-group-addon">接入ID</span>
                    <input type="text" name="apID" id="apID" class="form-control col-md-2" />
                </div>
            </div>
            -->
            <div class="form-group">
                <div class="input-group m-b">
                    <span class="input-group-addon">代理商客户账号</span>
                    <input type="text" name="clientID" id="clientID" class="form-control col-md-2" />
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <span class="input-group-addon">代理商客户名称</span>
                    <input type="text" name="clientName" id="clientName" class="form-control col-md-2" />
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <span class="input-group-addon">通道ID</span>
                    <input type="text" name="opID" id="opID" class="form-control col-md-2" />
                </div>
            </div>
            <div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <select name="routerType" class="form-control" id="routerType">
                        <option value="">路由模式</option>
                        <option value="1">通道点路由</option>
                        <option value="3">通道组路由</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <select name="chargeType" class="form-control" id="chargeType">
                        <option value="">付费方式</option>
                        <option value="1">预付费</option>
                        <option value="2">后付费</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <select name="apID" class="form-control" id="apID">
                        <option value="">接入协议</option>
                        <option value="230001">CMPP</option>
                        <option value="230002">HTTP</option>
                    </select>
                </div>
            </div>
             <div class="form-group">
                <div class="input-group m-b">
                    <select name="apID" class="form-control" id="RESEND_STATUS">
                        <option value="3">自动补发</option>
                        <option value="1">启用补发</option>
                        <option value="0">停用补发</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <div class="input-group m-b">
                    <input type="button" value="查询" class="btn btn-primary action-query" />&nbsp;&nbsp;
                    <input type="button" value="批量修改通道" class="btn btn-danger action-modal-op" />&nbsp;&nbsp;
                    <input type="button" class="btn btn-info action-export" value="导出数据" />&nbsp;&nbsp;
                    <input class="btn btn-warning  action-create" value="创建新账号" type="button" />
                </div>
            </div>
        </div>
    </div>
    </form>
    <div class="table-responsive">
        <table class="table table-striped table-bordered table-hover" id="gwspTable">
            <thead>
                <tr class="header">
                    <th>
                        <input type='checkbox' name='checkAll' id='checkAll' />
                    </th>
                    <th>
                        SP账号/接入协议/归属客户
                    </th>
                    <th>
                        通道
                    </th>
                    <th>
                        失败补发
                    </th>
                    <th>
                        条数/余额/付费方式/单价/告警
                    </th>
                    <th>
                        账号配置属性
                    </th>
                    <th>
                        扩展号
                    </th>
                    <th>
                        客户IP
                    </th>
                    <th>
                        状态
                    </th>
                    <th colspan="4">
                        操作
                    </th>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>
    <div id="pagination">
    </div>
    <div class="modal inmodal fade" id="opDialog" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog form-horizontal">
            <div class="modal-content animated ">
                <div class="modal-header">
                    <h3>
                        批量修改通道</h3>
                    </span><a class="close" data-dismiss="modal" aria-hidden="true">×</a> <span class="text-muted">
                        批量更改通道[组]将会更新所有选中的账号的通道[组],<br />
                        如果移动、联通或电信 没有设置通道[组],所选账号通道[组]都将被清空,请谨慎操作! </span>
                </div>
                <div class="modal-body">
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            移动通道
                        </label>
 <div class="col-sm-10">
 <select name="CMOPID" id="CMOPID" class="form-control">
 <%=GetOpOptions(0)%>
  </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            联通通道
                        </label>
                        <div class="col-sm-10">
                            <select name="UNOPID" id="UNOPID" class="form-control">
                                 <%=GetOpOptions(0)%>
                              </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            电信通道
                        </label>
                        <div class="col-sm-10">
                            <select name="CTOPID" id="CTOPID" class="form-control">
                            <%=GetOpOptions(0)%>
                             </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            移动通道组
                        </label>
                        <div class="col-sm-10">
                            <select name="CMGROUPID" id="CMGROUPID" class="form-control">
                            <%=GetGroupOptions(0)%>
                             </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            联通通道组
                        </label>
                        <div class="col-sm-10">
                            <select name="CUGROUPID" id="CUGROUPID" class="form-control">
                              <%=GetGroupOptions(0)%>
                             </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            电信通道组
                        </label>
                        <div class="col-sm-10">
                            <select name="CTGROUPID" id="CTGROUPID" class="form-control">
                            <%=GetGroupOptions(0)%>
                             </select>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button class="btn-default btn" data-dismiss="modal" aria-hidden="true">
                        取消</button>&nbsp;&nbsp;
                    <input class="btn btn-primary action-update-op" value="确定修改" type="button" />
                </div>
            </div>
        </div>
    </div>
    <div class="modal inmodal fade" id="chargeDialog" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog form-horizontal">
            <div class="modal-content animated ">
                <div class="modal-header">
                    <span class="title">账户充值</span><a class="close" data-dismiss="modal" aria-hidden="true">×</a></div>
                <div class="modal-body">
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            充值金额</label>
                        <div class="col-sm-10 input-group m-b">
                            <input type="text" class="form-control" name="amount" id="amount" value="" />
                            <span class="input-group-addon">¥</span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            备注</label>
                        <div class="col-sm-10 input-group m-b">
                            <input type="text" class="form-control" name="remark" id="remark" value="" />
                            <span class="input-group-addon"></span>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button class="btn-default btn" data-dismiss="modal" aria-hidden="true">
                        取消</button>&nbsp;&nbsp;
                    <input class="btn btn-primary action-charge" value="确定充值" type="button" />
                </div>
            </div>
        </div>
    </div>
    <div class="modal inmodal fade" id="model-abstract" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog form-horizontal">
            <div class="modal-content animated ">
                <div class="modal-header">
                    <span class="title">账号摘要</span><a class="close" data-dismiss="modal" aria-hidden="true">×</a></div>
                <div class="modal-body action-modal-body" style="color: #797979; font-size: 16px;
                    font-weight: 300; position: relative; text-align: inherit; float: none; margin: 0px;
                    padding: 0px; line-height: normal;">
                    <table class='table table-striped table-bordered table-hover' id="account-abstract">
                    </table>
                </div>
                <div class="modal-footer">
                    <button class="btn-default btn" data-dismiss="modal" aria-hidden="true">
                        关闭</button>&nbsp;&nbsp;
                </div>
            </div>
        </div>
    </div>
        <div id="mask" class="mask">
            <span></span>
            <img src="img/spinning-circles.svg" alt="载入中..." /></div>
    </div>
   </asp:Content>