gorden hace 10 meses
padre
commit
d6a33fc5ea

+ 38 - 0
app/admin/controller/medical/DoctorController.php

@@ -37,6 +37,44 @@ class DoctorController extends Curd
         return $this->doFormat($query, $format, $limit);
     }
 
+    protected function doSelect(array $where, string $field = null, string $order = 'desc')
+    {
+        $model = $this->model->with('dept');
+        foreach ($where as $column => $value) {
+            if (is_array($value)) {
+                if ($value[0] === 'like' || $value[0] === 'not like') {
+                    $model = $model->where($column, $value[0], "%$value[1]%");
+                } elseif (in_array($value[0], ['>', '=', '<', '<>'])) {
+                    $model = $model->where($column, $value[0], $value[1]);
+                } elseif ($value[0] == 'in' && !empty($value[1])) {
+                    $valArr = $value[1];
+                    if (is_string($value[1])) {
+                        $valArr = explode(",", trim($value[1]));
+                    }
+                    $model = $model->whereIn($column, $valArr);
+                } elseif ($value[0] == 'not in' && !empty($value[1])) {
+                    $valArr = $value[1];
+                    if (is_string($value[1])) {
+                        $valArr = explode(",", trim($value[1]));
+                    }
+                    $model = $model->whereNotIn($column, $valArr);
+                } elseif ($value[0] == 'null') {
+                    $model = $model->whereNull($column);
+                } elseif ($value[0] == 'not null') {
+                    $model = $model->whereNotNull($column);
+                } elseif ($value[0] !== '' || $value[1] !== '') {
+                    $model = $model->whereBetween($column, $value);
+                }
+            } else {
+                $model = $model->where($column, $value);
+            }
+        }
+        if ($field) {
+            $model = $model->orderBy($field, $order);
+        }
+        return $model;
+    }
+
     protected function afterQuery($items)
     {
         foreach ($items as &$item) {

+ 5 - 0
app/admin/controller/sys_manage/DeptController.php

@@ -25,6 +25,11 @@ class DeptController
         return DeptService::deptList($page, $limit, $keywords);
     }
 
+    public function selectList(Request $request)
+    {
+        return DeptService::selectList($request);
+    }
+
     /**
      * @Desc 部门详情
      * @Author Gorden

+ 14 - 0
app/admin/service/sys_manage/DeptService.php

@@ -4,6 +4,7 @@ namespace app\admin\service\sys_manage;
 
 use app\model\SysDept;
 use support\Db;
+use support\Request;
 
 class DeptService
 {
@@ -34,6 +35,19 @@ class DeptService
         return json_success('', compact('list', 'page', 'limit', 'count'));
     }
 
+    public static function selectList(Request $request)
+    {
+
+        $category = $request->get('dept_category', '医护科室');
+
+        $depts = SysDept::where('dept_category',$category)
+            ->select('dept_id','dept_name')
+            ->get()
+            ->toArray();
+
+        return json_success('',$depts);
+    }
+
     /**
      * @Desc 部门详情
      * @Author Gorden

+ 3 - 3
app/admin/validate/medical/DoctorValidate.php

@@ -16,7 +16,7 @@ class DoctorValidate extends Validate
         'doctor_price|收费标准' => 'require|float',
         'doctor_type|类型' => 'require|in:0,1,2',
         'doctor_on_line|是否支持在线沟通' => 'require|in:0,1',
-        'doctor_shop_id' => 'require|integer',
+//        'doctor_shop_id' => 'require|integer',
         'doctor_subject_id' => 'require|integer',
         'doctor_status|医生状态' => 'in:0,1'
     ];
@@ -25,9 +25,9 @@ class DoctorValidate extends Validate
 
     protected $scene = [
         'add' => ['doctor_name', 'doctor_position', 'doctor_avatar', 'doctor_mobile', 'doctor_is_visit', 'doctor_price',
-            'doctor_type', 'doctor_on_line', 'doctor_shop_id', 'doctor_subject_id', 'doctor_status'],
+            'doctor_type', 'doctor_on_line', 'doctor_subject_id', 'doctor_status'],
         'update' => ['doctor_id', 'doctor_name', 'doctor_position', 'doctor_avatar', 'doctor_mobile', 'doctor_is_visit', 'doctor_price',
-            'doctor_type', 'doctor_on_line', 'doctor_shop_id', 'doctor_subject_id', 'doctor_status'],
+            'doctor_type', 'doctor_on_line', 'doctor_subject_id', 'doctor_status'],
         'info' => ['doctor_id']
     ];
 }

+ 3 - 0
app/model/MedicalDoctor.php

@@ -20,4 +20,7 @@ class MedicalDoctor extends Model
     {
         return $date->format('Y-m-d H:i:s');
     }
+    public function dept(){
+        return $this->hasOne(SysDept::class,'dept_id','doctor_dept_id')->select('dept_id','dept_name');
+    }
 }

+ 1 - 0
route/admin.php

@@ -91,6 +91,7 @@ Route::group('/admin', function () {
         /* 部门管理 */
         Route::group('/dept', function () {
             Route::get('/list', [\app\admin\controller\sys_manage\DeptController::class, 'deptList']);
+            Route::get('/selectList', [\app\admin\controller\sys_manage\DeptController::class, 'selectList']);
             Route::get('/info/{id:\d+}', [\app\admin\controller\sys_manage\DeptController::class, 'deptInfo']);
             Route::post('/add', [\app\admin\controller\sys_manage\DeptController::class, 'addDept']);
             Route::post('/update/{id:\d+}', [\app\admin\controller\sys_manage\DeptController::class, 'updateDept']);