$this->auth->id]; //订单状态 $status = input('status',10); if($status != 'all'){ $where['order.status'] = $status; if($status == 100){ $where['order.status'] = ['IN',[13,16,18,22]]; } } //问诊类型 $ordertype = input('ordertype',0); if($ordertype){ $where['order.ordertype'] = $ordertype; } //查询 $field = [ 'order.id','order.order_no','order.createtime','order.status','order.ordertype','order.accept_time','order.video_time','order.book_time', 'member.realname as member_realname','member.gender as member_gender','member.birthday as member_birthday', 'member.marital_status','member.allergies_status','member.familymedical_status','member.chronicdisease_status', ]; $list = Db::name('wenzhen_order')->alias('order') ->field($field) ->join('wenzhen_order_member member','order.id = member.order_id','LEFT') ->order('order.id desc') ->where($where) ->autopage()->select(); if(!empty($list)){ //循环处理 foreach($list as $key => $val){ //患者资料 $gender = $val['member_gender'] == 1 ? '男' : '女'; $age = birthtime_to_age($val['member_birthday']).'岁'; $marital = $val['marital_status'] == 1 ? '已婚' : '未婚'; $val['member_info'] = $gender.'|'.$age.'|'.$marital; $allergies_status = $val['allergies_status'] == 1 ? '有' : '无'; $familymedical_status = $val['familymedical_status'] == 1 ? '有' : '无'; $chronicdisease_status = $val['chronicdisease_status'] == 1 ? '有' : '无'; $val['member_remark'] = $allergies_status.'过敏史、'.$familymedical_status.'家族遗传史、'.$chronicdisease_status.'慢性病/肿瘤/手术/放射治疗'; unset($val['member_gender']); unset($val['member_birthday']); unset($val['marital_status']); unset($val['allergies_status']); unset($val['familymedical_status']); unset($val['chronicdisease_status']); //追加 $val = $this->orderinfo_appen($val); $list[$key] = $val; } } $this->success(1,$list); } //单个订单,追加数据 private function orderinfo_appen($val){ //订单类型 $ordertype_data = [ 1 => ['name'=>'图文问诊','name_en'=>'Text and Image Consultation'], 2 => ['name'=>'视频问诊','name_en'=>'Video Consultation'], ]; //开始处理 //订单类型,辅助 $val['ordertype_data'] = $ordertype_data[$val['ordertype']]; //处理完成,返回 return $val; } //订单状态备注枚举 //状态:0=未付款,3=已失效,10=待接诊,13=用户退诊,16=医生未接诊,18=医生退诊,20=已接诊,22=超时未拨打,25=视频通话中,30=问诊完成 //订单详情 public function order_info(){ $order_id = input('order_id',0); //订单详情 $wenzhen_order = Db::name('wenzhen_order')->where('doctor_id',$this->auth->id)->where('id',$order_id)->find(); if(empty($wenzhen_order)){ $this->error('不存在的订单'); } $wenzhen_order = info_domain_image($wenzhen_order,['feedback_images']); $wenzhen_order = $this->orderinfo_appen($wenzhen_order); //就诊人详情 $order_member_info = Db::name('wenzhen_order_member')->where('order_id',$order_id)->find(); $order_member_info = info_domain_image($order_member_info,['member_images']); $order_member_info['age'] = birthtime_to_age($order_member_info['birthday']); $wenzhen_order['member_info'] = $order_member_info; //医生详情 /*$field = [ 'd.nickname','d.avatar','d.keshi_id','d.level_id','d.hospital','d.goodat','d.ordernum', 'keshi.name as keshi_name', 'level.name as level_name' ]; $doctor_info = Db::name('doctor')->alias('d') ->field($field) ->join('doctor_level level','d.level_id = level.id','LEFT') ->join('keshi','d.keshi_id = keshi.id','LEFT') ->where('d.id',$wenzhen_order['doctor_id'])->find(); $doctor_info = info_domain_image($doctor_info,['avatar']); $wenzhen_order['doctor_info'] = $doctor_info;*/ $this->success(1,$wenzhen_order); } //退珍 public function tuizhen(){ $apilimit = $this->apiLimit(); if(!$apilimit){ $this->error('操作频繁'); } $order_id = input('order_id',0); //订单详情 $wenzhen_order = Db::name('wenzhen_order')->where('doctor_id',$this->auth->id)->where('id',$order_id)->find(); if(empty($wenzhen_order)){ $this->error('不存在的订单'); } if($wenzhen_order['status'] != 10){ $this->error('待接诊订单才能退诊'); } //修改订单 $nowtime = time(); $update = [ 'status' => 18, 'cancel_time' => $nowtime, 'cancel_reason' => '医生退珍', 'finish_time' => $nowtime, ]; Db::startTrans(); $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',10)->update($update); if(!$update_rs){ Db::rollback(); } } //接珍 //完成 //反馈 }