$datum['Id'], 'name' => $datum['名称'], ]; } } return [ 'name' => $group_info['姓名'], 'id_number' => $group_info['证件号码'], 'combo_name' => $group_info['套餐名称'], 'combo_id' => $group_info['套餐Id'], 'start_time' => $group_info['预约开始日期'], 'end_time' => $group_info['预约结束日期'], 'group_name' => $group_info['单位名称'] . ($group_info['部门名称']), 'items' => $items, 'appointment_number' => $group_info['预约Id'] ]; } public function combo($hospital, $data) { $peis = new PEISApiController(); $combo_list = $peis::Post('套餐查询', $hospital, $data)['data']; $list = []; foreach ($combo_list as $item) { $list[] = [ 'id' => $item['Id'], 'name' => $item['名称'], 'py' => $item['拼音'], 'price' => $item['价格'], 'original_price' => $item['原价'], 'sex' => $item['性别限制'], 'desc' => $item['简介'], 'count' => $item['简介'], // 'original_info' => $item ]; } return $list; } public function combo_info($hospital, $data) { $peis = new PEISApiController(); $combo_info = $peis::Post('套餐详情查询', $hospital, $data)['data'][0]; //Yo::error_exit(['message'=>"res",'code'=>200,'data'=>$combo_info]); $info = [ 'id' => $combo_info['Id'], 'name' => $combo_info['名称'], 'price' => $combo_info['价格'], 'original_price' => $combo_info['原价'], 'sex' => $combo_info['性别限制'], 'items' => [], ]; foreach ($combo_info['包含项目'] as $item) { $info['items'][] = [ 'id' => $item['Id'], 'name' => $item['名称'], 'price' => $item['价格'], 'jianjie' => $item['简介'], ]; } $info['count'] = count($info['items']); return $info; } public function items($hospital, $data) { $peis = new PEISApiController(); $items = $peis::Post('自选项目查询', $hospital, $data)['data']; $list = []; foreach ($items as $item) { $list[] = [ 'id' => $item['Id'], 'name' => $item['名称'], 'py' => $item['拼音'], 'price' => $item['价格'], 'sex' => $item['性别限制'], 'clinic' => $item['科室Id'], 'clinic_name' => $item['科室名称'], 'choose' => $item['可选'], 'jianjie'=>$item['简介'], ]; } return $list; } public function mp_items_list(Request $request) { Login::user(); $hospital = $request->post('hospital'); $combo = $request->post('combo'); $list = self::items($hospital, [ '价格下限' => "0", '价格上限' => "999999", "性别" => null, "妇检" => null, "套餐Id" => $combo ? (string)$combo : null, "项目Id列表" => [] ]); $list_map = []; foreach ($list as $item) { if (!!$item['choose']) { if (!isset($list_map['g' . $item['clinic']])) { $list_map['g' . $item['clinic']] = [ 'id' => $item['clinic'], 'name' => $item['clinic_name'], 'items' => [] ]; } $list_map['g' . $item['clinic']]['items'][] = [ 'id' => $item['id'], 'name' => $item['name'], 'py' => $item['py'], 'price' => $item['price'], 'sex' => $item['sex'], ]; } } $l = []; foreach ($list_map as $item) { $l[] = $item; } return Yo::echo([ 'list' => $l ]); } public function combo_list(Request $request) { Login::admin([], [17, 24]); $hospital = $request->post('hospital'); $list = self::combo($hospital, [ '价格下限' => "0", '价格上限' => "999999", '性别' => null, '妇检' => false ]); return Yo::echo([ 'list' => $list ]); } public function mp_buy_info(Request $request) { Login::user(); $hospital = $request->post('hospital'); $combo = $request->post('combo'); $count = 0; $price = 0; $original_price = 0; $combo_info = false; if (!!$combo) { $combo_info = self::combo_info($hospital, [ '套餐Id' => $combo, ]); // var_dump($combo_info); $count += $combo_info['count']; $price += $combo_info['price']; if ($combo_info['original_price'] > $combo_info['price']) { $original_price += $combo_info['original_price']; } else { $original_price += $combo_info['price']; } } $items = $request->post('items'); $items_list = []; if (count($items) != 0) { $items_list = self::items($hospital, [ '价格下限' => "0", '价格上限' => "999999", "性别" => null, "妇检" => null, "套餐Id" => null, "项目Id列表" => $items ]); } $item_list_ret = []; foreach ($items_list as $item) { $count++; $price += $item['price']; $original_price += $item['price']; $item_list_ret[] = [ 'id' => $item['id'], 'name' => $item['name'], 'price' => $item['price'], 'jianjie' => $item['jianjie'] ]; } $time = $request->post('time'); $time_info = Appointment::where('id', $time['id'])->where('status', 1)->where('del', 2)->first(); if (!!$time_info) { if ($time_info->max_count <= $time_info->used_count) { $time_info = false; } } if (!!$time_info) { $show = date('Y-m-d H:i', strtotime($time_info->date . ' ' . $time_info->start_time)) . ' - ' . date('H:i', strtotime($time_info->date . ' ' . $time_info->end_time)); $time_info = [ 'id' => $time_info->id, 'date' => $time_info->date, 'show' => $show, ]; } $group = $request->post('group'); $group_info = false; if (!!$group) { $group_info = self::group_info($hospital, [ "电话号码" => null, "证件号码" => null, "预约Id" => $group ]); $count += count($group_info['items']); } return Yo::echo([ 'price' => $price, 'original_price' => $original_price, 'group' => $group_info, 'count' => $count, 'combo' => $combo_info, 'items' => $item_list_ret, 'time' => !!$time_info ? $time_info : [ 'id' => 0, 'date' => date('Y-m-d'), ], ]); } public function mp_combo_list(Request $request) { // Login::user(); $hospital = $request->post('hospital'); $list = self::combo($hospital, [ '价格下限' => "0", '价格上限' => "999999", '性别' => null, '妇检' => false ]); $list_map = []; foreach ($list as $item) { $item['count'] = 0; $list_map['i' . $item['id']] = $item; } $hospital_additional = HospitalAdditional::where('hospital', $hospital)->first(); $self_count = []; if (!!$hospital_additional) $self_count = json_decode($hospital_additional->combo_count, true); $public_additional = HospitalAdditional::where('hospital', 0)->first(); $public_count = []; if (!!$public_additional) $public_count = json_decode($public_additional->combo_count, true); foreach ($public_count as $item) { if (isset($list_map['i' . $item['id']])) { $list_map['i' . $item['id']]['count'] = $item['count']; } } foreach ($self_count as $item) { if (isset($list_map['i' . $item['id']])) { $list_map['i' . $item['id']]['count'] = $item['count']; } } $l = []; foreach ($list_map as $item) { $l[] = $item; } return Yo::echo([ 'list' => $l ]); } }