123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585 |
- <?php defined('InShopNC') or exit('Access Invalid!'); ?>
- <style>
- .row_q ul li {
- height: 30px;
- line-height: 30px;
- }
- .row_w {
- float: left;
- margin-right: 40px;
- }
- #merchant_name_form thead th:last-child,
- #merchant_name_form tbody td:last-child {
- position: sticky;
- right: 0;
- z-index: 1;
- background: #fff;
- box-shadow: -2px 0 2px #cbe9f3;
- width: 170px;
- display: inline-block;
- line-height: 30px;
- height: 30px;
- text-align: center;
- }
- #merchant_name_form table {
- table-layout: fixed;
- }
- #createDate,
- #createItemStartDate,
- #createItemEndDate {
- height: 30px;
- }
- .createTaskDate {
- display: flex;
- align-items: center;
- margin-bottom: 10px;
- }
- .createTaskDate span {
- white-space: nowrap;
- margin-right: 10px;
- }
- .tab-base li span {
- font-size: 12px !important;
- }
- .page .fixed-bar .item-title h3 {
- margin-top: 18px !important;
- margin-bottom: 10px !important;
- font-weight: 700 !important;
- }
- </style>
- <div class="page">
- <div class="fixed-bar">
- <div class="item-title">
- <h3>对账管理</h3>
- <ul class="tab-base">
- <li><a href="index.php?act=OrderStats&op=index&type=system"><span>平台对账记录</span></a></li>
- <li><a href="index.php?act=OrderStats&op=index&type=provider"><span>上游对账记录</span></a></li>
- <li><a href="index.php?act=OrderStats&op=index&type=merchant"><span>下游对账记录</span></a></li>
- <li><a href="JavaScript:void(0);" class="current"><span>平台结余记录</span></a></li>
- <li><a href="index.php?act=OrderStats&op=refill_balance&type=provider"><span>上游结余记录</span></a></li>
- <li><a href="index.php?act=OrderStats&op=refill_balance&type=merchant"><span>下游结余记录</span></a></li>
- </ul>
- </div>
- </div>
- <div class="fixed-empty"></div>
- <form method="get" name="formSearch" id="formSearch">
- <input type="hidden" value="OrderStats" name="act">
- <input type="hidden" value="refill_balance" name="op">
- <input type="hidden" value="system" name="type">
- <table class="tb-type1 noborder search">
- <tbody>
- <tr>
- <th><label for="query_start_time">结余统计时间</label></th>
- <td>
- <input class="txt date" type="text" value="<?php echo $_GET['query_start_time']; ?>" id="startTime" name="query_start_time" autocomplete="off" style="width:120px" />
- <label for="query_start_time">~</label>
- <input class="txt date" type="text" value="<?php echo $_GET['query_end_time']; ?>" id="endTime" name="query_end_time" autocomplete="off" style="width:120px" />
- </td>
- <td>
- <th><label>统计日期类型</label></th>
- <td>
- <select name="order_time_type" id="order_time_type">
- <option value="">请选择...</option>
- <option value="notify_time" <?php if ($_GET['order_time_type'] == 'notify_time') {
- echo 'selected';
- } ?>>回调日期</option>
- <option value="order_time" <?php if ($_GET['order_time_type'] == 'order_time') {
- echo 'selected';
- } ?>>下单日期</option>
- </select>
- </td>
- </td>
- <td><a href="javascript:void(0);" id="ncsubmit" class="btn-search " title="<?php echo $lang['nc_query']; ?>"> </a>
- <?php if ($output['mch_name'] != '') { ?>
- <a href="index.php?act=OrderStats&op=index" class="btns " title="<?php echo $lang['nc_cancel_search']; ?>"><span><?php echo $lang['nc_cancel_search']; ?></span></a>
- <?php } ?>
- </td>
- <td>
- <a href="javascript:void(0);" id="create" class="btn">
- <span>新建</span>
- </a>
- </td>
- </tr>
- </tbody>
- </table>
- </form>
- <!-- <table class="table tb-type2" id="prompt">-->
- <!-- <tbody>-->
- <!-- <tr class="space odd">-->
- <!-- <th colspan="12"><div class="title">-->
- <!-- <h5>总量统计</h5>-->
- <!-- <span class="arrow"></span></div></th>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td class="row_q">-->
- <!-- <ul class="row_w">-->
- <!-- <li>回调日期统计</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计成功订单量: --><?php //echo $output['total_stats']['notify_time']['success_count_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计成功订单金额:--><?php //echo $output['total_stats']['notify_time']['success_refill_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计下游扣款金额:--><?php //echo $output['total_stats']['notify_time']['success_mch_amounts_toatl'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计上游扣款金额:--><?php //echo $output['total_stats']['notify_time']['success_channel_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计利润:--><?php //echo $output['total_stats']['notify_time']['profit_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- </ul>-->
- <!-- <ul>-->
- <!-- <li>下单日期统计</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计成功订单量: --><?php //echo $output['total_stats']['order_time']['success_count_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计成功订单金额:--><?php //echo $output['total_stats']['order_time']['success_refill_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计下游扣款金额:--><?php //echo $output['total_stats']['order_time']['success_mch_amounts_toatl'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计上游扣款金额:--><?php //echo $output['total_stats']['order_time']['success_channel_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- <li class="lineLi" style="color:#000;">总计利润:--><?php //echo $output['total_stats']['order_time']['profit_amounts_total'] ?? 0
- ?>
- <!--</li>-->
- <!-- </ul>-->
- <!-- </td>-->
- <!-- </tr>-->
- <!-- </tbody>-->
- <!-- </table>-->
- <div style="width:100%;overflow-x:auto;">
- <script>
- var stats_list_data = <?php echo json_encode($output['stats_list']) ?>
- </script>
- <form method="post" id="merchant_name_form">
- <input type="hidden" name="form_submit" value="ok" />
- <table class="table tb-type2" style="width:2500px;white-space: nowrap;">
- <thead>
- <tr class="thead">
- <th>记录ID</th>
- <th>父ID</th>
- <th>主体名称</th>
- <th class="align-left">统计开始日期</th>
- <th class="align-left">统计结束日期</th>
- <th class="align-center">成功订单数</th>
- <th class="align-center">成功金额</th>
- <th class="align-center">下游金额</th>
- <th class="align-center">上游金额</th>
- <th class="align-center">利润</th>
- <th class="align-center">银行转入</th>
- <th class="align-center">银行转出</th>
- <th class="align-center">返销金额</th>
- <th class="align-center">异常金额</th>
- <th class="align-center">累计结余</th>
- <th class="align-center">本次结余</th>
- <th class="align-left">更新日期</th>
- <th class="align-center">确认状态</th>
- <th class="align-center">统计日期类型</th>
- <th class="align-left">备注</th>
- <th class="align-center">操作</th>
- </tr>
- </thead>
- <tbody>
- <?php if (!empty($output['stats_list']) && is_array($output['stats_list'])) { ?>
- <?php foreach ($output['stats_list'] as $k => $v) { ?>
- <tr class="trFlex">
- <td><?php echo $v['balance_id']; ?></td>
- <td><?php echo $v['parent_id']; ?></td>
- <td><?php echo $v['cname']; ?></td>
- <td class="align-left"><?php echo $v['start_stamp'] ? date('Y-m-d H:i', $v['start_stamp']) : '/'; ?></td>
- <td class="align-left"><?php echo $v['end_text']; ?></td>
- <td class="align-center"><?php echo $v['success_count']; ?></td>
- <td class="align-center"><?php echo $v['refill_amount']; ?></td>
- <td class="align-center"><?php echo $v['mch_amount']; ?></td>
- <td class="align-center"><?php echo $v['channel_amount']; ?></td>
- <td class="align-center"><?php echo $v['profit_amount']; ?></td>
- <td class="align-center"><?php echo $v['transfer_in']; ?></td>
- <td class="align-center"><?php echo $v['transfer_out']; ?></td>
- <td class="align-center"><?php echo $v['refund_amount']; ?></td>
- <td class="align-center"><?php echo $v['except_amount']; ?></td>
- <td class="align-center"><?php echo $v['accumulate_balance']; ?></td>
- <td class="align-center"><?php echo $v['balance']; ?></td>
- <td class="align-left"><?php echo date("Y-m-d H:i:s", $v['update_time']); ?></td>
- <td class="align-center">
- <?php if ($v['confirmed'] == 0) { ?>
- <span style="color: #fd9d0e">未确认</span>
- <?php } else { ?>
- <span style="color: #0bb20c">已确认</span>
- <?php } ?>
- </td>
- <td class="align-center"><?php echo $output['order_time_type_text'][$v['time_type']]; ?></td>
- <td class="align-left"><?php echo $v['remark']; ?></td>
- <td style="color:#069;">
- <a style="color:#0D93BF;" href="javascript:void(0)" data-index="<?php echo $k ?>" data-balance_id="<?php echo $v['balance_id']; ?>" class="item_create_btn">新建</a>
- <span>|</span>
- <a style="color:#0D93BF;" href="javascript:void(0)" data-index="<?php echo $k ?>" class="handleBtn">编辑</a>
- <span>|</span>
- <a style="margin:0 5px;color:#0D93BF;" href="index.php?act=orderstats&op=refill_balance_rebuild&balance_id=<?php echo $v['balance_id']; ?>" data-index="<?php echo $k ?>" class="rebuildBtn">重新生成</a>
- <?php if ($v['confirmed'] == 0) { ?>
- <span>|</span>
- <a style="color:#0D93BF;" href="index.php?act=orderstats&op=refill_balance_confirm&balance_id=<?php echo $v['balance_id']; ?>" data-index="<?php echo $k ?>" class="checkBtn">确认</a>
- <?php } ?>
- </td>
- <!-- <td class="align-center w200">-->
- <!-- <a href="index.php?act=merchant&op=OrderStatsReload&stat_id=--><?php //echo $v['stat_id'];
- ?>
- <!--">重新统计</a>-->
- <!-- </td>-->
- </tr>
- <?php } ?>
- <?php } else { ?>
- <tr class="no_data">
- <td colspan="19"><?php echo $lang['nc_no_record']; ?></td>
- </tr>
- <?php } ?>
- </tbody>
- <tfoot>
- <tr class="tfoot">
- <td></td>
- <td colspan="20">
- <div class="pagination"><?php echo $output['show_page']; ?></div>
- </td>
- </tr>
- </tfoot>
- </table>
- </form>
- </div>
- </div>
- <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/js/jquery.edit.js" charset="utf-8"></script>
- <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/laydate/laydate.js"></script>
- <script type="text/javascript" src="<?php echo ADMIN_TEMPLATES_URL; ?>/layui/layui.js"></script>
- <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/refill/layer.js"></script>
- <link rel="stylesheet" type="text/css" href="<?php echo ADMIN_TEMPLATES_URL; ?>/layui/css/layui.css" />
- <script>
- $(function() {
- $('#create').on('click', function() {
- var selectEndDate = '';
- layui.use(['layer', 'laydate'], function() {
- const selectDateHTML = '<label class="createTaskDate"><span>结束日期:</span><input type="text" class="layui-input" id="createDate"></label>'
- layer.confirm(selectDateHTML, {
- title: '新建'
- }, function(index) {
- console.log('确认')
- if (!selectEndDate) {
- layer.msg('请选择结束日期');
- return;
- }
- var index = layer.load();
- $.ajax({
- url: `index.php?act=orderstats&op=refill_balance_stat_all`,
- data: {
- selectEndDate
- },
- dataType: 'json',
- mothod: 'get',
- success: function(res) {
- layer.close(index);
- console.log('success', res);
- if (res.code) {
- layer.msg(res.msg)
- } else {
- layer.alert(res.msg)
- }
- }
- })
- layer.close(index);
- }, function() {
- console.log('取消')
- });
- laydate.render({
- elem: '#createDate',
- type: 'datetime',
- done: function(value) {
- console.log('选中的日期...', value)
- selectEndDate = value;
- }
- });
- })
- //
- })
- $('.item_create_btn').on('click', function() {
- var selectStartDate = '';
- var selectEndDate = '';
- var balance_id = $(this).attr('data-balance_id');
- layui.use(['layer', 'laydate'], function() {
- const selectDateHTML = `<label class="createTaskDate"><span>开始日期:</span><input type="text" class="layui-input" id="createItemStartDate"></label>
- <label class="createTaskDate"><span>结束日期:</span><input type="text" class="layui-input" id="createItemEndDate"></label>`
- layer.confirm(selectDateHTML, {
- title: '新建'
- }, function(index) {
- console.log('确认')
- if (!selectStartDate) {
- layer.msg('请选择开始日期');
- return;
- }
- if (!selectEndDate) {
- layer.msg('请选择结束日期');
- return;
- }
- console.log(balance_id, selectStartDate, selectEndDate)
- var index = layer.load();
- $.ajax({
- url: `index.php?act=orderstats&op=refill_balance_create`,
- data: {
- balance_id,
- selectStartDate,
- selectEndDate
- },
- dataType: 'json',
- mothod: 'get',
- success: function(res) {
- layer.close(index);
- console.log('success', res);
- if (res.code) {
- layer.msg(res.msg)
- } else {
- layer.alert(res.msg)
- }
- }
- })
- layer.close(index);
- }, function() {
- console.log('取消')
- });
- laydate.render({
- elem: '#createItemStartDate',
- type: 'datetime',
- done: function(value) {
- console.log('选中的开始日期...', value)
- selectStartDate = value;
- }
- });
- laydate.render({
- elem: '#createItemEndDate',
- type: 'datetime',
- done: function(value) {
- console.log('选中的结束日期...', value)
- selectEndDate = value;
- }
- });
- })
- })
- $('.handleBtn').on('click', function() {
- var index = $(this).attr('data-index');
- var data = stats_list_data[index];
- layui.use(['form', 'layer'], function() {
- var layer = layui.layer;
- var form = layui.form;
- layer.confirm(`
- <div>
- <form class="layui-form" action="">
- <div class="layui-form-item">
- <label class="layui-form-label">记录ID</label>
- <div class="layui-input-block">
- <input type="text" value="${data.balance_id}" style="height:38px;" disabled name="title" required lay-verify="required" placeholder="记录ID" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">父ID</label>
- <div class="layui-input-block">
- <input type="text" value="${data.parent_id}" style="height:38px;" disabled name="title" required lay-verify="required" placeholder="父ID" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">主体名称</label>
- <div class="layui-input-block">
- <input type="text" value="${data.cname}" style="height:38px;" disabled name="title" required lay-verify="required" placeholder="主体名称" autocomplete="off" class="layui-input">
- </div>
- </div>
-
- </form>
- </div>`, {
- area: '500px',
- title: '编辑'
- }, function(index) {
- alert('点击了确定')
- })
- // layer.open({
- // area: '500px',
- // type: 1,
- // title: '编辑',
- // content:
- // })
- form.render();
- })
- })
- $('#ncsubmit').click(function() {
- $('#formSearch').submit();
- });
- // 日期选择器
- laydate.render({
- elem: '#startTime',
- type: 'datetime'
- });
- laydate.render({
- elem: '#endTime',
- type: 'datetime'
- });
- // 表格hover时背景
- $('.trFlex').each(function() {
- $(this).hover(function() {
- $(this)[0].style.backgroundColor = '#cbe9f3'
- }, function() {
- $(this)[0].style.backgroundColor = '#fff'
- })
- })
- function JSONToExcelConvertor(JSONData, FileName, ShowLabel, headData) {
- //先转化json
- let arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
- let excel = '<table>';
- // 标题
- for (const key in headData) {
- var head = "<tr>";
- var td = "<td colspan='13' style='font-size:16px;'>" + headData[key] + '</td>';
- excel += td + "</tr>";
- }
- //设置表头
- let row = "<tr>";
- for (var i = 0, l = ShowLabel.length; i < l; i++) {
- row += "<th style='font-size:14px;'>" + ShowLabel[i].value + '</th>';
- }
- //换行
- excel += row + "</tr>";
- //设置数据
- for (var i = 0; i < arrData.length; i++) {
- var tr = "<tr>";
- let code = i + 1
- tr += "<td>" + code + "</td>"
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].time_text + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].cname + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].cid + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].success_count + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].success_refill_amounts + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].success_mch_amounts + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].success_channel_amounts + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].profit_amounts + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].service_amounts + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].order_count + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].cancel_count + '</td>';
- tr += '<td style=font-size:14px;' + 'mso-number-format:"\@"' + '>' + arrData[i].success_ratio + '</td>';
- excel += tr + "</tr>";
- }
- excel += "</table>";
- var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
- excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
- excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel';
- excelFile += '; charset=UTF-8">';
- excelFile += "<head>";
- excelFile += "<!--[if gte mso 9]>";
- excelFile += "<xml>";
- excelFile += "<x:ExcelWorkbook>";
- excelFile += "<x:ExcelWorksheets>";
- excelFile += "<x:ExcelWorksheet>";
- excelFile += "<x:Name>";
- excelFile += "{worksheet}";
- excelFile += "</x:Name>";
- excelFile += "<x:WorksheetOptions>";
- excelFile += "<x:DisplayGridlines/>";
- excelFile += "</x:WorksheetOptions>";
- excelFile += "</x:ExcelWorksheet>";
- excelFile += "</x:ExcelWorksheets>";
- excelFile += "</x:ExcelWorkbook>";
- excelFile += "</xml>";
- excelFile += "<![endif]-->";
- excelFile += "</head>";
- excelFile += "<body>";
- excelFile += excel;
- excelFile += "</body>";
- excelFile += "</html>";
- var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile);
- var link = document.createElement("a");
- link.href = uri;
- link.style = "visibility:hidden";
- link.download = FileName + ".xls";
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- }
- $('#ncexport').click(function() {
- let starTime = new Date($('input[name="query_start_time"]').val()).getTime() / 1000;
- let endTime = new Date($('input[name="query_end_time"]').val()).getTime() / 1000;
- let order_time_type = $('#order_time_type').val();
- $.get('index.php?act=orderstats&op=ExportData', {
- query_start_time: starTime,
- query_end_time: endTime,
- order_time_type: order_time_type
- }, function(data) {
- data = JSON.parse(data)
- if (data && data.data) {
- let head = ['北京椰子电子商务有限责任公司']
- let time = ''
- if (starTime && endTime) {
- time = '统计时间:' + $('input[name="query_start_time"]').val() + ' - ' + $('input[name="query_end_time"]').val()
- head.push(time)
- } else if (starTime) {
- time = '统计时间:' + $('input[name="query_start_time"]').val()
- head.push(time)
- }
- head.push('总计成功订单数量:' + parseInt(data.total_stats.success_count_total))
- head.push('总计成功订单金额:' + parseFloat(data.total_stats.success_refill_amounts_total))
- head.push('总计下游扣款金额:' + parseFloat(data.total_stats.success_mch_amounts_toatl))
- head.push('总计上游扣款金额:' + parseFloat(data.total_stats.success_channel_amounts_total))
- head.push('总计利润金额:' + parseFloat(data.total_stats.profit_amounts_total))
- let title = [{
- value: "序号"
- }, {
- value: "统计日期"
- }, {
- value: "主体名称"
- }, {
- value: "主体ID"
- }, {
- value: "成功订单数"
- }, {
- value: "成功金额"
- }, {
- value: "下游金额"
- }, {
- value: "上游金额"
- }, {
- value: "利润"
- }, {
- value: "服务费"
- }, {
- value: "订单总量"
- }, {
- value: "失败订单数量"
- }, {
- value: "成功占比"
- }]
- JSONToExcelConvertor(data.data, '平台对账记录', title, head)
- }
- })
- })
- });
- </script>
|