LAPTOP-VT1IP978\suxio 2 недель назад
Родитель
Сommit
26c624fa2c

+ 29 - 6
app/Http/Controllers/DrugReportInfoController.php

@@ -5,18 +5,41 @@ namespace App\Http\Controllers;
 use App\Http\Requests\ListRequest;
 use App\Http\Resources\DrugReportInfoListResource;
 use App\Services\DrugReportInfoService;
+use Illuminate\Http\JsonResponse;
+use Illuminate\Support\Facades\Log;
 
 class DrugReportInfoController extends Controller
 {
+    /**
+     * 查询医药报告信息
+     * @param ListRequest $request
+     * @param DrugReportInfoService $service
+     * @return JsonResponse
+     */
     public function index(ListRequest $request, DrugReportInfoService $service)
     {
-        $filters = $request->getFilters();
-        $search = $request->getSearch();
-        $sort = $request->getSort();
-        $perPage = $request->getPerPage();
+        try {
+            Log::channel('api')->info('查询医药报告信息', [
+                'ip' => $request->ip(),
+                'user_agent' => $request->userAgent(),
+                'data' => $request->all()
+            ]);
 
-        $list = $service->getList($filters, $search, $sort, $perPage);
+            $filters = $request->getFilters();
+            $search = $request->getSearch();
+            $sort = $request->getSort();
+            $perPage = $request->getPerPage();
 
-        return $this->success(new DrugReportInfoListResource($list));
+            $list = $service->getList($filters, $search, $sort, $perPage);
+
+            return $this->success(new DrugReportInfoListResource($list));
+        } catch (\Exception $e) {
+            Log::channel('api')->error('查询医药报告信息失败', [
+                'error' => $e->getMessage(),
+                'trace' => $e->getTraceAsString()
+            ]);
+
+            return $this->error($e->getCode(), $e->getMessage());
+        }
     }
 }

+ 2 - 2
app/Models/DrugReportInfo.php

@@ -11,9 +11,9 @@ use Illuminate\Database\Eloquent\Model;
  *
  * @property int $id
  * @property string $drug_report_v2_id 药检报告ID(来源于querysealdrugreport)
- * @property string $drug_report_name 药检报告名称
  * @property string $drug_report_id 报告ID(来源于querydrugreport)
  * @property string $report_id 报告ID(来源于querysealdrugreport)
+ * @property string $report_name 报告名称
  * @property string $report_no 报告编号
  * @property string $report_date 报告日期
  * @property string $batch_no 批次号
@@ -57,7 +57,6 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereDrugId($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereDrugName($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereDrugReportId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereDrugReportName($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereDrugReportV2Id($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereFromEntName($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereFromRefEntId($value)
@@ -75,6 +74,7 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereRawData($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereReportDate($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereReportId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereReportName($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereReportNo($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereSealRawData($value)
  * @method static \Illuminate\Database\Eloquent\Builder|DrugReportInfo whereSealedReportUrl($value)

+ 5 - 11
app/Services/AlihealthService.php

@@ -32,6 +32,7 @@ class AlihealthService
      * @param int $page
      * @param int $pageSize
      * @return array
+     * @throws \Exception
      */
     public function queryDrugReport(string $beginTime, string $endTime, int $page = 1, int $pageSize = 20): array
     {
@@ -51,14 +52,12 @@ class AlihealthService
 
         $resp = $this->client->execute($req);
         if ('SUCCESS' <> $resp->res_result->msg_code) {
-            throw new \Exception($resp->result->msg_info);
+            throw new \Exception($resp->res_result->msg_info);
         }
 
-        $data = json_decode(json_encode(
+        return json_decode(json_encode(
             $resp->res_result->model->result->onenet_drug_report_top_d_t_o
         ), true);
-
-        return (array)$resp;
     }
 
     /**
@@ -90,12 +89,9 @@ class AlihealthService
             throw new \Exception($resp->result->msg_info);
         }
 
-        $data = json_decode(json_encode(
+        return json_decode(json_encode(
             $resp->result->model->result_list->ocr_seal_drug_report_d_t_o
         ), true);
-        app(DrugReportInfoService::class)->bulkInsert($data);
-
-        return (array)$resp;
     }
 
     /**
@@ -124,10 +120,8 @@ class AlihealthService
             throw new \Exception($resp->result->msg_info);
         }
 
-        $data = json_decode(json_encode(
+        return json_decode(json_encode(
             $resp->result->model->result_list->top_drug_report_opt_log
         ), true);
-
-        return (array)$resp;
     }
 }

+ 1 - 1
app/Services/DrugReportInfoService.php

@@ -34,8 +34,8 @@ class DrugReportInfoService
         return array_map(function ($item) {
             return [
                 'drug_report_v2_id' => $item['drug_report_v2_id'] ?? '',
-                'drug_report_name' => $item['drug_report_name'] ?? '',
                 'report_id' => $item['report_id'] ?? '',
+                'report_name' => $item['drug_report_name'] ?? '',
                 'report_no' => $item['report_no'] ?? '',
                 'report_date' => $item['report_date'] ?? '',
                 'batch_no' => $item['batch_no'] ?? '',

+ 17 - 1
config/logging.php

@@ -37,7 +37,7 @@ return [
     'channels' => [
         'stack' => [
             'driver' => 'stack',
-            'channels' => ['single'],
+            'channels' => ['daily', 'slack'],
             'ignore_exceptions' => false,
         ],
 
@@ -108,6 +108,22 @@ return [
             'permission' => 0664,
             'replace_placeholders' => true,
         ],
+
+        'sync' => [
+            'driver' => 'daily',
+            'path' => storage_path('logs/sync.log'),
+            'level' => 'debug',
+            'days' => 30,
+            'permission' => 0664,
+            'replace_placeholders' => true,
+        ],
+
+        'api' => [
+            'driver' => 'daily',
+            'path' => storage_path('logs/api.log'),
+            'level' => 'info',
+            'days' => 14,
+        ],
     ],
 
 ];