Commit 9e1af9e67568f2b8711cb28eacaac01faede1482

Authored by teemitop
1 parent 21e77736

卡券新建 投放

... ... @@ -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();
}
}
... ...
... ... @@ -51,11 +51,44 @@
</div>
{if $rs.status neq 2}
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">领取期限</label>
<div class="layui-input-inline" style="width: 300px;">
<input type="text" name="date" id="date" class="layui-input" disabled="disabled" value="{$rs.start_time} - {$rs.end_time}">
<div class="layui-inline">
<label class="layui-form-label">领取期限</label>
<div class="layui-input-inline" style="width: 300px;">
<input type="text" name="date" id="date" value="{$rs.receive_start_time} 到 {$rs.receive_end_time}" disabled="disabled" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">该期间内可以领取</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">总数限制</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="checkbox" name="total_limit" title="是否限制" {if $rs.total_limit eq 1} checked=""{/if} disabled="disabled" lay-skin="primary">
</div>
<ii id="li_total">
<div class="layui-form-mid layui-word-aux">红包总数达到</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="total" id="total" class="layui-input" value="{$rs.total}" disabled="disabled">
</div>
<div class="layui-form-mid layui-word-aux">个时,停止发放</div>
</ii>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">领取条件</label>
<div class="layui-input-block">
<input type="radio" disabled="disabled" name="receive_condition" lay-filter="receive_condition" value="1" title="打开店铺页面时,如果顾客没有该卡券,自动发放" {if $rs.receive_condition eq 1} checked=""{/if}><br>
<input type="radio" disabled="disabled" name="receive_condition" lay-filter="receive_condition" value="2" title="完成订单支付后,支付订单金额达到:" {if $rs.receive_condition eq 2} checked=""{/if}>
<input type="text" name="order_price" id="order_price" style="width: 100px;" value="{$rs.order_price}" disabled="disabled" class="layui-input">元时,自动发放
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">核销方式</label>
<div class="layui-input-inline" style="width: 500px;">
<div class="layui-form-mid layui-word-aux">用户在支付订单时,选择使用该卡券支付后,自动核销</div>
</div>
</div>
{/if}
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit">
<fieldset class="layui-elem-field layui-field-title">
<legend>{:$title}</legend>
</fieldset>
<blockquote class="layui-elem-quote">
<a href="{:url('card/sellercard')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 优惠券
</a>
<a href="{:url('card/cardput')}" class="layui-btn layui-btn-lg layui-btn-danger">
<i class="fa fa-file-image-o"></i> 卡券投放
</a>
<a href="{:url('card/cardwriteoff')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券核销
</a>
<a href="{:url('card/carddata')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 数据统计
</a>
</blockquote>
<div class="demoTable">
商家名称:<div class="layui-inline">
<input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
</div>
商家来源:
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="channel" lay-filter="myselect">
<option value="4">全部</option>
<option value="1" selected>合作</option>
<option value="2">推广</option>
<option value="3">测试</option>
</select>
</div>
</div>
<button class="layui-btn" id="search" data-type="reload">搜索</button>
</div>
<table class="layui-table" id="list" lay-filter="list"></table>
</div>
{include file="common/foot"/}
<script type="text/html" id="action">
{{#if(d.status==1){}}
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="stop">停止投放</a>
{{#} else if(d.status==2) {}} 
<a class="layui-btn layui-btn-xs" lay-event="putin">投放</a>
{{#} else {}} 
暂无操作
{{#}}}
</script>
<script>
layui.use(['table','form','laydate'], function() {
var table = layui.table,laydate = layui.laydate,form = layui.form,$ = layui.jquery,layer = layui.layer;
var tableIn = table.render({
elem: '#list',
url: '{:url("cardput")}',
method: 'post',
title: '卡券列表',
cols: [[
{field: 'id', title: '商家卡券编号',hide:true, fixed: true},
{field: 'sid', title: '商家编号', fixed: true},
{field: 'sellername', title: '商家名称'},
{field: 'card_title', title: '卡券名称'},
{field: 'price', align: 'center',title: '金额'},
{field: 'contributor_time', align: 'center', title: '投放日期'},
{field: 'contributor', align: 'center', title: '投放人'},
{field: 'status_msg', align: 'center',title: '状态'},
{align: 'center', width:200,title: '操作', toolbar: '#action'}
]]
,id: 'cardReload'
,page: true
});
//监听行双击事件
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("carddetail")}?id='+obj.data.id //iframe的url
/*success:function(dom){
let $iframeDom=$(dom[0]).find("iframe").eq(0).contents();
$iframeDom.find("#test").html("我是从父级传来的值哟……")
}*/
});
});
//搜索
$('#search').on('click', function() {
//关键字
var key = $('#key').val();
var channel = $('#channel').val();
//传参
tableIn.reload({ page: {page: 1},where: {key: key,channel: channel}});
});
var $ = layui.$, active = {
reload: function(){
var channel = $('#channel');
var key = $('#key');
//执行重载
table.reload('cardReload', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: {
key: {
id: key.val(),
channel: channel.val()
}
}
});
}
};
//停止投放、投放
table.on('tool(list)', function(obj){
var data = obj.data;
//停止投放
if(obj.event === 'stop'){
layer.confirm('确认要停止发放这个红包吗? 停止后,用户将不能在领取这个红包,已经领取的可以在有效期内继续消费。', function(index){
$.post("{:url('cardstop')}",{id:data.id},function(res){
if(res.code==1){
layer.msg(res.msg,{time:1000,icon:1});
location.reload();
}else{
layer.msg(res.msg,{time:1000,icon:2});
}
});
layer.close(index);
});
}
//投放
if(obj.event === 'putin'){
layer.open({
type: 2,
title: '投放卡券',
shadeClose: true,
shade: 0.8,
area: ['90%', '90%'],
content: '{:url("cardputin")}?id='+obj.data.id //iframe的url
/*success:function(dom){
let $iframeDom=$(dom[0]).find("iframe").eq(0).contents();
$iframeDom.find("#test").html("我是从父级传来的值哟……")
}*/
});
}
});
})
</script>
\ No newline at end of file
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit">
<title>{:$title}</title>
<blockquote class="layui-elem-quote">
<h1> {:$title} </h1>
</blockquote>
<form class="layui-form layui-form-pane" action="">
<input type="hidden" name="cid" value="{$rs.id}">
<div class="layui-form-item">
<label class="layui-form-label">商家名称</label>
<div class="layui-input-block">
<input type="text" name="title" disabled="disabled" class="layui-input" value="{$rs.sellername}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">卡券名称</label>
<div class="layui-input-inline">
<input type="text" name="username" disabled="disabled" class="layui-input" value="{$rs.card_title}">
</div>
</div>
<hr/>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">领取期限</label>
<div class="layui-input-inline" style="width: 300px;">
<input type="text" name="date" id="date" lay-verify="required" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">该期间内可以领取</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">总数限制</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="checkbox" name="total_limit" title="是否限制" lay-filter="total_limit" lay-skin="primary">
</div>
<ii id="li_total" style="display:none">
<div class="layui-form-mid layui-word-aux">红包总数达到</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="total" id="total" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">个时,停止发放</div>
</ii>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">领取条件</label>
<div class="layui-input-block">
<input type="radio" name="receive_condition" lay-filter="receive_condition" value="1" title="打开店铺页面时,如果顾客没有该卡券,自动发放" checked=""><br>
<input type="radio" name="receive_condition" lay-filter="receive_condition" value="2" title="完成订单支付后,支付订单金额达到:">
<input type="text" name="order_price" id="order_price" style="width: 100px;" class="layui-input">元时,自动发放
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">核销方式</label>
<div class="layui-input-inline" style="width: 500px;">
<div class="layui-form-mid layui-word-aux">用户在支付订单时,选择使用该卡券支付后,自动核销</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn" lay-submit="" lay-filter="submit_add_card">确认投放</button>
<button type="reset" class="layui-btn layui-btn-primary">重新填写</button>
</div>
</div>
</form>
</div>
{include file="common/foot"/}
<script>
layui.use(['table','form','element','laydate'], function() {
var table = layui.table,laydate = layui.laydate,form = layui.form,$ = layui.jquery,layer = layui.layer,element = layui.element;
//更新该卡券信息
form.on('submit(submit_add_card)', function (data) {
var loading = layer.load(1, {shade: [0.1, '#fff']});
$.post("{:url('cardputin')}", data.field, function (res) {
layer.close(loading);
if (res.code == 1) {
layer.msg(res.msg, {time: 1000, icon: 1}, function () {
window.parent.location.reload();
});
} else {
layer.msg(res.msg, {time: 1000, icon: 2});
}
});
})
//复选框事件
form.on('checkbox(total_limit)', function (data) {
layer.tips((this.checked ? '限制总数' : '不限制总数'), data.othis);
if(this.checked){
$("#li_total").show();
$("#total").attr("lay-verify","required");
}else{
$("#li_total").hide();
$("#total").val('');
$("#total").attr("lay-verify","");
}
});
//单选按钮事件
form.on('radio(receive_condition)', function(data){
var msg = data.value==1 ? '自动领取' : "完成支付领取";
layer.tips((msg), data.othis);
if(data.value==1){
$("#order_price").val('');
$("#order_price").attr("lay-verify","");
}else{
$("#order_price").attr("lay-verify","required");
}
});
//日期时间范围
laydate.render({
elem: '#date'
,type: 'datetime'
,range: true
});
})
</script>
\ No newline at end of file
... ...
... ... @@ -4,16 +4,16 @@
<legend>{:$title}</legend>
</fieldset>
<blockquote class="layui-elem-quote">
<a href="{:url('Seller/sellerList')}" class="layui-btn layui-btn-lg layui-btn-danger">
<a href="{:url('card/sellercard')}" class="layui-btn layui-btn-lg layui-btn-danger">
<i class="fa fa-file-image-o"></i> 优惠券
</a>
<a href="{:url('Template/uploadFile')}" class="layui-btn layui-btn-lg">
<a href="{:url('card/cardput')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券投放
</a>
<a href="{:url('Template/Vegetable')}" class="layui-btn layui-btn-lg">
<a href="{:url('card/cardwriteoff')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券核销
</a>
<a href="{:url('Template/Vegetable')}" class="layui-btn layui-btn-lg">
<a href="{:url('card/carddata')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 数据统计
</a>
</blockquote>
... ...