2024-12-08 19:20:29 +08:00

453 lines
28 KiB
HTML

{extend name="../../admin/view/table"}
{block name="button"}
<a class='layui-btn layui-btn-sm layui-btn-primary' id="upload" style="margin: 10px;">批量手动充值</a>
<a id="restart" class='layui-btn layui-btn-sm layui-btn-primary'>将暂停中订单重新启动</a>
<a id="errorToTiancheng" class='layui-btn layui-btn-sm layui-btn-primary' style="display: none;">八达通失败订单转到天成</a>
{if input('set_callback') == 1}
<a data-confirm="确定要把已勾选的订单置成功吗?" data-action="{:url('set')}" data-rule="order_id#{key};status#2;data_type#{$data_type}" data-csrf="{:systoken('set')}" class='layui-btn layui-btn-sm'>批量置成功</a>
<a data-confirm="确定要把已勾选的订单置失败吗?" data-action="{:url('set')}" data-rule="order_id#{key};status#3;data_type#{$data_type}" data-csrf="{:systoken('set')}" class='layui-btn layui-btn-sm layui-btn-danger'>批量置失败</a>
<a data-confirm="确定要把已勾选的订单重新启动吗?" data-action="{:url('set_restart')}" data-rule="order_id#{key}" data-csrf="{:systoken('set_restart')}" class='layui-btn layui-btn-sm'>批量重新启动</a>
{/if}
{/block}
{block name="content"}
<div class="layui-tab layui-tab-card think-bg-white table-block">
<div class="layui-tab-content think-box-shadow table-block table-block">
{include file='order/index_search'}
{include file='order/statement'}
<div style="min-width:1rem;overflow-x:auto;" class="tableAll">
<table class="layui-table margin-top-10" lay-skin="line" id="order-table-data-list">
{notempty name='list'}
<thead>
<tr>
<th class='list-table-check-td think-checkbox leftfix'>
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
</th>
<th class='text-left nowrap leftfixx' width="">序号</th>
<th class='text-left nowrap' width="">商户</th>
<th class='text-left nowrap' width="">系统订单号</th>
<th class='text-left nowrap' width="">商户订单号</th>
<th class='text-left nowrap' width="">充值账号</th>
<th class='text-left nowrap' width="">总面值</th>
<th class='text-left nowrap' width="">数量</th>
<th class='text-left nowrap' width="">单面值</th>
<th class='text-left nowrap' width="">官方流水号</th>
<th class='text-left nowrap' width="">订单状态</th>
<th class='text-left nowrap' width="">下单时间</th>
<th class='text-left nowrap' width="">耗时</th>
<th class='text-left nowrap' width="">同步结果</th>
<th class='text-left nowrap '>充值结果</th>
<th class='text-left nowrap rightfix'>订单操作</th>
</tr>
</thead>
{/notempty}
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='list-table-check-td think-checkbox leftfix' >
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
</td>
<td class='text-left nowrap leftfixx'><span>{$vo.index|default=''}</span></td>
<td class='text-left nowrap'>{$vo.minfo.name|default=''}
( <span class="color-desc">{$vo.minfo.id|default=''}</span>
{eq name='vo.minfo.status' value='0'}/<span class="color-red"></span>{/eq}
{eq name='vo.minfo.is_deleted' value='1'}/<span class="color-red"></span>{/eq} )
{if $vo.project_id}
<br />
通道:{$vo.project.name|default=''}
( <span class="color-desc">{$vo.project.id|default=''}</span>
{eq name='vo.project.status' value='0'}/<span class="color-red"></span>{/eq} )
{/if}
<br />
渠道:{$vo.cinfo.name|default=''} ( <span class="color-desc">{$vo.cinfo.id|default=''}</span>{eq name='vo.cinfo.status' value='0'}/<span class="color-red"></span>{/eq}{eq name='vo.cinfo.is_deleted' value='1'}/<span class="color-red"></span>{/eq} )
<br />
{if $vo.pinfo}
商品:{$vo.pinfo.name|default=''}
( <span class="color-desc">{$vo.pinfo.id|default=''}</span>
{eq name='vo.pinfo.status' value='0'}/<span class="color-red"></span>{/eq}
{eq name='vo.pinfo.is_deleted' value='1'}/<span class="color-red"></span>{/eq} )
{else/}
商品:
{/if}
</td>
<td class='text-left nowrap'>
{eq name='$vo.apply_refund' value='1'}<button type="button" class="layui-btn layui-bg-red layui-btn-xs" style="border: none;margin-right: 5px;cursor: auto"></button>{/eq}
{eq name='$vo.apply_refund' value='2'}<button type="button" class="layui-btn layui-bg-red layui-btn-xs" style="border: none;margin-right: 5px;cursor: auto"></button>{/eq}
{eq name='$vo.apply_refund' value='3'}<span>C</span>{/eq}
<span>{$vo.order_id|default=''}</span>
{if $vo.num > 0}
<br />
<span>复冲次数:{$vo.num|default=''}</span>
{/if}
</td>
<td class='text-left nowrap'>
<span>{$vo.merchant_order_id|default=''}</span>
</td>
<td class='text-left nowrap'><span>{$vo.account|default=''}</span>{if $vo.product_key == 'dhcz' && $vo.isp > 0}<br />{$isp[$vo.isp]}{/if}</td>
<td class='text-left nowrap'><span>{$vo.cash|number_format=###, 2, '.', ''}</span>{if $vo.show_set == 1} / {$vo.actual_cash|number_format=###, 2, '.', ''} / {$vo.product_cash|number_format=###, 2, '.', ''}{/if}</td>
<td class='text-left nowrap'><span>{$vo.buy_num|default=''}</span></td>
<td class='text-left nowrap'><span>{$vo.one_cash|default=''}</span></td>
<td class='text-left nowrap'><span>{$vo.s_number|default=''}</span></td>
<td class='text-left nowrap'>
{if $vo.other}
<table class="layui-table margin-top-10" lay-skin="line">
<thead>
<tr>
<th class='text-left nowrap' width="">渠道名</th>
<th class='text-left nowrap' width="">订单号</th>
<th class='text-left nowrap' width="">充值状态</th>
</tr>
</thead>
<tbody>
{foreach $vo.other as $k=>$v}
<tr>
<td class='text-left nowrap' width="">
{$v.cinfo.name|default=''} ( <span class="color-desc">{$v.cinfo.id|default=''}</span>{eq name='v.cinfo.status' value='0'}/<span class="color-red"></span>{/eq}{eq name='v.cinfo.is_deleted' value='1'}/<span class="color-red"></span>{/eq} )
</td>
<td class='text-left nowrap' width=""><span>{$v.channel_order_id|default=''}</span></td>
<td class='text-left nowrap' width="">
{eq name='v.status' value='-8'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">重提排队中</span>{/eq}
{eq name='v.status' value='-6'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">冻结中</span>{/eq}
{eq name='v.status' value='-5'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">暂停中</span>{/eq}
{eq name='v.status' value='-4'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">复充排队中</span>{/eq}
{eq name='v.status' value='-3'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">排队中</span>{/eq}
{eq name='v.status' value='-2'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-red">失败,需手动处理</span>{/eq}
{eq name='v.status' value='-1'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">队列中</span>{/eq}
{eq name='v.status' value='1'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-gray">下单</span>{/eq}
{eq name='v.status' value='2'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-green">充值成功</span>{/eq}
{eq name='v.status' value='3'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-red">充值失败</span>{/eq}
{eq name='v.status' value='4'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='v.status' value='5'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-red">存疑</span>{/eq}
{eq name='v.status' value='6'}<span data-modal="{:url('info')}?id={$v.id}&data_type=3" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='v.status' value='7'}<span
class="color-span color-span-blue"
data-modal="{:url('info')}?id={$v.id}&data_type=3">提卡成功待处理</span>{/eq}
</td>
</tr>
{/foreach}
<tr>
<td class='text-left nowrap' width="">
{$vo.cinfo.name|default=''} ( <span class="color-desc">{$vo.cinfo.id|default=''}</span>{eq name='vo.cinfo.status' value='0'}/<span class="color-red"></span>{/eq}{eq name='vo.cinfo.is_deleted' value='1'}/<span class="color-red"></span>{/eq} )
</td>
<td class='text-left nowrap' width=""><span>{$vo.channel_order_id|default=''}</span></td>
<td class='text-left nowrap' width="">
{eq name='vo.status' value='-8'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">重提排队中</span>{/eq}
{eq name='vo.status' value='-6'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">冻结中</span>{/eq}
{eq name='vo.status' value='-5'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">暂停中</span>{/eq}
{eq name='vo.status' value='-4'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">复充排队中</span>{/eq}
{eq name='vo.status' value='-3'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">排队中</span>{/eq}
{eq name='vo.status' value='-2'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">失败,需手动处理</span>{/eq}
{eq name='vo.status' value='-1'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">队列中</span>{/eq}
{eq name='vo.status' value='1'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">下单</span>{/eq}
{eq name='vo.status' value='2'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-green">充值成功</span>{/eq}
{eq name='vo.status' value='3'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">充值失败</span>{/eq}
{eq name='vo.status' value='4'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='vo.status' value='5'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">存疑</span>{/eq}
{eq name='vo.status' value='6'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='vo.status' value='7'}<span
class="color-span color-span-blue"
data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}">提卡成功待处理</span>{/eq}
</td>
</tr>
</tbody>
</table>
{else}
{eq name='vo.status' value='-8'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">重提排队中</span>{/eq}
{eq name='vo.status' value='-6'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">冻结中</span>{/eq}
{eq name='vo.status' value='-5'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">暂停中</span>{/eq}
{eq name='vo.status' value='-4'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">复充排队中</span>{/eq}
{eq name='vo.status' value='-3'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">排队中</span>{/eq}
{eq name='vo.status' value='-2'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">失败,需手动处理</span>{/eq}
{eq name='vo.status' value='-1'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">队列中</span>{/eq}
{eq name='vo.status' value='1'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-gray">下单</span>{/eq}
{eq name='vo.status' value='2'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-green">充值成功</span>{/eq}
{eq name='vo.status' value='3'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">充值失败</span>{/eq}
{eq name='vo.status' value='4'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='vo.status' value='5'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-red">存疑</span>{/eq}
{eq name='vo.status' value='6'}<span data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}" class="color-span color-span-blue">处理中</span>{/eq}
{eq name='vo.status' value='7'}<span class="color-span color-span-blue" data-modal="{:url('info')}?id={$vo.id}&data_type={$data_type}">提卡成功待处理</span>{/eq}
{/if}
{if $vo.card}
<br />
卡号:<span>{$vo.card.cnum|default=''}</span>
<br />
失败:<span>{$vo.card_error|default=''}</span>
{/if}
</td>
<td class='text-left nowrap'><span>{$vo.create_at}</span></td>
<td class='text-left nowrap' style="display:none;">请求:<span>{$vo.create_at|format_datetime}</span><br />回调:<span>{$vo.channel_callback_at|format_datetime}</span></td>
<td class='text-left nowrap'><span>{$vo.time|default=''}</span></td>
<td class='text-left nowrap'><span>{$vo.merchant_callback_msg|default=''}</span></td>
<td class='text-left'><span>{$vo.msg|default=''}</span></td>
<td class='text-left nowrap rightfix' style="border-left: 2px #EEEEEE solid !important;">
<!--{if $vo.show_set == 1 || $vo.status == -2 || $vo.status == 5}-->
{if $vo.show_set == 1}
<a> 已发回调通知次数:{$vo.merchant_callback_num}次</a>
{/if}
<br />
{if $vo.status == 4}
<a class="layui-btn layui-btn-xs" data-confirm="确定要冻结吗?冻结的订单无法向下游推送回调" data-action="{:url('set')}?order_id={$vo.id}&status=-6&data_type={$data_type}" data-value="id#{$vo.id}">冻结</a>
{elseif $vo.status == -6}
<a class="layui-btn layui-btn-xs" data-confirm="确定要取消冻结吗?取消后的订单变成处理中,可以继续向下游推送回调" data-action="{:url('set')}?order_id={$vo.id}&status=4&data_type={$data_type}" data-value="id#{$vo.id}">取消冻结</a>
{/if}
{if $vo.suoka_status == 1}
<a class="layui-btn layui-btn-xs" data-action="{:url('suoka')}?order_id={$vo.id}&type=1&data_type={$data_type}"
data-confirm="确定要锁卡吗"
data-value="id#{$vo.id}">锁卡</a>
{elseif $vo.suoka_status == 2}
<a class="layui-btn layui-btn-xs" data-action="{:url('suoka')}?order_id={$vo.id}&type=0&data_type={$data_type}"
data-confirm="确定要解锁吗"
data-value="id#{$vo.id}">解锁</a>
{/if}
{if $vo.set_black_status == 1}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-action="{:url('setBlack')}?order_id={$vo.id}&black_status=2&data_type={$data_type}"
data-confirm="确定要把这个用户拉入黑名单吗?"
data-value="id#{$vo.id}">拉黑</a>
{elseif $vo.set_black_status ==2}
<a class="layui-btn layui-btn-xs" data-action="{:url('setBlack')}?order_id={$vo.id}&black_status=1&data_type={$data_type}"
data-confirm="确定要把这个用户拉出黑名单吗"
data-value="id#{$vo.id}">已拉黑,解禁</a>
{/if}
{if $vo.card_status == 1}
<a class="layui-btn layui-btn-xs layui-btn-normal" data-title="设置卡密" data-modal='{:url("setCard")}?order_id={$vo.id}&status=2&data_type={$data_type}' data-csrf="{:systoken('pass')}">置成功</a>
{elseif $vo.card_status == 3}
<a class="layui-btn layui-btn-xs layui-btn-normal" data-csrf="{:systoken('pass')}"
data-modal='{:url("setKami")}?order_id={$vo.id}&status=2&data_type={$data_type}'
data-title="手动置成功">置成功</a>
{else}
<a class="layui-btn layui-btn-xs layui-btn-normal" data-title="手动置成功" data-modal='{:url("setYes")}?order_id={$vo.id}&status=2&data_type={$data_type}' data-csrf="{:systoken('pass')}">置成功</a>
<!--<a class="layui-btn layui-btn-xs" data-confirm="确定要置成功吗?" data-action="{:url('set')}?order_id={$vo.id}&status=2&data_type={$data_type}" data-value="id#{$vo.id}">置成功</a>-->
{/if}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要置失败吗?" data-action="{:url('set')}?order_id={$vo.id}&status=3&data_type={$data_type}" data-value="id#{$vo.id}">置失败</a>
<!--
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要置疑似吗?" data-action="{:url('set')}?order_id={$vo.id}&status=5&data_type={$data_type}" data-value="id#{$vo.id}">置疑似</a>
-->
{if $vo.status == 5}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要复充吗?" data-action="{:url('order')}?order_id={$vo.id}&data_type={$data_type}" data-value="id#{$vo.id}">复充</a>
{elseif ($vo.status == -5)}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要重提吗?" data-action="{:url('set_restart')}?order_id={$vo.id}&data_type={$data_type}" data-value="id#{$vo.id}">重提</a>
{elseif ($vo.status == 2 || $vo.status == 3 || $vo.status == 5)}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要手动发起回调通知吗?" data-action="{:url('call')}?order_id={$vo.id}&data_type={$data_type}" data-value="id#{$vo.id}">发回调</a>
{/if}
{if $vo.actual_cash <= 0 && $vo.status == 2}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要手动发起手动扣款吗?" data-action="{:url('kou')}?order_id={$vo.id}&data_type={$data_type}" data-value="id#{$vo.id}">手动扣款</a>
{/if}
{if $vo.status== 5}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要取消订单吗?" data-action="{:url('cancel')}?order_id={$vo.id}&data_type={$data_type}" data-value="id#{$vo.id}">取消订单</a>
{/if}
{if $vo.show_refund == 1}
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要申请拦截订单吗?" data-action="{:url('apply_refund')}?order_id={$vo.id}&data_type={$data_type}&apply_refund_type=1" data-value="id#{$vo.id}">申请拦截</a>
{elseif $vo.show_refund == 2}
{/if}
<!--{/if}-->
<!-- {/if} -->
</td>
</tr>
{/foreach}
</tbody>
</table>
{empty name='list'}<span style="height: 52vh;font-size: 2em;padding-top: 40px" class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
</div>
</div>
<style type="text/css">
.layui-badge {
line-height: 19px;/
box-shadow: 0 0px 0px 0 rgba(0,0,0,0.15);
}
.tableAll{
height: 60vh;
overflow-x: auto;
position: relative;
padding-bottom: 10px;
}
.layui-table {
position: relative;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
margin-bottom: -10px;
z-index: 1;
}
.layui-table thead th {
position: sticky;
top: 0;
background: white;
z-index: 10;
}
.rightfix{
position: sticky !important;
right: 0px;
background-color: white;
z-index: 9;
}
.leftfix{
position: sticky !important;
left: -2px;
background-color: white;
z-index: 9;
}
.leftfixx{
position: sticky !important;
left: 46px;
background-color: white !important;
z-index: 9;
}
.color-span {
padding: 2px;
padding-left: 8px;
padding-right: 8px;
color: white;
font-weight: bold;
cursor: pointer;
}
.color-span-blue {
background-color: #2494f2 !important;
}
.color-span-green {
background-color: #090 !important;
}
.color-span-red {
background-color: #ec494e !important;
}
.color-span-gray {
background-color: #666 !important;
}
</style>
<script>
layui.use(['layer','jquery', 'upload'], function(){
var layer = layui.layer;
var $ = layui.jquery;
var upload = layui.upload;
//指定允许上传的文件类型
upload.render({
elem: '#upload'
,url: '/order/order/uploadMul.html'
,accept: 'file' //普通文件
,progress: function() {
$('#upload').html('上传中...');
}
,done: function(res){
if (res.code == 1) {
$('#upload').html('上传成功,点此继续上传');
layer.msg(res.info, function() {
location.reload();
});
} else {
layer.msg(res.info);
$('#upload').html('重新选择充值文件');
}
}
});
$('#restart').click(function() {
layer.confirm('确定要将暂停中订单重新启动吗?请确定上游渠道可以正常下单', {
btn: ['确定','取消'] //按钮
}, function(){
var url = "{:url('/order/order/restart')}";
$.post(url,{}, function() {
layer.msg('操作成功', {icon: 1});
})
}, function(){
});
})
//这个废弃吧
$('#error').click(function() {
layer.confirm('确定要手动执行八达通失败订单吗?将自动处理因八达通余额不足导致的下单失败订单,重新下单', {
btn: ['确定','取消'] //按钮
}, function(){
var url = "{:url('/gateway/api.task/popenRunError')}";
$.post(url,{}, function() {
layer.msg('操作成功', {icon: 1});
})
}, function(){
});
})
$('#errorToTiancheng').click(function() {
layer.confirm('确定要手动执行八达通失败订单吗?将自动处理因八达通余额不足导致的下单失败订单,转到天成,重新下单', {
btn: ['确定','取消'] //按钮
}, function(){
var url = "{:url('/gateway/api.task/popenRunError')}";
$.post(url,{}, function() {
layer.msg('操作成功', {icon: 1});
})
}, function(){
});
})
});
</script>
{/block}