gorden 4 месяцев назад
Родитель
Сommit
bfaca9acf8
2 измененных файлов с 89 добавлено и 18 удалено
  1. 87 18
      app/admin/controller/member/WellnessRecordController.php
  2. 2 0
      route/admin.php

+ 87 - 18
app/admin/controller/member/WellnessRecordController.php

@@ -151,27 +151,20 @@ class WellnessRecordController extends Curd
                 'wellness_record_status' => $item->wellness_record_status,
                 'wellness_record_name' => $item->wellness_record_name,
                 'wellness_record_datetime' => $item->wellness_record_datetime,
-                'wellness_record_json' => $item->wellness_record_json,
                 'wellness_record_content' => $item->wellness_record_content,
                 'wellness_record_remark' => $item->wellness_record_remark,
                 'wellness_record_extend_json' => $item->wellness_record_extend_json,
                 'wellness_record_addtimes' => $item->wellness_record_addtimes,
+                'wellness_record_file_json' => json_decode($item->wellness_record_file_json),
+                'wellness_record_json' => json_decode($item->wellness_record_json,true),
             ];
-            if (!empty($item->wellness_record_file_json)) {
-                $item->wellness_record_file_json = json_decode($item->wellness_record_file_json, true);
-                foreach ($item->wellness_record_file_json as $value) {
-                    $itemNew['wellness_record_file_json'][] = [
-                        'url' => isset($value['url']) ? getenv('STORAGE_DOMAIN') . $value['url'] : '',
-                        'name' => isset($value['name']) ? $value['name'] : ''
-                    ];
+            if (!empty($itemNew['wellness_record_json'])) {
+                foreach ($itemNew['wellness_record_json'] as $key => $item) {
+                    if (empty($item['entry'])) {
+                        $itemNew['wellness_record_json'][$key]['entry'] = 'none';
+                    }
                 }
             }
-            if (!empty($item->wellness_record_json)) {
-                $itemNew['wellness_record_json'] = json_decode($item->wellness_record_json);
-            }
-            if (!empty($item->wellness_record_extend_json)) {
-                $itemNew['wellness_record_extend_json'] = json_decode($item->wellness_record_extend_json);
-            }
 
             $itemsNew[] = $itemNew;
         }
@@ -183,6 +176,82 @@ class WellnessRecordController extends Curd
         return json(['code' => 200, 'msg' => 'success', 'data' => $data]);
     }
 
+    /**
+     * @Desc 添加医嘱
+     * @Author Gorden
+     * @Date 2024/11/29 11:27
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function insertAdvice(Request $request): Response
+    {
+        try {
+            $params = $request->post();
+            $params['wellness_record_file_json'] = json_encode($params['wellness_record_file_json']);
+            $params['wellness_record_json'] = json_encode($params['wellness_record_json']);
+            $data = $this->inputFilter($params);
+            $data['wellness_record_datetime'] = date('Y-m-d H:i:s', strtotime($data['wellness_record_datetime']));
+            $this->doInsert($data);
+        } catch (BusinessException $customException) {
+            return json_fail($customException->getMessage());
+        } catch (\Exception $e) {
+            return json_fail('数据写入失败11');
+        }
+        return json_success('success');
+    }
+
+    /**
+     * @Desc 编辑医嘱
+     * @Author Gorden
+     * @Date 2024/11/29 11:27
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function updateAdvice(Request $request): Response
+    {
+        try {
+            [$id, $data] = $this->updateAdviceInput($request);
+            $this->doUpdate($id, $data);
+        } catch (BusinessException $e) {
+            return json_fail($e->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getMessage());
+            return json_fail('数据更新失败');
+        }
+
+        return json_success('success');
+    }
+
+    /**
+     * @Desc 编辑医嘱预处理
+     * @Author Gorden
+     * @Date 2024/11/29 13:07
+     *
+     * @param Request $request
+     * @return array
+     * @throws BusinessException
+     */
+    protected function updateAdviceInput(Request $request): array
+    {
+        $primary_key = $this->model->getKeyName();
+        $id = $request->post($primary_key);
+        $model = $this->model->find($id);
+        if (!$model) {
+            throw new BusinessException('记录不存在', 2);
+        }
+        $params = $request->post();
+        $params['wellness_record_file_json'] = json_encode($params['wellness_record_file_json']);
+        $params['wellness_record_json'] = json_encode($params['wellness_record_json']);
+
+        $data = $this->inputFilter($params);
+        $data['wellness_record_datetime'] = date('Y-m-d H:i:s', strtotime($data['wellness_record_datetime']));
+
+        unset($data[$primary_key]);
+        return [$id, $data];
+    }
+
     /**
      * @Desc 我的档案
      * @Author Gorden
@@ -496,6 +565,10 @@ class WellnessRecordController extends Curd
     {
         $primary_key = $this->model->getKeyName();
         $id = $request->post($primary_key);
+        $model = $this->model->find($id);
+        if (!$model) {
+            throw new BusinessException('记录不存在', 2);
+        }
         $data = $this->inputFilter($request->post());
         $data['wellness_record_datetime'] = date('Y-m-d H:i:s', strtotime($data['wellness_record_datetime']));
         if (!empty($data['wellness_record_file_json'])) {
@@ -515,10 +588,6 @@ class WellnessRecordController extends Curd
         if (!empty($request->post('records'))) {
             $data['wellness_record_json'] = json_encode($request->post('records'));
         }
-        $model = $this->model->find($id);
-        if (!$model) {
-            throw new BusinessException('记录不存在', 2);
-        }
         unset($data[$primary_key]);
         return [$id, $data];
     }

+ 2 - 0
route/admin.php

@@ -885,6 +885,8 @@ Route::group('/admin', function () {
         Route::group('/wellnessRecord', function () {
             Route::get('/my/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'my']);
             Route::get('/advice', [\app\admin\controller\member\WellnessRecordController::class, 'advice']);
+            Route::post('/advice/add', [\app\admin\controller\member\WellnessRecordController::class, 'insertAdvice']);
+            Route::post('/advice/update', [\app\admin\controller\member\WellnessRecordController::class, 'updateAdvice']);
             Route::get('/archives', [\app\admin\controller\member\WellnessRecordController::class, 'archives']);
             Route::get('/checkup', [\app\admin\controller\member\WellnessRecordController::class, 'checkup']);
             Route::get('/visit/{id:[0-9a-zA-Z]+}', [\app\admin\controller\member\WellnessRecordController::class, 'visit']);