|
...
|
...
|
@@ -102,20 +102,6 @@ class Card extends Common |
|
|
|
* 创建优惠券-选择商户
|
|
|
|
*/
|
|
|
|
public function selectseller(){
|
|
|
|
//获取运营人员列表
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Seller.GetSellerById&sellerid='.$data['sid']);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['data']['data']){
|
|
|
|
$array['data']['data']['daily'] = json_decode($array['data']['data']['daily'],TRUE);
|
|
|
|
$array['data']['data']['daily_time'] = json_decode($array['data']['data']['daily_time'],TRUE);
|
|
|
|
$array['data']['data']['cdate'] = date("Y年m月d日 H时i分s秒",$array['data']['data']['cdate']);
|
|
|
|
}
|
|
|
|
//获取短信流水
|
|
|
|
$sms= file_get_contents(ON_LINE.'App.SendSMS.GetSellerSmsFlowing&sid='.$data['sid']);
|
|
|
|
$sms_data = json_decode($sms,TRUE);
|
|
|
|
$sms_data_list = $sms_data['data'] ? $sms_data['data'] : array();
|
|
|
|
$this->assign ( 'smslist',$sms_data_list);
|
|
|
|
$this->assign ( 'data',$array['data']['data']);
|
|
|
|
$this->assign ( 'title','创建卡券');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
...
|
...
|
@@ -215,1283 +201,76 @@ class Card extends Common |
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 停用商家
|
|
|
|
*/
|
|
|
|
public function configStop(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$data['status'] = $data['status'] ? 0 : 1;
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Seller.SetStopBySeller&sellerid='.$data['sellerid'].'&status='.$data['status']);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['ret']==200){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请求错误!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 从商家维度统计:订单、短信等情况
|
|
|
|
*/
|
|
|
|
public function getStatistics(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$key= input('post.key') ? input('post.key') : "";
|
|
|
|
|
|
|
|
$sid = $data['sid'] ? implode(',', $data['sid']) : '';
|
|
|
|
$sellername = $data['key'] ? $data['key'] : '';
|
|
|
|
|
|
|
|
$time = $data['time'] ? explode(' - ', $data['time']) : '';
|
|
|
|
|
|
|
|
$stime = $time ? strtotime(date($time[0],time())) : '';
|
|
|
|
$etime = $time ? strtotime(date($time[1],time())) : '';
|
|
|
|
|
|
|
|
$data['time_type'] = $data['time_type'] ? $data['time_type'] : 1;
|
|
|
|
$data['channel'] = $data['channel'] ? $data['channel'] : 1;
|
|
|
|
|
|
|
|
$parame = '&page='.$data["page"].'&size='.$data["limit"].'&sellername='.@$sellername.'&stime='.@$stime.'&etime='.@$etime.'&channel='.@$data['channel'].'&sid='.$sid.'&time_type='.@$data['time_type'];
|
|
|
|
|
|
|
|
//获取运营人员列表
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Report.GetReserveData'.$parame);
|
|
|
|
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
|
|
|
|
$new_array = array();
|
|
|
|
foreach ($array['data'] as $key => $value) {
|
|
|
|
if(is_array($value)){
|
|
|
|
$new_array[$key]['id'] = $value['id'];
|
|
|
|
$new_array[$key]['sellername'] = $value['sellername'];
|
|
|
|
$new_array[$key]['contacts_total'] = $value['contacts_total'];
|
|
|
|
$new_array[$key]['inviting'] = $value['inviting'];
|
|
|
|
$new_array[$key]['reserve_count'] = $value['appReserveCount'] .'/'. $value['AndroidReserveCount'].'/'. $value['CReserveCount'];
|
|
|
|
$new_array[$key]['reserve_count_sort'] = $value['appReserveCount'] + $value['AndroidReserveCount'] + $value['CReserveCount'];
|
|
|
|
$new_array[$key]['sms_send_count'] = $value['appSmsCount'] .'/'. $value['AndroidSmsCount'];
|
|
|
|
$new_array[$key]['sms_send_count_sort'] = $value['appSmsCount'] + $value['AndroidSmsCount'];
|
|
|
|
$new_array[$key]['table_room_total'] = $value['table_total'] .'/'. $value['room_total'];
|
|
|
|
$new_array[$key]['address_component'] = $value['address_component']['province'] && $value['address_component']['city'] ? $value['address_component']['province'] .'-'. $value['address_component']['city'] : '无法获取地区,请检查经纬度是否正确!';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $result = [
|
|
|
|
'code'=>0,'msg'=>'获取成功!',
|
|
|
|
'data'=>$new_array,
|
|
|
|
'count'=>$array['data']['total'],
|
|
|
|
'countReserve'=>$array['data']['appReserveCount']+$array['data']['AndroidReserveCount']+$array['data']['CReserveCount'],
|
|
|
|
'countSms'=>$array['data']['appSmsCount']+$array['data']['AndroidSmsCount'],
|
|
|
|
'inviteeCount'=>$array['data']['inviteeCount'],
|
|
|
|
'appReserveCount'=>$array['data']['appReserveCount'],
|
|
|
|
'AndroidReserveCount'=>$array['data']['AndroidReserveCount'],
|
|
|
|
'CReserveCount'=>$array['data']['CReserveCount'],
|
|
|
|
'appSmsCount'=>$array['data']['appSmsCount'],
|
|
|
|
'AndroidSmsCount'=>$array['data']['AndroidSmsCount'],
|
|
|
|
'Contacts'=>$array['data']['Contacts'],
|
|
|
|
'rel'=>1
|
|
|
|
];
|
|
|
|
}
|
|
|
|
$this->assign ( 'title','预定订单统计');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 从设备(电话机)维度统计:订单、短信等情况
|
|
|
|
*/
|
|
|
|
public function getEquipment(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$key= input('post.key') ? input('post.key') : "";
|
|
|
|
|
|
|
|
$sid = $data['sid'] ? implode(',', $data['sid']) : '';
|
|
|
|
$sellername = $data['key'] ? $data['key'] : '';
|
|
|
|
|
|
|
|
$time = $data['time'] ? explode(' - ', $data['time']) : '';
|
|
|
|
|
|
|
|
$stime = $time ? strtotime(date($time[0],time())) : '';
|
|
|
|
$etime = $time ? strtotime(date($time[1],time())) : '';
|
|
|
|
|
|
|
|
$data['time_type'] = $data['time_type'] ? $data['time_type'] : 1;
|
|
|
|
$data['channel'] = $data['channel'] ? $data['channel'] : 1;
|
|
|
|
|
|
|
|
$parame = '&page='.$data["page"].'&size='.$data["limit"].'&sellername='.@$sellername.'&stime='.@$stime.'&etime='.@$etime.'&channel='.@$data['channel'].'&sid='.$sid.'&time_type='.@$data['time_type'];
|
|
|
|
|
|
|
|
//获取运营人员列表
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Report.GetReserveDataBydev'.$parame);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$array['data']['list'],'count'=>$array['data']['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
$this->assign ( 'title','设备维度统计预定订单');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 商家菜系、类型配置
|
|
|
|
*/
|
|
|
|
public function sellerconfig(){
|
|
|
|
$data = Request::except('file');
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$cuisine = !empty($data['cuisine']) ? implode(',', array_keys($data['cuisine'])) : '';
|
|
|
|
$type = !empty($data['type']) ? implode(',', array_keys($data['type'])) : '';
|
|
|
|
$mode = !empty($data['mode']) ? implode(',', array_keys($data['mode'])) : '';
|
|
|
|
$sms_code = !empty($data['sms_code']) ? $data['sms_code'] : '';
|
|
|
|
$label = !empty($data['label']) ? implode(',', array_keys($data['label'])) : '';
|
|
|
|
$brand = !empty($data['brand']) ? implode(',', array_keys($data['brand'])) : '';
|
|
|
|
$label_1_ = !empty($data['label_1_']) ? implode(',', array_keys($data['label_1_'])) : '';
|
|
|
|
$label_2_ = !empty($data['label_2_']) ? implode(',', array_keys($data['label_2_'])) : '';
|
|
|
|
$label_3_ = !empty($data['label_3_']) ? implode(',', array_keys($data['label_3_'])) : '';
|
|
|
|
$is_checked_call = !empty($data['is_checked_call']) ? $data['is_checked_call'] : '';
|
|
|
|
$is_checked_lite = !empty($data['is_checked_lite']) ? $data['is_checked_lite'] : '';
|
|
|
|
|
|
|
|
if(isset($data['reserve_mode'])) {
|
|
|
|
//需要修改 接单设备信息
|
|
|
|
if($data['reserve_mode']==1){
|
|
|
|
if($is_checked_lite)
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_lite = 1 where sid = ".$data['sellerid']);
|
|
|
|
else
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_lite = 0 where sid = ".$data['sellerid']);
|
|
|
|
if($is_checked_call)
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_call = 1 where sid = ".$data['sellerid']);
|
|
|
|
else
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_call = 0 where sid = ".$data['sellerid']);
|
|
|
|
}
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set reserve_mode = ".$data['reserve_mode']." where sid = ".$data['sellerid']);
|
|
|
|
}
|
|
|
|
|
|
|
|
if($sms_code)
|
|
|
|
$res_sms_code= file_get_contents(ON_LINE.'App.SendSMS.SetSellerSmsTemplate&sid='.$data['sellerid'].'&sms_id='.$sms_code);
|
|
|
|
|
|
|
|
if($cuisine)
|
|
|
|
$res_cuisine= file_get_contents(ON_LINE.'App.Seller.SetSellerCuisine&sellerid='.$data['sellerid'].'&cid='.$cuisine);
|
|
|
|
//$res_cuisine = json_decode($res_cuisine,TRUE);
|
|
|
|
if($type)
|
|
|
|
$res_type= file_get_contents(ON_LINE.'App.Seller.SetSellerType&sellerid='.$data['sellerid'].'&typeid='.$type);
|
|
|
|
//$res_type = json_decode($res_type,TRUE);
|
|
|
|
|
|
|
|
if($mode)
|
|
|
|
$res_mode= file_get_contents(ON_LINE.'App.Seller.setSellerMode&sellerid='.$data['sellerid'].'&modeid='.$mode);
|
|
|
|
//$res_mode = json_decode($res_mode,TRUE);
|
|
|
|
if($label)
|
|
|
|
$res_label= file_get_contents(ON_LINE.'App.Seller.setSellerLabel&sid='.$data['sellerid'].'&field='.$label);
|
|
|
|
|
|
|
|
if($brand){
|
|
|
|
$del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_brand_rel WHERE sid =".$data['sellerid']);
|
|
|
|
$add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_brand_rel VALUES(".$data['sellerid'].",".$brand.")");
|
|
|
|
}
|
|
|
|
|
|
|
|
if($label_1_){
|
|
|
|
$del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$data['sellerid']." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 1)");
|
|
|
|
$add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$data['sellerid'].",".$label_1_.")");
|
|
|
|
}
|
|
|
|
|
|
|
|
if($label_2_){
|
|
|
|
$del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$data['sellerid']." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 2)");
|
|
|
|
$add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$data['sellerid'].",".$label_2_.")");
|
|
|
|
}
|
|
|
|
|
|
|
|
if($label_3_){
|
|
|
|
$del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$data['sellerid']." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 3)");
|
|
|
|
$add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$data['sellerid'].",".$label_3_.")");
|
|
|
|
}
|
|
|
|
|
|
|
|
if(isset($data['edition'])){
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set is_online_reserve = ".$data['edition']." where id = ".$data['sellerid']);
|
|
|
|
}
|
|
|
|
|
|
|
|
if(isset($data['is_tele'])){
|
|
|
|
$up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set is_tele = ".$data['is_tele']." where id = ".$data['sellerid']);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = "配置成功!";
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取商家已有菜系
|
|
|
|
$cuisine_list= file_get_contents(ON_LINE.'App.Seller.getSellerCuisine&sellerid='.$data['id']);
|
|
|
|
$cuisine_list = json_decode($cuisine_list,TRUE);
|
|
|
|
//获取所有菜系
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Reserve.GetCustomerConfig');
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
//组装数据
|
|
|
|
foreach ($cuisine_list['data'] as $key => $value) {
|
|
|
|
foreach ($array['data']['cate'] as $k => $v) {
|
|
|
|
if($value['cid']==$v['id']){
|
|
|
|
$array['data']['cate'][$k]['checked'] = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assign('list',$array['data']['cate']);//获取所有菜系
|
|
|
|
|
|
|
|
//获取商家已有来源
|
|
|
|
$type_list= file_get_contents(ON_LINE.'App.Seller.GetSellerType&sellerid='.$data['id']);
|
|
|
|
$type_list = json_decode($type_list,TRUE);
|
|
|
|
//获取来源
|
|
|
|
$channel = array(array('id'=>1,'name'=>'合作'),array('id'=>2,'name'=>'推广'),array('id'=>3,'name'=>'测试'));
|
|
|
|
//组装数据
|
|
|
|
foreach ($type_list['data'] as $key => $value) {
|
|
|
|
foreach ($channel as $k => $v) {
|
|
|
|
if($value['type_id']==$v['id']){
|
|
|
|
$channel[$k]['checked'] = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assign('channel',$channel);//获取所有来源
|
|
|
|
|
|
|
|
//获取商家已有地图显示方式
|
|
|
|
$mode_list= file_get_contents(ON_LINE.'App.Seller.getSellerMode&sellerid='.$data['id']);
|
|
|
|
$mode_list = json_decode($mode_list,TRUE);
|
|
|
|
|
|
|
|
//获取所有地图显示方式
|
|
|
|
$mode= array(array('id'=>1,'name'=>'地图上大图标'),array('id'=>2,'name'=>'地图上文字'));
|
|
|
|
//组装数据
|
|
|
|
foreach ($mode_list['data'] as $key => $value) {
|
|
|
|
foreach ($mode as $k => $v) {
|
|
|
|
if($value['sm_id']==$v['id']){
|
|
|
|
$mode[$k]['checked'] = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assign('mode',$mode);//获取所有菜系
|
|
|
|
|
|
|
|
//获取商家已选短信模板
|
|
|
|
$template = file_get_contents(ON_LINE.'App.Reserve.SellerInfo&seller_id='.$data['id']);
|
|
|
|
$template = json_decode($template,TRUE);
|
|
|
|
//获取短信模板列表
|
|
|
|
$template_list = file_get_contents(ON_LINE.'App.SendSMS.GetSmsTemplate');
|
|
|
|
$template_list = json_decode($template_list,TRUE);
|
|
|
|
|
|
|
|
//组装数据
|
|
|
|
foreach ($template_list['data'] as $key => $value) {
|
|
|
|
if($value['template_code']==$template['data']['setting']['template_code']){
|
|
|
|
$template_list['data'][$key]['checked'] = 1;
|
|
|
|
}
|
|
|
|
switch ($value['template_code']) {
|
|
|
|
case 'SMS_163050401':
|
|
|
|
$vowels = array(
|
|
|
|
'周到安排演示店' => '${seller_name}',
|
|
|
|
'11月25日晚上18:00' => '${date}',
|
|
|
|
'金台夕照、卢沟晓月' =>'${region_room_name}',
|
|
|
|
'西电路447号南湖金地西门南100米' =>'${seller_addr}',
|
|
|
|
'18792581193' =>'${seller_phone}',
|
|
|
|
'毛毛' =>'${cusman}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_162733710':
|
|
|
|
$vowels = array(
|
|
|
|
'4月6日中午' => '${reserve_date}',
|
|
|
|
'周到1店西电路447号金台夕照' => '${seller_name_addr_room}',
|
|
|
|
'毛毛' =>'${cusman}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_154587043':
|
|
|
|
$vowels = array(
|
|
|
|
'侯先生' => '${guest}',
|
|
|
|
'周到安排演示店' => '${seller_name}',
|
|
|
|
'11月25日晚上18:00' =>'${date}',
|
|
|
|
'包间(金台夕照)' =>'${region_room_name}',
|
|
|
|
'西电路447号南湖金地西门南100米' =>'${seller_addr}',
|
|
|
|
'18792581193' =>'${seller_phone}\n',
|
|
|
|
'毛毛' =>'${cusman}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_164277855':
|
|
|
|
$vowels = array(
|
|
|
|
'周到1店西电路447号' => '${seller_name}',
|
|
|
|
'11月7日晚上18:30' => '${date}',
|
|
|
|
'包间(金台夕照)' =>'${region_room_name}',
|
|
|
|
'1879258119' =>'${seller_phone}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_164268239':
|
|
|
|
$vowels = array(
|
|
|
|
'周到安排演示店' => '${seller_name}',
|
|
|
|
'11月7日晚上18:30' => '${date}',
|
|
|
|
'包间(金台夕照)' =>'${region_room_name}',
|
|
|
|
'西电路447号南湖金地西门南100米' =>'${seller_addr}',
|
|
|
|
'1879258119' =>'${seller_phone}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_181200398':
|
|
|
|
$vowels = array(
|
|
|
|
'周到安排演示店' => '${sellershortname}',
|
|
|
|
'11月7日' => '${date}',
|
|
|
|
'晚上' =>'${mealtime}',
|
|
|
|
'1F' =>'${regionname}',
|
|
|
|
'<<金台夕照>>' =>'${roomname}',
|
|
|
|
'西电路447号南湖金地西门南100米' =>'${selleraddr}',
|
|
|
|
'1879258119' =>'${sellerphone}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'SMS_181210420':
|
|
|
|
$vowels = array(
|
|
|
|
'周到安排演示店' => '${salename}',
|
|
|
|
'11月7日晚上' => '${date_solt}',
|
|
|
|
'三楼4号院' =>'${regonname}',
|
|
|
|
'【金台夕照】' =>'${roomname}',
|
|
|
|
'西电路447号南湖金地西门南100米' =>'${selleraddr}',
|
|
|
|
'出门左转' =>'${sellertips}',
|
|
|
|
'毛毛' =>'${managername}',
|
|
|
|
'1879258119' =>'${managerphone}',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
$template_list['data'][$key]['content'] = str_replace($vowels, array_keys($vowels),$value['content']);
|
|
|
|
}
|
|
|
|
$this->assign('template_list',$template_list['data']);//获取短信模板列表
|
|
|
|
|
|
|
|
//获取商家接单方式
|
|
|
|
$seller_config_res = Db::query('SELECT * from `xt-member-two-LINE`.xt_dc_dz_seller_config where sid ='.$data['id'].' GROUP by sid');
|
|
|
|
if(@$seller_config_res[0])
|
|
|
|
$this->assign('seller_config_res',$seller_config_res[0]);
|
|
|
|
|
|
|
|
$seller_user_openid_array = array();
|
|
|
|
//获取小程序是否可选择
|
|
|
|
$seller_user_openid_array = Db::query('SELECT
|
|
|
|
a.openid,
|
|
|
|
u.nick_name,
|
|
|
|
u.phone
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_seller_user AS u
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_auth_user AS a ON u.auth_user_id = a.id
|
|
|
|
WHERE
|
|
|
|
u.is_on_call = 1
|
|
|
|
AND u.sellerid = '.$data['id']);
|
|
|
|
$seller_user_openid = $seller_user_openid_array ? $seller_user_openid_array[0]['openid'] : '';
|
|
|
|
|
|
|
|
if($seller_user_openid_array[0]['phone']==NULL || $seller_user_openid_array[0]['phone'] ==''){
|
|
|
|
$seller_user_openid_array[0]['phone'] = '电话未填写';
|
|
|
|
$seller_user_openid_array[0]['phone_status'] = 1;
|
|
|
|
}
|
|
|
|
//检测是否关注公众号
|
|
|
|
if($seller_user_openid){
|
|
|
|
$seller_user_unionid = Db::query('SELECT
|
|
|
|
openid
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_wechat
|
|
|
|
WHERE
|
|
|
|
unionid = ( SELECT unionid FROM `xt-member-two-LINE`.xt_wechat WHERE openid = "'.$seller_user_openid.'" )
|
|
|
|
AND source = 0');
|
|
|
|
$seller_user_unionid = $seller_user_unionid ? $seller_user_unionid[0]['openid'] : '';
|
|
|
|
//未关注公众号则不能勾选小程序
|
|
|
|
if($seller_user_unionid==''){
|
|
|
|
$seller_user_openid_array[0]['is_openid_wechat'] = 0;
|
|
|
|
$seller_user_openid_array[0]['is_openid_wechat_str'] = '未关注公众号';
|
|
|
|
}else{
|
|
|
|
$seller_user_openid_array[0]['is_openid_wechat'] = 1;
|
|
|
|
$seller_user_openid_array[0]['is_openid_wechat_str'] = '已关注公众号';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->assign('seller_user_openid_array',$seller_user_openid_array[0]);
|
|
|
|
|
|
|
|
|
|
|
|
//获取商家拥有哪些标签
|
|
|
|
$label_list= file_get_contents(ON_LINE.'App.Seller.GetSellerLabel&sid='.$data['id']);
|
|
|
|
$label_list = json_decode($label_list,TRUE);
|
|
|
|
$this->assign('label_list',$label_list['data']);
|
|
|
|
|
|
|
|
//商家标签
|
|
|
|
//原生:
|
|
|
|
//$label_c=Db::query("SELECT * from xt-member-two-LINE.xt_dc_dz_seller_label_c");
|
|
|
|
$label_c=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c")->select();
|
|
|
|
$label_c_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c_rel")->where(array('sid'=>$data['id']))->select();
|
|
|
|
//组装数据
|
|
|
|
foreach ($label_c as $key => $value) {
|
|
|
|
foreach ($label_c_rel as $k => $v) {
|
|
|
|
if($value['id']==$v['lcid']){
|
|
|
|
$label_c[$key]['checked'] = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assign('label_c',$label_c);
|
|
|
|
|
|
|
|
//商家品牌
|
|
|
|
$brand=Db::table("xt-member-two-LINE.xt_dc_dz_seller_brand")->select();
|
|
|
|
$brand_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_brand_rel")->where(array('sid'=>$data['id']))->select();
|
|
|
|
//组装数据
|
|
|
|
foreach ($brand as $key => $value) {
|
|
|
|
foreach ($brand_rel as $k => $v) {
|
|
|
|
if($value['id']==$v['bid']){
|
|
|
|
$brand[$key]['checked'] = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assign('brand',$brand);
|
|
|
|
|
|
|
|
|
|
|
|
$is_online_reserve=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$data['id']))->select();
|
|
|
|
|
|
|
|
//获取商家在线预定版本情况
|
|
|
|
$this->assign('is_online_reserve',$is_online_reserve[0]['is_online_reserve']);
|
|
|
|
//是否安装电话机
|
|
|
|
$this->assign('is_tele',$is_online_reserve[0]['is_tele']);
|
|
|
|
|
|
|
|
//商户信息
|
|
|
|
$this->assign ('data',$data);
|
|
|
|
$this->assign ( 'title','商户信息配置' );
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 商家基础信息配置
|
|
|
|
*/
|
|
|
|
public function setsellerconfig(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$data['status'] = $data['status'] ? 0 : 1;
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Seller.SetSellerConfigByPC&sid='.$data['sellerid'].'&field='.$data['field'].'&value='.$data['value']);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['ret']==200){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请求错误!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//商家列表 用于配置商家活动
|
|
|
|
public function seller_activity_list(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$key= input('post.key') ? input('post.key') : "";
|
|
|
|
$channel = @$key['channel'] ? @$key['channel'] : 1;
|
|
|
|
$limit = '&x='.$data["page"].'&y='.$data["limit"].'&keywords='.@$key['id'].'&channel='.$channel;
|
|
|
|
|
|
|
|
//获取运营人员列表
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Seller.GetSellerListByActivity'.$limit);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
foreach($array['data'][0]['data'] as $key=>$value){
|
|
|
|
if(!empty($value['activity'])){
|
|
|
|
foreach ($value['activity'] as $k => $v) {
|
|
|
|
$str[$key][] = ($k+1).'、'.$v['title'];
|
|
|
|
}
|
|
|
|
$array['data'][0]['data'][$key]['activity'] = implode('<br/>', $str[$key]);
|
|
|
|
//$array['data'][0]['data'][$key]['activity'] = implode('<br/>', array_column($value['activity'], 'title'));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$array['data'][0]['data'],'count'=>$array['data'][0]['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
$this->assign ( 'title','商家活动配置');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 商家活动列表页
|
|
|
|
* 商家卡券-卡券投放-卡券列表
|
|
|
|
*/
|
|
|
|
public function seller_activity(){
|
|
|
|
$data = Request::except('file');
|
|
|
|
//获取商家现有活动
|
|
|
|
$seller_activity= file_get_contents(ON_LINE.'App.Seller.GetSellerActivity&sid='.$data['id']);
|
|
|
|
$seller_activity = json_decode($seller_activity,TRUE);
|
|
|
|
//活动列表
|
|
|
|
$this->assign('sid',$data['id']);
|
|
|
|
$this->assign ( 'seller_activity',$seller_activity['data']);
|
|
|
|
$this->assign ( 'title','商家活动配置页面');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
//添加活动
|
|
|
|
public function add_activity(){
|
|
|
|
$data = Request::except('file');
|
|
|
|
if(Request::isAjax()){
|
|
|
|
switch ($data['type']) {
|
|
|
|
case '1':
|
|
|
|
if($data['max_num']==0){
|
|
|
|
$data['title'] = '立减'.$data['min_num'];break;
|
|
|
|
}else{
|
|
|
|
$data['title'] = '满'.$data['max_num'].'立减'.$data['min_num'];break;
|
|
|
|
}
|
|
|
|
case '2':
|
|
|
|
if($data['max_num']==0){
|
|
|
|
$data['title'] = '赠'.$data['min_num'];break;
|
|
|
|
}else{
|
|
|
|
$data['title'] = '满'.$data['max_num'].'赠'.$data['min_num'];break;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case '3':
|
|
|
|
if($data['max_num']==0){
|
|
|
|
$data['title'] = $data['min_num'].'折';break;
|
|
|
|
}else{
|
|
|
|
$data['title'] = '满'.$data['max_num'].'立享'.$data['min_num'].'折';break;
|
|
|
|
}
|
|
|
|
case '4':
|
|
|
|
$data['title'] = $data['max_num'].'元代金券';
|
|
|
|
break;
|
|
|
|
case '5':
|
|
|
|
$data['title'] = '会员价';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
//字段空值过滤
|
|
|
|
//添加活动
|
|
|
|
$res= file_get_contents(ON_LINE.'App.Seller.SetActivity&str='.serialize($data));
|
|
|
|
$res = json_decode($res,TRUE);
|
|
|
|
if($data['aid']){
|
|
|
|
if($res['data']){
|
|
|
|
$result = ['code'=>1,'msg'=>'修改成功!','rel'=>1];
|
|
|
|
}else{
|
|
|
|
$result = ['code'=>0,'msg'=>'修改失败!','rel'=>1];
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
if($res['data']){
|
|
|
|
$result = ['code'=>1,'msg'=>'添加成功!','rel'=>1];
|
|
|
|
}else{
|
|
|
|
$result = ['code'=>0,'msg'=>'添加失败!','rel'=>1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
if($data['id']){
|
|
|
|
//修改---需要获取对应的数据
|
|
|
|
$activity= file_get_contents(ON_LINE.'App.Seller.GetSellerActivityById&id='.$data['id']);
|
|
|
|
$activity = json_decode($activity,TRUE);
|
|
|
|
$this->assign ('data',$activity['data']);
|
|
|
|
$this->assign ( 'title','修改活动');
|
|
|
|
}
|
|
|
|
$this->assign ( 'hid',$data['sid']);
|
|
|
|
$this->assign ( 'title','添加活动');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
//删除活动
|
|
|
|
public function del_activity(){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$res= file_get_contents(ON_LINE.'App.Seller.DelSellerActivity&sid='.$data['sid'].'&aid='.$data['aid']);
|
|
|
|
$res = json_decode($res,TRUE);
|
|
|
|
$this->redirect('Seller/seller_activity', ['id' => $data['sid']]);
|
|
|
|
//return $this->fetch('seller_activity',['id' => $data['sid']]);
|
|
|
|
}
|
|
|
|
|
|
|
|
//商家设备列表
|
|
|
|
public function device_list(){
|
|
|
|
//获取类型
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
public function cardput(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$channel = @$data['channel'] ? @$data['channel'] : 1;
|
|
|
|
$manufacturer = @$data['manufacturer'] ? @$data['manufacturer'] : 1;
|
|
|
|
|
|
|
|
$limit = '&page='.$data["page"].'&size='.$data["limit"].'&sellername='.@$data['key'].'&channel='.$channel.'&type='.$manufacturer;
|
|
|
|
|
|
|
|
//获取运营人员列表
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Device.GetDeviceOnlineStatus'.$limit); //GetSellerDevice
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
foreach ($array['data']['list'] as $key => $value) {
|
|
|
|
switch ($value['type']) {
|
|
|
|
case '0':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '1':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '2':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[1]['facturer'];
|
|
|
|
break;
|
|
|
|
case '3':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[2]['facturer'];
|
|
|
|
break;
|
|
|
|
case '4':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[3]['facturer'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$array['data']['list'][$key]['type'] = 'error: '.$value['type'];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$array['data']['list'],'count'=>$array['data']['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
$this->assign ( 'facturer',$facturer);
|
|
|
|
$this->assign ( 'title','商家设备列表');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
//商家设备列表
|
|
|
|
public function add_gray_user(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Device.SetGrayUser&ids='.serialize($data['id']));
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['ret']==200){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '服务器错误,请勿重复将设备号添加到灰度用户!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
//灰度用户列表
|
|
|
|
public function gray_user_list(){
|
|
|
|
//获取类型
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
$this->assign ( 'facturer',$facturer);
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$channel = @$data['channel'] ? @$data['channel'] : 1;
|
|
|
|
$manufacturer = @$data['manufacturer'] ? @$data['manufacturer'] : 1;
|
|
|
|
|
|
|
|
$limit = '&page='.$data["page"].'&size='.$data["limit"].'&sellername='.@$data['key'].'&channel='.$channel.'&type='.$manufacturer;
|
|
|
|
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Device.GetGrayUserList'.$limit);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
foreach ($array['data']['list'] as $key => $value) {
|
|
|
|
switch ($value['type']) {
|
|
|
|
case '1':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '2':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[1]['facturer'];
|
|
|
|
break;
|
|
|
|
case '3':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[2]['facturer'];
|
|
|
|
break;
|
|
|
|
case '4':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[3]['facturer'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$array['data']['list'][$key]['type'] = 'error';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$array['data']['list'],'count'=>$array['data']['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
//获取类型
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
$this->assign ( 'facturer',$facturer);
|
|
|
|
$this->assign ( 'title','灰度用户列表');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
$where = '';
|
|
|
|
$channel = $data['channel'] ? $data['channel'] : 1;
|
|
|
|
|
|
|
|
//删除灰度用户
|
|
|
|
public function del_gray_user(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Device.DelGrayUser&jsstr='.serialize($data['id']));
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
$where .= ($channel && $channel==4) ? ' re.type_id in (1,2,3)' : " re.type_id in ($channel)";
|
|
|
|
$where .= $data['key'] ? ' and s.sellername like "%'.$data['key'].'%"' : "";
|
|
|
|
|
|
|
|
if($array['ret']==200){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请刷新页面重新尝试!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取在线设备情况
|
|
|
|
public function get_device_online_status(){
|
|
|
|
//获取类型
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$channel = @$data['channel'] ? @$data['channel'] : 1;
|
|
|
|
$manufacturer = @$data['manufacturer'] ? @$data['manufacturer'] : 1;
|
|
|
|
|
|
|
|
$limit = '&page='.$data["page"].'&size='.$data["limit"].'&sellername='.@$data['key'].'&channel='.$channel.'&type='.$manufacturer;
|
|
|
|
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Device.GetDeviceOnlineStatus'.$limit);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
foreach ($array['data']['list'] as $key => $value) {
|
|
|
|
switch ($value['type']) {
|
|
|
|
case '0':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '1':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '2':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[1]['facturer'];
|
|
|
|
break;
|
|
|
|
case '3':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[2]['facturer'];
|
|
|
|
break;
|
|
|
|
case '4':
|
|
|
|
$array['data']['list'][$key]['type'] = $facturer[3]['facturer'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$array['data']['list'][$key]['type'] = $value['type'];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$array['data']['list'],'count'=>$array['data']['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
$this->assign ( 'facturer',$facturer);
|
|
|
|
$this->assign ( 'title','商家话机在线设备列表');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
private function check($aid) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 从商家维度统计:订单、短信等情况
|
|
|
|
*/
|
|
|
|
public function GetReserveList(){
|
|
|
|
//获取类型
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
set_time_limit(0);
|
|
|
|
$time = $data['time'] ? explode(' - ', $data['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())) : '';
|
|
|
|
|
|
|
|
////////////////////////////////
|
|
|
|
$arr = array();
|
|
|
|
$where = '';
|
|
|
|
|
|
|
|
$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;
|
|
|
|
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:
|
|
|
|
if($data['order']==1){
|
|
|
|
$where .= ' AND r.status in (0,6,5,4)';
|
|
|
|
}else{
|
|
|
|
$where .= ' AND r.status in (0,1,6,5,4)';
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
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'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$data['channel'] = $data['channel'] ? implode(',',$data['channel']) : 1;
|
|
|
|
|
|
|
|
$where .= $data['channel'] == -1 ? '' : ' AND re.type_id in ('.$data['channel'].')';
|
|
|
|
#key
|
|
|
|
$where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : ''; //商家名称
|
|
|
|
#ID
|
|
|
|
$where .= $data['nokey'] ? ' AND r.id ='.$data['nokey'] : ''; //商家ID
|
|
|
|
|
|
|
|
|
|
|
|
$offset = ($data['page']-1)*$data['limit'];
|
|
|
|
$offset = ($data["page"] - 1) * $data["limit"];
|
|
|
|
$limit = " LIMIT $offset,".$data['limit'];
|
|
|
|
|
|
|
|
|
|
|
|
//导出操作
|
|
|
|
if($data['export']){
|
|
|
|
$limit = "";
|
|
|
|
}else{
|
|
|
|
$limit = " LIMIT $offset,".$data['limit'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$admin = db('admin')->where(array('admin_id'=>session('aid')))->find();
|
|
|
|
|
|
|
|
//当前用户分组为代理商时 获取代理商下面的数据
|
|
|
|
if(in_array($admin['group_id'],array(8))) {
|
|
|
|
//查询账号对应的区域ID
|
|
|
|
$account = Db::query("SELECT
|
|
|
|
*
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_agent_account
|
|
|
|
WHERE
|
|
|
|
account = '".$admin['username']."'");
|
|
|
|
|
|
|
|
$where .= ' AND ags.areaid = '.$account[0]['areaid']; //区域ID
|
|
|
|
|
|
|
|
//检测是否为代理商
|
|
|
|
$rs = Db::query("SELECT
|
|
|
|
dv.type,
|
|
|
|
r.tid,
|
|
|
|
r.tableinfo,
|
|
|
|
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
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_agent_seller AS ags on ags.sellerid = 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
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_agent_seller AS ags on ags.sellerid = s.id
|
|
|
|
WHERE
|
|
|
|
$where
|
|
|
|
GROUP BY
|
|
|
|
r.id");
|
|
|
|
}else{
|
|
|
|
//检测是否为代理商
|
|
|
|
$rs = Db::query("SELECT
|
|
|
|
dv.type,
|
|
|
|
r.tid,
|
|
|
|
r.tableinfo,
|
|
|
|
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) {
|
|
|
|
$rs[$key]['seller_tel'] = str_replace(',', '、', $value['seller_tel']);
|
|
|
|
$message_time = Db::query("SELECT
|
|
|
|
handle_time,rec_date
|
|
|
|
//卡券信息
|
|
|
|
$rs = Db::query("SELECT
|
|
|
|
s.*
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_message
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_card_info AS s
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
|
|
|
|
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);
|
|
|
|
////////////////////////////////
|
|
|
|
|
|
|
|
foreach ($arr['list'] as $key => $value) {
|
|
|
|
//已分配的订单显示 分配的桌位
|
|
|
|
if($value['status']==5){
|
|
|
|
$arr['list'][$key]['tid'] = explode(',',@$value['tid']);
|
|
|
|
}
|
|
|
|
//有无设备
|
|
|
|
if($value['is_tele']==1){
|
|
|
|
switch ($value['type']) {
|
|
|
|
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{
|
|
|
|
$arr['list'][$key]['dv'] = '无';
|
|
|
|
}
|
|
|
|
//订单接受时间段
|
|
|
|
switch ($value['ddate_solt']) {
|
|
|
|
//'未设置/早市/午市/晚市/夜宵 0/1/2/3/4',
|
|
|
|
case 0:
|
|
|
|
$value['ddate_solt'] = '未设置';
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
$value['ddate_solt'] = '早市';
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$value['ddate_solt'] = '午市';
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$value['ddate_solt'] = '晚市';
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
$value['ddate_solt'] = '夜宵';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
$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:
|
|
|
|
$arr['list'][$key]['sta'] = '待确认';
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
$arr['list'][$key]['sta'] = '已定座';
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$arr['list'][$key]['sta'] = '到店';
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$arr['list'][$key]['sta'] = '离店';
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
$arr['list'][$key]['sta'] = '已取消';
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
$arr['list'][$key]['sta'] = '已分配';
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
$arr['list'][$key]['sta'] = '拒单';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
switch ($value['sex']) {
|
|
|
|
case 1:
|
|
|
|
$arr['list'][$key]['rname'] = $value['rname'].'先生'.'('.$value['phone'].')';
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$arr['list'][$key]['rname'] = $value['rname'].'女士'.'('.$value['phone'].')';
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$arr['list'][$key]['rname'] = $value['rname'].'公司'.'('.$value['phone'].')';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if($value['room_demand']){
|
|
|
|
$arr['list'][$key]['room_demand'] = implode('、',array_column(json_decode($value['room_demand'],true), 'name'));
|
|
|
|
}
|
|
|
|
|
|
|
|
$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'){ //话机操作
|
|
|
|
$arr['list'][$key]['operator_openid'] = '电话机';
|
|
|
|
}
|
|
|
|
|
|
|
|
if(strstr($template['operator_openid'],'_',-4)=='wind'){ //PC操作
|
|
|
|
$arr['list'][$key]['operator_openid'] = 'PC';
|
|
|
|
}
|
|
|
|
|
|
|
|
if(strstr($template['operator_openid'],'_',-4)=='chat'){ //PC操作
|
|
|
|
$arr['list'][$key]['operator_openid'] = '小程序';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
foreach ($arr['list'] as $key => $value) {
|
|
|
|
$arr['list'][$key]['tablename'] = '';
|
|
|
|
//如果存了桌子的信息则,直接返回桌子信息,否则去桌位表查
|
|
|
|
if($value['tableinfo']!=NULL){
|
|
|
|
$tableArr = json_decode($value['tableinfo'],true);
|
|
|
|
if(is_array($tableArr)){
|
|
|
|
foreach ($tableArr as $tkey => $tvalue) {
|
|
|
|
$arr['list'][$key]['tablename'] .= $tvalue['name'].'、';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**else{
|
|
|
|
foreach ($value['tid'] as $k => $v) {
|
|
|
|
//$rs[$key]['name'][] = Db::query("SELECT name FROM `xt-member-two-LINE`.xt_dc_seller_table where id = ".$v);
|
|
|
|
}
|
|
|
|
}**/
|
|
|
|
}
|
|
|
|
|
|
|
|
//excel 导出
|
|
|
|
if($data['export']){
|
|
|
|
return $result = [
|
|
|
|
'code'=>0,'msg'=>'获取成功!',
|
|
|
|
'data'=>$arr['list'],
|
|
|
|
'count'=>$arr['total'],
|
|
|
|
'rel'=>1
|
|
|
|
];
|
|
|
|
//加载PHPExcle类库
|
|
|
|
$DOCUMENT_ROOT = str_replace('public','',$_SERVER['DOCUMENT_ROOT']);
|
|
|
|
require_once $DOCUMENT_ROOT.'vendor/Classes/PHPExcel.php';
|
|
|
|
require_once $DOCUMENT_ROOT.'vendor/Classes/PHPExcel/IOFactory.php';
|
|
|
|
|
|
|
|
//实例化PHPExcel类
|
|
|
|
$objPHPExcel = new \PHPExcel();
|
|
|
|
//激活当前的sheet表
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
|
|
//设置表格头(即excel表格的第一行)
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)
|
|
|
|
->setCellValue('A1', '订单编号')
|
|
|
|
->setCellValue('B1', '所属商家')
|
|
|
|
->setCellValue('C1', '商家电话')
|
|
|
|
->setCellValue('D1', '到店时间')
|
|
|
|
->setCellValue('E1', '包间名称')
|
|
|
|
->setCellValue('F1', '包间需求')
|
|
|
|
->setCellValue('G1', '客户信息')
|
|
|
|
->setCellValue('H1', '备注')
|
|
|
|
->setCellValue('I1', '下单时间')
|
|
|
|
->setCellValue('J1', '商家设备')
|
|
|
|
->setCellValue('K1', '消息送达时间')
|
|
|
|
->setCellValue('L1', '处理时间')
|
|
|
|
->setCellValue('M1', '状态');
|
|
|
|
//设置A列水平居中
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
|
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
//设置单元格宽度
|
|
|
|
//循环刚取出来的数组,将数据逐一添加到excel表格。
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);
|
|
|
|
|
|
|
|
for($i=0;$i<count($arr['list']);$i++){
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//订单编号
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['sellername']);//所属商家
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['seller_tel']);//商家电话
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['ddate']);//到店时间
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['tablename']);//包间名称
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['room_demand']);//包间需求
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2),$list[$i]['rname']);//客户信息
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('H'.($i+2),$list[$i]['cusdem']);//备注
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('I'.($i+2),$list[$i]['cdate']);//下单时间
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('J'.($i+2),$list[$i]['dv']);//商家设备
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('K'.($i+2),$list[$i]['rec_date']);//消息送达时间
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('L'.($i+2),$list[$i]['handle_time']);//处理时间
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('M'.($i+2),$list[$i]['sta']);//状态
|
|
|
|
}
|
|
|
|
//设置保存的Excel表格名称
|
|
|
|
$filename = '预定订单数据'.date('ymd',time()).'.xls';
|
|
|
|
//8.设置当前激活的sheet表格名称;
|
|
|
|
$objPHPExcel->getActiveSheet()->setTitle('订单内容');
|
|
|
|
//设置浏览器窗口下载表格
|
|
|
|
header("Content-Type: application/force-download");
|
|
|
|
header("Content-Type: application/octet-stream");
|
|
|
|
header("Content-Type: application/download");
|
|
|
|
header('Content-Disposition:inline;filename="'.$filename.'"');
|
|
|
|
header("Pragma: no-cache");
|
|
|
|
//生成excel文件
|
|
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
|
|
//下载文件在浏览器窗口
|
|
|
|
$objWriter->save('php://output');
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
//print_r($arr['list']);die;
|
|
|
|
return $result = [
|
|
|
|
'code'=>0,'msg'=>'获取成功!',
|
|
|
|
'data'=>$arr['list'],
|
|
|
|
'count'=>$arr['total'],
|
|
|
|
'rel'=>1
|
|
|
|
];
|
|
|
|
}
|
|
|
|
$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){
|
|
|
|
".$where." order by s.sid".$limit);
|
|
|
|
//格式化数据
|
|
|
|
foreach ($rs as $key => $value) {
|
|
|
|
if($this->isjson_str($value['desc'])){
|
|
|
|
$rs[$key]['desc'] = "diff";
|
|
|
|
}
|
|
|
|
switch ($value['action_type']) {
|
|
|
|
$rs[$key]['create_time'] = date("Y年m月d日",$value['create_time']);
|
|
|
|
switch ($value['status']) {
|
|
|
|
case '1':
|
|
|
|
$rs[$key]['action_type'] = '取消预定';
|
|
|
|
$rs[$key]['status_msg'] = '已投放';
|
|
|
|
break;
|
|
|
|
case '2':
|
|
|
|
$rs[$key]['action_type'] = '修改预定';
|
|
|
|
$rs[$key]['status_msg'] = '未投放';
|
|
|
|
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'] = '拒绝接单';
|
|
|
|
$rs[$key]['status_msg'] = '停止投放';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
$rs[$key]['cdate'] = date("Y年m月d日 H时i分",$value['cdate']);
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取总条数
|
|
|
|
$total = Db::query("SELECT
|
|
|
|
s.id
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_card_info AS s
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
|
|
|
|
WHERE
|
|
|
|
".$where."");
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
|
|
|
|
}
|
|
|
|
//订单详情
|
|
|
|
$detail = Db::query("SELECT
|
|
|
|
r.*,
|
|
|
|
s.sellername
|
|
|
|
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
|
|
|
|
WHERE
|
|
|
|
r.id = ".$data['rid']);
|
|
|
|
switch ($detail[0]['channel']) {
|
|
|
|
case 1:
|
|
|
|
$detail[0]['channel'] = '微信小程序';
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$detail[0]['channel'] = '电话机';
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$detail[0]['channel'] = '安卓手机客户端';
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
$detail[0]['channel'] = 'C端';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
switch ($detail[0]['sex']) {
|
|
|
|
case 1:
|
|
|
|
$detail[0]['sex'] = '先生';
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
$detail[0]['sex'] = '女士';
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
$detail[0]['sex'] = '公司';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
# code...
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
$this->assign ( 'html',$detail[0]);
|
|
|
|
$this->assign ( 'rid',$data['rid']);
|
|
|
|
$this->assign ( 'data',$rs);
|
|
|
|
$this->assign ( 'title','订单操作日志详情');
|
|
|
|
$this->assign ( 'title','商家卡券');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function isjson_str($data='',$assoc = false){
|
|
|
|
$data = json_decode($data,$assoc);
|
|
|
|
if(($data&&is_object($data))||(is_array($data)&&!empty($data))){
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* 状态设置
|
|
|
|
* 商家卡券-卡券投放- 停止投放
|
|
|
|
*/
|
|
|
|
public function setReserveStatus(){
|
|
|
|
|
|
|
|
public function cardstop(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
|
|
|
|
$data['cause'] = json_encode(array('uid'=>-1,'uname'=>session('username'),'desc'=>$data['cause']));
|
|
|
|
|
|
|
|
$list= file_get_contents(ON_LINE.'App.Reserve.SetReserveStatus&rid='.$data['id'].'&status='.$data['status'].'&cause='.$data['cause']);
|
|
|
|
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['ret']==200){
|
|
|
|
$ups = Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info set status = 3 where id = ".$data['id']);
|
|
|
|
if(!$ups){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
$result['msg'] = '该卡券已停止投放!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请求错误!';
|
|
|
|
$result['msg'] = '请求错误,请联系管理员!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
...
|
...
|
@@ -1499,175 +278,67 @@ class Card extends Common |
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 状态设置
|
|
|
|
* 商家卡券-卡券投放- 投放-弹层
|
|
|
|
*/
|
|
|
|
public function devicelists(){
|
|
|
|
$facturer = Db::query("SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_facturer");
|
|
|
|
$this->assign ( 'facturer',$facturer);
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$channel = @$data['channel'] ? @$data['channel'] : 1;
|
|
|
|
$manufacturer = @$data['manufacturer'] ? @$data['manufacturer'] : 1;
|
|
|
|
|
|
|
|
public function cardputin(){
|
|
|
|
$id = Request::except('file');
|
|
|
|
if(request()->isPost()){
|
|
|
|
$data = input('post.');
|
|
|
|
|
|
|
|
$page = ($data['page']-1)*$data['limit'];
|
|
|
|
//商家基本数据
|
|
|
|
$end_time = Db::query("SELECT
|
|
|
|
end_time
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_card_info
|
|
|
|
WHERE id=".$data['cid']);
|
|
|
|
|
|
|
|
$__Where = ' 1=1';
|
|
|
|
$arr = [];
|
|
|
|
$time = $data['date'] ? explode(' - ', $data['date']) : '';
|
|
|
|
$arr['receive_start_time'] = $time ? strtotime(date($time[0],time())) : '';
|
|
|
|
$arr['receive_end_time'] = $time ? strtotime(date($time[1],time())) : '';
|
|
|
|
$arr['total_limit'] = $data['total_limit']=='on' ? 1 : 0;
|
|
|
|
$arr['total'] = $data['total'] ? intval($data['total']) : 0;
|
|
|
|
$arr['receive_condition'] = $data['receive_condition'] ? intval($data['receive_condition']) : 0;
|
|
|
|
$arr['order_price'] = $data['order_price'] ? $data['order_price'] : 0;
|
|
|
|
$arr['contributor'] = $_SESSION['think']['username'];
|
|
|
|
$arr['contributor_time'] = time();
|
|
|
|
$arr['status'] = 1;
|
|
|
|
|
|
|
|
$__Where .= @$data['key'] ? " and s.sellername like '%".$data['key']."%'" : "";
|
|
|
|
|
|
|
|
switch ($manufacturer) {
|
|
|
|
case '1':
|
|
|
|
$__Where .= ' and sta.type in (0,1)';
|
|
|
|
break;
|
|
|
|
case '-1':
|
|
|
|
$__Where .= ' ';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$__Where .= ' and sta.type = '.$manufacturer;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if($channel && $channel!=-1) {
|
|
|
|
$__Where .= ' and rel.type_id='. $channel;
|
|
|
|
}else{
|
|
|
|
$__Where .= "";
|
|
|
|
if($end_time[0]['end_time'] < $arr['receive_end_time']){
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '领取期限必须在卡券有效期内!';
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
$total = Db::query("SELECT
|
|
|
|
count(1) as total
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS sta
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON sta.sid = s.id
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS rel ON sta.sid = rel.sid
|
|
|
|
WHERE
|
|
|
|
$__Where");
|
|
|
|
$list = Db::query("SELECT
|
|
|
|
s.sellername,
|
|
|
|
rel.type_id,
|
|
|
|
sta.*
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_seller_app_dv AS sta
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON sta.sid = s.id
|
|
|
|
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS rel ON sta.sid = rel.sid
|
|
|
|
WHERE
|
|
|
|
$__Where
|
|
|
|
ORDER BY
|
|
|
|
sta.sid
|
|
|
|
LIMIT $page,".$data['limit']);
|
|
|
|
foreach ($list as $key => $value) {
|
|
|
|
|
|
|
|
//$list[$key]['call_jump_page'] = $value['call_jump_page'] == 1 ? "订座页面" : "桌位页面";
|
|
|
|
|
|
|
|
switch ($value['type']) {
|
|
|
|
case '0':
|
|
|
|
$list[$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '1':
|
|
|
|
$list[$key]['type'] = $facturer[0]['facturer'];
|
|
|
|
break;
|
|
|
|
case '2':
|
|
|
|
$list[$key]['type'] = $facturer[1]['facturer'];
|
|
|
|
break;
|
|
|
|
case '3':
|
|
|
|
$list[$key]['type'] = $facturer[2]['facturer'];
|
|
|
|
break;
|
|
|
|
case '4':
|
|
|
|
$list[$key]['type'] = $facturer[3]['facturer'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$list[$key]['type'] = 'error: '.$value['type'];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$sql = "UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info SET ";
|
|
|
|
foreach ($arr as $key=>$val){
|
|
|
|
$sql .= "".$key."='".$val."',";
|
|
|
|
}
|
|
|
|
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list,'count'=>$total[0]['total'],'rel'=>1];
|
|
|
|
}
|
|
|
|
$this->assign ( 'title','设备列表');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
$sql = substr( $sql,0, strlen($sql)-1 );
|
|
|
|
$sql .= ' where id = '.$data['cid'];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 商家基础信息配置
|
|
|
|
*/
|
|
|
|
public function upcalljumppage(){
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
$list= file_get_contents(ON_LINE.'Android.Device.UpDeviceCallJumpPage&device='.$data['device'].'&field='.'&status='.$data['status']);
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
if($array['ret']==200){
|
|
|
|
$ups = Db::query($sql);
|
|
|
|
if(!$ups){
|
|
|
|
$result['code'] = 1;
|
|
|
|
$result['msg'] = 'SUCCESS!';
|
|
|
|
$result['msg'] = '已成功投放!';
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请求错误!';
|
|
|
|
$result['msg'] = '请求错误,请联系管理员!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* 商家短信充值查询
|
|
|
|
*/
|
|
|
|
public function getsellersmslist(){
|
|
|
|
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::except('file');
|
|
|
|
|
|
|
|
$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")));
|
|
|
|
|
|
|
|
$newtime = is_array($time) ? (strtotime(date($time[0])).'-'.strtotime(date($time[1]))) : $time;
|
|
|
|
|
|
|
|
$channel = (!isset($data['time'])) ? 1 : $data['channel'];
|
|
|
|
|
|
|
|
$name = (!isset($data['time'])) ? '' : $data['key'];
|
|
|
|
|
|
|
|
$url= ON_LINE.'App.Seller.QuerySelllerSmsList&offset='.$data['page'].'&size='.$data['limit'].'&time='.$newtime.'&channel='.$channel.'&name='.$name;
|
|
|
|
|
|
|
|
$list = $this->curl_get($url);
|
|
|
|
|
|
|
|
$array = json_decode($list,TRUE);
|
|
|
|
|
|
|
|
if($array){
|
|
|
|
foreach ($array['data']['list'] as $key => $value) {
|
|
|
|
$array['data']['list'][$key]['bdate'] = date("Y年m月d日 H时i分s秒",$value['bdate']);
|
|
|
|
$array['data']['list'][$key]['paystatus'] = $value['paystatus']==1 ? '成功' : '失败';
|
|
|
|
$array['data']['list'][$key]['channel'] = $value['channel']==NULL ? '小程序' : $value['channel'];
|
|
|
|
$array['data']['list'][$key]['package_name'] = $value['package_name']=='other' ? '其他' : $value['package_name'];
|
|
|
|
}
|
|
|
|
return $result = [
|
|
|
|
'code'=>0,'msg'=>'获取成功!',
|
|
|
|
'data'=>$array['data']['list'],
|
|
|
|
'count'=>$array['data']['total'],
|
|
|
|
'rel'=>1
|
|
|
|
];
|
|
|
|
}else{
|
|
|
|
$result['code'] = 0;
|
|
|
|
$result['msg'] = '请求错误!';
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* post
|
|
|
|
*/
|
|
|
|
public function curl_get($url)
|
|
|
|
{
|
|
|
|
|
|
|
|
$info = curl_init();
|
|
|
|
curl_setopt($info,CURLOPT_RETURNTRANSFER,true);
|
|
|
|
curl_setopt($info,CURLOPT_HEADER,0);
|
|
|
|
curl_setopt($info,CURLOPT_NOBODY,0);
|
|
|
|
curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
|
|
|
|
curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
|
|
|
|
curl_setopt($info,CURLOPT_SSL_VERIFYHOST,false);
|
|
|
|
curl_setopt($info,CURLOPT_URL,$url);
|
|
|
|
$output = curl_exec($info);
|
|
|
|
curl_close($info);
|
|
|
|
return $output;
|
|
|
|
//商家基本数据
|
|
|
|
$rs = Db::query("SELECT
|
|
|
|
id,
|
|
|
|
sellername,
|
|
|
|
card_title,
|
|
|
|
end_time
|
|
|
|
FROM
|
|
|
|
`xt-member-two-LINE`.xt_dc_dz_card_info
|
|
|
|
WHERE id=".$id['id']);
|
|
|
|
$this->assign ( 'rs',$rs[0]);
|
|
|
|
$this->assign ( 'title','卡券投放');
|
|
|
|
return $this->fetch();
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|