Commit 49fe701b968202e21c4fe0c83074e918c1b2a8ca

Authored by teemitop
2 parents 66b7bc5e b697a496

sss

@@ -900,7 +900,7 @@ class Seller extends Common @@ -900,7 +900,7 @@ class Seller extends Common
900 $facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer"); 900 $facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
901 if(Request::isAjax()){ 901 if(Request::isAjax()){
902 $data = Request::except('file'); 902 $data = Request::except('file');
903 - 903 + set_time_limit(0);
904 $time = $data['time'] ? explode(' - ', $data['time']) : ''; 904 $time = $data['time'] ? explode(' - ', $data['time']) : '';
905 $data['stime'] = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time())); 905 $data['stime'] = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));
906 $data['etime'] = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time())); 906 $data['etime'] = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time()));
@@ -909,8 +909,6 @@ class Seller extends Common @@ -909,8 +909,6 @@ class Seller extends Common
909 $data['sdtime'] = $dtime ? strtotime(date($dtime[0],time())) : ''; 909 $data['sdtime'] = $dtime ? strtotime(date($dtime[0],time())) : '';
910 $data['edtime'] = $dtime ? strtotime(date($dtime[1],time())) : ''; 910 $data['edtime'] = $dtime ? strtotime(date($dtime[1],time())) : '';
911 911
912 - //$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;  
913 -  
914 //////////////////////////////// 912 ////////////////////////////////
915 $arr = array(); 913 $arr = array();
916 $where = ''; 914 $where = '';
@@ -965,14 +963,25 @@ class Seller extends Common @@ -965,14 +963,25 @@ class Seller extends Common
965 $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']; 963 $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'];
966 } 964 }
967 965
968 - $data['channel'] = $data['channel'] ? $data['channel'] : 1;  
969 - $where .= $data['channel'] == -1 ? '' : ' AND re.type_id = '.$data['channel']; 966 + $data['channel'] = $data['channel'] ? implode(',',$data['channel']) : 1;
970 967
  968 + $where .= $data['channel'] == -1 ? '' : ' AND re.type_id in ('.$data['channel'].')';
971 #key 969 #key
972 $where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : ''; //商家名称 970 $where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : ''; //商家名称
973 #ID 971 #ID
974 $where .= $data['nokey'] ? ' AND r.id ='.$data['nokey'] : ''; //商家ID 972 $where .= $data['nokey'] ? ' AND r.id ='.$data['nokey'] : ''; //商家ID
975 973
  974 +
  975 + $offset = ($data['page']-1)*$data['limit'];
  976 + $limit = " LIMIT $offset,".$data['limit'];
  977 +
  978 +
  979 + //导出操作
  980 + if($data['export']){
  981 + $limit = "";
  982 + }else{
  983 + $limit = " LIMIT $offset,".$data['limit'];
  984 + }
976 $rs = Db::query("SELECT 985 $rs = Db::query("SELECT
977 dv.type, 986 dv.type,
978 r.tid, 987 r.tid,
@@ -1160,6 +1169,81 @@ class Seller extends Common @@ -1160,6 +1169,81 @@ class Seller extends Common
1160 } 1169 }
1161 }**/ 1170 }**/
1162 } 1171 }
  1172 +
  1173 + //excel 导出
  1174 + if($data['export']){
  1175 + return $result = [
  1176 + 'code'=>0,'msg'=>'获取成功!',
  1177 + 'data'=>$arr['list'],
  1178 + 'count'=>$arr['total'],
  1179 + 'rel'=>1
  1180 + ];
  1181 + //加载PHPExcle类库
  1182 + $DOCUMENT_ROOT = str_replace('public','',$_SERVER['DOCUMENT_ROOT']);
  1183 + require_once $DOCUMENT_ROOT.'vendor/Classes/PHPExcel.php';
  1184 + require_once $DOCUMENT_ROOT.'vendor/Classes/PHPExcel/IOFactory.php';
  1185 +
  1186 + //实例化PHPExcel类
  1187 + $objPHPExcel = new \PHPExcel();
  1188 + //激活当前的sheet表
  1189 + $objPHPExcel->setActiveSheetIndex(0);
  1190 + //设置表格头(即excel表格的第一行)
  1191 + $objPHPExcel->setActiveSheetIndex(0)
  1192 + ->setCellValue('A1', '订单编号')
  1193 + ->setCellValue('B1', '所属商家')
  1194 + ->setCellValue('C1', '商家电话')
  1195 + ->setCellValue('D1', '到店时间')
  1196 + ->setCellValue('E1', '包间名称')
  1197 + ->setCellValue('F1', '包间需求')
  1198 + ->setCellValue('G1', '客户信息')
  1199 + ->setCellValue('H1', '备注')
  1200 + ->setCellValue('I1', '下单时间')
  1201 + ->setCellValue('J1', '商家设备')
  1202 + ->setCellValue('K1', '消息送达时间')
  1203 + ->setCellValue('L1', '处理时间')
  1204 + ->setCellValue('M1', '状态');
  1205 + //设置A列水平居中
  1206 + $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
  1207 + ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1208 + //设置单元格宽度
  1209 + //循环刚取出来的数组,将数据逐一添加到excel表格。
  1210 + $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10);
  1211 + $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
  1212 + $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
  1213 + $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);
  1214 +
  1215 + for($i=0;$i<count($arr['list']);$i++){
  1216 + $objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//订单编号
  1217 + $objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['sellername']);//所属商家
  1218 + $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['seller_tel']);//商家电话
  1219 + $objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['ddate']);//到店时间
  1220 + $objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['tablename']);//包间名称
  1221 + $objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['room_demand']);//包间需求
  1222 + $objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2),$list[$i]['rname']);//客户信息
  1223 + $objPHPExcel->getActiveSheet()->setCellValue('H'.($i+2),$list[$i]['cusdem']);//备注
  1224 + $objPHPExcel->getActiveSheet()->setCellValue('I'.($i+2),$list[$i]['cdate']);//下单时间
  1225 + $objPHPExcel->getActiveSheet()->setCellValue('J'.($i+2),$list[$i]['dv']);//商家设备
  1226 + $objPHPExcel->getActiveSheet()->setCellValue('K'.($i+2),$list[$i]['rec_date']);//消息送达时间
  1227 + $objPHPExcel->getActiveSheet()->setCellValue('L'.($i+2),$list[$i]['handle_time']);//处理时间
  1228 + $objPHPExcel->getActiveSheet()->setCellValue('M'.($i+2),$list[$i]['sta']);//状态
  1229 + }
  1230 + //设置保存的Excel表格名称
  1231 + $filename = '预定订单数据'.date('ymd',time()).'.xls';
  1232 + //8.设置当前激活的sheet表格名称;
  1233 + $objPHPExcel->getActiveSheet()->setTitle('订单内容');
  1234 + //设置浏览器窗口下载表格
  1235 + header("Content-Type: application/force-download");
  1236 + header("Content-Type: application/octet-stream");
  1237 + header("Content-Type: application/download");
  1238 + header('Content-Disposition:inline;filename="'.$filename.'"');
  1239 + header("Pragma: no-cache");
  1240 + //生成excel文件
  1241 + $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  1242 + //下载文件在浏览器窗口
  1243 + $objWriter->save('php://output');
  1244 + exit;
  1245 + }
  1246 + //print_r($arr['list']);die;
1163 return $result = [ 1247 return $result = [
1164 'code'=>0,'msg'=>'获取成功!', 1248 'code'=>0,'msg'=>'获取成功!',
1165 'data'=>$arr['list'], 1249 'data'=>$arr['list'],
@@ -1396,4 +1480,70 @@ class Seller extends Common @@ -1396,4 +1480,70 @@ class Seller extends Common
1396 } 1480 }
1397 return view(); 1481 return view();
1398 } 1482 }
  1483 +
  1484 + /*
  1485 + * 商家短信充值查询
  1486 + */
  1487 + public function getsellersmslist(){
  1488 +
  1489 + if(Request::isAjax()){
  1490 + $data = Request::except('file');
  1491 +
  1492 + $time = (isset($data['time']) && !empty($data['time'])) ? explode(' - ',$data['time']) : (strtotime(date("Y-m-d 00:00:00")).'-'.strtotime(date("Y-m-d 23:59:59")));
  1493 +
  1494 + $newtime = is_array($time) ? (strtotime(date($time[0])).'-'.strtotime(date($time[1]))) : $time;
  1495 +
  1496 + $channel = (!isset($data['time'])) ? 1 : $data['channel'];
  1497 +
  1498 + $name = (!isset($data['time'])) ? '' : $data['key'];
  1499 +
  1500 + $url= ON_LINE.'App.Seller.QuerySelllerSmsList&offset='.$data['page'].'&size='.$data['limit'].'&time='.$newtime.'&channel='.$channel.'&name='.$name;
  1501 +
  1502 + $list = $this->curl_get($url);
  1503 +
  1504 + $array = json_decode($list,TRUE);
  1505 +
  1506 + if($array){
  1507 + foreach ($array['data']['list'] as $key => $value) {
  1508 + $array['data']['list'][$key]['bdate'] = date("Y年m月d日 H时i分s秒",$value['bdate']);
  1509 + $array['data']['list'][$key]['paystatus'] = $value['paystatus']==1 ? '成功' : '失败';
  1510 + $array['data']['list'][$key]['channel'] = $value['channel']==NULL ? '小程序' : $value['channel'];
  1511 + $array['data']['list'][$key]['package_name'] = $value['package_name']=='other' ? '其他' : $value['package_name'];
  1512 + }
  1513 + return $result = [
  1514 + 'code'=>0,'msg'=>'获取成功!',
  1515 + 'data'=>$array['data']['list'],
  1516 + 'count'=>$array['data']['total'],
  1517 + 'rel'=>1
  1518 + ];
  1519 + }else{
  1520 + $result['code'] = 0;
  1521 + $result['msg'] = '请求错误!';
  1522 + }
  1523 + return $result;
  1524 + }
  1525 + return view();
  1526 + }
  1527 + $this->assign ( 'title','商家短信日志查询');
  1528 + return view();
  1529 + }
  1530 +
  1531 + /**
  1532 + * post
  1533 + */
  1534 + public function curl_get($url)
  1535 + {
  1536 +
  1537 + $info = curl_init();
  1538 + curl_setopt($info,CURLOPT_RETURNTRANSFER,true);
  1539 + curl_setopt($info,CURLOPT_HEADER,0);
  1540 + curl_setopt($info,CURLOPT_NOBODY,0);
  1541 + curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
  1542 + curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
  1543 + curl_setopt($info,CURLOPT_SSL_VERIFYHOST,false);
  1544 + curl_setopt($info,CURLOPT_URL,$url);
  1545 + $output = curl_exec($info);
  1546 + curl_close($info);
  1547 + return $output;
  1548 + }
1399 } 1549 }
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
33 </select> 33 </select>
34 </div> 34 </div>
35 </div> 35 </div>
  36 + <!--
36 商家来源: 37 商家来源:
37 <div class="layui-input-inline layui-form"> 38 <div class="layui-input-inline layui-form">
38 <div class="layui-input-8"> 39 <div class="layui-input-8">
@@ -43,7 +44,13 @@ @@ -43,7 +44,13 @@
43 <option value="3">测试</option> 44 <option value="3">测试</option>
44 </select> 45 </select>
45 </div> 46 </div>
  47 + </div>-->
  48 + 商家来源:<div class="layui-input-inline layui-form">
  49 + <div class="layui-input-8">
  50 + <span class="" id="channel"></span>
  51 + </div>
46 </div> 52 </div>
  53 +
47 订单类型: 54 订单类型:
48 <div class="layui-input-inline layui-form"> 55 <div class="layui-input-inline layui-form">
49 <div class="layui-input-8"> 56 <div class="layui-input-8">
@@ -54,7 +61,9 @@ @@ -54,7 +61,9 @@
54 </select> 61 </select>
55 </div> 62 </div>
56 </div> 63 </div>
  64 +
57 <button class="layui-btn" id="search" data-type="reload">查询统计</button> 65 <button class="layui-btn" id="search" data-type="reload">查询统计</button>
  66 + <!--<button class="layui-btn" id="export" data-type="reload">查询导出</button>-->
58 </div> 67 </div>
59 <br> 68 <br>
60 <blockquote class="layui-elem-quote layui-text"> 69 <blockquote class="layui-elem-quote layui-text">
@@ -65,11 +74,6 @@ @@ -65,11 +74,6 @@
65 </table> 74 </table>
66 75
67 </div> 76 </div>
68 -<!--<script type="text/html" id="toolbarDemo">  
69 - <span>订单总数:<i id="count">X</i>单</span>  
70 - <span>未处理订单总数:<i id="untreated">Y</i>单</span>  
71 - <span>超时订单总数:<i id="overtime">Z</i>单</span>  
72 -</script>-->  
73 77
74 <script type="text/html" id="action"> 78 <script type="text/html" id="action">
75 {{#if(d.status==0){}} 79 {{#if(d.status==0){}}
@@ -112,15 +116,105 @@ @@ -112,15 +116,105 @@
112 {align: 'center',title: '操作', toolbar: '#action'} 116 {align: 'center',title: '操作', toolbar: '#action'}
113 ]], 117 ]],
114 done: function(res, curr, count){ 118 done: function(res, curr, count){
115 - $('#count').html(res.countReserve);  
116 - $('#untreated').html(res.countSms);  
117 - $('#overtime').html(res.inviteeCount);  
118 } 119 }
119 ,id: 'testReload' 120 ,id: 'testReload'
120 ,page: true 121 ,page: true
121 - ,limit:15 122 + ,limit:10
  123 + ,limits:[10,20,40,90,500,1000,10000,50000]
122 }); 124 });
123 125
  126 + /************** 下拉框多选 ****************/
  127 + var tagData = [{"id":1,"name":"合作"},{"id":2,"name":"推广"},{"id":3,"name":"测试"}];
  128 + layui.config({
  129 + base : '../'
  130 + }).extend({
  131 + //selectN: '../static/plugins/layui/layui_extends/selectN',
  132 + selectM: '../static/plugins/layui/layui_extends/selectM',
  133 + }).use(['selectM'],function(){
  134 + $ = layui.jquery;
  135 + var form = layui.form
  136 + ,selectN = layui.selectN
  137 + ,selectM = layui.selectM
  138 +
  139 + //多选标签-基本配置
  140 + var tagIns1 = selectM({
  141 + //元素容器【必填】
  142 + elem: '#channel'
  143 + //候选数据【必填】
  144 + ,data: tagData
  145 + //最大可选
  146 + ,max:3
  147 + //宽度
  148 + ,width:240
  149 + //默认值
  150 + ,selected: [1]
  151 + //添加验证
  152 + ,verify:'required'
  153 + });
  154 +
  155 + //搜索
  156 + $('#search').on('click', function() {
  157 + //ID
  158 + var nokey = $('#nokey').val();
  159 + //关键字
  160 + var key = $('#key').val();
  161 +
  162 + var time = $('#time').val();
  163 + console.log(time);
  164 +
  165 + var dtime = $('#dtime').val();
  166 + //商家来源
  167 + var channel = tagIns1.values;
  168 + console.log(channel);
  169 + //筛选条件:订单状态
  170 + var status = $('#status').val();
  171 + console.log(status);
  172 + //筛选条件:订单类型
  173 + var order = $('#order').val();
  174 + //传参
  175 + tableIn.reload({
  176 + page: {page: 1},
  177 + where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel,order: order}
  178 + });
  179 + });
  180 +
  181 + //导出
  182 + /*$('#export').on('click', function() {
  183 + //ID
  184 + var nokey = $('#nokey').val();
  185 + var key = $('#key').val();
  186 + var time = $('#time').val();
  187 + var dtime = $('#dtime').val();
  188 + var channel = tagIns1.values;
  189 + var status = $('#status').val();
  190 + var order = $('#order').val();
  191 + $.ajax({
  192 + url:'{:url("GetReserveList")}',
  193 + data:{
  194 + nokey: nokey,
  195 + key: key,
  196 + status: status,
  197 + time: time,
  198 + dtime:dtime,
  199 + channel: channel,
  200 + order: order,
  201 + export: 1
  202 + },
  203 + type:"Post",
  204 + dataType:"json",
  205 + success:function(data){
  206 + table.exportFile(tableIn.config.id,data.data, 'xls');
  207 + layer.msg(data.msg);
  208 + },
  209 + error:function(data){
  210 + $.messager.alert('错误',data.msg);
  211 + }
  212 + });
  213 + });*/
  214 + });
  215 + /************** 下拉框多选 ****************/
  216 +
  217 +
124 //监听行双击事件 218 //监听行双击事件
125 table.on('rowDouble(list)', function(obj){ 219 table.on('rowDouble(list)', function(obj){
126 //table.on('row(list)', function(obj){ 双击事件 220 //table.on('row(list)', function(obj){ 双击事件
@@ -155,30 +249,6 @@ @@ -155,30 +249,6 @@
155 ,range: true 249 ,range: true
156 }); 250 });
157 251
158 - //搜索  
159 - $('#search').on('click', function() {  
160 - //ID  
161 - var nokey = $('#nokey').val();  
162 - //关键字  
163 - var key = $('#key').val();  
164 -  
165 - var time = $('#time').val();  
166 - console.log(time);  
167 -  
168 - var dtime = $('#dtime').val();  
169 -  
170 - //商家来源  
171 - var channel = $('#channel').val();  
172 - console.log(channel);  
173 - //筛选条件:订单状态  
174 - var status = $('#status').val();  
175 - console.log(status);  
176 - //筛选条件:订单类型  
177 - var order = $('#order').val();  
178 - //传参  
179 - tableIn.reload({ page: {page: 1},where: {nokey: nokey,key: key,status: status,time: time,dtime:dtime,channel: channel,order: order}});  
180 - });  
181 -  
182 var $ = layui.$, active = { 252 var $ = layui.$, active = {
183 reload: function(){ 253 reload: function(){
184 var nokey = $('#nokey'); 254 var nokey = $('#nokey');