Commit c3c23b898e640000e45f8f4ecf0bdbfd7be1bc45

Authored by teemitop
1 parent 5003c399

商家配置优化 增加缓存更新

@@ -252,7 +252,548 @@ class Seller extends Common @@ -252,7 +252,548 @@ class Seller extends Common
252 } 252 }
253 253
254 /** 254 /**
255 - * 商家菜系、类型配置 255 + * 商家信息配置
  256 + */
  257 + public function seller_configure(){
  258 + $data = Request::except('file');
  259 + if(Request::isAjax())
  260 + return $this->get_config_info($data['index'],$data['sid'],$data['code'],$data['data']);
  261 +
  262 + //查询商家配置
  263 + $seller_config_info = array(
  264 + //菜系
  265 + array(
  266 + 'index'=>1,
  267 + 'type'=>'checkbox',
  268 + 'flag'=>999,
  269 + 'name'=>'商家菜系'
  270 + ),
  271 + //来源
  272 + array(
  273 + 'index'=>2,
  274 + 'type'=>'checkbox',
  275 + 'flag'=>999,
  276 + 'name'=>'商家来源'
  277 + ),
  278 + //显示方式
  279 + array(
  280 + 'index'=>3,
  281 + 'type'=>'checkbox',
  282 + 'flag'=>999,
  283 + 'name'=>'地图显示方式'
  284 + ),
  285 + //筛选标签
  286 + array(
  287 + 'index'=>4,
  288 + 'type'=>'checkbox',
  289 + 'flag'=>999,
  290 + 'name'=>'列表筛选标签'
  291 + ),
  292 + //商家品牌
  293 + array(
  294 + 'index'=>5,
  295 + 'type'=>'checkbox',
  296 + 'flag'=>1,
  297 + 'name'=>'商家品牌'
  298 + ),
  299 + //餐厅环境
  300 + array(
  301 + 'index'=>6,
  302 + 'type'=>'checkbox',
  303 + 'flag'=>1,
  304 + 'name'=>'餐厅环境'
  305 + ),
  306 + //明星名人
  307 + array(
  308 + 'index'=>7,
  309 + 'type'=>'checkbox',
  310 + 'flag'=>1,
  311 + 'name'=>'明星名人'
  312 + ),
  313 + //特色服务
  314 + array(
  315 + 'index'=>8,
  316 + 'type'=>'checkbox',
  317 + 'flag'=>1,
  318 + 'name'=>'特色服务'
  319 + ),
  320 + //电话安装
  321 + array(
  322 + 'index'=>9,
  323 + 'type'=>'radio',
  324 + 'flag'=>1,
  325 + 'name'=>'电话安装'
  326 + ),
  327 + //在线预订
  328 + array(
  329 + 'index'=>10,
  330 + 'type'=>'radio',
  331 + 'flag'=>1,
  332 + 'name'=>'在线预订'
  333 + ),
  334 + //在线买单
  335 + array(
  336 + 'index'=>11,
  337 + 'type'=>'radio',
  338 + 'flag'=>1,
  339 + 'name'=>'在线买单'
  340 + ),
  341 + //提前点餐
  342 + array(
  343 + 'index'=>12,
  344 + 'type'=>'radio',
  345 + 'flag'=>1,
  346 + 'name'=>'提前点餐'
  347 + ),
  348 + //联系客户
  349 + array(
  350 + 'index'=>13,
  351 + 'type'=>'radio',
  352 + 'flag'=>1,
  353 + 'name'=>'联系客户'
  354 + ),
  355 + //接单方式
  356 + array(
  357 + 'index'=>14,
  358 + 'type'=>'radio',
  359 + 'flag'=>1,
  360 + 'name'=>'接单方式'
  361 + ),
  362 + //短信模板
  363 + array(
  364 + 'index'=>15,
  365 + 'type'=>'radio',
  366 + 'flag'=>1,
  367 + 'name'=>'短信模板'
  368 + ),
  369 + );
  370 + $this->assign ( 'seller_config_info',$seller_config_info);
  371 + $this->assign ( 'sellername',$data['sellername']);
  372 + $this->assign ( 'sid',$data['sid']);
  373 + $this->assign ( 'title','商家信息配置');
  374 + return $this->fetch();
  375 + }
  376 +
  377 + //公共部分---选中
  378 + public function for_info($index,$seller_data,$pub_config,$val,$flag){
  379 + $new_list['list'] = [];
  380 + $new_list['flag'] = $flag;
  381 + $new_list['index'] = [];
  382 + //如果是一维数组
  383 + if(count($seller_data) == count($seller_data, COUNT_RECURSIVE)){
  384 + if($index==4){
  385 + $pub_config[0]['checked'] = $seller_data['environmental'] ? $seller_data['environmental'] : '';
  386 + $pub_config[1]['checked'] = $seller_data['characteristic'] ? $seller_data['characteristic'] : '';
  387 + $pub_config[2]['checked'] = $seller_data['bigroom'] ? $seller_data['bigroom'] : '';
  388 + }
  389 + }else{
  390 + //组装数据
  391 + foreach ($seller_data as $key => $value) {
  392 + foreach ($pub_config as $k => $v) {
  393 + if($value[$val]==$v['id']){
  394 + $pub_config[$k]['checked'] = 1;
  395 + }
  396 + }
  397 + }
  398 + }
  399 + $new_list['list'] = $pub_config;
  400 + $new_list['index'] = $index;
  401 + $new_list['seller_data'] = $seller_data;
  402 + return $new_list;
  403 + }
  404 +
  405 + //获取对应的数据
  406 + public function get_config_info($index,$sid,$code,$data){
  407 + switch ($index) {
  408 + case '1':
  409 + if($data){
  410 + //修改菜系&并重置缓存
  411 + $data = implode(',', $data);
  412 + $res_cuisine= file_get_contents(ON_LINE.'App.Seller.SetSellerCuisine&sellerid='.$sid.'&cid='.$data);
  413 + if($res_cuisine){
  414 + //刷新缓存
  415 + file_get_contents(ON_LINE.'App.System.SellerConfigCate&sid='.$sid.'&ac=4');
  416 + }
  417 + }
  418 + //获取所有菜系
  419 + $list= file_get_contents(ON_LINE.'App.Reserve.GetCustomerConfig');
  420 + $array = json_decode($list,TRUE);
  421 + //获取商家已有菜系
  422 + $cuisine_list= file_get_contents(ON_LINE.'App.Seller.getSellerCuisine&sellerid='.$sid);
  423 + $cuisine_list = json_decode($cuisine_list,TRUE);
  424 + $result = $this->for_info($index,$cuisine_list['data'],$array['data']['cate'],'cid','cate');
  425 + break;
  426 + case '2':
  427 + if($data){
  428 + //修改商家合作类型&并重置缓存
  429 + $data = implode(',', $data);
  430 + $res_type= file_get_contents(ON_LINE.'App.Seller.SetSellerType&sellerid='.$sid.'&typeid='.$data);
  431 + if($res_type){
  432 + //刷新缓存
  433 + file_get_contents(ON_LINE.'App.System.SellerConfigType&sid='.$sid.'&ac=4');
  434 + }
  435 + }
  436 + //获取商家已有来源
  437 + $type_list= file_get_contents(ON_LINE.'App.Seller.GetSellerType&sellerid='.$sid);
  438 + $type_list = json_decode($type_list,TRUE);
  439 + //获取来源
  440 + $channel = array(array('id'=>1,'name'=>'合作'),array('id'=>2,'name'=>'推广'),array('id'=>3,'name'=>'测试'));
  441 + $result = $this->for_info($index,$type_list['data'],$channel,'type_id','type_id');
  442 + break;
  443 + case '3':
  444 + if($data){
  445 + //修改商家地图显示方式&并重置缓存
  446 + $data = implode(',', $data);
  447 + $res_mode= file_get_contents(ON_LINE.'App.Seller.setSellerMode&sellerid='.$sid.'&modeid='.$data);
  448 + if($res_mode){
  449 + //刷新缓存
  450 + file_get_contents(ON_LINE.'App.System.SellerConfigMode&sid='.$sid.'&ac=4');
  451 + }
  452 + }
  453 + //获取商家已有地图显示方式
  454 + $mode_list= file_get_contents(ON_LINE.'App.Seller.getSellerMode&sellerid='.$sid);
  455 + $mode_list = json_decode($mode_list,TRUE);
  456 + //获取所有地图显示方式
  457 + $mode= array(array('id'=>1,'name'=>'地图上大图标'),array('id'=>2,'name'=>'地图上文字'));
  458 + $result = $this->for_info($index,$mode_list['data'],$mode,'sm_id','ditu');
  459 + break;
  460 + case '4':
  461 + if($data){
  462 + //商家C端显示方式(列表筛选条件)&并重置缓存
  463 + $data = implode(',', $data);
  464 + $res_label= file_get_contents(ON_LINE.'App.Seller.setSellerLabel&sid='.$sid.'&field='.$data);
  465 + if($res_label){
  466 + //刷新缓存
  467 + file_get_contents(ON_LINE.'App.System.SellerConfigLabel&sid='.$sid.'&ac=4');
  468 + }
  469 + }
  470 +
  471 + //列表筛选标签
  472 + $label_list= file_get_contents(ON_LINE.'App.Seller.GetSellerLabel&sid='.$sid);
  473 + $label_list = json_decode($label_list,TRUE);
  474 + //获取商家拥有哪些标签
  475 + $label= array(array('id'=>'environmental','name'=>'环境超好'),array('id'=>'characteristic','name'=>'菜品有特色'),array('id'=>'bigroom','name'=>'超大包间'));
  476 + $result = $this->for_info($index,$label_list['data'],$label,'','biaoqian');
  477 + break;
  478 + case '5':
  479 + if($data){
  480 + $del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_brand_rel WHERE sid =".$sid);
  481 + $add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_brand_rel VALUES(".$sid.",".$data[0].")");
  482 + if(empty($add)){
  483 + //刷新缓存
  484 + file_get_contents(ON_LINE.'App.System.SellerConfigBrand&sid='.$sid.'&ac=4');
  485 + }
  486 + }
  487 + //商家品牌
  488 + $brand=Db::table("xt-member-two-LINE.xt_dc_dz_seller_brand")->select();
  489 + $brand_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_brand_rel")->where(array('sid'=>$sid))->select();
  490 + $result = $this->for_info($index,$brand_rel,$brand,'bid','pinpai');
  491 + break;
  492 + case '6':
  493 + //餐厅环境变更
  494 + if($data){
  495 + $del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$sid." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 1)");
  496 + $add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$sid.",".$data[0].")");
  497 + }
  498 + $label_c=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c")->where('pid=1')->select();
  499 + $label_c_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c_rel")->where(array('sid'=>$sid))->select();
  500 + $result = $this->for_info($index,$label_c_rel,$label_c,'lcid','huanjing');
  501 + break;
  502 + case '7':
  503 + //名人明星变更
  504 + if($data){
  505 + $del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$sid." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 2)");
  506 + $add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$sid.",".$data[0].")");
  507 + }
  508 + $label_c=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c")->where('pid=2')->select();
  509 + $label_c_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c_rel")->where(array('sid'=>$sid))->select();
  510 + $result = $this->for_info($index,$label_c_rel,$label_c,'lcid','mingren');
  511 + break;
  512 + case '8':
  513 + //特色服务变更
  514 + if($data){
  515 + $del=Db::query("DELETE FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel WHERE sid = ".$sid." AND lcid in (SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_seller_label_c WHERE pid = 3)");
  516 + $add=Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_seller_label_c_rel VALUES(".$sid.",".$data[0].")");
  517 + }
  518 + $label_c=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c")->where('pid=3')->select();
  519 + $label_c_rel=Db::table("xt-member-two-LINE.xt_dc_dz_seller_label_c_rel")->where(array('sid'=>$sid))->select();
  520 + $result = $this->for_info($index,$label_c_rel,$label_c,'lcid','fuwu');
  521 + break;
  522 + case '9':
  523 + //电话安装变更 已安装&未安装
  524 + if($data==='0' || $data==='1'){
  525 + $new_int = intval($data); //字符串强制转整型
  526 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set is_tele = ".$new_int." where id = ".$sid);
  527 + }
  528 + $is_tele=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$sid))->field('is_tele')->select();
  529 + $radi= array(array('id'=>1,'name'=>'已安装'),array('id'=>0,'name'=>'未安装'));
  530 + $result = $this->for_info($index,$is_tele,$radi,'is_tele','is_tele');
  531 + break;
  532 + case '10':
  533 + //在线预订开启关闭变更
  534 + if($data==='0' || $data==='1'){
  535 + $new_int = intval($data); //字符串强制转整型
  536 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set is_online_reserve = ".$new_int." where id = ".$sid);
  537 + }
  538 + $is_online_reserve=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$sid))->field('is_online_reserve')->select();
  539 + $radi= array(array('id'=>1,'name'=>'开启'),array('id'=>0,'name'=>'关闭'));
  540 + $result = $this->for_info($index,$is_online_reserve,$radi,'is_online_reserve','is_online_reserve');
  541 + break;
  542 + case '11':
  543 + //在线买单开启关闭变更
  544 + if($data==='0' || $data==='1'){
  545 + $new_int = intval($data); //字符串强制转整型
  546 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set isopen_md = ".$new_int." where id = ".$sid);
  547 + }
  548 + $isopen_md=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$sid))->field('isopen_md')->select();
  549 + $radi= array(array('id'=>1,'name'=>'开启'),array('id'=>0,'name'=>'关闭'));
  550 + $result = $this->for_info($index,$isopen_md,$radi,'isopen_md','isopen_md');
  551 + break;
  552 + case '12':
  553 + //提前点餐开启关闭变更
  554 + if($data==='0' || $data==='1'){
  555 + $new_int = intval($data); //字符串强制转整型
  556 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_open_order = ".$new_int." where sid = ".$sid);
  557 + }
  558 + $seller_config_res = Db::query('SELECT is_open_order from `xt-member-two-LINE`.xt_dc_dz_seller_config where sid ='.$sid.' GROUP by sid');
  559 + $radi= array(array('id'=>1,'name'=>'开启'),array('id'=>0,'name'=>'关闭'));
  560 + $result = $this->for_info($index,$seller_config_res,$radi,'is_open_order','is_open_order');
  561 + break;
  562 + case '13':
  563 + //联系客户操作变更
  564 + if($data==='0' || $data==='1'){
  565 + $new_int = intval($data); //字符串强制转整型
  566 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_seller set is_call_tel = ".$new_int." where id = ".$sid);
  567 + }
  568 + $is_call_tel=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$sid))->field('is_call_tel')->select();
  569 + $radi= array(array('id'=>1,'name'=>'安排包间后可联系客户'),array('id'=>0,'name'=>'默认无限制(可联系用户)'));
  570 + $is_call_tel[0]['is_call_tel'] = $is_call_tel[0]['is_call_tel'] == 1 ? 0 : 1; //数据库标识相反,为了兼容公共代码。
  571 + $result = $this->for_info($index,$is_call_tel,$radi,'is_call_tel','is_call_tel');
  572 + break;
  573 + case '14':
  574 + //接单方式操作变更
  575 + if($data) {
  576 + //如果是数组则需要对单选钮下面的复选框进行变更
  577 + if(is_array($data)){
  578 + $new_int = intval($data[0]); //第一个元素为单选按钮的值
  579 + //需要修改 接单设备信息
  580 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_call = ".$data[1]." where sid = ".$sid);
  581 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set is_checked_lite = ".$data[2]." where sid = ".$sid);
  582 + }else{
  583 + $new_int = intval($data); //第二个单选按钮
  584 + }
  585 + $up=Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_seller_config set reserve_mode = ".$new_int." where sid = ".$sid);
  586 + }
  587 +
  588 + $radi= array(array('id'=>1,'name'=>'商家接单'),array('id'=>2,'name'=>'运营接单(公众号+小程序+语音电话)语音电话仅在早上9:00-晚上8:00拨打'));
  589 + $is_online_reserve=Db::table("xt-member-two-LINE.xt_seller")->where(array('id'=>$sid))->field('is_online_reserve')->select();
  590 + //如果没有开启在线预订就不能选择接单方式
  591 + if($is_online_reserve[0]['is_online_reserve']!=1){
  592 + $result = $this->for_info($index,array(),array(),'','');
  593 + break;
  594 + }
  595 + $seller_user_openid_array = array();
  596 + //获取小程序是否可选择
  597 + $seller_user_openid_array = Db::query('SELECT
  598 + a.openid,
  599 + u.nick_name,
  600 + u.phone
  601 + FROM
  602 + `xt-member-two-LINE`.xt_dc_seller_user AS u
  603 + LEFT JOIN `xt-member-two-LINE`.xt_auth_user AS a ON u.auth_user_id = a.id
  604 + WHERE
  605 + u.is_on_call = 1
  606 + AND u.sellerid = '.$sid);
  607 + $seller_user_openid = $seller_user_openid_array ? $seller_user_openid_array[0]['openid'] : '';
  608 +
  609 + if($seller_user_openid_array[0]['phone']==NULL || $seller_user_openid_array[0]['phone'] ==''){
  610 + $seller_user_openid_array[0]['phone'] = '电话未填写';
  611 + $seller_user_openid_array[0]['phone_status'] = 1;
  612 + }
  613 + //检测是否关注公众号
  614 + if($seller_user_openid){
  615 + $seller_user_unionid = Db::query('SELECT
  616 + openid
  617 + FROM
  618 + `xt-member-two-LINE`.xt_wechat
  619 + WHERE
  620 + unionid = ( SELECT unionid FROM `xt-member-two-LINE`.xt_wechat WHERE openid = "'.$seller_user_openid.'" )
  621 + AND source = 0');
  622 + $seller_user_unionid = $seller_user_unionid ? $seller_user_unionid[0]['openid'] : '';
  623 + //未关注公众号则不能勾选小程序
  624 + if($seller_user_unionid==''){
  625 + $seller_user_openid_array[0]['is_openid_wechat'] = 0;
  626 + $seller_user_openid_array[0]['is_openid_wechat_str'] = '未关注公众号';
  627 + }else{
  628 + $seller_user_openid_array[0]['is_openid_wechat'] = 1;
  629 + $seller_user_openid_array[0]['is_openid_wechat_str'] = '已关注公众号';
  630 + }
  631 + }
  632 +
  633 + $seller_config_res = Db::query('SELECT * from `xt-member-two-LINE`.xt_dc_dz_seller_config where sid ='.$sid.' GROUP by sid');
  634 +
  635 + $seller_config_res[1] = @$seller_user_openid_array[0];
  636 + $result = $this->for_info($index,$seller_config_res,$radi,'reserve_mode','reserve_mode');
  637 + break;
  638 + case '15':
  639 + //变更短信模板
  640 + if($data){
  641 + //获取模板ID
  642 + $sms_id = Db::query('SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_sms_template WHERE template_code = "'.$data.'"');
  643 + $res_sms_code= file_get_contents(ON_LINE.'App.SendSMS.SetSellerSmsTemplate&sid='.$sid.'&sms_id='.$sms_id[0]['id']);
  644 + }
  645 + //如果存在code,则只获取模板内容
  646 + if($code){
  647 + $result['list'] = $this->get_sms_detail_seller($code);
  648 + }else{
  649 + //获取商家已选短信模板
  650 + $seller_config_res = Db::query('SELECT template_code FROM `xt-member-two-LINE`.xt_dc_dz_sms_template AS t LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_config AS c ON c.template_id = t.id WHERE sid = '.$sid);
  651 + //获取短信模板列表
  652 + $template_list = file_get_contents(ON_LINE.'App.SendSMS.GetSmsTemplate');
  653 + $template_list = json_decode($template_list,TRUE);
  654 + foreach ($template_list['data'] as $key => $value) {
  655 + $template_list['data'][$key]['id'] = $value['template_code'];
  656 + $template_list['data'][$key]['name'] = $value['template_code'];
  657 + }
  658 + $result = $this->for_info($index,$seller_config_res,$template_list['data'],'template_code','template_code');
  659 + }
  660 + break;
  661 + default:
  662 + # code...
  663 + break;
  664 + }
  665 + if(!empty($result['list'])) {
  666 + $res['code'] = 1;
  667 + $res['list'] = $result;
  668 + $res['msgs'] = 'SUCCESS';
  669 + }else{
  670 + $res['code'] = 0;
  671 + $res['list'] = array();
  672 + $res['msgs'] = '请联系管理员处理!';
  673 +
  674 + if($result['index']==14)
  675 + $res['msgs'] = '请先开启在线预订在进行本操作!';
  676 + }
  677 + return $res;
  678 + }
  679 +
  680 + //获取短信模板内容
  681 + public function get_sms_detail_seller($code){
  682 + //根据code获取模板内容
  683 + $template_content = Db::query('SELECT * FROM `xt-member-two-LINE`.xt_dc_dz_sms_template WHERE template_code = "'.$code.'"');
  684 + //组装数据
  685 + switch ($code) {
  686 + case 'SMS_163050401':
  687 + $vowels = array(
  688 + '周到安排演示店' => '${seller_name}',
  689 + '11月25日晚上18:00' => '${date}',
  690 + '金台夕照、卢沟晓月' =>'${region_room_name}',
  691 + '西电路447号南湖金地西门南100米' =>'${seller_addr}',
  692 + '18792581193' =>'${seller_phone}',
  693 + '毛毛' =>'${cusman}',
  694 + );
  695 + break;
  696 + case 'SMS_162733710':
  697 + $vowels = array(
  698 + '4月6日中午' => '${reserve_date}',
  699 + '周到1店西电路447号金台夕照' => '${seller_name_addr_room}',
  700 + '毛毛' =>'${cusman}',
  701 + );
  702 + break;
  703 + case 'SMS_154587043':
  704 + $vowels = array(
  705 + '侯先生' => '${guest}',
  706 + '周到安排演示店' => '${seller_name}',
  707 + '11月25日晚上18:00' =>'${date}',
  708 + '包间(金台夕照)' =>'${region_room_name}',
  709 + '西电路447号南湖金地西门南100米' =>'${seller_addr}',
  710 + '18792581193' =>'${seller_phone}\n',
  711 + '毛毛' =>'${cusman}',
  712 + );
  713 + break;
  714 + case 'SMS_164277855':
  715 + $vowels = array(
  716 + '周到1店西电路447号' => '${seller_name}',
  717 + '11月7日晚上18:30' => '${date}',
  718 + '包间(金台夕照)' =>'${region_room_name}',
  719 + '1879258119' =>'${seller_phone}',
  720 + );
  721 + break;
  722 + case 'SMS_164268239':
  723 + $vowels = array(
  724 + '周到安排演示店' => '${seller_name}',
  725 + '11月7日晚上18:30' => '${date}',
  726 + '包间(金台夕照)' =>'${region_room_name}',
  727 + '西电路447号南湖金地西门南100米' =>'${seller_addr}',
  728 + '1879258119' =>'${seller_phone}',
  729 + );
  730 + break;
  731 + case 'SMS_181200398':
  732 + $vowels = array(
  733 + '周到安排演示店' => '${sellershortname}',
  734 + '11月7日' => '${date}',
  735 + '晚上' =>'${mealtime}',
  736 + '1F' =>'${regionname}',
  737 + '<<金台夕照>>' =>'${roomname}',
  738 + '西电路447号南湖金地西门南100米' =>'${selleraddr}',
  739 + '1879258119' =>'${sellerphone}',
  740 + );
  741 + break;
  742 + case 'SMS_181210420':
  743 + $vowels = array(
  744 + '周到安排演示店' => '${salename}',
  745 + '11月7日晚上' => '${date_solt}',
  746 + '三楼4号院' =>'${regonname}',
  747 + '【金台夕照】' =>'${roomname}',
  748 + '西电路447号南湖金地西门南100米' =>'${selleraddr}',
  749 + '出门左转' =>'${sellertips}',
  750 + '毛毛' =>'${managername}',
  751 + '1879258119' =>'${managerphone}',
  752 + );
  753 + break;
  754 + case 'SMS_190265967':
  755 + $vowels = array(
  756 + '周到安排演示店' => '${salename}',
  757 + '1F【雅间二】' => '${zoneandtablename}',
  758 + '11月7日' => '${yddate}',
  759 + '早上' => '${ydinfo}',
  760 + '11月7日 ' => '${ydtime}',
  761 + '西电路447号南湖金地西门南100米' => '${selleraddr}',
  762 + '毛毛' => '${managername}',
  763 + '1879258119' => '${managerphone}',
  764 + );
  765 + break;
  766 + case 'SMS_191801187':
  767 + $vowels = array(
  768 + '侯先生' => '${guest}',
  769 + '周到安排演示店' => '${seller_name}',
  770 + '11月7日' => '${date}',
  771 + '1F(雅间二)' => '${region_room_name}',
  772 + '西电路447号南湖金地西门南100米' => '${seller_addr}',
  773 + '1879258119' => '${seller_phone}'
  774 + );
  775 + break;
  776 + case 'SMS_191767746':
  777 + $vowels = array(
  778 + '侯先生' => '${guest}',
  779 + '周到安排演示店' => '${seller_name}',
  780 + '11月7日' => '${date}',
  781 + '早上' => '${ydcdinfo}',
  782 + '1F(雅间二)' => '${region_room_name}',
  783 + '西电路447号南湖金地西门南100米' => '${seller_addr}',
  784 + '1879258119' => '${seller_phone}'
  785 + );
  786 + break;
  787 + default:
  788 + # code...
  789 + break;
  790 + }
  791 + $template_content[0]['content'] = str_replace($vowels, array_keys($vowels),$template_content[0]['content']);
  792 + return $template_content[0];
  793 + }
  794 +
  795 + /**
  796 + * 商家菜系、类型等配置查看
256 */ 797 */
257 public function sellerconfig(){ 798 public function sellerconfig(){
258 $data = Request::except('file'); 799 $data = Request::except('file');
  1 +{include file="common/head"/}
  2 +<div class="admin-main layui-anim">
  3 +<div class="layui-form">
  4 + <!-- 按钮循环 -->
  5 + <div class="layui-btn-container" id="btns_group">
  6 + {foreach $seller_config_info as $vo}
  7 + <button type="button" class="layui-btn layui-btn-primary" id="idx_{$vo.index}" data-index={$vo.index}>{$vo.name}</button>
  8 + {/foreach}
  9 + </div>
  10 +
  11 + <!-- 元素循环 -->
  12 + <div id="list">
  13 + </div>
  14 +
  15 + <div style="margin-top:0.5cm;">
  16 + <input type="hidden" value="{$sid}" id="sid">
  17 + <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button>
  18 + </div>
  19 +</div>
  20 +</div>
  21 +{include file="common/foot"/}
  22 +<script src="/static/common/js/jquery.2.1.1.min.js"></script>
  23 +<script>
  24 + layui.use(['table','form','laydate'], function () {
  25 + var form = layui.form, $ = layui.jquery,table = layui.table,laydate = layui.laydate;
  26 + //当前数据提交&更新缓存
  27 + form.on('submit(submit)', function (data) {
  28 + //检测校验对象
  29 + var types = $('#list').find('input').attr('type');
  30 + var len = $(".device_check:checked").length;
  31 + //复选框校验。
  32 + if(len==0 && types=='checkbox'){
  33 + layer.msg('请至少勾选一项进行修改!',{icon:3});
  34 + return false;
  35 + }
  36 + //将页面全部复选框选中的值或者单选按钮选中的值拼接到一个数组中
  37 + if(types=='checkbox'){
  38 + var val_box = [];
  39 + $('input[type=checkbox]:checked').each(function() {
  40 + val_box.push($(this).val());
  41 + });
  42 + }else{
  43 + var val_box = $('input[type=radio]:checked').val();
  44 + }
  45 + //对应的按钮以及商家ID
  46 + var i = $('#list').find('input').attr('data-index');sid = $("#sid").val();
  47 + //如果i=14 则需要获取单选钮下面得复选框的值
  48 + if(i==14 && val_box==1){
  49 + var new_box = [];
  50 + new_box[0] = val_box; //单选按钮的值
  51 + new_box[1] = $("input:checkbox[name='is_checked_call']:checked").length; //第一个复选框是否选中
  52 + new_box[2] = $("input:checkbox[name='is_checked_lite']:checked").length; //第二个复选框是否选中
  53 + }
  54 + var new_val_box = new_box ? new_box : val_box;
  55 + //等待加载图标
  56 + var loading = layer.load(1, {shade: [0.1, '#fff']});
  57 + //请求变更
  58 + $.ajax({
  59 + url: "{:url('seller_configure')}",
  60 + type: 'post',
  61 + cache: false,
  62 + data:{index:i,sid:sid,code:'',data:new_val_box},
  63 + success: function (res) {
  64 + layer.close(loading);
  65 + if (res.code==1) {
  66 + layer.msg(res.msgs,{icon:1});
  67 + }else{
  68 + layer.msg(res.msgs,{icon:5});
  69 + $('#list').html('');
  70 + }
  71 + form.render();
  72 + },
  73 + error: function (result) {
  74 + layer.close(loading);
  75 + }
  76 + });
  77 + })
  78 +
  79 + //页面加载完成,同时请求服务端,获取默认展示数据
  80 + layer.ready(function(){
  81 + var i = 1,sid = $("#sid").val();
  82 + $.ajax({
  83 + url: "{:url('seller_configure')}",
  84 + type: 'post',
  85 + cache: false,
  86 + data:{index:i,sid:sid,code:'',data:''},
  87 + success: function (res) {
  88 + if (res.code==1) {
  89 + pub_code_box(res.list.list,i,res.list.flag);
  90 + }else{
  91 + $('#list').html('');
  92 + }
  93 + //将对应得按钮状态设置为选中得颜色
  94 + $("#idx_"+res.list.index).attr('class','layui-btn layui-btn-normal');
  95 + form.render();
  96 + },
  97 + error: function (result) {
  98 + }
  99 + });
  100 + });
  101 +
  102 + //部分复选框只能选一个
  103 + $('#list').on('click', $('input[name]'), function(event) {
  104 + var i = $(this).find('input').attr('data-index');
  105 + var flag = $(this).find('input').attr('name');
  106 + //单选按钮显示隐藏
  107 + if(i==14){
  108 + var id = $(this).find('input:checked').attr('id');
  109 + if(id==1){
  110 + $("#device_call_lite").show();
  111 + }else{
  112 + $("#device_call_lite").hide();
  113 + }
  114 + }
  115 + //根据对应得模板id获取模板内容sms信息
  116 + if(i==15){
  117 + //模板CODE
  118 + var code = $(this).find('input:checked').attr('id');
  119 + var sid = $("#sid").val();
  120 + if(code){
  121 + $.ajax({
  122 + url: "{:url('seller_configure')}",
  123 + type: 'post',
  124 + cache: false,
  125 + data:{index:i,sid:sid,code:code,data:''},
  126 + success: function (res) {
  127 + if (res.code==1) {
  128 + $("#txt").html(res.list.list.content);
  129 + $("#txt").show();
  130 + }else{
  131 + layer.msg(res.msgs,{icon:5});
  132 + return false;
  133 + }
  134 + form.render();
  135 + },
  136 + error: function (result) {
  137 + }
  138 + });
  139 + }
  140 + }
  141 + //部分复选框只能选择一项提醒
  142 + if(i==5 || i==6 || i==7 || i==8){
  143 + var len=$("input[name="+flag+"]:checked").length;
  144 + if(len>1){
  145 + $(this).find('input').next('div').attr("class","layui-unselect layui-form-checkbox");
  146 + $(this).find('input').prop("checked",false);
  147 + layer.msg('最多只能选1项!',{icon:5});
  148 + return false;
  149 + }
  150 + }
  151 + });
  152 +
  153 +
  154 + //点击按钮请求对应的数据
  155 + $('#btns_group').on('click', 'button', function(event) {
  156 + var i = $(this).attr('data-index');
  157 + var sid = $("#sid").val();
  158 +
  159 + $.ajax({
  160 + url: "{:url('seller_configure')}",
  161 + type: 'post',
  162 + cache: false,
  163 + data:{index:i,sid:sid,code:'',data:''},
  164 + success: function (res) {
  165 + if (res.code==1) {
  166 + //每次请求成功将所有按钮重置
  167 + $("#btns_group").find('button').attr('class','layui-btn layui-btn-primary');
  168 + //清空元素
  169 + $('#list').html('');
  170 + switch (res.list.index) {
  171 + case "1":
  172 + case "2":
  173 + case "3":
  174 + case "4":
  175 + case "5":
  176 + case "6":
  177 + case "7":
  178 + case "8":
  179 + //复选框
  180 + pub_code_box(res.list.list,i,res.list.flag);
  181 + break;
  182 + case "9":
  183 + case "10":
  184 + case "11":
  185 + case "12":
  186 + case "13":
  187 + case "14":
  188 + case "15":
  189 + //单选
  190 + pub_code_sin(res.list.list,i,res.list.seller_data);
  191 + break;
  192 + default:
  193 + break;
  194 + }
  195 + }else{
  196 + $('#list').html('');
  197 + layer.msg(res.msgs,{icon:5});
  198 + return false;
  199 + }
  200 + //将对应得按钮状态设置为选中得颜色
  201 + $("#idx_"+res.list.index).attr('class','layui-btn layui-btn-normal');
  202 + form.render();
  203 + },
  204 + error: function (result) {
  205 + }
  206 + });
  207 + })
  208 + });
  209 +//复选框
  210 +function pub_code_box(list,index,flag){
  211 + var html = '';
  212 + //遍历复选框
  213 + $.each(list, function (i, item) {
  214 + var checked = item.checked ? 'checked' : '';
  215 + html += "<input type='checkbox' "+checked+" name="+flag+" data-index="+index+" value="+item.id+" class='device_check' id="+item.id+" lay-skin='primary' title="+item.name+" >";
  216 + //$("#list").append("<input type='checkbox' "+checked+" id="+item.id+" name=cate"+item.id+" lay-skin='primary' title="+item.name+" >");
  217 +
  218 + });
  219 + $("#list").html(html);
  220 +}
  221 +
  222 +//单选按钮
  223 +function pub_code_sin(list,index,seller_data){
  224 + var html = '';
  225 + //遍历单选按钮
  226 + $.each(list, function (i, item) {
  227 + var checked = item.checked ? 'checked' : '';
  228 + html += "<input type='radio' "+checked+" id="+item.id+" data-index="+index+" value="+item.id+" name='radix' lay-skin='primary' title="+item.name+" >";
  229 + });
  230 + //展示单选按钮下面得复选框格式
  231 + if(index==14 && seller_data[0]['reserve_mode']==1){
  232 + //是否选中
  233 + var is_checked_call = seller_data[0]['is_checked_call']==1 ? 'checked' : '';
  234 + html +="<div id='device_call_lite'>";
  235 + html += "<input type='checkbox' class='device_check' "+is_checked_call+" lay-filter='device_check' value=1 name='is_checked_call' lay-skin='primary' title='电话机'>";
  236 + //是否选中
  237 + var is_checked_lite = seller_data[0]['is_checked_lite']==1 ? 'checked' : '';
  238 + //是否可点击
  239 + var disableds = (seller_data[1]['is_openid_wechat']!=1 || seller_data[1]['phone_status']==1) ? "disabled" : '';
  240 + //名称显示格式
  241 + var title = seller_data[1]!='' ? '公众号+小程序+APP+语音电话('+seller_data[1]['nick_name']+'+'+seller_data[1]['phone']+'+'+seller_data[1]['is_openid_wechat_str']+')' : '公众号+小程序+语音电话';
  242 + //字符串组装
  243 + html += "<input type='checkbox' class='device_check' "+is_checked_lite+" "+disableds+" title="+title+" value=2 lay-filter='device_check' name='is_checked_lite' lay-skin='primary'>";
  244 + html += "</div>";
  245 + }
  246 + //展示短讯预览框
  247 + if(index==15){
  248 + html += "<textarea style='display:none' placeholder='短信内容预览' name='content' id='txt' class='layui-textarea' disabled></textarea>";
  249 + }
  250 + $("#list").html(html);
  251 +}
  252 +</script>
@@ -89,7 +89,8 @@ @@ -89,7 +89,8 @@
89 89
90 <script type="text/html" id="action"> 90 <script type="text/html" id="action">
91 <a class="layui-btn {{ 0==d.status?'':'layui-btn-danger'}} layui-btn-xs" lay-event="stop">{{ 0==d.status?'启用':'停用'}}</a> 91 <a class="layui-btn {{ 0==d.status?'':'layui-btn-danger'}} layui-btn-xs" lay-event="stop">{{ 0==d.status?'启用':'停用'}}</a>
92 - <a href="{:url('Seller/sellerconfig')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">配置</a> 92 + <a href="javascript:;" id='config' class="layui-btn layui-btn-xs" lay-event="detail">配置</a>
  93 + <a href="{:url('Seller/sellerconfig')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">查看配置</a>
93 <!--<a href="{:url('Template/configMer')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">配置菜品</a>--> 94 <!--<a href="{:url('Template/configMer')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">配置菜品</a>-->
94 <a href="{:url('Basicinfo/smsRecharge')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">短信充值</a> 95 <a href="{:url('Basicinfo/smsRecharge')}?id={{d.id}}&name={{d.sellername}}" class="layui-btn layui-btn-xs">短信充值</a>
95 </script> 96 </script>
@@ -128,7 +129,7 @@ @@ -128,7 +129,7 @@
128 {field: 'is_auth', align: 'center', edit: 'text', sort: true,title: '订座读写权限'}, 129 {field: 'is_auth', align: 'center', edit: 'text', sort: true,title: '订座读写权限'},
129 {field: 'user_name', align: 'center',title: '创建人'}, 130 {field: 'user_name', align: 'center',title: '创建人'},
130 //{field: 'dz_version', align: 'center',title: 'APP版本'}, 131 //{field: 'dz_version', align: 'center',title: 'APP版本'},
131 - {align: 'center', width:200,title: '操作', toolbar: '#action'} 132 + {align: 'center', width:250,title: '操作', toolbar: '#action'}
132 ]] 133 ]]
133 ,id: 'testReload' 134 ,id: 'testReload'
134 ,page: true 135 ,page: true
@@ -279,6 +280,24 @@ @@ -279,6 +280,24 @@
279 layer.close(index); 280 layer.close(index);
280 }); 281 });
281 } 282 }
  283 +
  284 + //配置弹窗
  285 + if(obj.event === 'detail'){
  286 + //layer.msg('ID:'+ data.id + ' 的查看操作');return;
  287 + //配置
  288 + layer.open({
  289 + type: 2,
  290 + title: data.sellername+'基本信息配置',
  291 + shadeClose: true,
  292 + shade: 0.8,
  293 + area: ['40%', '60%'],
  294 + content: '{:url("seller_configure")}?sid='+data.id+'&sellername='+data.sellername //iframe的url
  295 + /*success:function(dom){
  296 + let $iframeDom=$(dom[0]).find("iframe").eq(0).contents();
  297 + $iframeDom.find("#test").html("我是从父级传来的值哟……")
  298 + }*/
  299 + });
  300 + }
282 }); 301 });
283 }) 302 })
284 </script> 303 </script>
@@ -194,7 +194,7 @@ @@ -194,7 +194,7 @@
194 194
195 <div class="layui-form-item"> 195 <div class="layui-form-item">
196 <div class="layui-input-block"> 196 <div class="layui-input-block">
197 - <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button> 197 + <!--<button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button>-->
198 <a href="{:url('sellerList')}" class="layui-btn layui-btn-primary">{:lang('back')}</a> 198 <a href="{:url('sellerList')}" class="layui-btn layui-btn-primary">{:lang('back')}</a>
199 </div> 199 </div>
200 </div> 200 </div>