- 在订单查询接口中新增 hideDuplicateCard 参数支持 - 使用 lancet 库进行参数类型转换以判断是否隐藏重复订单 - 修改前端页面筛选表单,将复选框替换为下拉选择框 - 更新 JavaScript 代码以适配新的筛选控件取值方式 - 调整后端逻辑以正确处理布尔值类型的筛选条件 - 注释掉旧的部署脚本配置避免干扰当前构建流程
1199 lines
45 KiB
HTML
1199 lines
45 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8"/>
|
||
<title>管理后台</title>
|
||
<link href="../static/css/basic.css" rel="stylesheet" type="text/css"/>
|
||
<link
|
||
href="../static/lib/bootstrap/css/bootstrap.min.css"
|
||
rel="stylesheet"
|
||
type="text/css"
|
||
/>
|
||
<link
|
||
href="../static/lib/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css"
|
||
rel="stylesheet"
|
||
type="text/css"
|
||
/>
|
||
<script src="../static/js/filter.js"></script>
|
||
<script src="../static/js/jquery.min.js"></script>
|
||
<script src="../static/lib/bootstrap/js/bootstrap.min.js"></script>
|
||
<script src="../static/lib/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
|
||
<script src="../static/lib/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
|
||
<script src="../static/js/basic.js"></script>
|
||
<style>
|
||
.order-record .search {
|
||
margin: 0;
|
||
padding: 10px;
|
||
}
|
||
|
||
.search label {
|
||
font-weight: normal;
|
||
padding-right: 20px;
|
||
}
|
||
|
||
.order-record .search div {
|
||
height: 20px;
|
||
}
|
||
|
||
#search-order-status,
|
||
#search-order-pay-way-code,
|
||
#search-order-supplier-name,
|
||
#search-order-free-status {
|
||
height: 30px;
|
||
margin-right: 15px;
|
||
}
|
||
|
||
#order-search {
|
||
background-color: skyblue;
|
||
width: 120px;
|
||
margin-right: 30px;
|
||
}
|
||
|
||
#notify {
|
||
word-break: break-all;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div class="order-record">
|
||
<div class="search form-inline">
|
||
<label for="">
|
||
<span>开始时间:</span>
|
||
<input
|
||
class="start-time"
|
||
id="search-order-start-time"
|
||
name=""
|
||
type="text"
|
||
value=""
|
||
/>
|
||
</label>
|
||
<label for="">
|
||
<span>结束时间:</span>
|
||
<input
|
||
class="end-time"
|
||
id="search-order-end-time"
|
||
name=""
|
||
type="text"
|
||
value=""
|
||
/>
|
||
</label>
|
||
<label for="">
|
||
<span>商户名称:</span>
|
||
<input
|
||
id="search-order-merchant-name"
|
||
placeholder="模糊匹配"
|
||
type="text"
|
||
/>
|
||
</label>
|
||
<label for="">
|
||
<span>卡片数据:</span>
|
||
<input
|
||
id="search-order-card-data"
|
||
placeholder="卡片数据"
|
||
type="text"
|
||
/>
|
||
</label>
|
||
<label for="">
|
||
<span>商户订单号:</span>
|
||
<input id="search-order-merchant-order-id" type="text" value=""/>
|
||
</label>
|
||
<label for="">
|
||
<span>轮询订单号:</span>
|
||
<input id="search-order-pool-code" type="text" value=""/>
|
||
</label>
|
||
<label>
|
||
<span>本系统订单号:</span>
|
||
<input id="search-order-bank-order-id" type="text" value=""/>
|
||
</label>
|
||
<label for="">
|
||
订单状态:
|
||
<select id="search-order-status" name="">
|
||
<option value="">请选择</option>
|
||
<option value="success">支付成功</option>
|
||
<option value="wait">等待支付</option>
|
||
<option value="fail">支付失败</option>
|
||
<option value="cancel">放弃支付</option>
|
||
</select>
|
||
</label>
|
||
<label for="">
|
||
<span>隐藏卡密重复订单:</span>
|
||
<select id="search-hide-duplicate-card" name="">
|
||
<option value="">请选择</option>
|
||
<option value="true">是</option>
|
||
<option value="false">否</option>
|
||
</select>
|
||
</label>
|
||
<!-- <label for="">
|
||
上游名称:
|
||
<select id="search-order-supplier-name" name="">
|
||
</select>
|
||
</label> -->
|
||
<label for="">
|
||
通道名称:
|
||
<select id="search-order-road-name" name=""></select>
|
||
</label>
|
||
<label for="">
|
||
结果:
|
||
<input
|
||
id="search-order-message"
|
||
placeholder="结果"
|
||
type="text"
|
||
value=""
|
||
/>
|
||
</label>
|
||
<!-- 冻结状态: -->
|
||
<!-- <select id="search-order-free-status" name="">
|
||
<option value="">请选择</option>
|
||
<option value="freeze_amount">冻结</option>
|
||
<option value="refund">退款</option>
|
||
</select>
|
||
</label> -->
|
||
<button class="btn btn-default" id="order-search" type="button">
|
||
搜索
|
||
</button>
|
||
<button
|
||
class="btn btn-default"
|
||
onclick='loadMainContent("/order_info.html")'
|
||
type="button"
|
||
>
|
||
刷新
|
||
</button>
|
||
<button class="btn btn-default" id="order-export" type="button">
|
||
导出
|
||
</button>
|
||
</div>
|
||
<div style="padding: 20px">
|
||
<div class="row">
|
||
<div class="col-sm-2 color-red">
|
||
订单总量:
|
||
<span id="orderTotalNum"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red">
|
||
订单总金额:
|
||
<span id="AllAmount"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red">
|
||
成功订单数:
|
||
<span id="succeedTotalNum"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red">
|
||
成功交易总量:
|
||
<span id="SucceedPaidAmount"></span>
|
||
</div>
|
||
<!-- <div class="color-red">-->
|
||
<!-- 手续费:-->
|
||
<!-- <span id="supplierProfit"></span>-->
|
||
<!-- </div>-->
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
平台利润:
|
||
<span id="platformProfit"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
成功率:
|
||
<span id="totalSucceedRate"></span>%
|
||
</div>
|
||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||
<!-- 代理利润:-->
|
||
<!-- <span id="agentProfit"></span>-->
|
||
<!-- </div>-->
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
今日订单数:
|
||
<span id="TodayAllNum"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
今日订单总金额:
|
||
<span id="TodayAllAmount"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
今日成功订单数:
|
||
<span id="TodaySuccessNum"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
今日成功订单总金额:
|
||
<span id="TodaySuccessAmount"></span>
|
||
</div>
|
||
|
||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||
<!-- 今日通道成本:-->
|
||
<!-- <span id="TodaySupplierProfit"></span>-->
|
||
<!-- </div>-->
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
今日平台利润:
|
||
<span id="TodayPlatformProfit"></span>
|
||
</div>
|
||
<div class="col-sm-2 color-red" style="font-weight: normal">
|
||
成功率:
|
||
<span id="todaySucceedRate"></span>%
|
||
</div>
|
||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||
<!-- 今日代理润:-->
|
||
<!-- <span id="TodayAgentProfit"></span>-->
|
||
<!-- </div>-->
|
||
</div>
|
||
</div>
|
||
<div class="menu-table">
|
||
<table>
|
||
<thead class="thead-dark">
|
||
<tr>
|
||
<th>序列号</th>
|
||
<th>商户名称</th>
|
||
<th>商户订单号</th>
|
||
<th>本系统订单号</th>
|
||
<th>轮询订单号</th>
|
||
<th>通道名称</th>
|
||
<th>售价</th>
|
||
<th>实付金额</th>
|
||
<th>卡密信息</th>
|
||
<th>支付状态</th>
|
||
<!-- <th>冻结状态</th>
|
||
<th>退款状态</th> -->
|
||
<th>下单时间</th>
|
||
<th>支付时间</th>
|
||
<!-- <th>上游供应商</th>-->
|
||
<th>上游返回数据</th>
|
||
<th>用户IP</th>
|
||
<th>禁用状态</th>
|
||
<th>操作</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="order-table-body"></tbody>
|
||
</table>
|
||
</div>
|
||
<!-- 分页插件 -->
|
||
<div class="cut_page">
|
||
<li>
|
||
每页显示
|
||
<select id="display_count">
|
||
<option value="20">20</option>
|
||
<option value="30">30</option>
|
||
<option value="50">50</option>
|
||
<option value="100">100</option>
|
||
</select>
|
||
</li>
|
||
<li class="current_total_page">
|
||
第<span class="current_page">0</span>/<span class="total_page">0</span
|
||
>页
|
||
</li>
|
||
<li class="pre_page">上一页</li>
|
||
<li class="next_page">下一页</li>
|
||
<li class="jump_page">
|
||
跳转 <input name="jump_page" type="text" value=""/>
|
||
<button class="btn btn-default" type="button">Go</button>
|
||
</li>
|
||
</div>
|
||
<!-- 模态框 -->
|
||
<div
|
||
aria-labelledby="myModalLabel"
|
||
class="modal fade"
|
||
data-backdrop="static"
|
||
data-keyboard="false"
|
||
id="order-details"
|
||
role="dialog"
|
||
tabindex="-1"
|
||
>
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">订单详情</h4>
|
||
</div>
|
||
<div class="modal-body modal-body-order-details">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<div>商品名称:<span id="shop-name"></span></div>
|
||
<div>商户订单id:<span id="merchant-order-id"></span></div>
|
||
<div>系统订单id:<span id="bank-order-id"></span></div>
|
||
<div>银行流水id:<span id="bank-trans-id"></span></div>
|
||
<div>订单金额:<span id="order-amount"></span></div>
|
||
<div>实际金额:<span id="fact-amount"></span></div>
|
||
<div>轮询池id:<span id="roll-pool-code"></span></div>
|
||
<div>轮询池名:<span id="roll-pool-name"></span></div>
|
||
<div>通道id:<span id="road-uid"></span></div>
|
||
<div>通道名称:<span id="road-name"></span></div>
|
||
<div>上游商编码:<span id="pay-product-code"></span></div>
|
||
<div>上游商名称:<span id="pay-product-name"></span></div>
|
||
<div>支付类型编码:<span id="pay-type-code"></span></div>
|
||
<div>支付类型名称:<span id="pay-type-name"></span></div>
|
||
</div>
|
||
<div class="col-md-6">
|
||
<div>订单有效时间:<span id="order-period"></span></div>
|
||
<div>支付状态:<span id="status"></span></div>
|
||
<div>是否退款:<span id="refund"></span></div>
|
||
<div>退款时间:<span id="refund-time"></span></div>
|
||
<!-- <div>是否冻结:<span id="free"></span></div> -->
|
||
<!-- <div>冻结时间:<span id="free-time"></span></div> -->
|
||
<!-- <div>是否解冻:<span id="unfree"></span></div> -->
|
||
<!-- <div>解冻时间:<span id="unfree-time"></span></div> -->
|
||
<div>商户名称:<span id="merchant-name"></span></div>
|
||
<div>商户编号:<span id="merchant-uid"></span></div>
|
||
<div>代理编号:<span id="agent-uid"></span></div>
|
||
<div>代理名称:<span id="agent-name"></span></div>
|
||
<div>下单时间:<span id="create—time"></span></div>
|
||
<!-- <div>更新时间:<span id="update-time"></span></div>-->
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-md-12">回调地址:<span id="notify"></span></div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-md-12">
|
||
回调数据:<span id="card-return-data"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button
|
||
class="btn btn-default cancel-order-details"
|
||
data-dismiss="modal"
|
||
type="button"
|
||
>
|
||
取消
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
aria-labelledby="myModalLabel"
|
||
class="modal fade"
|
||
data-backdrop="static"
|
||
data-keyboard="false"
|
||
id="order-solve"
|
||
role="dialog"
|
||
tabindex="-1"
|
||
>
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">订单处理</h4>
|
||
</div>
|
||
<div class="modal-body modal-body-order-solve">
|
||
<div>
|
||
<input
|
||
name="order-solve-radio"
|
||
style="margin-left: 10%"
|
||
type="radio"
|
||
value="success"
|
||
/>
|
||
<span style="color: blue">处理成功</span>
|
||
<input
|
||
name="order-solve-radio"
|
||
style="margin-left: 15%"
|
||
type="radio"
|
||
value="fail"
|
||
/><span style="color: red">处理失败</span>
|
||
<input
|
||
hidden
|
||
id="order-solve-bank-order-id"
|
||
type="text"
|
||
value=""
|
||
/>
|
||
</div>
|
||
<div>
|
||
<label>
|
||
二次验证:
|
||
<input id="order-info-totp" type="text" value=""/>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button class="btn btn-default save-order-solve" type="button">
|
||
确定
|
||
</button>
|
||
<button
|
||
class="btn btn-default cancel-order-solve"
|
||
data-dismiss="modal"
|
||
type="button"
|
||
>
|
||
取消
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
aria-labelledby="myModalLabel"
|
||
class="modal fade"
|
||
data-backdrop="static"
|
||
data-keyboard="false"
|
||
id="totp-order-solve"
|
||
role="dialog"
|
||
tabindex="-1"
|
||
>
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">二次验证</h4>
|
||
</div>
|
||
<div class="modal-body modal-body-order-solve">
|
||
<input
|
||
hidden
|
||
id="totp-solve-bank-order-id"
|
||
type="text"
|
||
value=""
|
||
/>
|
||
<input hidden id="totp-solveType" type="text" value=""/>
|
||
<label>
|
||
二次验证:
|
||
<input id="totp-orderInfo" type="text" value=""/>
|
||
</label>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button class="btn btn-default save-totp-solve" type="button">
|
||
确定
|
||
</button>
|
||
<button
|
||
class="btn btn-default cancel-order-solve"
|
||
data-dismiss="modal"
|
||
type="button"
|
||
>
|
||
取消
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div
|
||
aria-labelledby="myModalLabel"
|
||
class="modal fade"
|
||
data-backdrop="static"
|
||
data-keyboard="false"
|
||
id="totp-order-deal-solve"
|
||
role="dialog"
|
||
tabindex="-1"
|
||
>
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">二次验证</h4>
|
||
</div>
|
||
<div class="modal-body modal-body-order-solve">
|
||
<input
|
||
hidden
|
||
id="totp-solve-deal-order-id"
|
||
type="text"
|
||
value=""
|
||
/>
|
||
<input hidden id="totp-deal-solveType" type="text" value=""/>
|
||
<label>
|
||
二次验证:
|
||
<input id="totp-totp-orderInfo" type="text" value=""/>
|
||
</label>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button
|
||
class="btn btn-default save-totp-deal-solve"
|
||
type="button"
|
||
>
|
||
确定
|
||
</button>
|
||
<button
|
||
class="btn btn-default cancel-order-solve"
|
||
data-dismiss="modal"
|
||
type="button"
|
||
>
|
||
取消
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
<script>
|
||
let currentDataInfo = {};
|
||
|
||
//将上游通道供应商写入
|
||
function setSupplier() {
|
||
$.ajax({
|
||
url: "/get/product",
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === -1) {
|
||
alert("没有获取到上游供应商数据");
|
||
} else {
|
||
let str = '<option value="' + "" + '">' + "请选择" + "</option>";
|
||
for (let key in res.ProductMap) {
|
||
let v = res.ProductMap[key];
|
||
str = str + '<option value="' + key + '">' + v + "</option>";
|
||
}
|
||
$("#search-order-supplier-name").html(str);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试1");
|
||
},
|
||
});
|
||
}
|
||
|
||
function setRoadInfo() {
|
||
$.ajax({
|
||
url: "/get/all/road",
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === -1) {
|
||
alert("没有获取到上游供应商数据");
|
||
} else {
|
||
let str = '<option value="' + "" + '">' + "请选择" + "</option>";
|
||
for (let key in res.RoadInfoList) {
|
||
let v = res.RoadInfoList[key];
|
||
str =
|
||
str +
|
||
'<option value="' +
|
||
v.RoadUid +
|
||
'">' +
|
||
v.RoadName +
|
||
"</option>";
|
||
}
|
||
$("#search-order-road-name").html(str);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试1");
|
||
},
|
||
});
|
||
}
|
||
|
||
//获取搜索去的参数
|
||
function getOrderSearchValues() {
|
||
let displayCount = $("#display_count").val();
|
||
let currentPage = $(".current_page").html();
|
||
let totalPage = $(".total_page").html();
|
||
let jumpPage = $(".jump_page input").val();
|
||
let startTime = $("#search-order-start-time").val();
|
||
let endTime = $("#search-order-end-time").val();
|
||
let merchantName = $("#search-order-merchant-name").val();
|
||
let cardData = $("#search-order-card-data").val();
|
||
let merchantOrderId = $("#search-order-merchant-order-id").val();
|
||
let poolCodeId = $("#search-order-pool-code").val();
|
||
let bankOrderId = $("#search-order-bank-order-id").val();
|
||
let orderStatus = $("#search-order-status").val();
|
||
let supplierUid = $("#search-order-supplier-name").val();
|
||
let roadUid = $("#search-order-road-name").val();
|
||
let payWayCode = $("#search-order-pay-way-code").val();
|
||
let freeStatus = $("#search-order-free-status").val();
|
||
let message = $("#search-order-message").val();
|
||
let hideDuplicateCard = $("#search-hide-duplicate-card").val();
|
||
return {
|
||
displayCount: displayCount,
|
||
currentPage: currentPage,
|
||
totalPage: totalPage,
|
||
jumpPage: jumpPage,
|
||
startTime: startTime,
|
||
endTime: endTime,
|
||
merchantName: merchantName,
|
||
merchantOrderId: merchantOrderId,
|
||
bankOrderId: bankOrderId,
|
||
orderStatus: orderStatus,
|
||
cardData: cardData,
|
||
supplierUid: supplierUid,
|
||
payWayCode: payWayCode,
|
||
freeStatus: freeStatus,
|
||
roadUid: roadUid,
|
||
poolCodeId: poolCodeId,
|
||
message: message,
|
||
hideDuplicateCard: hideDuplicateCard,
|
||
};
|
||
}
|
||
|
||
function setOrderCutPageValues(res) {
|
||
$(".current_page").html(res.CurrentPage);
|
||
$(".total_page").html(res.TotalPage);
|
||
$("#display_count option").each(function () {
|
||
if ($(this).text() === res.DisplayCount) {
|
||
$(this).attr("selected", true);
|
||
}
|
||
});
|
||
$(".jump_page input").val("");
|
||
}
|
||
|
||
function showOrderList(res) {
|
||
setOrderCutPageValues(res);
|
||
let str = "";
|
||
for (let i = 0; i < res.OrderList.length; i++) {
|
||
let v = res.OrderList[i];
|
||
let tmp = "<tr>";
|
||
if (v.Status === "success") {
|
||
if (v.IsSucceedByReplace) {
|
||
tmp = "<tr style='color: darkgreen;'>";
|
||
} else {
|
||
tmp = "<tr style='color: blue;'>";
|
||
}
|
||
} else if (v.Status === "fail") {
|
||
tmp = "<tr style='color: red;'>";
|
||
}
|
||
let exValue = {};
|
||
try {
|
||
exValue = JSON.parse(v.ExValue);
|
||
} catch (e) {
|
||
exValue = {};
|
||
}
|
||
tmp =
|
||
tmp +
|
||
"<th>" +
|
||
(res.StartIndex + i + 1) +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.MerchantName +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.MerchantOrderId +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.BankOrderId +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.PoolOrderId +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.RoadInfo.RoadName +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.ShowAmount +
|
||
"</th>" +
|
||
"<th>" +
|
||
v.FactAmount +
|
||
"</th>" +
|
||
"<th>" +
|
||
`卡号:${
|
||
exValue.cardNo !== undefined ? exValue.cardNo : ""
|
||
}<br />卡密:${exValue.data !== undefined ? exValue.data : ""}` +
|
||
"</th>" +
|
||
"<th>" +
|
||
(v.Status === "wait"
|
||
? "等待支付"
|
||
: v.Status === "success"
|
||
? "支付成功"
|
||
: v.Status === "fail"
|
||
? "支付失败"
|
||
: v.Status === "cancel"
|
||
? "放弃支付"
|
||
: v.Status === "created"
|
||
? "创建"
|
||
: v.Status) +
|
||
"</th>";
|
||
if (v.Freeze === "yes") {
|
||
// tmp += "<th style='color: red;'>" + "已经冻结" + "</th>"
|
||
} else {
|
||
// tmp += "<th>" + "未被冻结" + "</th>"
|
||
}
|
||
// if (v.Refund === "yes") {
|
||
// tmp += "<th style='color: red;'>" + "已经退款" + "</th>"
|
||
// } else {
|
||
// tmp += "<th>" + "未被退款" + "</th>"
|
||
// }
|
||
tmp += `<th>${new Date(v.CreateTime).toLocaleString()}</th><th>${
|
||
new Date(v.PayTime).getFullYear() !== 1
|
||
? new Date(v.PayTime).toLocaleString()
|
||
: ""
|
||
}</th><th>${v.CardReturnData}</th><th>${v.Ip}</th>`;
|
||
tmp += `"<th>${v.IsBlock === 1 ? "禁用" : "正常"}</th>"`;
|
||
tmp =
|
||
tmp +
|
||
"<th>" +
|
||
'<div class="btn-group" role="group" aria-label="...">' +
|
||
'<button type="button" class="btn btn-default" style="padding:0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="orderDetails(this.value);">' +
|
||
"详情" +
|
||
"</button>" +
|
||
'<button type="button" class="btn btn-danger" style="padding:0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
`" onclick="block(this.value, ${v.IsBlock});">拉黑</button>`;
|
||
if (v.Status === "wait") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-info" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="orderQuery(this.value);">' +
|
||
"查询" +
|
||
"</button>";
|
||
tmp +=
|
||
'<button type="button" class="btn btn-success" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="solveResult(this.value);">' +
|
||
"处理" +
|
||
"</button>";
|
||
}
|
||
if (v.Status !== "success") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-warning" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="orderSchedule(this.value);">' +
|
||
"手动调度" +
|
||
"</button>";
|
||
}
|
||
if (v.Status === "success" || v.Status === "fail") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-primary" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="orderNotify(this.value);">' +
|
||
"回调" +
|
||
"</button>";
|
||
if (v.Freeze === "yes") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-default" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="solveTotpResult(this.value, `unfreeze_amount`);">' +
|
||
"解冻" +
|
||
"</button>";
|
||
tmp +=
|
||
'<button type="button" class="btn btn-danger" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="solveTotpResult(this.value, `refund`);">' +
|
||
"退款" +
|
||
"</button>";
|
||
} else {
|
||
if (v.Refund !== "yes") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-warning" style="padding: 0;margin-right: 5px;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="solveTotpResult(this.value, `freeze_amount`);">' +
|
||
"冻结" +
|
||
"</button>";
|
||
}
|
||
}
|
||
if (v.Status === "fail") {
|
||
tmp += `<button type="button" class="btn btn-warning" value="${v.BankOrderId}" onclick="solveDealResult(this.value, 'success')">处理</button>`;
|
||
}
|
||
if (v.Refund === "yes") {
|
||
tmp +=
|
||
'<button type="button" class="btn btn-default" style="padding: 0;" value="' +
|
||
v.BankOrderId +
|
||
'" onclick="orderRoll(this.value);">' +
|
||
"回滚" +
|
||
"</button>";
|
||
}
|
||
}
|
||
tmp = tmp + "</div>" + "</th>" + "</tr>";
|
||
str = str + tmp;
|
||
}
|
||
$("#order-all-amount").html(res.AllAmount);
|
||
$("#success-rate").html(res.SuccessRate);
|
||
$("#order-table-body").html(str);
|
||
}
|
||
|
||
function showOrderSummaryList(res) {
|
||
$("#orderTotalNum").html(res.OrderProfitSummary.totalProfit.totalNum);
|
||
$("#AllAmount").html(res.OrderProfitSummary.totalProfit.totalAmount);
|
||
$("#succeedTotalNum").html(res.OrderProfitSummary.totalProfit.paidNum);
|
||
$("#SucceedPaidAmount").html(
|
||
res.OrderProfitSummary.totalProfit.paidAmount
|
||
);
|
||
$("#platformProfit").html(
|
||
res.OrderProfitSummary.totalProfit.platformIncome
|
||
);
|
||
$("#totalSucceedRate").html(
|
||
res.OrderProfitSummary.totalProfit.succeedRate
|
||
);
|
||
|
||
$("#TodaySuccessNum").html(res.OrderProfitSummary.todayProfit.paidNum);
|
||
$("#TodayAllAmount").html(res.OrderProfitSummary.todayProfit.totalAmount);
|
||
$("#TodaySuccessAmount").html(
|
||
res.OrderProfitSummary.todayProfit.paidAmount
|
||
);
|
||
$("#TodaySupplierProfit").html(
|
||
res.OrderProfitSummary.todayProfit.TadaySupplierProfit
|
||
);
|
||
$("#TodayPlatformProfit").html(
|
||
res.OrderProfitSummary.todayProfit.platformIncome
|
||
);
|
||
$("#TodayAgentProfit").html(
|
||
res.OrderProfitSummary.todayProfit.agencyIncome
|
||
);
|
||
$("#TodayAllNum").html(res.OrderProfitSummary.todayProfit.totalNum);
|
||
$("#todaySucceedRate").html(
|
||
res.OrderProfitSummary.todayProfit.succeedRate
|
||
);
|
||
}
|
||
|
||
function orderRoll(bankOrderId) {
|
||
$.ajax({
|
||
url: "/update/order/status",
|
||
data: {
|
||
bankOrderId: bankOrderId,
|
||
solveType: "order_roll",
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
return;
|
||
} else if (res.Code === 200) {
|
||
alert("加款成功");
|
||
} else {
|
||
alert("加款失败");
|
||
}
|
||
AjaxOrderList(getOrderSearchValues());
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试5");
|
||
},
|
||
});
|
||
}
|
||
|
||
function solveResult(bankOrderId) {
|
||
$("#order-solve-bank-order-id").val(bankOrderId);
|
||
$("#order-solve").modal();
|
||
}
|
||
|
||
function solveTotpResult(bankOrderId, solveType) {
|
||
$("#totp-solve-bank-order-id").val(bankOrderId);
|
||
$("#totp-solveType").val(solveType);
|
||
$("#totp-order-solve").modal();
|
||
}
|
||
|
||
function orderSchedule(bankOrderId) {
|
||
$.ajax({
|
||
url: "/update/order/schedule",
|
||
data: {
|
||
bankOrderId,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else {
|
||
alert(res.Msg);
|
||
AjaxOrderList(getOrderSearchValues());
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试7");
|
||
},
|
||
});
|
||
}
|
||
|
||
$(".save-order-solve").click(function () {
|
||
let bankOrderId = $("#order-solve-bank-order-id").val();
|
||
let solveType = $("input[name='order-solve-radio']:checked").val();
|
||
let totpCode = $("#order-info-totp").val();
|
||
|
||
$.ajax({
|
||
url: "/update/order/status",
|
||
data: {
|
||
bankOrderId: bankOrderId,
|
||
solveType: solveType,
|
||
totpCode: totpCode,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
return;
|
||
} else if (res.Code === 200) {
|
||
alert("受理成功");
|
||
} else {
|
||
alert("受理失败");
|
||
}
|
||
$(".cancel-order-solve").trigger("click");
|
||
AjaxOrderList(getOrderSearchValues());
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试6");
|
||
},
|
||
});
|
||
$("#order-info-totp").setAttr("value", "");
|
||
});
|
||
|
||
$(".save-totp-solve").click(function () {
|
||
let bankOrderId = $("#totp-solve-bank-order-id").val();
|
||
let solveType = $("#totp-solveType").val();
|
||
let totpCode = $("#totp-orderInfo").val();
|
||
$.ajax({
|
||
url: "/update/order/status",
|
||
data: {
|
||
bankOrderId,
|
||
solveType,
|
||
totpCode,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
return;
|
||
} else if (res.Code === 200) {
|
||
alert("受理成功");
|
||
} else {
|
||
alert("受理失败失败原因:" + res.Msg);
|
||
}
|
||
$(".cancel-order-solve").trigger("click");
|
||
AjaxOrderList(getOrderSearchValues());
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试6");
|
||
},
|
||
});
|
||
$("#totp-solve-bank-order-id").attr("value", "");
|
||
$("#totp-solveType").attr("value", "");
|
||
$("#totp-orderInfo").attr("value", "");
|
||
});
|
||
|
||
function orderNotify(bankOrderId) {
|
||
$.ajax({
|
||
url: "/send/notify",
|
||
data: {
|
||
bankOrderId,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else {
|
||
alert(res.Msg);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试7");
|
||
},
|
||
});
|
||
}
|
||
|
||
function orderQuery(bankOrderId) {
|
||
$.ajax({
|
||
url: "/supplier/order/query",
|
||
data: {
|
||
bankOrderId,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else {
|
||
if (res.Msg === "success") {
|
||
alert("处理成功!");
|
||
} else {
|
||
alert("处理失败!");
|
||
}
|
||
AjaxOrderList(getOrderSearchValues());
|
||
}
|
||
},
|
||
error: function (res) {
|
||
alert("系统异常,请稍后再试");
|
||
},
|
||
});
|
||
}
|
||
|
||
function orderDetails(bankOrderId) {
|
||
$("#order-details").modal();
|
||
$.ajax({
|
||
url: "/get/one/order",
|
||
data: {
|
||
bankOrderId,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === 200) {
|
||
let order = res.OrderList[0];
|
||
$("#order-period").html(order.OrderPeriod);
|
||
$("#shop-name").html(order.ShopName);
|
||
$("#merchant-order-id").html(order.MerchantOrderId);
|
||
$("#bank-order-id").html(order.BankOrderId);
|
||
$("#bank-trans-id").html(order.BankTransId);
|
||
$("#order-amount").html(order.OrderAmount);
|
||
$("#fact-amount").html(order.FactAmount);
|
||
$("#roll-pool-code").html(order.RollPoolCode);
|
||
$("#roll-pool-name").html(order.RollPoolName);
|
||
$("#road-uid").html(order.RoadUid);
|
||
$("#road-name").html(order.RoadName);
|
||
$("#pay-product-code").html(order.PayProductCode);
|
||
$("#pay-type-code").html(order.PayTypeCode);
|
||
$("#pay-type-name").html(order.PayTypeName);
|
||
$("#notify").html(res.NotifyUrl);
|
||
$("#card-return-data").html(order.CardReturnData);
|
||
$("#status").html(order.Status);
|
||
$("#refund").html(order.Refund);
|
||
$("#refund-time").html(order.RefundTime);
|
||
$("#free").html(order.Freeze);
|
||
$("#free-time").html(order.FreezeTime);
|
||
$("#unfree").val(order.Unfreeze);
|
||
$("#unfree-time").html(order.UnfreezeTime);
|
||
$("#merchant-name").html(order.MerchantName);
|
||
$("#merchant-uid").html(order.MerchantUid);
|
||
$("#agent-uid").html(order.AgentUid);
|
||
$("#agent-name").html(order.AgentName);
|
||
$("#create—time").html(new Date(order.CreateTime).toLocaleString());
|
||
$("#update-time").html(new Date(order.UpdateTime).toLocaleString());
|
||
$("#order-details").modal();
|
||
}
|
||
},
|
||
});
|
||
}
|
||
|
||
function block(bankOrderId, blockStatus) {
|
||
$.ajax({
|
||
url: "/update/order/block",
|
||
data: {
|
||
bankOrderId,
|
||
blockStatus: blockStatus === 1 ? 0 : 1,
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === -1) {
|
||
} else {
|
||
alert("拉黑成功");
|
||
let dataJSON = getOrderSearchValues();
|
||
AjaxOrderList(dataJSON);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("拉黑失败");
|
||
},
|
||
});
|
||
}
|
||
|
||
function AjaxOrderList(dataJSON) {
|
||
if (!dataJSON["roadUid"]) {
|
||
dataJSON["roadUid"] = "{{.roadUid}}";
|
||
}
|
||
$.ajax({
|
||
url: "/get/order",
|
||
data: dataJSON,
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === -1) {
|
||
} else {
|
||
showOrderList(res);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试9");
|
||
},
|
||
});
|
||
let isloadSummary = false;
|
||
for (let element in dataJSON) {
|
||
if (["currentPage", "displayCount"].includes(element)) {
|
||
continue;
|
||
}
|
||
if (currentDataInfo[element] != dataJSON[element]) {
|
||
currentDataInfo[element] = dataJSON[element];
|
||
isloadSummary = true;
|
||
}
|
||
}
|
||
if (isloadSummary) {
|
||
AjaxOrderSummaryList(dataJSON);
|
||
}
|
||
}
|
||
|
||
function AjaxOrderExport(dataJSON) {
|
||
dataJSON["roadUid"] = "{{.roadUid}}";
|
||
window.open("/get/order/export?" + $.param(dataJSON), "_self");
|
||
}
|
||
|
||
function AjaxOrderSummaryList(dataJSON) {
|
||
dataJSON["roadUid"] = "{{.roadUid}}";
|
||
$.ajax({
|
||
url: "/get/orderSummary",
|
||
data: dataJSON,
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
} else if (res.Code === -1) {
|
||
} else {
|
||
showOrderSummaryList(res);
|
||
}
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试9");
|
||
},
|
||
});
|
||
}
|
||
|
||
//当每页显示数更改后,执行的操作
|
||
$("#display_count").change(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
//点击上一页的按钮
|
||
$(".pre_page").click(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
|
||
if (dataJSON["currentPage"] === 1) {
|
||
return;
|
||
}
|
||
dataJSON["currentPage"] = parseInt(dataJSON["currentPage"]) - 1;
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
//点击下一页的按钮时
|
||
$(".next_page").click(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
if (dataJSON["currentPage"] === dataJSON["totalPage"]) {
|
||
return;
|
||
}
|
||
dataJSON["currentPage"] = parseInt(dataJSON["currentPage"]) + 1;
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
//点击跳转那一页的按钮
|
||
$(".jump_page button").click(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
|
||
if (dataJSON["jumpPage"].length <= 0) {
|
||
return;
|
||
}
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
$("#order-search").click(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
$("#order-export").click(function () {
|
||
let dataJSON = getOrderSearchValues();
|
||
AjaxOrderExport(dataJSON);
|
||
});
|
||
$(function () {
|
||
let day = new Date(new Date().getTime() - 86400000);
|
||
let s = dateFtt("yyyy-MM-dd hh:mm:ss", day);
|
||
$("#search-order-start-time").val();
|
||
setSupplier();
|
||
setRoadInfo();
|
||
let dataJSON = getOrderSearchValues();
|
||
AjaxOrderList(dataJSON);
|
||
});
|
||
|
||
function solveDealResult(bankOrderId, solveType) {
|
||
$("#totp-solve-deal-order-id").val(bankOrderId);
|
||
$("#totp-deal-solveType").val(solveType);
|
||
$("#totp-order-deal-solve").modal();
|
||
}
|
||
|
||
$(".save-totp-deal-solve").click(() => {
|
||
let bankOrderIdQuery = $("#totp-solve-deal-order-id");
|
||
let solveTypeQuery = $("#totp-deal-solveType");
|
||
let totpCodeQuery = $("#totp-totp-orderInfo");
|
||
|
||
$.ajax({
|
||
url: "/update/order/status",
|
||
data: {
|
||
bankOrderId: bankOrderIdQuery.val(),
|
||
solveType: solveTypeQuery.val(),
|
||
totpCode: totpCodeQuery.val(),
|
||
},
|
||
success: function (res) {
|
||
if (res.Code === 404) {
|
||
window.parent.location = "/login.html";
|
||
return;
|
||
} else if (res.Code === 200) {
|
||
if (res.Msg === "success") {
|
||
alert("处理成功");
|
||
} else {
|
||
alert("处理失败");
|
||
}
|
||
} else {
|
||
alert("受理失败失败原因:" + res.Msg);
|
||
}
|
||
$(".cancel-order-solve").trigger("click");
|
||
AjaxOrderList(getOrderSearchValues());
|
||
},
|
||
error: function () {
|
||
alert("系统异常,请稍后再试6");
|
||
},
|
||
});
|
||
bankOrderIdQuery.attr("value", "");
|
||
solveTypeQuery.attr("value", "");
|
||
totpCodeQuery.attr("value", "");
|
||
});
|
||
</script>
|
||
</html>
|