123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- <?php defined('InShopNC') or exit('Access Invalid!'); ?>
- <style>
- .page .fixed-bar .item-title h3 {
- margin-top:18px !important;
- margin-bottom:10px !important;
- font-weight:700 !important;
- }
- .tab-base li span {
- font-size:12px !important;
- }
- .layui-form-select .layui-input {
- height:26px;
- }
- input::placeholder{
- color:#333;
- }
- .row_q {
- display: flex;
-
- }
- .row_q ul li {
- height: 30px;
- line-height: 30px;
- }
- #merchant_name_form {
- display: block;
- margin-top: 123px;
- }
- .moveright {
- margin-left: 40px;
- }
- </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="JavaScript:void(0);" class="current"><span>上游对账记录</span></a></li>
- <li><a href="index.php?act=OrderStats&op=index&type=merchant"><span>下游对账记录</span></a></li>
- </ul>
- </div>
- </div>
- <div class="fixed-empty"></div>
- <form method="get" name="formSearch" id="formSearch" class="layui-form">
- <input type="hidden" value="OrderStats" name="act">
- <input type="hidden" value="index" name="op">
- <input type="hidden" value="provider" 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>
- <th><label>统计日期类型</label></th>
- <td>
- <select name="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>
- <th><label>通道名称</label></th>
- <td>
- <select name="cid" class="querySelect" lay-verify="" lay-search>
- <option value=""><?php echo $lang['nc_please_choose']; ?></option>
- <?php foreach($output['provider_list'] as $provider){?>
- <option value="<?php echo $provider['store_id']?>"
- <?php if ($_GET['cid'] == $provider['store_id']){ ?>selected<?php } ?>><?php echo $provider['store_name']?>
- </option>
- <?php }?>
- </select>
- </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="ncexport" 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>
- <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>
- </ul>
- <ul class="moveright">
- <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>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- <form method="post" id="merchant_name_form">
- <input type="hidden" name="form_submit" value="ok"/>
- <table class="table tb-type2">
- <thead>
- <tr class="thead">
- <th>统计日期</th>
- <th>主体名称</th>
- <th>主体ID</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-center">金额误差</th>
- <th class="align-center">备注</th>
- <th class="align-center">匹配状态</th>
- <th class="align-center">统计日期类型</th>
- <th class="align-center"><?php echo $lang['operation']; ?></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['time_text']; ?></td>
- <td><?php echo $v['cname']; ?></td>
- <td><?php echo $v['cid']; ?></td>
- <td class="align-center"><?php echo $v['success_count']; ?></td>
- <td class="align-center"><?php echo $v['success_refill_amounts']; ?></td>
- <td class="align-center"><?php echo $v['success_channel_amounts']; ?></td>
- <td class="align-center"><?php echo $v['success_mch_amounts']; ?></td>
- <td class="align-center"><?php echo $v['profit_amounts']; ?></td>
- <td class="align-center"><?php echo $v['order_count']; ?></td>
- <td class="align-center"><?php echo $v['cancel_count']; ?></td>
- <td class="align-center"><?php echo $v['success_ratio']; ?></td>
- <td class="align-center"><?php echo $v['corder_success_count']; ?></td>
- <td class="align-center"><?php echo $v['corder_success_amounts']; ?></td>
- <td class="align-center"><?php echo $v['gap_order_count']; ?></td>
- <td class="align-center"><?php echo $v['gap_success_amounts']; ?></td>
- <td class="align-center"><?php echo $v['remark']; ?></td>
- <td class="align-center">
- <?php if($v['check_status'] == 1){?>
- <span style="color: #0bb20c">匹配</span>
- <?php }elseif ($v['check_status'] == 2) {?>
- <span style="color: #f30707">不匹配</span>
- <?php }else{?>
- <span style="color: #fd9d0e">未编辑</span>
- <?php }?>
- </td>
- <td class="align-center"><?php echo $output['order_time_type_text'][$v['order_time_type']]; ?></td>
- <td class="align-center w200">
- <a href="index.php?act=merchant&op=OrderStatsReload&stat_id=<?php echo $v['stat_id'];?>">重新统计</a>
- |<a href="index.php?act=merchant&op=OrderStatsCheck&stat_id=<?php echo $v['stat_id'] ?>">编辑</a>
- </td>
- </tr>
- <?php } ?>
- <?php } else { ?>
- <tr class="no_data">
- <td colspan="15"><?php echo $lang['nc_no_record']; ?></td>
- </tr>
- <?php } ?>
- </tbody>
- <tfoot>
- <tr class="tfoot">
- <td></td>
- <td colspan="16">
- <div class="pagination"><?php echo $output['page']; ?></div>
- </td>
- </tr>
- </tfoot>
- </table>
- </form>
- </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>
- <link rel="stylesheet" type="text/css" href="<?php echo ADMIN_TEMPLATES_URL; ?>/layui/css/layui.css"/>
- <script>
- $(function () {
- $('#ncsubmit').click(function () {
- $('input[name="op"]').val('index');
- $('#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
- var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
-
- var excel = '<table>';
-
- // 标题
- for (const key in headData) {
- var head = "<tr>";
- var td = "<td colspan='12' style='font-size:16px;'>"+ headData[key] + '</td>';
- excel += td + "</tr>";
- }
- //设置表头
- var 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 row = "<tr>";
- let code = i+1
- row += "<td>" +code+ "</td>"
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].time_text + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].cname + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].cid + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].success_count + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].success_refill_amounts + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].success_channel_amounts + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].success_mch_amounts + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].profit_amounts + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].order_count + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].cancel_count + '</td>';
- row += '<td style=font-size:14px;'+ 'mso-number-format:"\@"'+ '>' + arrData[i].success_ratio + '</td>';
- excel += row + "</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 cid = $('select').val()
- let text = $('select option:selected').text()
- $.get('index.php?act=orderstats&op=ExportData&type=provider', {
- query_start_time: starTime,
- query_end_time: endTime,
- cid: cid
- }, 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()
- } else if (starTime) {
- time = '统计时间:'+$('input[name="query_start_time"]').val()
- }
- if (text && cid) {
- time += ' 上游名称:'+text
- }
- if (time) {
- head.push(time)
- }
- head.push('总计成功订单量:' + parseFloat(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: "成功占比"}]
- JSONToExcelConvertor(data.data, '上游对账记录', title, head)
- }
- // console.log('data', data);
- })
- })
- });
- </script>
|