Browse Source

医生管理

gorden 1 year ago
parent
commit
2c0ea792ed

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

@@ -0,0 +1,55 @@
+<?php
+
+namespace app\admin\controller\medical;
+
+use app\admin\validate\medical\DoctorValidate;
+use app\controller\Curd;
+use app\model\MedicalDoctor;
+use support\Request;
+use support\Response;
+
+class DoctorController extends Curd
+{
+    public function __construct()
+    {
+        $this->model = new MedicalDoctor();
+        $this->validate = true;
+        $this->validateClass = new DoctorValidate();
+    }
+
+    /**
+     * @Desc 列表
+     * @Author Gorden
+     * @Date 2024/2/29 14:31
+     *
+     * @param Request $request
+     * @return Response
+     * @throws \support\exception\BusinessException
+     */
+    public function select(Request $request): Response
+    {
+        [$where, $format, $limit, $field, $order] = $this->selectInput($request);
+        $order = $request->get('order', 'desc');
+        $field = $field ?? 'doctor_addTime';
+        $where['doctor_is_del'] = 0;
+        $query = $this->doSelect($where, $field, $order);
+        return $this->doFormat($query, $format, $limit);
+    }
+
+    /**
+     * @Desc 软删除
+     * @Author Gorden
+     * @Date 2024/2/29 14:37
+     *
+     * @param Request $request
+     * @return Response
+     * @throws \support\exception\BusinessException
+     */
+    public function delete(Request $request): Response
+    {
+        $ids = $this->deleteInput($request);
+        $this->doSoftDelete($ids, ['doctor_is_del' => 1]);
+
+        return json_success('success');
+    }
+}

+ 32 - 0
app/admin/validate/medical/DoctorValidate.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace app\admin\validate\medical;
+
+use think\Validate;
+
+class DoctorValidate extends Validate
+{
+    protected $rule = [
+        'doctor_id' => 'require|integer',
+        'doctor_name' => 'require|chsDash',
+        'doctor_position' => 'require|chsDash',
+        'doctor_avatar' => 'require|regex:/^[0-9a-zA-Z\.\/]+$/',
+        'doctor_mobile' => 'mobile',
+        'doctor_is_visit' => 'require|in:0,1',
+        'doctor_price' => 'require|float',
+        'doctor_type' => 'require|in:0,1,2',
+        'doctor_on_line' => 'require|in:0,1',
+        'doctor_shop_id' => 'require|integer',
+        'doctor_subject_id' => 'require|integer',
+        'doctor_status' => 'in:0,1'
+    ];
+
+    protected $message = [];
+
+    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'],
+        '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'],
+    ];
+}

+ 3 - 0
app/controller/Curd.php

@@ -381,6 +381,9 @@ class Curd
             if (is_array($item)) {
                 $data[$col] = implode(',', $item);
             }
+            if ($item != '' && (strpos(strtolower($columns[$col]), 'varchar') || strpos(strtolower($columns[$col]), 'text'))) {
+                $data[$col] = htmlspecialchars($item);
+            }
         }
         if (empty($data['created_at'])) {
             unset($data['created_at']);

+ 18 - 0
app/model/MedicalDoctor.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace app\model;
+
+use support\Model;
+
+class MedicalDoctor extends Model
+{
+    protected $table = 'medical_doctor';
+
+    protected $primaryKey = 'doctor_id';
+
+    protected $dateFormat = 'U';
+
+    public const CREATED_AT = 'doctor_addTime';
+
+    public const UPDATED_AT = 'doctor_updateTime';
+}

+ 12 - 0
route/admin.php

@@ -202,4 +202,16 @@ Route::group('/admin', function () {
             \app\middleware\AdminAuthCheck::class
         ]);
     });
+    /* 医疗 */
+    Route::group('/medical', function () {
+        /* 医生管理 */
+        Route::group('/doctor', function () {
+            Route::get('/list', [\app\admin\controller\medical\DoctorController::class, 'select']);
+            Route::post('/add', [\app\admin\controller\medical\DoctorController::class, 'insert']);
+            Route::post('/update', [\app\admin\controller\medical\DoctorController::class, 'update']);
+            Route::delete('/delete', [\app\admin\controller\medical\DoctorController::class, 'delete']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
+    });
 });