| xqd
@@ -48,7 +48,7 @@ class ApiController extends Controller
|
|
|
header('Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token');
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//获取订单
|
|
|
public function getDocter()
|
|
|
{
|
| xqd
@@ -134,303 +134,6 @@ class ApiController extends Controller
|
|
|
|
|
|
}
|
|
|
|
|
|
- //获取排班页面
|
|
|
- public function getComSchedule()
|
|
|
- {
|
|
|
-
|
|
|
- $set_time = request('time');//时间
|
|
|
- $user = Admin::user();
|
|
|
-
|
|
|
- $doc_id = $user->docter_id;
|
|
|
-
|
|
|
- $docter_id = request('docter_id');
|
|
|
- $role = request('role',1);
|
|
|
-
|
|
|
-
|
|
|
- $is_docter = CdmsUsers::where('docter_id',$doc_id)->where('docter_id','!=','')->first();
|
|
|
-
|
|
|
- if(empty($set_time)){
|
|
|
- return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
- }
|
|
|
-
|
|
|
- if($is_docter){
|
|
|
- $role =2;
|
|
|
- $org_id = request('org_id');
|
|
|
- } else {
|
|
|
- $org_id = $user->org_id;
|
|
|
- }
|
|
|
- $all_time = explode('至',$set_time);
|
|
|
- if(count($all_time) <2){
|
|
|
- return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
- }
|
|
|
-
|
|
|
- return $this->getWeekSchedule();
|
|
|
- $start_time = intval(str_replace('-','',$all_time[0]));
|
|
|
- $end_time = intval(str_replace('-','',$all_time[1]));
|
|
|
- $first_day = strtotime($all_time[0]);
|
|
|
-// DB::enableQueryLog();
|
|
|
-
|
|
|
- $sche_dule = Schedule::whereBetween('schedule_day',[$start_time,$end_time])
|
|
|
- ->where(['docter_id'=>$docter_id])
|
|
|
- ->pluck('id')
|
|
|
- ->toArray();
|
|
|
-// echo '<pre>';
|
|
|
-// print_r(DB::getQueryLog());
|
|
|
-// echo '</pre>';
|
|
|
- //dd($sche_dule);
|
|
|
-
|
|
|
- $sche_dule_arr =[
|
|
|
- [
|
|
|
- 'date'=>"上午",
|
|
|
- 'monday'=>false,
|
|
|
- 'tuesday'=>false,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>false,
|
|
|
- 'saturday'=>false,
|
|
|
- 'sunday'=>false,
|
|
|
- ],
|
|
|
- [
|
|
|
- 'date'=>"下午",
|
|
|
- 'monday'=>false,
|
|
|
- 'tuesday'=>false,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>false,
|
|
|
- 'saturday'=>false,
|
|
|
- 'sunday'=>false,
|
|
|
- ],
|
|
|
- [
|
|
|
- 'date'=>"晚上",
|
|
|
- 'monday'=>false,
|
|
|
- 'tuesday'=>false,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>false,
|
|
|
- 'saturday'=>false,
|
|
|
- 'sunday'=>false,
|
|
|
- ]
|
|
|
- ];
|
|
|
-// return $this->getWeekSchedule();
|
|
|
-
|
|
|
- //周字段映射
|
|
|
- $week_arr = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'];
|
|
|
-
|
|
|
- //时段区间id
|
|
|
- $schedule_config = SystemConfig::get('docter_config');
|
|
|
- $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
|
|
|
- $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
|
|
|
- $times[] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
|
|
|
- if(empty($sche_dule)){
|
|
|
- return ['code'=>200,'msg'=>'ok','data'=>['docter'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
|
|
|
- }
|
|
|
- if($role == 1){
|
|
|
- $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id');
|
|
|
- $name = Organization::where('id',$docter_id)->value('name');
|
|
|
- $user_id = $org_id;
|
|
|
- for ($i = 0; $i<6; $i++){
|
|
|
- $str_time = date('Y-m-d',($first_day + $i * 86400));
|
|
|
- for($j=0;$j<3;$j++){
|
|
|
-
|
|
|
- //dd($sche_dule);
|
|
|
-// DB::enableQueryLog();
|
|
|
-
|
|
|
- //检测上午
|
|
|
- $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
|
|
|
- ->where('organization_id','!=',$org_id)->where('docter_id',$docter_id)->count();
|
|
|
- $is_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
|
|
|
- ->where('organization_id','=',$org_id)->where('docter_id',$docter_id)->count();
|
|
|
-
|
|
|
- if($is_self){
|
|
|
- $sche_dule_arr[$j][$week_arr[$i]] = true;
|
|
|
- }
|
|
|
- if($is_mo_have){
|
|
|
- $sche_dule_arr[$j][$week_arr[$i]] = 'other';
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- $name = Docter::where('id',$docter_id)->value('name');
|
|
|
- $user_id = $docter_id;
|
|
|
- for ($i=0; $i<=6; $i++){
|
|
|
- $str_time = date('Y-m-d',($first_day + $i * 86400));
|
|
|
- for($j=0;$j<=2;$j++){
|
|
|
- $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
|
|
|
- ->where('organization_id','!=',$org_id)->where('docter_id',$docter_id)->count();
|
|
|
- $is_mo_self = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$times[$j])
|
|
|
- ->where('organization_id',$org_id)->where('docter_id',$docter_id)->count();
|
|
|
- if($is_mo_self){
|
|
|
- $sche_dule_arr[$j][$week_arr[$i]] = true;
|
|
|
- }
|
|
|
- if($is_mo_have){
|
|
|
- $sche_dule_arr[$j][$week_arr[$i]] = 'other';
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // "morning_start" => "09:00"
|
|
|
- // "morning_end" => "12:00"
|
|
|
- // "afternoon_start" => "13:00"
|
|
|
- // "afternoon_end" => "18:00"
|
|
|
- // "evening_start" => "19:00"
|
|
|
- // "evening_end" => "20:00"
|
|
|
-
|
|
|
-
|
|
|
- $data['docter'] = $sche_dule_arr;
|
|
|
- $data['name'] = $name;
|
|
|
-
|
|
|
- $data['role'] = $role;
|
|
|
- $data['user_id'] = $user_id;
|
|
|
- return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
|
|
|
- }
|
|
|
-
|
|
|
- //编辑排班
|
|
|
- public function setDocChedule()
|
|
|
- {
|
|
|
- $docter_id = request('docter_id');
|
|
|
- $org_id = request('org_id');
|
|
|
- $set_time = request('time');
|
|
|
- $data = request('schedulingtime');
|
|
|
-// $set_time = '2020-12-07至2020-12-13';
|
|
|
- if(empty($set_time) || empty($org_id) || empty($docter_id)){
|
|
|
- return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
- }
|
|
|
-
|
|
|
- $all_time = explode('至',$set_time);
|
|
|
- if(count($all_time) <2) {
|
|
|
- return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
- }
|
|
|
- $first_day = strtotime($all_time[0]);
|
|
|
- $start_time = intval(str_replace('-','',$all_time[0]));
|
|
|
- $end_time = intval(str_replace('-','',$all_time[1]));
|
|
|
- $schedule_id = Schedule::where(['docter_id'=>$docter_id])->whereBetween('schedule_day',[$start_time,$end_time])->pluck('id');
|
|
|
- if(empty($schedule_id) || count($schedule_id) < 7){
|
|
|
-// Schedule::whereIn('id',$schedule_id)->delete();
|
|
|
-// SchedulePeriod::whereIn('schedule_id',$schedule_id);
|
|
|
- for($i = 0;$i<=6;$i++){
|
|
|
- $real_time = $first_day + (86400 * $i);
|
|
|
- $schedule= [
|
|
|
- 'schedule_date'=> date('Y-m-d',$real_time),
|
|
|
- 'schedule_day'=>intval(str_replace('-','',date('Y-m-d H:i:s',$real_time))),
|
|
|
- 'docter_id'=>$docter_id
|
|
|
- ] ;
|
|
|
- Schedule::Insert($schedule);
|
|
|
-// echo '日期:'.date('Y-m-d H:i:s',$real_time).'<br>';
|
|
|
-// echo $i;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //周字段映射
|
|
|
- $week_arr = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'];
|
|
|
-// $data = [
|
|
|
-// [
|
|
|
-// 'date'=>"上午",
|
|
|
-// 'monday'=>false,
|
|
|
-// 'tuesday'=>false,
|
|
|
-// 'wednesday'=>false,
|
|
|
-// 'thursday'=>true,
|
|
|
-// 'friday'=>false,
|
|
|
-// 'saturday'=>false,
|
|
|
-// 'sunday'=>false,
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// 'date'=>"下午",
|
|
|
-// 'monday'=>false,
|
|
|
-// 'tuesday'=>true,
|
|
|
-// 'wednesday'=>false,
|
|
|
-// 'thursday'=>false,
|
|
|
-// 'friday'=>false,
|
|
|
-// 'saturday'=>false,
|
|
|
-// 'sunday'=>false,
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// 'date'=>"晚上",
|
|
|
-// 'monday'=>false,
|
|
|
-// 'tuesday'=>false,
|
|
|
-// 'wednesday'=>true,
|
|
|
-// 'thursday'=>false,
|
|
|
-// 'friday'=>false,
|
|
|
-// 'saturday'=>false,
|
|
|
-// 'sunday'=>false,
|
|
|
-// ]
|
|
|
-// ];
|
|
|
-
|
|
|
-
|
|
|
- //时段区间id
|
|
|
- $schedule_config = SystemConfig::get('docter_config');
|
|
|
- $times[1] = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])
|
|
|
- ->where('end_time_period','<=',$schedule_config['morning_end'])
|
|
|
- ->pluck('id')->toArray();
|
|
|
-
|
|
|
- $times[2] = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])
|
|
|
- ->where('end_time_period','<=',$schedule_config['afternoon_end'])
|
|
|
- ->pluck('id')->toArray();
|
|
|
-
|
|
|
- $times[3] = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])
|
|
|
- ->where('end_time_period','<=',$schedule_config['evening_end'])
|
|
|
- ->pluck('id')->toArray();
|
|
|
- foreach ($times as $val){
|
|
|
- foreach ($val as $t){
|
|
|
- $time_period[] = $t;
|
|
|
- }
|
|
|
- }
|
|
|
- $data[0] = array_values(object_array(json_decode($data[0])));
|
|
|
- $data[1] = array_values(object_array(json_decode($data[1])));
|
|
|
- $data[2] = array_values(object_array(json_decode($data[2])));
|
|
|
- DB::beginTransaction();
|
|
|
- try {
|
|
|
-
|
|
|
- $schedule_insert = [
|
|
|
- 'organization_id'=>$org_id,
|
|
|
- 'docter_id'=>$docter_id,
|
|
|
- 'schedule_date'=>$all_time[0],
|
|
|
- 'created_at'=>Carbon::now(),
|
|
|
- 'updated_at'=>Carbon::now(),
|
|
|
- ];
|
|
|
- $info = [];
|
|
|
- for ($i = 1 ;$i<=3;$i++){
|
|
|
- $mo_schedule = array_values($data[$i-1]);
|
|
|
- foreach ($mo_schedule as $key=>$val){
|
|
|
- if($key==0) continue;
|
|
|
- $time_insert = $schedule_insert;
|
|
|
- $time_insert['type'] = $i;
|
|
|
-
|
|
|
- $schedule_time = $times[$i];
|
|
|
- $real_time = date('Y-m-d',($first_day + ($key-1)*86400));
|
|
|
- $schedule_id = Schedule::where(['docter_id'=>$docter_id,'schedule_date'=>$real_time])->value('id');
|
|
|
- if(empty($schedule_id)) continue;
|
|
|
- $time_insert['schedule_id'] = $schedule_id;
|
|
|
- $time_insert['schedule_date'] = $real_time;
|
|
|
- $time_insert['me_sure'] = 1;
|
|
|
-
|
|
|
- if($val == true){
|
|
|
- $data['schedule_date'] = $start_time;
|
|
|
- foreach ($schedule_time as $time_id){
|
|
|
- $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'schedule_date'=>$real_time])->value('id');
|
|
|
- if($is_have) break;
|
|
|
- $time_insert['time_period_id'] = $time_id;
|
|
|
- $info[] = $time_insert;
|
|
|
- SchedulePeriod::insert($time_insert);
|
|
|
- }
|
|
|
- } else {
|
|
|
- $data['schedule_date'] = $start_time;
|
|
|
- foreach ($schedule_time as $time_id){
|
|
|
- $is_have = SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->value('id');
|
|
|
- if($is_have) SchedulePeriod::where(['time_period_id'=>$time_id,'type'=>($i),'docter_id'=>$docter_id,'schedule_date'=>$real_time,'organization_id'=>$org_id,'docter_id'=>$docter_id,'schedule_id'=>$schedule_id])->delete();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- DB::commit();
|
|
|
- } catch (Exception $e){
|
|
|
- DB::rollBack();
|
|
|
- Log::info($e->getMessage());
|
|
|
- }
|
|
|
- return json_encode(['status'=>200,'msg'=>'插入成功','data'=>count($info)]);
|
|
|
- }
|
|
|
|
|
|
//设置自己排班
|
|
|
public function setSelfSchedule()
|
| xqd
@@ -488,46 +191,6 @@ class ApiController extends Controller
|
|
|
return apiReturn(200,'ok');
|
|
|
}
|
|
|
|
|
|
- //获取用户信息
|
|
|
-// public function getScheduleInfo()
|
|
|
-// {
|
|
|
-//
|
|
|
-// $user = Admin::user();
|
|
|
-// $org_id = $user->org_id;
|
|
|
-// $docter_id = $user->docter_id;
|
|
|
-//
|
|
|
-// $is_docter = CdmsUsers::where('docter_id',$docter_id)->where('docter_id','!=','')->first();
|
|
|
-// if(empty($org_id) && empty($docter_id)){
|
|
|
-// return json_encode(['code'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
-// }
|
|
|
-// $role = 1;
|
|
|
-// if($is_docter){
|
|
|
-// $role = 2;
|
|
|
-// }
|
|
|
-// $lists =[];
|
|
|
-// if($role == 1){
|
|
|
-// $ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id')->toArray();
|
|
|
-// $list = Docter::whereIn('id',$ids)->where('is_then',1)->get(['id','name']);
|
|
|
-// foreach ($list as $val){
|
|
|
-// $lists[] = ['value'=>$val->id,'label'=>$val->name];
|
|
|
-// }
|
|
|
-// $name = Organization::where('id',$org_id)->value('name');
|
|
|
-// $user_id = $org_id;
|
|
|
-// } else {
|
|
|
-// $ids = DocterOrganization::where(['docter_id'=>$docter_id])->pluck('organization_id');
|
|
|
-// $list = Organization::whereIn('id',$ids)->get(['id','name']);
|
|
|
-// foreach ($list as $val){
|
|
|
-// $lists[] = ['value'=>$val->id,'label'=>$val->name];
|
|
|
-// }
|
|
|
-// $name = Docter::where('id',$docter_id)->value('name');
|
|
|
-// $user_id = $docter_id;
|
|
|
-// }
|
|
|
-// $data['user_id'] = $user_id;
|
|
|
-// $data['name'] = $name;
|
|
|
-// $data['role'] = $role;
|
|
|
-// $data['list'] = $lists;
|
|
|
-// return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
|
|
|
-// }
|
|
|
|
|
|
//获取图文订单
|
|
|
public function get_chat_order()
|
| xqd
@@ -565,83 +228,6 @@ class ApiController extends Controller
|
|
|
|
|
|
}
|
|
|
|
|
|
-// //更新用戶設置
|
|
|
-// public function updateDocterSetting()
|
|
|
-// {
|
|
|
-// $docter_id = request('docter_id',1);
|
|
|
-// if(empty($docter_id)){
|
|
|
-// return apiReturn(604,'参数错误');
|
|
|
-// }
|
|
|
-//
|
|
|
-// //添加时间段
|
|
|
-// if(2 == 3){
|
|
|
-// $data = ['docter_id'=>$docter_id,'am_start'=>'8:30','am_end'=>'11:30','pm_start'=>'12:00','pm_end'=>'15:00','ev_start'=>'19:00','ev_end'=>'22:00','service_time'=>15];
|
|
|
-// $amtimes[] = explode(':',$data['am_start']);
|
|
|
-// $amtimes[] = explode(':',$data['am_end']);
|
|
|
-//// $amcha = ($amtimes[1][0] - $amtimes[0][0])*60 +($amtimes[1][1] - $amtimes[0][1]);
|
|
|
-//// $amCount = $amcha/$data['service_time'];
|
|
|
-// $amCount = intval(floor((strtotime($data['am_end']) - strtotime($data['am_start'])) / (60*$data['service_time'])));
|
|
|
-//
|
|
|
-// $pmtimes[] = explode(':',$data['pm_start']);
|
|
|
-// $pmtimes[] = explode(':',$data['pm_end']);
|
|
|
-// $pmCount =intval(floor((strtotime($data['pm_end']) - strtotime($data['pm_start'])) / (60*$data['service_time'])));
|
|
|
-//
|
|
|
-//
|
|
|
-// $evtimes[] = explode(':',$data['ev_start']);
|
|
|
-// $evtimes[] = explode(':',$data['ev_end']);
|
|
|
-// $evcha = ($evtimes[1][0] - $evtimes[0][0])*60 +($evtimes[1][1] - $evtimes[0][1]);
|
|
|
-// $evCount = $evcha/$data['service_time'];
|
|
|
-//
|
|
|
-//
|
|
|
-// for($i=1;$i<=$amCount;$i++){
|
|
|
-// $amdata = [
|
|
|
-// 'docter_id'=>$docter_id,
|
|
|
-// 'start_time_period'=> date('H:i',strtotime($data['am_start']) + ($i-1)*$data['service_time']*60),
|
|
|
-// 'end_time_period'=> date('H:i',strtotime($data['am_start']) + $i*$data['service_time']*60),
|
|
|
-// ];
|
|
|
-// TimePeriod::insert($amdata);
|
|
|
-// }
|
|
|
-//
|
|
|
-// for($i=1;$i<=$pmCount;$i++){
|
|
|
-// $pmdata = [
|
|
|
-// 'docter_id'=>$docter_id,
|
|
|
-// 'start_time_period'=> date('H:i',strtotime($data['pm_start']) + ($i-1)*$data['service_time']*60),
|
|
|
-// 'end_time_period'=> date('H:i',strtotime($data['pm_start']) + $i*$data['service_time']*60),
|
|
|
-// ];
|
|
|
-// TimePeriod::insert($pmdata);
|
|
|
-// }
|
|
|
-//
|
|
|
-// for($i=1;$i<=$evCount;$i++){
|
|
|
-// $evdata = [
|
|
|
-// 'docter_id'=>$docter_id,
|
|
|
-// 'start_time_period'=> date('H:i',strtotime($data['ev_start']) + ($i-1)*$data['service_time']*60),
|
|
|
-// 'end_time_period'=> date('H:i',strtotime($data['ev_start']) + $i*$data['service_time']*60),
|
|
|
-// ];
|
|
|
-// TimePeriod::insert($evdata);
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// $config = [['startTime'=>"08:30","endTime"=>"11:30"],["startTime"=>"13:30","endTime"=>"16:00"],["startTime"=>"18:30","endTime"=>"19:30"]];
|
|
|
-// $setting = [
|
|
|
-// 'docter_id'=>$docter_id,
|
|
|
-// 'type'=>2,
|
|
|
-// 'status'=>2,
|
|
|
-// 'show_days'=>7,
|
|
|
-// 'service_num'=>7,
|
|
|
-// 'service_time'=>json_encode($config)
|
|
|
-// ];
|
|
|
-//
|
|
|
-//
|
|
|
-//
|
|
|
-// $is_have = DocterSetting::where(['docter_id'=>$docter_id])->value('id');
|
|
|
-// if($is_have){
|
|
|
-// DocterSetting::where(['docter_id'=>$docter_id])->update($setting);
|
|
|
-// } else {
|
|
|
-// DocterSetting::insert($setting);
|
|
|
-// }
|
|
|
-// return apiReturn(200,'ok');
|
|
|
-// }
|
|
|
-
|
|
|
//获取周排班模板
|
|
|
public function getWeekSchedule()
|
|
|
{
|
| xqd
@@ -737,45 +323,23 @@ class ApiController extends Controller
|
|
|
//设置周排班模板
|
|
|
public function setWeekSchedule()
|
|
|
{
|
|
|
- $docter_id = request('docter_id',1);
|
|
|
- $org_id = request('org_id',1);
|
|
|
- $type = request('type',2);
|
|
|
- if(empty($docter_id) || empty($org_id) || empty($type)){
|
|
|
+ $docter_id = intval(request('docter_id'));
|
|
|
+ $org_id = intval(request('org_id'));
|
|
|
+ $type = intval(request('type')); //排班类型 1门诊 2 儿保 3计免
|
|
|
+ $data = request('schedulingtime');
|
|
|
+ if(empty($docter_id) || empty($org_id) || empty($type) || empty($data)){
|
|
|
return apiReturn(601,'缺少必要参数');
|
|
|
}
|
|
|
- $docter_setting = DocterSetting::where(['docter_id'=>$docter_id])->first();
|
|
|
- $data = [
|
|
|
- [
|
|
|
- 'date'=>"上午",
|
|
|
- 'monday'=>false,
|
|
|
- 'tuesday'=>true,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>true,
|
|
|
- 'saturday'=>false,
|
|
|
- 'sunday'=>false,
|
|
|
- ],
|
|
|
- [
|
|
|
- 'date'=>"下午",
|
|
|
- 'monday'=>false,
|
|
|
- 'tuesday'=>false,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>false,
|
|
|
- 'saturday'=>true,
|
|
|
- 'sunday'=>false,
|
|
|
- ],
|
|
|
- [
|
|
|
- 'date'=>"晚上",
|
|
|
- 'monday'=>true,
|
|
|
- 'tuesday'=>true,
|
|
|
- 'wednesday'=>false,
|
|
|
- 'thursday'=>false,
|
|
|
- 'friday'=>false,
|
|
|
- 'saturday'=>false,
|
|
|
- 'sunday'=>false,
|
|
|
- ]
|
|
|
- ];
|
|
|
+ $docter_setting = [];
|
|
|
+ if($type == 1){
|
|
|
+ $docter_setting = DocterSetting::where(['docter_id'=>$docter_id])->first();
|
|
|
+ } else {
|
|
|
+ $docter_setting = OrganizationSettings::where(['org_id'=>$org_id])->first();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $time = [];
|
|
|
if(!empty($docter_setting)){
|
|
|
$time_period = object_array(json_decode($docter_setting->service_time));
|
|
|
$times[] = TimePeriod::where(['docter_id'=>$docter_id])->whereBetween('end_time_period',[intval($time_period[1]['amStartTime']),intval($time_period[1]['amEndTime'])])->pluck('id')->toArray();
|
| xqd
@@ -783,22 +347,74 @@ class ApiController extends Controller
|
|
|
$times[] = TimePeriod::where(['docter_id'=>$docter_id])->whereBetween('end_time_period',[intval($time_period[3]['nightStartTime']),intval($time_period[3]['nightEndTime'])])->pluck('id')->toArray();
|
|
|
}
|
|
|
|
|
|
+ //沒有配置就新建
|
|
|
+ if(empty($docter_setting) || $times){
|
|
|
+ $docter_config = SystemConfig::get('docter_config');
|
|
|
+ $amCount = intval(((strtotime($docter_config['morning_end'])) - (strtotime($docter_config['morning_start']))) / ($docter_config['service_time']*60));
|
|
|
+ $pmCount = intval(((strtotime($docter_config['afternoon_end'])) - (strtotime($docter_config['afternoon_start']))) / ($docter_config['service_time']*60));
|
|
|
+ $evCount = intval(((strtotime($docter_config['evening_end'])) - (strtotime($docter_config['evening_start']))) / ($docter_config['service_time']*60));
|
|
|
+ $c_r = [
|
|
|
+ 1=>['count'=>$amCount,'start_time'=>$docter_config['morning_start'],'end_time'=>$docter_config['morning_end']],
|
|
|
+ 2=>['count'=>$pmCount,'start_time'=>$docter_config['afternoon_start'],'end_time'=>$docter_config['afternoon_end']],
|
|
|
+ 3=>['count'=>$evCount,'start_time'=>$docter_config['evening_start'],'end_time'=>$docter_config['evening_end']]
|
|
|
+ ];
|
|
|
|
|
|
- $week_data = [
|
|
|
- 'schedule_type'=>$type,
|
|
|
- 'organization_id'=>$org_id,
|
|
|
- 'docter_id'=>$docter_id
|
|
|
- ];
|
|
|
- $k = 0;
|
|
|
- DB::beginTransaction();
|
|
|
-// $data[0] = array_values(object_array(json_decode($data[0])));
|
|
|
-// $data[1] = array_values(object_array(json_decode($data[1])));
|
|
|
-// $data[2] = array_values(object_array(json_decode($data[2])));
|
|
|
+ if($type == 1){
|
|
|
+ $setingData = [
|
|
|
+ 'docter_id'=>$docter_id,
|
|
|
+ 'type'=>$type,
|
|
|
+ 'status'=>false,
|
|
|
+ 'show_days'=>7,
|
|
|
+ 'service_time'=>json_encode($c_r),
|
|
|
+ 'service_times'=>30,
|
|
|
+ ];
|
|
|
+ $isHave = DocterSetting::where($setingData)->count();
|
|
|
+ if(!$isHave) {
|
|
|
+ $setingData [ 'created_at']=Carbon::now();
|
|
|
+ $setingData [ 'updated_at']=Carbon::now();
|
|
|
+ DocterSetting::insert($setingData);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $setingData = [
|
|
|
+ 'org_id'=>$docter_id,
|
|
|
+ 'type'=>$type,
|
|
|
+ 'status'=>false,
|
|
|
+ 'show_days'=>7,
|
|
|
+ 'service_time'=>json_encode($c_r),
|
|
|
+ 'service_times'=>30,
|
|
|
+ ];
|
|
|
+ $isHave = OrganizationSettings::where($setingData)->count();
|
|
|
+ if(!$isHave) {
|
|
|
+ $setingData [ 'created_at']=Carbon::now();
|
|
|
+ $setingData [ 'update_at']=Carbon::now();
|
|
|
+ OrganizationSettings::insert($data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach ($c_r as $key => $val){
|
|
|
+ self::makeTimePeriod($type,$docter_id,$org_id,$key,$val,$val['count'],$docter_config['service_time']);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ if($type == 1){
|
|
|
+ $week_data = [
|
|
|
+ 'organization_id'=>$org_id,
|
|
|
+ 'docter_id'=>$docter_id
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ $week_data = [
|
|
|
+ 'organization_id'=>$org_id,
|
|
|
+ 'docter_id'=>0
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $week_data ['schedule_type']=$type;
|
|
|
|
|
|
- $data[0] = array_values($data[0]);
|
|
|
- $data[1] = array_values($data[1]);
|
|
|
- $data[2] = array_values($data[2]);
|
|
|
+ $k = 0;
|
|
|
+ DB::beginTransaction();
|
|
|
+ $data[0] = array_values(object_array(json_decode($data[0])));
|
|
|
+ $data[1] = array_values(object_array(json_decode($data[1])));
|
|
|
+ $data[2] = array_values(object_array(json_decode($data[2])));
|
|
|
try {
|
|
|
for($i=0;$i<=2;$i++){
|
|
|
$schedule_data = $data[$i];
|
| xqd
@@ -810,18 +426,24 @@ class ApiController extends Controller
|
|
|
// echo '时间列类型'.($i+1).'----'.$key.'星期数'.'<br>';
|
|
|
foreach ($times[$i] as $id){
|
|
|
$week_data['time_period_id'] = $id;
|
|
|
- $is_have = WeekSchedule::where(['docter_id'=>$docter_id,'organization_id'=>$org_id,'schedule_type'=>$type,'type'=>$i+1,'week'=>$key])->where('time_period_id',$id)->value('id');
|
|
|
- $is = $is_have?'有':'沒有';
|
|
|
-// echo '时间段id'.$id.'----'.$is.'</br>';
|
|
|
+ if($type == 1){
|
|
|
+ $is_have = WeekSchedule::where(['docter_id'=>$docter_id,'schedule_type'=>$type,'type'=>$i+1,'week'=>$key])->where('time_period_id',$id)->value('id');
|
|
|
+ } else {
|
|
|
+ $is_have = WeekSchedule::where(['docter_id'=>0,'schedule_type'=>$type,'type'=>$i+1,'week'=>$key])->where('time_period_id',$id)->value('id');
|
|
|
+ }
|
|
|
if($is_have) continue;
|
|
|
$k++;
|
|
|
WeekSchedule::insert($week_data);
|
|
|
}
|
|
|
} else {
|
|
|
- $is_have = WeekSchedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->value('id');
|
|
|
- if($is_have) WeekSchedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->delete();
|
|
|
+ if($type == 1){
|
|
|
+ $is_have = WeekSchedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->value('id');
|
|
|
+ if($is_have) WeekSchedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->delete();
|
|
|
+ } else {
|
|
|
+ $is_have = WeekSchedule::where(['docter_id' => 0, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->value('id');
|
|
|
+ if($is_have) WeekSchedule::where(['docter_id' => 0, 'organization_id' => $org_id, 'schedule_type' => $type,'type'=>$i+1,'week'=>$key])->whereIn('time_period_id', $times[$i])->delete();
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
DB::commit();
|
| xqd
@@ -832,7 +454,7 @@ class ApiController extends Controller
|
|
|
return apiReturn(200,'ok',$k);
|
|
|
}
|
|
|
|
|
|
- //月排班
|
|
|
+ //设置月排班
|
|
|
public function setmonthScheduel()
|
|
|
{
|
|
|
$docter_id = request('docter_id',1);
|
| xqd
@@ -1066,6 +688,7 @@ class ApiController extends Controller
|
|
|
}
|
|
|
|
|
|
|
|
|
+ //获取医生设置
|
|
|
public function getDocterSetting()
|
|
|
{
|
|
|
$docter_id = intval(request('docter_id'));
|
| xqd
@@ -1337,6 +960,9 @@ class ApiController extends Controller
|
|
|
$data['docter_type'] = $docter->type;
|
|
|
if($docter->type == 1){
|
|
|
$data['list'] = $lists;
|
|
|
+ } else {
|
|
|
+ $organization = Organization::where(['org_id'=>$org_id])->get(['id','name']);
|
|
|
+ $data['list'] = ['value'=>$organization->id,'label'=>$organization->name];
|
|
|
}
|
|
|
}
|
|
|
$data['role'] = $role;
|