|
@@ -87,59 +87,67 @@ class Wenzhen extends Api
|
|
|
//问诊患者
|
|
|
$member_data = $this->add_member();
|
|
|
|
|
|
- //问诊信息
|
|
|
+ //医生信息
|
|
|
$doctor_id = input('doctor_id',0);
|
|
|
- $ordertype = 2;
|
|
|
-
|
|
|
- $book_time = input('book_time','');
|
|
|
- if(empty($book_time)){
|
|
|
- $this->error('没有选择预约时间');
|
|
|
+ $doctor = Db::name('doctor')->where('id',$doctor_id)->find();
|
|
|
+ $doctor_info = Db::name('doctor_info')->where('doctor_id',$doctor_id)->find();
|
|
|
+ if(empty($doctor_info)){
|
|
|
+ $this->error('不存在的医生');
|
|
|
}
|
|
|
- $book_time = strtotime($book_time);
|
|
|
|
|
|
+ if($doctor_info['video_switch'] != 1){
|
|
|
+ $this->error('该医生未开通视频问诊');
|
|
|
+ }
|
|
|
+ if($doctor_info['video_model'] == 2 && $doctor['job_status'] != 1){ //即时方式,需要在上班中
|
|
|
+ $this->error('该医生现在不在上班中');
|
|
|
+ }
|
|
|
|
|
|
+ //订单信息
|
|
|
$auth_id = $this->auth->id;
|
|
|
$order_no = createUniqueNo('TV',$auth_id);
|
|
|
-
|
|
|
- //医生信息
|
|
|
- $doctor_info = Db::name('doctor_info')->where('doctor_id',$doctor_id)->find();
|
|
|
- if(empty($doctor_info)){
|
|
|
- $this->error('不存在的医生');
|
|
|
- }
|
|
|
+ $ordertype = 2;
|
|
|
|
|
|
//价格
|
|
|
$price = 0;
|
|
|
- if($ordertype == 2){
|
|
|
- if($doctor_info['video_switch'] != 1){
|
|
|
- $this->error('该医生未开通视频问诊');
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
//排班判断
|
|
|
if($ordertype == 2){
|
|
|
- //检查
|
|
|
- if($book_time < time() + 7200){
|
|
|
- //测试临时屏蔽
|
|
|
- //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
|
|
|
- }
|
|
|
- //排班状态
|
|
|
- $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
|
|
|
- if(empty($doctor_paiban)){
|
|
|
- $this->error('您预约的时间该医生无法接诊');
|
|
|
- }
|
|
|
- if($doctor_paiban['active'] != 1){
|
|
|
- $this->error('您预约的时间该医生无法接诊');
|
|
|
+ if($doctor_info['video_model'] == 1){ //排班预约
|
|
|
+
|
|
|
+ $book_time = input('book_time','');
|
|
|
+ if(empty($book_time)){
|
|
|
+ $this->error('没有选择预约时间');
|
|
|
+ }
|
|
|
+ $book_time = strtotime($book_time);
|
|
|
+ //检查
|
|
|
+ if($book_time < time() + 7200){
|
|
|
+ //测试临时屏蔽
|
|
|
+ //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
|
|
|
+ }
|
|
|
+ //排班状态
|
|
|
+ $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
|
|
|
+ if(empty($doctor_paiban)){
|
|
|
+ $this->error('您预约的时间该医生无法接诊');
|
|
|
+ }
|
|
|
+ if($doctor_paiban['active'] != 1){
|
|
|
+ $this->error('您预约的时间该医生无法接诊');
|
|
|
+ }
|
|
|
+ //是否排满
|
|
|
+ $map = [
|
|
|
+ 'doctor_id' => $doctor_id,
|
|
|
+ 'book_time' => $book_time,
|
|
|
+ 'ordertype' => 2,
|
|
|
+ 'status' => ['IN','10,20,25,30'],//有效订单
|
|
|
+ ];
|
|
|
+ $order_count = Db::name('wenzhen_order')->where($map)->count();
|
|
|
+ if($order_count >= 4){
|
|
|
+ $this->error('该时间点已排满,请重选预约时间');
|
|
|
+ }
|
|
|
}
|
|
|
- //是否排满
|
|
|
- $map = [
|
|
|
- 'doctor_id' => $doctor_id,
|
|
|
- 'book_time' => $book_time,
|
|
|
- 'ordertype' => 2,
|
|
|
- 'status' => ['IN','10,20,25,30'],//有效订单
|
|
|
- ];
|
|
|
- $order_count = Db::name('wenzhen_order')->where($map)->count();
|
|
|
- if($order_count >= 4){
|
|
|
- $this->error('该时间点已排满,请重选预约时间');
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $book_time = time(); //即时预约
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -159,6 +167,7 @@ class Wenzhen extends Api
|
|
|
'pay_type' => 'tvvip',
|
|
|
'pay_time' => time(),
|
|
|
'comefrom' => 2,
|
|
|
+ 'video_model'=> $doctor_info['video_model'], //视频问诊预约方式
|
|
|
];
|
|
|
|
|
|
Db::startTrans();
|