Commit ad02ed148d43fd101340a50e027035b7f803e6ff

Authored by teemitop
1 parent a51b1cda

订单管理调整

... ... @@ -753,54 +753,150 @@ class Seller extends Common
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
if(Request::isAjax()){
$data = Request::except('file');
$key= input('post.key') ? input('post.key') : "";
$nokey= input('post.nokey') ? input('post.nokey') : "";
$sellername = $data['key'] ? $data['key'] : ''; //商家名称
$id = $data['nokey'] ? $data['nokey'] : ''; //订单ID
$time = $data['time'] ? explode(' - ', $data['time']) : '';
$stime = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));
$etime = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time()));
$data['stime'] = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));
$data['etime'] = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time()));
$dtime = $data['dtime'] ? explode(' - ', $data['dtime']) : '';
$data['sdtime'] = $dtime ? strtotime(date($dtime[0],time())) : '';
$data['edtime'] = $dtime ? strtotime(date($dtime[1],time())) : '';
//$parame = '&offset='.$data["page"].'&limit='.$data["limit"].'&sellername='.@$sellername.'&stime='.@$stime.'&etime='.@$etime.'&channel='.@$data['channel'].'&id='.$id.'&status='.@$data['status'].'&sdtime='.$sdtime.'&edtime='.$edtime;
////////////////////////////////
$arr = array();
$where = '';
$sdtime = $dtime ? strtotime(date($dtime[0],time())) : '';
$edtime = $dtime ? strtotime(date($dtime[1],time())) : '';
$offset = ($data['page']-1)*$data['limit'];
$limit = " LIMIT $offset,".$data['limit'];
switch ($data['order']) {
case '1':
$where .= ' r.type = 1'; # 1 = 顾客下单
break;
case '2':
$where .= ' r.type = 0'; # 0 = 商户下单
break;
default:
$where .= '1=1';
break;
}
$data['status'] = $data['status'] ? $data['status'] : 2;
$data['channel'] = $data['channel'] ? $data['channel'] : 1;
switch ($data['status']) {
case 1:
$where .= ' AND r.status = 0';
break;
case 2:
$where .= ' AND r.status = 0';
break;
case 3:
$where .= ' AND r.status = 6';
break;
case 4:
$where .= ' AND r.status = 5';
break;
case 5:
$where .= ' AND r.status = 4';
break;
case -1:
$where .= ' AND r.status in (0,6,5,4)';
break;
default:
# code...
break;
}
$parame = '&offset='.$data["page"].'&limit='.$data["limit"].'&sellername='.@$sellername.'&stime='.@$stime.'&etime='.@$etime.'&channel='.@$data['channel'].'&id='.$id.'&status='.@$data['status'].'&sdtime='.$sdtime.'&edtime='.$edtime;
if($data['sdtime'] && $data['edtime']){
$where .= $data['status']==2 ? ' AND r.cdate <= UNIX_TIMESTAMP(date_add(NOW(), interval -5 minute)) AND r.ddate BETWEEN '.$data['sdtime'].' AND '.$data['edtime'] : ' AND r.ddate BETWEEN '.$data['sdtime'].' AND '.$data['edtime'];
}else{
$where .= $data['status']==2 ? ' AND r.cdate <= UNIX_TIMESTAMP(date_add(NOW(), interval -5 minute)) AND r.cdate BETWEEN '.$data['stime'].' AND '.$data['etime'] : ' AND r.cdate BETWEEN '.$data['stime'].' AND '.$data['etime'];
}
//获取运营人员列表
$list= file_get_contents(ON_LINE.'App.Customer.GetReserveList'.$parame);
$array = json_decode($list,TRUE);
$data['channel'] = $data['channel'] ? $data['channel'] : 1;
$where .= $data['channel'] == -1 ? '' : ' AND re.type_id = '.$data['channel'];
#key
$where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : ''; //商家名称
#ID
$where .= $data['nokey'] ? ' AND r.id ='.$data['nokey'] : ''; //商家ID
$rs = Db::query("SELECT
dv.type,
r.id,
r.rname,
r.sex,
r.pnum,
r.phone,
r.cusdem,
r.ddate,
r.cdate,
r.status,
r.ddate_solt,
r.room_demand,
r.operator_openid,
s.sellername,
s.is_tele,
s.seller_tel
FROM
`xt-member-two-LINE`.xt_dc_reserve AS r
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = r.sid
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS dv ON dv.sid = s.id
WHERE
$where
GROUP BY
r.id".$limit);
$total = Db::query("SELECT
r.id
FROM
`xt-member-two-LINE`.xt_dc_reserve AS r
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = r.sid
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS dv ON dv.sid = s.id
WHERE
$where
GROUP BY
r.id");
foreach ($rs as $key => $value) {
$message_time = Db::query("SELECT
handle_time,rec_date
FROM
`xt-member-two-LINE`.xt_dc_dz_message
WHERE
rid = ".$value['id']." and message_type = 10");
$rs[$key]['handle_time'] = $message_time[0]['handle_time'];
$rs[$key]['rec_date'] = $message_time[0]['rec_date'];
}
$arr['list'] = $rs;
$arr['total'] = count($total);
////////////////////////////////
$new_array = array();
foreach ($array['data']['list'] as $key => $value) {
foreach ($arr['list'] as $key => $value) {
//有无设备
if($value['is_tele']==1){
switch ($value['type']) {
case '1':
$array['data']['list'][$key]['dv'] = $facturer[0]['facturer'];
break;
case '2':
$array['data']['list'][$key]['dv'] = $facturer[1]['facturer'];
break;
case '3':
$array['data']['list'][$key]['dv'] = $facturer[2]['facturer'];
break;
case '4':
$array['data']['list'][$key]['dv'] = $facturer[3]['facturer'];
break;
default:
$array['data']['list'][$key]['dv'] = '无';
break;
}
case '1':
$arr['list'][$key]['dv'] = $facturer[0]['facturer'];
break;
case '2':
$arr['list'][$key]['dv'] = $facturer[1]['facturer'];
break;
case '3':
$arr['list'][$key]['dv'] = $facturer[2]['facturer'];
break;
case '4':
$arr['list'][$key]['dv'] = $facturer[3]['facturer'];
break;
default:
$arr['list'][$key]['dv'] = '无';
break;
}
}else{
$array['data']['list'][$key]['dv'] = '无';
$arr['list'][$key]['dv'] = '无';
}
//订单接受时间段
switch ($value['ddate_solt']) {
... ... @@ -824,31 +920,31 @@ class Seller extends Common
# code...
break;
}
$array['data']['list'][$key]['ddate'] = date('Y-m-d H:i:s',$value['ddate']).'['.$value['ddate_solt'].']';
$array['data']['list'][$key]['cdate'] = date('Y-m-d H:i:s',$value['cdate']);
$array['data']['list'][$key]['handle_time'] = $value['handle_time'] ? date('Y-m-d H:i:s',$value['handle_time']) : '';
$array['data']['list'][$key]['rec_date'] = $value['rec_date'] ? date('Y-m-d H:i:s',$value['rec_date']) : '';
$arr['list'][$key]['ddate'] = date('Y-m-d H:i:s',$value['ddate']).'['.$value['ddate_solt'].']';
$arr['list'][$key]['cdate'] = date('Y-m-d H:i:s',$value['cdate']);
$arr['list'][$key]['handle_time'] = $value['handle_time'] ? date('Y-m-d H:i:s',$value['handle_time']) : '';
$arr['list'][$key]['rec_date'] = $value['rec_date'] ? date('Y-m-d H:i:s',$value['rec_date']) : '';
switch ($value['status']) {
case 0:
$array['data']['list'][$key]['sta'] = '待确认';
$arr['list'][$key]['sta'] = '待确认';
break;
case 1:
$array['data']['list'][$key]['sta'] = '已定座';
$arr['list'][$key]['sta'] = '已定座';
break;
case 2:
$array['data']['list'][$key]['sta'] = '到店';
$arr['list'][$key]['sta'] = '到店';
break;
case 3:
$array['data']['list'][$key]['sta'] = '离店';
$arr['list'][$key]['sta'] = '离店';
break;
case 4:
$array['data']['list'][$key]['sta'] = '已取消';
$arr['list'][$key]['sta'] = '已取消';
break;
case 5:
$array['data']['list'][$key]['sta'] = '已分配';
$arr['list'][$key]['sta'] = '已分配';
break;
case 6:
$array['data']['list'][$key]['sta'] = '拒单';
$arr['list'][$key]['sta'] = '拒单';
break;
default:
# code...
... ... @@ -856,13 +952,13 @@ class Seller extends Common
}
switch ($value['sex']) {
case 1:
$array['data']['list'][$key]['rname'] = $value['rname'].'先生'.'('.$value['phone'].')';
$arr['list'][$key]['rname'] = $value['rname'].'先生'.'('.$value['phone'].')';
break;
case 2:
$array['data']['list'][$key]['rname'] = $value['rname'].'女士'.'('.$value['phone'].')';
$arr['list'][$key]['rname'] = $value['rname'].'女士'.'('.$value['phone'].')';
break;
case 3:
$array['data']['list'][$key]['rname'] = $value['rname'].'公司'.'('.$value['phone'].')';
$arr['list'][$key]['rname'] = $value['rname'].'公司'.'('.$value['phone'].')';
break;
default:
# code...
... ... @@ -870,35 +966,75 @@ class Seller extends Common
}
if($value['room_demand']){
$array['data']['list'][$key]['room_demand'] = implode(',',array_column(json_decode($value['room_demand'],true), 'name'));
$arr['list'][$key]['room_demand'] = implode(',',array_column(json_decode($value['room_demand'],true), 'name'));
}
$array['data']['list'][$key]['sta'] = $value['is_tele']==1 ? $array['data']['list'][$key]['sta'] : $array['data']['list'][$key]['sta'].'无话机';
$arr['list'][$key]['sta'] = $value['is_tele']==1 ? $arr['list'][$key]['sta'] : $arr['list'][$key]['sta'].'无话机';
//根据操作人识别操作终端
if(isset($template['operator_openid'])){
if(strstr($template['operator_openid'],'_',-4)=='tele'){ //话机操作
$array['data']['list'][$key]['operator_openid'] = '电话机';
$arr['list'][$key]['operator_openid'] = '电话机';
}
if(strstr($template['operator_openid'],'_',-4)=='wind'){ //PC操作
$array['data']['list'][$key]['operator_openid'] = 'PC';
$arr['list'][$key]['operator_openid'] = 'PC';
}
if(strstr($template['operator_openid'],'_',-4)=='chat'){ //PC操作
$array['data']['list'][$key]['operator_openid'] = '小程序';
$arr['list'][$key]['operator_openid'] = '小程序';
}
}
}
//print_r($array['data']['list']);die;
//print_r($arr['list']);die;
return $result = [
'code'=>0,'msg'=>'获取成功!',
'data'=>$array['data']['list'],
'count'=>$array['data']['total'],
'data'=>$arr['list'],
'count'=>$arr['total'],
'rel'=>1
];
}
$this->assign ( 'title','C端预定订单管理');
$this->assign ( 'title','订单管理');
return $this->fetch();
}
/**
* 商家详情
*/
public function reservedetail(){
$data = Request::except('file');
$rs = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_cancel where up_rid = ".$data['rid']." order by cdate desc");
if($rs){
foreach ($rs as $key => $value) {
switch ($value['action_type']) {
case '1':
$rs[$key]['action_type'] = '取消预定';
break;
case '2':
$rs[$key]['action_type'] = '修改预定';
break;
case '3':
$rs[$key]['action_type'] = '变更客户经理';
break;
case '4':
$rs[$key]['action_type'] = '确认用户到店';
break;
case '5':
$rs[$key]['action_type'] = '分配包间';
break;
case '6':
$rs[$key]['action_type'] = '拒绝接单';
break;
default:
# code...
break;
}
$rs[$key]['cdate'] = date("Y年m月d日 H时i分",$value['cdate']);
}
}
$this->assign ( 'rid',$data['rid']);
$this->assign ( 'data',$rs);
$this->assign ( 'title','订单操作日志详情');
return $this->fetch();
}
... ...
... ... @@ -34,8 +34,8 @@
</div>
</div>
商家来源:
<div class="layui-input-inline layui-form" style = "width:200px";>
<div class="layui-input-4">
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="channel" lay-filter="myselect">
<option value="-1">全部</option>
<option value="1" selected="true">合作</option>
... ... @@ -44,12 +44,22 @@
</select>
</div>
</div>
订单类型:
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="order" lay-filter="myselect">
<option value="-1">全部</option>
<option value="1" selected="true">在线订单</option>
<option value="2">内部订单</option>
</select>
</div>
</div>
<button class="layui-btn" id="search" data-type="reload">查询统计</button>
</div>
<br>
<blockquote class="layui-elem-quote layui-text">
Tips:默认筛选条件说明【日期范围:当天的节点日期;商家来源:合作;订单状态:超时5分钟未处理】
Tips:默认筛选条件说明【日期范围:当天的节点日期;商家来源:合作;订单状态:超时5分钟未处理】;<b>双击单行即可查看对应订单的操作日志</b>
</blockquote>
<table class="layui-table" id="list" lay-filter="list">
... ... @@ -111,6 +121,26 @@
,limit:15
});
//监听行双击事件
table.on('rowDouble(list)', function(obj){
//table.on('row(list)', function(obj){ 双击事件
//console.log(obj.tr) //得到当前行元素对象
console.log(obj.data) //得到当前行数据
layer.open({
type: 2,
title: obj.data.sellername,
shadeClose: true,
shade: 0.8,
area: ['90%', '90%'],
content: '{:url("reservedetail")}?rid='+obj.data.id //iframe的url
/*success:function(dom){
let $iframeDom=$(dom[0]).find("iframe").eq(0).contents();
$iframeDom.find("#test").html("我是从父级传来的值哟……")
}*/
});
});
//日期时间范围
laydate.render({
elem: '#time'
... ... @@ -140,11 +170,13 @@
//商家来源
var channel = $('#channel').val();
console.log(channel);
//筛选条件
//筛选条件:订单状态
var status = $('#status').val();
console.log(status);
//筛选条件:订单类型
var order = $('#order').val();
//传参
tableIn.reload({ page: {page: 1},where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel}});
tableIn.reload({ page: {page: 1},where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel,order: order}});
});
var $ = layui.$, active = {
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit">
<div class="table-responsive">
<table class="layui-table" lay-even lay-skin="line">
<thead>
<th colspan="10" style="text-align:center">{:$rid}-{:$title}</th>
</thead>
<tbody>
{if $data}
{foreach $data as $vo}
<tr>
<td>用户
<b>{$vo.uname}</b>
(<b>{$vo.uid}</b>) 在
<b>{$vo.cdate}</b> 对该订单 进行了
<b>{$vo.action_type}</b>
操作 {if $vo.desc}<b>描述:{$vo.desc}</b>{/if}
</td>
</tr>
{/foreach}
{else}
<tr>
<th colspan="9" style="text-align:center">暂无操作记录</th>
</tr>
{/if}
</tbody>
</table>
</div>
</div>
{include file="common/foot"/}
\ No newline at end of file
... ...