Commit ad02ed148d43fd101340a50e027035b7f803e6ff

Authored by teemitop
1 parent a51b1cda

订单管理调整

@@ -753,54 +753,150 @@ class Seller extends Common @@ -753,54 +753,150 @@ class Seller extends Common
753 $facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer"); 753 $facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
754 if(Request::isAjax()){ 754 if(Request::isAjax()){
755 $data = Request::except('file'); 755 $data = Request::except('file');
756 - $key= input('post.key') ? input('post.key') : "";  
757 - $nokey= input('post.nokey') ? input('post.nokey') : "";  
758 -  
759 - $sellername = $data['key'] ? $data['key'] : ''; //商家名称  
760 - $id = $data['nokey'] ? $data['nokey'] : ''; //订单ID  
761 756
762 $time = $data['time'] ? explode(' - ', $data['time']) : ''; 757 $time = $data['time'] ? explode(' - ', $data['time']) : '';
763 -  
764 - $stime = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));  
765 - $etime = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time())); 758 + $data['stime'] = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));
  759 + $data['etime'] = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time()));
766 760
767 $dtime = $data['dtime'] ? explode(' - ', $data['dtime']) : ''; 761 $dtime = $data['dtime'] ? explode(' - ', $data['dtime']) : '';
  762 + $data['sdtime'] = $dtime ? strtotime(date($dtime[0],time())) : '';
  763 + $data['edtime'] = $dtime ? strtotime(date($dtime[1],time())) : '';
  764 +
  765 + //$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;
  766 +
  767 + ////////////////////////////////
  768 + $arr = array();
  769 + $where = '';
768 770
769 - $sdtime = $dtime ? strtotime(date($dtime[0],time())) : '';  
770 - $edtime = $dtime ? strtotime(date($dtime[1],time())) : ''; 771 + $offset = ($data['page']-1)*$data['limit'];
  772 + $limit = " LIMIT $offset,".$data['limit'];
  773 +
  774 + switch ($data['order']) {
  775 + case '1':
  776 + $where .= ' r.type = 1'; # 1 = 顾客下单
  777 + break;
  778 + case '2':
  779 + $where .= ' r.type = 0'; # 0 = 商户下单
  780 + break;
  781 + default:
  782 + $where .= '1=1';
  783 + break;
  784 + }
771 785
772 $data['status'] = $data['status'] ? $data['status'] : 2; 786 $data['status'] = $data['status'] ? $data['status'] : 2;
773 - $data['channel'] = $data['channel'] ? $data['channel'] : 1; 787 + switch ($data['status']) {
  788 + case 1:
  789 + $where .= ' AND r.status = 0';
  790 + break;
  791 + case 2:
  792 + $where .= ' AND r.status = 0';
  793 + break;
  794 + case 3:
  795 + $where .= ' AND r.status = 6';
  796 + break;
  797 + case 4:
  798 + $where .= ' AND r.status = 5';
  799 + break;
  800 + case 5:
  801 + $where .= ' AND r.status = 4';
  802 + break;
  803 + case -1:
  804 + $where .= ' AND r.status in (0,6,5,4)';
  805 + break;
  806 + default:
  807 + # code...
  808 + break;
  809 + }
774 810
775 - $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; 811 + if($data['sdtime'] && $data['edtime']){
  812 + $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'];
  813 + }else{
  814 + $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'];
  815 + }
776 816
777 - //获取运营人员列表  
778 - $list= file_get_contents(ON_LINE.'App.Customer.GetReserveList'.$parame);  
779 - $array = json_decode($list,TRUE); 817 + $data['channel'] = $data['channel'] ? $data['channel'] : 1;
  818 + $where .= $data['channel'] == -1 ? '' : ' AND re.type_id = '.$data['channel'];
  819 +
  820 + #key
  821 + $where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : ''; //商家名称
  822 + #ID
  823 + $where .= $data['nokey'] ? ' AND r.id ='.$data['nokey'] : ''; //商家ID
  824 +
  825 + $rs = Db::query("SELECT
  826 + dv.type,
  827 + r.id,
  828 + r.rname,
  829 + r.sex,
  830 + r.pnum,
  831 + r.phone,
  832 + r.cusdem,
  833 + r.ddate,
  834 + r.cdate,
  835 + r.status,
  836 + r.ddate_solt,
  837 + r.room_demand,
  838 + r.operator_openid,
  839 + s.sellername,
  840 + s.is_tele,
  841 + s.seller_tel
  842 + FROM
  843 + `xt-member-two-LINE`.xt_dc_reserve AS r
  844 + LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
  845 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = r.sid
  846 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS dv ON dv.sid = s.id
  847 + WHERE
  848 + $where
  849 + GROUP BY
  850 + r.id".$limit);
  851 +
  852 + $total = Db::query("SELECT
  853 + r.id
  854 + FROM
  855 + `xt-member-two-LINE`.xt_dc_reserve AS r
  856 + LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
  857 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = r.sid
  858 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS dv ON dv.sid = s.id
  859 + WHERE
  860 + $where
  861 + GROUP BY
  862 + r.id");
  863 +
  864 + foreach ($rs as $key => $value) {
  865 + $message_time = Db::query("SELECT
  866 + handle_time,rec_date
  867 + FROM
  868 + `xt-member-two-LINE`.xt_dc_dz_message
  869 + WHERE
  870 + rid = ".$value['id']." and message_type = 10");
  871 + $rs[$key]['handle_time'] = $message_time[0]['handle_time'];
  872 + $rs[$key]['rec_date'] = $message_time[0]['rec_date'];
  873 + }
  874 + $arr['list'] = $rs;
  875 + $arr['total'] = count($total);
  876 + ////////////////////////////////
780 877
781 - $new_array = array();  
782 - foreach ($array['data']['list'] as $key => $value) { 878 + foreach ($arr['list'] as $key => $value) {
783 //有无设备 879 //有无设备
784 if($value['is_tele']==1){ 880 if($value['is_tele']==1){
785 switch ($value['type']) { 881 switch ($value['type']) {
786 - case '1':  
787 - $array['data']['list'][$key]['dv'] = $facturer[0]['facturer'];  
788 - break;  
789 - case '2':  
790 - $array['data']['list'][$key]['dv'] = $facturer[1]['facturer'];  
791 - break;  
792 - case '3':  
793 - $array['data']['list'][$key]['dv'] = $facturer[2]['facturer'];  
794 - break;  
795 - case '4':  
796 - $array['data']['list'][$key]['dv'] = $facturer[3]['facturer'];  
797 - break;  
798 - default:  
799 - $array['data']['list'][$key]['dv'] = '无';  
800 - break;  
801 - } 882 + case '1':
  883 + $arr['list'][$key]['dv'] = $facturer[0]['facturer'];
  884 + break;
  885 + case '2':
  886 + $arr['list'][$key]['dv'] = $facturer[1]['facturer'];
  887 + break;
  888 + case '3':
  889 + $arr['list'][$key]['dv'] = $facturer[2]['facturer'];
  890 + break;
  891 + case '4':
  892 + $arr['list'][$key]['dv'] = $facturer[3]['facturer'];
  893 + break;
  894 + default:
  895 + $arr['list'][$key]['dv'] = '无';
  896 + break;
  897 + }
802 }else{ 898 }else{
803 - $array['data']['list'][$key]['dv'] = '无'; 899 + $arr['list'][$key]['dv'] = '无';
804 } 900 }
805 //订单接受时间段 901 //订单接受时间段
806 switch ($value['ddate_solt']) { 902 switch ($value['ddate_solt']) {
@@ -824,31 +920,31 @@ class Seller extends Common @@ -824,31 +920,31 @@ class Seller extends Common
824 # code... 920 # code...
825 break; 921 break;
826 } 922 }
827 - $array['data']['list'][$key]['ddate'] = date('Y-m-d H:i:s',$value['ddate']).'['.$value['ddate_solt'].']';  
828 - $array['data']['list'][$key]['cdate'] = date('Y-m-d H:i:s',$value['cdate']);  
829 - $array['data']['list'][$key]['handle_time'] = $value['handle_time'] ? date('Y-m-d H:i:s',$value['handle_time']) : '';  
830 - $array['data']['list'][$key]['rec_date'] = $value['rec_date'] ? date('Y-m-d H:i:s',$value['rec_date']) : ''; 923 + $arr['list'][$key]['ddate'] = date('Y-m-d H:i:s',$value['ddate']).'['.$value['ddate_solt'].']';
  924 + $arr['list'][$key]['cdate'] = date('Y-m-d H:i:s',$value['cdate']);
  925 + $arr['list'][$key]['handle_time'] = $value['handle_time'] ? date('Y-m-d H:i:s',$value['handle_time']) : '';
  926 + $arr['list'][$key]['rec_date'] = $value['rec_date'] ? date('Y-m-d H:i:s',$value['rec_date']) : '';
831 switch ($value['status']) { 927 switch ($value['status']) {
832 case 0: 928 case 0:
833 - $array['data']['list'][$key]['sta'] = '待确认'; 929 + $arr['list'][$key]['sta'] = '待确认';
834 break; 930 break;
835 case 1: 931 case 1:
836 - $array['data']['list'][$key]['sta'] = '已定座'; 932 + $arr['list'][$key]['sta'] = '已定座';
837 break; 933 break;
838 case 2: 934 case 2:
839 - $array['data']['list'][$key]['sta'] = '到店'; 935 + $arr['list'][$key]['sta'] = '到店';
840 break; 936 break;
841 case 3: 937 case 3:
842 - $array['data']['list'][$key]['sta'] = '离店'; 938 + $arr['list'][$key]['sta'] = '离店';
843 break; 939 break;
844 case 4: 940 case 4:
845 - $array['data']['list'][$key]['sta'] = '已取消'; 941 + $arr['list'][$key]['sta'] = '已取消';
846 break; 942 break;
847 case 5: 943 case 5:
848 - $array['data']['list'][$key]['sta'] = '已分配'; 944 + $arr['list'][$key]['sta'] = '已分配';
849 break; 945 break;
850 case 6: 946 case 6:
851 - $array['data']['list'][$key]['sta'] = '拒单'; 947 + $arr['list'][$key]['sta'] = '拒单';
852 break; 948 break;
853 default: 949 default:
854 # code... 950 # code...
@@ -856,13 +952,13 @@ class Seller extends Common @@ -856,13 +952,13 @@ class Seller extends Common
856 } 952 }
857 switch ($value['sex']) { 953 switch ($value['sex']) {
858 case 1: 954 case 1:
859 - $array['data']['list'][$key]['rname'] = $value['rname'].'先生'.'('.$value['phone'].')'; 955 + $arr['list'][$key]['rname'] = $value['rname'].'先生'.'('.$value['phone'].')';
860 break; 956 break;
861 case 2: 957 case 2:
862 - $array['data']['list'][$key]['rname'] = $value['rname'].'女士'.'('.$value['phone'].')'; 958 + $arr['list'][$key]['rname'] = $value['rname'].'女士'.'('.$value['phone'].')';
863 break; 959 break;
864 case 3: 960 case 3:
865 - $array['data']['list'][$key]['rname'] = $value['rname'].'公司'.'('.$value['phone'].')'; 961 + $arr['list'][$key]['rname'] = $value['rname'].'公司'.'('.$value['phone'].')';
866 break; 962 break;
867 default: 963 default:
868 # code... 964 # code...
@@ -870,35 +966,75 @@ class Seller extends Common @@ -870,35 +966,75 @@ class Seller extends Common
870 } 966 }
871 967
872 if($value['room_demand']){ 968 if($value['room_demand']){
873 - $array['data']['list'][$key]['room_demand'] = implode(',',array_column(json_decode($value['room_demand'],true), 'name')); 969 + $arr['list'][$key]['room_demand'] = implode(',',array_column(json_decode($value['room_demand'],true), 'name'));
874 } 970 }
875 971
876 - $array['data']['list'][$key]['sta'] = $value['is_tele']==1 ? $array['data']['list'][$key]['sta'] : $array['data']['list'][$key]['sta'].'无话机'; 972 + $arr['list'][$key]['sta'] = $value['is_tele']==1 ? $arr['list'][$key]['sta'] : $arr['list'][$key]['sta'].'无话机';
877 973
878 //根据操作人识别操作终端 974 //根据操作人识别操作终端
879 if(isset($template['operator_openid'])){ 975 if(isset($template['operator_openid'])){
880 if(strstr($template['operator_openid'],'_',-4)=='tele'){ //话机操作 976 if(strstr($template['operator_openid'],'_',-4)=='tele'){ //话机操作
881 - $array['data']['list'][$key]['operator_openid'] = '电话机'; 977 + $arr['list'][$key]['operator_openid'] = '电话机';
882 } 978 }
883 979
884 if(strstr($template['operator_openid'],'_',-4)=='wind'){ //PC操作 980 if(strstr($template['operator_openid'],'_',-4)=='wind'){ //PC操作
885 - $array['data']['list'][$key]['operator_openid'] = 'PC'; 981 + $arr['list'][$key]['operator_openid'] = 'PC';
886 } 982 }
887 983
888 if(strstr($template['operator_openid'],'_',-4)=='chat'){ //PC操作 984 if(strstr($template['operator_openid'],'_',-4)=='chat'){ //PC操作
889 - $array['data']['list'][$key]['operator_openid'] = '小程序'; 985 + $arr['list'][$key]['operator_openid'] = '小程序';
890 } 986 }
891 } 987 }
892 } 988 }
893 - //print_r($array['data']['list']);die; 989 + //print_r($arr['list']);die;
894 return $result = [ 990 return $result = [
895 'code'=>0,'msg'=>'获取成功!', 991 'code'=>0,'msg'=>'获取成功!',
896 - 'data'=>$array['data']['list'],  
897 - 'count'=>$array['data']['total'], 992 + 'data'=>$arr['list'],
  993 + 'count'=>$arr['total'],
898 'rel'=>1 994 'rel'=>1
899 ]; 995 ];
900 } 996 }
901 - $this->assign ( 'title','C端预定订单管理'); 997 + $this->assign ( 'title','订单管理');
  998 + return $this->fetch();
  999 + }
  1000 +
  1001 + /**
  1002 + * 商家详情
  1003 + */
  1004 + public function reservedetail(){
  1005 + $data = Request::except('file');
  1006 + $rs = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_cancel where up_rid = ".$data['rid']." order by cdate desc");
  1007 + if($rs){
  1008 + foreach ($rs as $key => $value) {
  1009 + switch ($value['action_type']) {
  1010 + case '1':
  1011 + $rs[$key]['action_type'] = '取消预定';
  1012 + break;
  1013 + case '2':
  1014 + $rs[$key]['action_type'] = '修改预定';
  1015 + break;
  1016 + case '3':
  1017 + $rs[$key]['action_type'] = '变更客户经理';
  1018 + break;
  1019 + case '4':
  1020 + $rs[$key]['action_type'] = '确认用户到店';
  1021 + break;
  1022 + case '5':
  1023 + $rs[$key]['action_type'] = '分配包间';
  1024 + break;
  1025 + case '6':
  1026 + $rs[$key]['action_type'] = '拒绝接单';
  1027 + break;
  1028 + default:
  1029 + # code...
  1030 + break;
  1031 + }
  1032 + $rs[$key]['cdate'] = date("Y年m月d日 H时i分",$value['cdate']);
  1033 + }
  1034 + }
  1035 + $this->assign ( 'rid',$data['rid']);
  1036 + $this->assign ( 'data',$rs);
  1037 + $this->assign ( 'title','订单操作日志详情');
902 return $this->fetch(); 1038 return $this->fetch();
903 } 1039 }
904 1040
@@ -34,8 +34,8 @@ @@ -34,8 +34,8 @@
34 </div> 34 </div>
35 </div> 35 </div>
36 商家来源: 36 商家来源:
37 - <div class="layui-input-inline layui-form" style = "width:200px";>  
38 - <div class="layui-input-4"> 37 + <div class="layui-input-inline layui-form">
  38 + <div class="layui-input-8">
39 <select name="class" id="channel" lay-filter="myselect"> 39 <select name="class" id="channel" lay-filter="myselect">
40 <option value="-1">全部</option> 40 <option value="-1">全部</option>
41 <option value="1" selected="true">合作</option> 41 <option value="1" selected="true">合作</option>
@@ -44,12 +44,22 @@ @@ -44,12 +44,22 @@
44 </select> 44 </select>
45 </div> 45 </div>
46 </div> 46 </div>
47 - 47 + 订单类型:
  48 + <div class="layui-input-inline layui-form">
  49 + <div class="layui-input-8">
  50 + <select name="class" id="order" lay-filter="myselect">
  51 + <option value="-1">全部</option>
  52 + <option value="1" selected="true">在线订单</option>
  53 + <option value="2">内部订单</option>
  54 + </select>
  55 + </div>
  56 + </div>
  57 +
48 <button class="layui-btn" id="search" data-type="reload">查询统计</button> 58 <button class="layui-btn" id="search" data-type="reload">查询统计</button>
49 </div> 59 </div>
50 <br> 60 <br>
51 <blockquote class="layui-elem-quote layui-text"> 61 <blockquote class="layui-elem-quote layui-text">
52 - Tips:默认筛选条件说明【日期范围:当天的节点日期;商家来源:合作;订单状态:超时5分钟未处理】 62 + Tips:默认筛选条件说明【日期范围:当天的节点日期;商家来源:合作;订单状态:超时5分钟未处理】;<b>双击单行即可查看对应订单的操作日志</b>
53 </blockquote> 63 </blockquote>
54 64
55 <table class="layui-table" id="list" lay-filter="list"> 65 <table class="layui-table" id="list" lay-filter="list">
@@ -111,6 +121,26 @@ @@ -111,6 +121,26 @@
111 ,limit:15 121 ,limit:15
112 }); 122 });
113 123
  124 + //监听行双击事件
  125 + table.on('rowDouble(list)', function(obj){
  126 + //table.on('row(list)', function(obj){ 双击事件
  127 + //console.log(obj.tr) //得到当前行元素对象
  128 + console.log(obj.data) //得到当前行数据
  129 + layer.open({
  130 + type: 2,
  131 + title: obj.data.sellername,
  132 + shadeClose: true,
  133 + shade: 0.8,
  134 + area: ['90%', '90%'],
  135 + content: '{:url("reservedetail")}?rid='+obj.data.id //iframe的url
  136 + /*success:function(dom){
  137 + let $iframeDom=$(dom[0]).find("iframe").eq(0).contents();
  138 + $iframeDom.find("#test").html("我是从父级传来的值哟……")
  139 + }*/
  140 + });
  141 + });
  142 +
  143 +
114 //日期时间范围 144 //日期时间范围
115 laydate.render({ 145 laydate.render({
116 elem: '#time' 146 elem: '#time'
@@ -140,11 +170,13 @@ @@ -140,11 +170,13 @@
140 //商家来源 170 //商家来源
141 var channel = $('#channel').val(); 171 var channel = $('#channel').val();
142 console.log(channel); 172 console.log(channel);
143 - //筛选条件 173 + //筛选条件:订单状态
144 var status = $('#status').val(); 174 var status = $('#status').val();
145 console.log(status); 175 console.log(status);
  176 + //筛选条件:订单类型
  177 + var order = $('#order').val();
146 //传参 178 //传参
147 - tableIn.reload({ page: {page: 1},where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel}}); 179 + tableIn.reload({ page: {page: 1},where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel,order: order}});
148 }); 180 });
149 181
150 var $ = layui.$, active = { 182 var $ = layui.$, active = {
  1 +{include file="common/head"/}
  2 +<div class="admin-main layui-anim layui-anim-upbit">
  3 + <div class="table-responsive">
  4 +
  5 + <table class="layui-table" lay-even lay-skin="line">
  6 + <thead>
  7 + <th colspan="10" style="text-align:center">{:$rid}-{:$title}</th>
  8 + </thead>
  9 + <tbody>
  10 + {if $data}
  11 + {foreach $data as $vo}
  12 + <tr>
  13 + <td>用户
  14 + <b>{$vo.uname}</b>
  15 + (<b>{$vo.uid}</b>) 在
  16 + <b>{$vo.cdate}</b> 对该订单 进行了
  17 + <b>{$vo.action_type}</b>
  18 + 操作 {if $vo.desc}<b>描述:{$vo.desc}</b>{/if}
  19 + </td>
  20 + </tr>
  21 + {/foreach}
  22 + {else}
  23 + <tr>
  24 + <th colspan="9" style="text-align:center">暂无操作记录</th>
  25 + </tr>
  26 + {/if}
  27 + </tbody>
  28 + </table>
  29 + </div>
  30 +</div>
  31 +{include file="common/foot"/}