'待支付', 2 => '待处理', 3 => '已完成', 4 => '已取消', ]; return isset($arr[$status]) ? $arr[$status] : ''; } // public function lists(){ $keyword = input('keyword',''); $starttime = input('starttime',0); $endtime = input('endtime',0); $servicetype_id = intval(input('servicetype_id',0)); $status = intval(input('status',0)); $where = [ 'company_id' => $this->auth->company_id, ]; //员工 if($this->auth->type == 2){ $where['staff_id'] = $this->auth->id; }//员工 if($starttime || $endtime){ $where['createtime'] = ['between',$starttime,$endtime]; } if($servicetype_id){ $where['servicetype_id'] = $servicetype_id; } if($status){ $where['status'] = $status; //状态:1=待支付,2=待处理,3=已核销(完成),4=已取消 } if(!empty($keyword)) { $where['user_car_number|user_mobile'] = ['LIKE','%'.$keyword.'%']; } $list = Db::name('order')->alias('order') ->join('servicetype','order.servicetype_id = servicetype.id','LEFT') ->field('order.id,orderno,ordertype,user_name,user_car_number,createtime,servicetype_id,server_info,status,finish_time,cancel_reason,servicetype.title as servicetype_title,servicetype.baoyang_switch')->where($where)->order('order.id desc')->autopage()->select(); foreach($list as $key => &$val){ $val['status_text'] = $this->status_text($val['status']); } $this->success(1,$list); } //详情 public function info(){ $id = input('id',0); $info = Db::name('order')->alias('order') ->join('servicetype','order.servicetype_id = servicetype.id','LEFT') ->field('order.*,servicetype.title as servicetype_title,servicetype.baoyang_switch') ->where('order.id',$id)->find(); $info = info_domain_image($info,['server_images']); $info['status_text'] = $this->status_text($info['status']); $info['appen_list'] = Db::name('order_appen')->where('order_id',$id)->select(); $this->success(1,$info); } //取消 public function cancel(){ $id = input('id',0); $reason = input('reason',''); $info = Db::name('order')->where('id',$id)->where('company_id',$this->auth->company_id)->find(); if($info['status'] == 4){ $this->error('当前订单已经取消'); } if($info['status'] != 0 && $info['status'] != 2){ $this->error('当前订单状态不能取消'); } if($info['ordertype'] == 3){ $this->error('套餐订单不能取消'); } //取消 $rs = Db::name('order')->where('id',$id)->update(['status'=>4,'cancel_time'=>time(),'finish_time'=>time(),'cancel_reason'=>$reason]); if($rs === false){ $this->error('取消失败'); } $this->success('取消成功'); } //完成 public function finish(){ $id = input('id',0); $info = Db::name('order')->where('id',$id)->where('company_id',$this->auth->company_id)->find(); if($info['status'] == 2){ $this->error('当前订单不能完成'); } //完成 $rs = Db::name('order')->where('id',$id)->update(['status'=>3,'finish_time'=>time(),'staff_id'=>$this->auth->id]); if($rs === false){ $this->error('操作失败'); } $baoyang_switch = Db::name('servicetype')->where('id',$info['servicetype_id'])->value('baoyang_switch'); $this->success('操作成功',$baoyang_switch); } //追加列表 public function appen_lists(){ $id = input('id',0); $info = Db::name('order')->field('id,orderno,pay_fee,package_price,appen_fee')->where('id',$id)->where('company_id',$this->auth->company_id)->find(); if(!$info){ $this->error('不存在的订单'); } $info['appen_list'] = Db::name('order_appen')->where('order_id',$id)->select(); $this->success(1,$info); } //追加新费用 public function appen_newone(){ $id = input('id',0); Db::startTrans(); $info = Db::name('order')->field('id,orderno,pay_fee,package_price,appen_fee')->where('id',$id)->where('company_id',$this->auth->company_id)->lock(true)->find(); if(!$info){ $this->error('不存在的订单'); } //加入新的一条 $name = input('name',''); $price = intval(input('price',0)); if($price <= 0){ Db::rollback(); $this->error('请填写正确的金额'); } $data = [ 'order_id' => $id, 'name' => $name, 'price' => $price, 'createtime' => time(), ]; $log_id = Db::name('order_appen')->insertGetId($data); if(!$log_id){ Db::rollback(); $this->error('操作失败'); } //计算追加总额做冗余 $sum_price = Db::name('order_appen')->where('order_id',$id)->sum('price'); $rs = Db::name('order')->where('id',$id)->update(['appen_fee'=>$sum_price]); if($rs === false){ Db::rollback(); $this->error('操作失败'); } //结束 Db::commit(); $this->success(); } }