request->isAjax()) { $get = $this->request->get(); $this->_success('获取成功', OrderautoLogic::lists($get)); } $type = \app\common\model\Ad::getAdTypeDesc(true); $this->assign('ordertypelist',OrderchanelLogic::infolist()); $admin=Db::name('admin')->select(); $this->assign('admin', $admin); $this->assign('type', $type); return $this->fetch(); } /** * 增加预排的订单 * @return mixed */ public function add(){ if ($this->request->isAjax()) { $post = $this->request->post(); $admin=$this->admin_id; $list= OrderautoLogic::add($post,$admin); if($list==3){ $this->_error('预排参数错误'); } $this->_success('增加预排订单成功',$list); } $get=$this->request->get('id'); $this->assign('ordertype', OrderchanelLogic::infolist()); $this->assign('satff',LeaveLogic::user($get)); $this->assign('order_sn', $get); return $this->fetch(); } public function userlist(){ if ($this->request->isAjax()){ $get = $this->request->get(); $goods_list = OrderautoLogic::getUserList($get,true); $this->_success('',$goods_list); } return $this->fetch(); } /** * 查看预排的订单 * @return mixed */ public function infolist(){ if ($this->request->isAjax()){ $get = $this->request->get(); $infolist=OrderautoLogic::infolist($get); $this->_success('',$infolist); } $get = $this->request->get(); $this->assign('info', OrderautoLogic::info($get['id'])); return $this->fetch(); } public function edit(){ $id= $this->request->get('id'); $info = OrderautoLogic::info($id); $this->assign('position_list', OrderautoLogic::infoPosition($info['pid'])); $this->assign('info',$info); $this->assign('ordertype', OrderchanelLogic::infolist()); $this->assign('satff',LeaveLogic::user()); return $this->fetch(); } /** * 修改排单的时间 * @return mixed */ public function eitdata(){ if ($this->request->isAjax()){ $id= $this->request->get('id'); $post= $this->request->post(); $date=Db::name('order_exe')->where('id',$id)->find(); //获取订单的信息 $custom=Db::name('order')->where('order_sn',$date['order_sn'])->find(); //获取客户的信息 if($date['addtime']==1){ $timesw="上午"; }else{ $timesw="下午"; } $currentTime = date('H'); if( $currentTime>17){ if($date['staff_id']!=0){ $staff=Db::name('staff')->where('id',$date['staff_id'])->find(); $openids=Db::name('user_auth')->where('user_id', $staff['user_id'])->find(); //获取用户的ID $timesd=date('Y-m-d',$date['autotime']); $timedd=date('Y-m-d',time()); $openid = $openids['openid']; if($post['privilege']==""){ $time= date('Y-m-d', strtotime($post['end_time'])); if($post['type']==1){ $sw="上午"; }else{ $sw="下午"; } $data = [ 'touser'=>$openid, 'url'=>'', 'template_id'=>'ZTmrioGnhIsZMeK7UElzRyTw-_743VslGvEP5TWopzc', //模板id 'data'=>[ 'character_string1'=>[ 'value'=>$custom['order_sn'] ], 'time3'=>[ 'value'=>$time ], 'thing5'=>[ 'value'=>$custom['address'] ], 'thing2'=>[ 'value'=>$sw ] ] ]; $config = WeChatServer::getOaConfig(); $app = Factory::officialAccount($config); $r = $app->template_message->send($data); } else{ //微信的自己通知 $data = [ 'touser'=>$openid, 'url'=>'', 'template_id'=>'k1dPNVhKOBTgSWe7Ha4BjZ96yUF11uSfOn0IwBkRx4c', //模板id 'data'=>[ 'thing11'=>[ 'value'=>$custom['consignee'].$timesw ], 'phone_number9'=>[ 'value'=>$custom['mobile'] ], 'thing19'=>[ 'value'=>$custom['address'] ], 'time18'=>[ 'value'=>$timesd ], 'time14'=>[ 'value'=>$timedd //'value'=> $time.$timesw ] ] ]; $config = WeChatServer::getOaConfig(); $app = Factory::officialAccount($config); $r = $app->template_message->send($data); //通知对方修改的的人 $user=Db::name('staff')->where('id',$post['privilege'])->find(); //修改的人员信息 $auth=Db::name('user_auth')->where('user_id', $user['user_id'])->find(); //获取用户的openid $goods=Db::name('goods')->where('id', $custom['goods_id'])->find(); if($post['type']=1){ $ties= '.8:00-12:00'; }else{ $ties= '.14:00-16:00'; } //$openid = $openids['openid']; $data = [ 'touser'=>$auth['openid'], 'url'=>'', 'template_id'=>'uTFzkTScwMfMJtqQNGTNbpRuItpJwliVtJtMoobfqBQ', //模板id 'data'=>[ 'keyword1'=>[ 'value'=>$custom['order_sn'] ], 'keyword2'=>[ 'value'=> $goods['name'] ], 'keyword3'=>[ 'value'=>$timesd. $ties ], 'keyword4'=>[ 'value'=>$custom['mobile'] ] ] ]; $config = WeChatServer::getOaConfig(); $app = Factory::officialAccount($config); $r = $app->template_message->send($data); } } $count=count(explode(',',$post['privilege'])); } $list=OrderautoLogic::eittime($id,$post); $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'修改保洁师', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $this->_success('修改预约时间成功',$list); } $id= $this->request->get('id'); $this->assign('info',OrderautoLogic::orderexeinfo($id)); $this->assign('satff',LeaveLogic::user()); return $this->fetch(); } /** * 更换保洁师 * @return mixed */ public function staff(){ if($this->request->isAjax()){ $id= $this->request->get('id'); $post= $this->request->post(); $list=OrderautoLogic::staff($id,$post); if($list==2){ $this->error('只能选择一个保洁师'); }else{ $this->_success('修改保洁师成功',$list); } } $id= $this->request->get('id'); $order=Db::name('order_exe')->where('id',$id)->find(); $order_sn=Db::name('order')->where('order_sn',$order['order_sn'])->find(); $orders=Db::name('order_exe')->where('addtime', $order['addtime'])->where('autotime','>=',$order['autotime'])->where('autotime','<',$order['autotime']+(24 * 3600))->whereNotNull('staff_id')->field('staff_id')->group('staff_id')->select(); //查询有订单的保洁师傅 $oneDimensionalArray = array_column($orders, 'staff_id'); // 根据自己的表格字段名修改'字段名'部分 $lent=Db::name('leave')->where('addtime',$order['addtime'])->where('time','>=',$order['autotime'])->where('time','<',$order['autotime']+(24 * 3600))->whereNotNull('user_id')->field('user_id')->group('user_id')->select(); $lentuser = array_column($lent,'user_id'); $staff=Db::name('staff') ->whereNotIn('id',$oneDimensionalArray) // $array为要比较的数组 ->whereNotIn('id',$lentuser) // $array为要比较的数组 ->where('onwork',1) ->select(); foreach($staff as $item=>$k){ $staff[$item]['june']=number_format(UserLogic::haversine_distance($order_sn['lng'],$order_sn['lat'], $staff[$item]['lng'],$staff[$item]['lat'])/1000,1); } $this->assign('satff',$staff); return $this->fetch(); } /** * 单次订单暂停服务 * @return mixed */ public function dels($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'订单暂停服务', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $list=DB::name('order_exe')->where('id',$id)->update(['status'=>3,'staff_id'=>null,'staff_status'=>0]); $this->_success('暂停订单成功'); } /** * 取消暂停服务 * @return mixed */ public function delsd($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'订单取消暂停', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $list=DB::name('order_exe')->where('id',$id)->update(['status'=>0]); $this->_success('取消暂停成功'); } /** * 主订单暂停服务 * @return mixed */ public function prent($id){ //增加订单的日志 $order=Db::name('order')->where('id',$id)->find(); $admin=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admin, 'order_sn'=>$order['order_sn'], 'show'=>'暂停主订单', 'cram_time'=>$time ]; $log=Db::name('log_order')->data($logdate)->insert(); $list=OrderautoLogic::prent($id); $this->_success('暂停订单成功'); } /** * 取消订单的暂停服务 * @return mixed */ public function prentsd($id){ //增加订单的日志 $order=Db::name('order')->where('id',$id)->find(); $admin=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admin, 'order_sn'=>$order['order_sn'], 'show'=>'取消暂停订单', 'cram_time'=>$time ]; $log=Db::name('log_order')->data($logdate)->insert(); $list=OrderautoLogic::prentsd($id); $this->_success('取消暂停成功'); } /** * 修改订单的备注 * @return mixed */ public function remarks(){ // 获取的 if ($this->request->isAjax() && $this->request->isGet()){ $get = $this->request->get(); $detail = OrderautoLogic::remarks($get, 'get'); $this->_success('获取成功', $detail); } // 提交的 if ($this->request->isAjax() && $this->request->isPost()) { $post = $this->request->post(); $result = OrderautoLogic::remarks($post, 'post'); if ($result) { $this->_success('保存成功'); } $this->error('保存失败'); } } /** * 删除子订单的排单 * @return mixed */ public function delss($id){ $del=Db::name('order_exe')->where('id',$id)->delete(); $this->_success('删除成功'); } /** * 修改订单已经完成状态 * @return mixed */ public function complete($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'修改订单已完成', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $del=Db::name('order_exe')->where('id',$id)->update(['status'=>1, 'staff_status'=>3]); $this->_success('订单已完成'); } /** *锁定订单 * @return mixed */ public function lock($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'锁定订单状态', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $del=Db::name('order_exe')->where('id',$id)->update(['lock'=>1]); $this->_success('订单锁定成功'); } /** *解锁订单 * @return mixed */ public function unlock($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'取消订单锁定', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $del=Db::name('order_exe')->where('id',$id)->update(['lock'=>0]); $this->_success('订单锁定成功'); } public function log(){ if($this->request->isAjax()){ $get= $this->request->get(); $lists=OrderautoLogic::log($get); $this->_success('获取数据成功',$lists); } $id= $this->request->get('id'); $this->assign('ids',$id); return $this->fetch(); } public function orderlog(){ if($this->request->isAjax()){ $get= $this->request->get(); $lists=OrderautoLogic::orderlog($get); $this->_success('获取数据成功',$lists); } $id= $this->request->get('id'); $this->assign('ids',$id); return $this->fetch(); } /** *订单进入异常 * @return mixed */ public function abnormal($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'设置订单进入异常', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $del=Db::name('order_exe')->where('id',$id)->update(['abnormal'=>1]); $this->_success('订单异常成功'); } /** *订单进入异常 * @return mixed */ public function notabnormal($id){ $admins=$this->admin_id; $time=time(); $logdate=[ 'admin_id'=>$admins, 'order_sn'=>$id, 'show'=>'取消订单进入异常', 'cram_time'=>$time ]; $log=Db::name('log_orders')->data($logdate)->insert(); $del=Db::name('order_exe')->where('id',$id)->update(['abnormal'=>0]); $this->_success('取消订单异常成功'); } public function orderinfo(){ $get= $this->request->get(); $info=OrderautoLogic::orderinfo($get); if($info){ $this->assign('info',$info); return $this->fetch(); } } }