| xqd
@@ -14,6 +14,8 @@ use App\Models\DocterServiceTime;
|
|
|
use App\Models\Organization;
|
|
|
use App\Models\Schedule;
|
|
|
use App\Models\SchedulePeriod;
|
|
|
+use App\Models\ServicePack;
|
|
|
+use App\Models\Team;
|
|
|
use App\Models\TimePeriod;
|
|
|
use DB;
|
|
|
|
| xqd
@@ -31,6 +33,7 @@ class DocterController extends AuthController
|
|
|
'sort_type' => 'in:0,1,2,3',
|
|
|
'schedule_date' => 'required_if:list_type,3|date',
|
|
|
'time_period_id' => 'required_if:list_type,3|integer',
|
|
|
+ 'is_pack_docter' => 'in:0,1',
|
|
|
]);
|
|
|
$user = $this->user;
|
|
|
|
| xqd
@@ -83,6 +86,27 @@ class DocterController extends AuthController
|
|
|
$builder->whereNotIn('id', $docterIds3);
|
|
|
}
|
|
|
|
|
|
+ if (!empty($req['is_pack_docter'])) {
|
|
|
+ $team_ids = ServicePack::pluck('team_id')->toArray();
|
|
|
+ $team_id_arr = [];
|
|
|
+ foreach ($team_ids as $k => $v) {
|
|
|
+ if (!empty($v) && is_array($v)) {
|
|
|
+ $team_id_arr = array_merge($team_id_arr, $v);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $team_id_arr = array_values(array_unique($team_id_arr));
|
|
|
+ $teams = Team::with(['docter'])->whereIn('id', $team_id_arr)->get()->toArray();
|
|
|
+ $docterIds4 = [];
|
|
|
+ foreach ($teams as $k => $v) {
|
|
|
+ foreach ($v['docter'] as $k1 => $v1) {
|
|
|
+ if (!in_array($v1['id'], $docterIds4)) {
|
|
|
+ $docterIds4[] = $v1['id'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $builder->whereIn('id', $docterIds4);
|
|
|
+ }
|
|
|
+
|
|
|
if (!empty($req['sort_type'])) {
|
|
|
if ($req['sort_type'] == 1) {
|
|
|
$builder->orderBy('distance', 'asc');
|
| xqd
@@ -108,6 +132,9 @@ class DocterController extends AuthController
|
|
|
if (!empty($req['city_id'])) {
|
|
|
$builder2->whereIn('id', $cityDocterIds);
|
|
|
}
|
|
|
+ if (!empty($req['is_pack_docter'])) {
|
|
|
+ $builder->whereIn('id', $docterIds4);
|
|
|
+ }
|
|
|
if (!empty($req['sort_type'])) {
|
|
|
if ($req['sort_type'] == 1) {
|
|
|
$builder2->orderBy('distance', 'asc');
|