123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600 |
- <?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 thead tr th:first-child,
- #merchant_name_form tbody tr td:first-child {
- position: sticky;
- left: 0;
- background: #fff;
- z-index: 1;
- width: 30px;
- box-shadow: 2px 0 2px rgba(0, 0, 0, 0.1);
- }
- #merchant_name_form table {
- display: block;
- width: 100%;
- max-height: calc(100vh - 220px);
- table-layout: fixed;
- overflow-x: scroll;
- }
- #merchant_name_form table thead tr:first-child {
- position: sticky;
- top: -1px;
- left: 0;
- background: #fff;
- box-shadow: 0 2px 5px rgb(0 0 0 / 10%);
- z-index: 10;
- }
- #merchant_name_form table tbody tr:last-child {
- border-bottom: 1px dotted #CBE9F3;
- }
- #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;
- }
- .mw165 {
- min-width: 165px;
- }
- .layui-form-label {
- width: 90px !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>
- <tr>
- <td>
- <a href="#" class="btn export" title="所选中记录导出">
- <span><i class="icon-export"></i>导出</span>
- </a>
- </td>
- </tr>
- </tbody>
- </table>
- </form>
- <div>
- <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="white-space: nowrap;">
- <thead>
- <tr class="thead">
- <th class="align-center" id="selectAll"><input type="checkbox" name="chbox" value=""></th>
- <th>记录ID</th>
- <th>父ID</th>
- <th>主体名称</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">统计日期类型</th>
- <th class="align-center">备注</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 class="align-center">
- <input type="checkbox" id="checkBoxList" name="checkbox" value="<?php echo $v['balance_id']; ?>">
- </td>
- <td><?php echo $v['balance_id']; ?></td>
- <td><?php echo $v['parent_id']; ?></td>
- <td><?php echo $v['cname']; ?></td>
- <td class="align-center"><?php echo $v['start_stamp'] ? date('Y-m-d H:i', $v['start_stamp']) : '/'; ?></td>
- <td class="align-center"><?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-center"><?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-center"><?php echo $v['remark']; ?></td>
- <td style="color:#069;">
- <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>
- </tr>
- <?php } ?>
- <?php } else { ?>
- <tr class="no_data">
- <td colspan="22"><?php echo $lang['nc_no_record']; ?></td>
- </tr>
- <?php } ?>
- </tbody>
- </table>
- <div class="pagination"><?php echo $output['show_page']; ?></div>
- </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;
- }
- });
- })
- })
- // <div class="layui-form-item">
- // <div class="layui-inline">
- // <label class="layui-form-label">统计开始日期:</label>
- // <div class="layui-input-inline">
- // <input type="text" value="${(data.start_stamp == 0 || !data.start_stamp) ? '' : data.start_stamp}" style="height:38px;" name="start_stamp" required lay-verify="required" placeholder="统计开始日期" autocomplete="off" class="layui-input" id="editItemStartDate">
- // </div>
- // </div>
- // <div class="layui-inline">
- // <label class="layui-form-label">统计结束日期:</label>
- // <div class="layui-input-inline">
- // <input type="text" value="${(data.end_text == 0 || !data.start_stamp) ? '': data.end_text}" style="height:38px;" name="end_text" required lay-verify="required" placeholder="统计结束日期" autocomplete="off" class="layui-input" id="editItemEndDate">
- // </div>
- // </div>
- // </div>
- $('.handleBtn').on('click', function() {
- var index = $(this).attr('data-index');
- var data = stats_list_data[index];
- console.log('data', data)
- layui.use(['form', 'layer', 'laydate'], function() {
- var layer = layui.layer;
- var form = layui.form;
- const transfer_detail_data = [];
- Object.keys(data.transfer_detail_data).map(key => {
- transfer_detail_data.push(data.transfer_detail_data[key])
- })
- console.log('transfer_detail_data', transfer_detail_data)
- let transferDetailHTML = '';
- for (let i = 0; i < transfer_detail_data.length; i++) {
- if (i % 3 == 0) {
- transferDetailHTML += `<div class="layui-form-item">`
- }
- transferDetailHTML += `
- <div class="layui-inline">
- <label class="layui-form-label">${transfer_detail_data[i].name}</label>
- <div class="layui-input-inline">
- <input type="text" value="${transfer_detail_data[i].amount}" disabled style="height:38px;" required lay-verify="required" autocomplete="off" class="layui-input">
- </div>
- </div>
- `
- if (i % 3 == 2 || i == transfer_detail_data.length - 1) {
- transferDetailHTML += `</div> `
- }
- }
- layer.confirm(`
- <div>
- <form id="editStatDataForm" class="layui-form" method="post" action="index.php?act=Orderstats&op=refill_balance_edit">
- <input type="hidden" value="${data.balance_id}" name="balance_id">
-
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">成功订单数:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.success_count}" style="height:38px;" name="success_count" required lay-verify="required" placeholder="成功订单数" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">成功金额:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.refill_amount}" style="height:38px;" name="refill_amount" required lay-verify="required" placeholder="成功金额" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">下游金额:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.mch_amount}" style="height:38px;" name="mch_amount" required lay-verify="required" placeholder="下游金额" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div class="layui-form-item">
-
- <div class="layui-inline">
- <label class="layui-form-label">上游金额:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.channel_amount}" style="height:38px;" name="channel_amount" required lay-verify="required" placeholder="上游金额" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">利润:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.profit_amount}" style="height:38px;" name="profit_amount" required lay-verify="required" placeholder="利润" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">银行转入:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.transfer_in}" style="height:38px;" name="transfer_in" required lay-verify="required" placeholder="银行转入" autocomplete="off" class="layui-input">
- </div>
- </div>
-
- </div>
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">银行转出:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.transfer_out}" style="height:38px;" name="transfer_out" required lay-verify="required" placeholder="银行转出" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">返销金额:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.refund_amount}" style="height:38px;" name="refund_amount" required lay-verify="required" placeholder="返销金额" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">异常金额:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.except_amount}" style="height:38px;" name="except_amount" required lay-verify="required" placeholder="异常金额" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">累计结余:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.accumulate_balance}" style="height:38px;" name="accumulate_balance" required lay-verify="required" placeholder="累计结余" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">本次结余:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.balance}" style="height:38px;" name="balance" required lay-verify="required" placeholder="本次结余" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
-
- <div class="layui-form-item">
- <div class="layui-block">
- <label class="layui-form-label">备注:</label>
- <div class="layui-input-inline">
- <input type="text" value="${data.remark}" style="width:525px;height:38px;" name="remark" required lay-verify="required" placeholder="备注" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div style="height:1px;border-top: 1px dotted #CBE9F3;margin-bottom:15px;"></div>
- ${transferDetailHTML}
- </form>
- </div>`, {
- area: '1200px',
- title: '编辑'
- }, function(index) {
- $('#editStatDataForm').submit();
- })
- 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'
- })
- })
- $('#selectAll').click(function() {
- if ($("input[name='chbox']").is(':checked')) {
- $("input[name='checkbox']").each(function() {
- this.checked = true;
- })
- } else {
- $("input[name='checkbox']").each(function() {
- this.checked = false;
- })
- }
- })
- $('.export').click(function() {
- layer.confirm('您确定要导出所选记录吗', {
- btn: ['确定', '取消'],
- title: '记录导出'
- }, function() {
- let arr = [];
- $("input:checkbox:checked").each(function(i) {
- arr[i] = $(this).val();
- })
- let str = arr.join(",");
- let strr = str.substring(0, 1);
- let number = Number(strr);
- if (isNaN(number)) {
- let strrr = str.substring(1, str.length);
- window.location.href = `index.php?act=orderstats&op=refill_balance_export&balance_ids= ${strrr ? strrr : ''}`
- } else if (!isNaN(number) && str !== '') {
- window.location.href = `index.php?act=orderstats&op=refill_balance_export&balance_ids= ${str ? str : ''}`
- } else {
- layer.msg('请还没有任何操作,请先选择');
- }
- }, function() {
- layer.msg('取消成功');
- });
- })
- });
- </script>
|