From b5739783ad999cd29c28f254b21b262245ee6a89 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Wed, 30 Aug 2023 11:32:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E8=AF=8A=E7=BB=93=E6=9D=9F=E5=88=97?= =?UTF-8?q?=E8=A1=A8+=E6=B0=91=E6=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/CallBackController.php | 1 + app/Model/OrderInquiry.php | 51 +++++++++++++++++++++++++++ app/Services/InquiryService.php | 40 ++++++++++++++++----- 3 files changed, 83 insertions(+), 9 deletions(-) diff --git a/app/Controller/CallBackController.php b/app/Controller/CallBackController.php index 8b6f44f..29fcb31 100644 --- a/app/Controller/CallBackController.php +++ b/app/Controller/CallBackController.php @@ -1624,6 +1624,7 @@ class CallBackController extends AbstractController $time = date('Ymd'); $sign = md5($basic_detection_organ['app_id'] . $basic_detection_organ['app_secret'] . $time); + dump($sign); if ($auth != $sign){ return $this->detectionResultFailReturn("签名错误"); } diff --git a/app/Model/OrderInquiry.php b/app/Model/OrderInquiry.php index b18251e..5ca18b8 100644 --- a/app/Model/OrderInquiry.php +++ b/app/Model/OrderInquiry.php @@ -8,6 +8,7 @@ namespace App\Model; use Hyperf\Database\Model\Collection; use Hyperf\Database\Model\Relations\HasOne; use Hyperf\Database\Query\Builder; +use Hyperf\DbConnection\Db; use Hyperf\Snowflake\Concern\Snowflake; /** @@ -434,4 +435,54 @@ class OrderInquiry extends Model ->limit($limit) ->get($fields); } + + /** + * 获取问诊结束会话列表-分页 + * @param array $params + * @param array $fields + * @param int|null $page + * @param int|null $per_page + * @return array + */ + public static function getInquiryEndPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array + { + $query = self::select("user_id") + ->whereNotIn('user_id', function ($query) use ($params){ + $query->select('user_id') + ->from('order_inquiry') + ->whereIn('inquiry_status', [1,2,3,4]) + ->where($params) + ->groupBy(["user_id"]); + }) + ->whereIn('inquiry_status', [5,6]) + ->where($params) + ->orderBy('complete_time', 'desc') + ->groupBy(["user_id"]); + + $result = $query->paginate($per_page, $fields, "page", $page); + + $data = array(); + $data['current_page'] = $result->currentPage();// 当前页码 + $data['total'] = $result->total();//数据总数 + $data['data'] = $result->items();//数据 + $data['per_page'] = $result->perPage();//每页个数 + $data['last_page'] = $result->lastPage();//最后一页 + + return $data; + } + + /** + * 获取某种状态的最后一条订单 + * @param array $params + * @param array $inquiry_status_params + * @param array $fields + * @return object|null + */ + public static function getInquiryStatusLastOne(array $params, array $inquiry_status_params,array $fields = ["*"]): object|null + { + return self::where($params) + ->whereIn("inquiry_status", $inquiry_status_params) + ->latest() + ->first($fields); + } } diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index f19821c..cd610f4 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -407,10 +407,19 @@ class InquiryService extends BaseService $params['family_id'] = $order_inquiry_case['family_id']; $patient_family = PatientFamily::getOne($params); + // 民族 + $nation_name = ""; + if (isset($patient_family)){ + if (!empty($patient_family['nation_name'])){ + $nation_name = $patient_family['nation_name']; + }else{ +// if (!empty($order_inquiry_case[''])) + } + } $order_inquiry_case['height'] = $order_inquiry_case['height'] ?: $patient_family['height'] ?: NULL; $order_inquiry_case['weight'] = $order_inquiry_case['weight'] ?: $patient_family['weight'] ?: NULL; $order_inquiry_case['job_name'] = $patient_family['job_name'] ?? ""; - $order_inquiry_case['nation_name'] = $patient_family['nation_name'] ?? ""; + $order_inquiry_case['nation_name'] = $nation_name; $order_inquiry_case['marital_status'] = $patient_family['marital_status'] ?? 0; $order_inquiry_case['id_number'] = $patient_family['id_number'] ?? ""; @@ -822,6 +831,8 @@ class InquiryService extends BaseService $page = $this->request->input('page', 1); $per_page = $this->request->input('per_page', 10); + // 获取该医生下问诊过的用户id和家庭成员id + $params = array(); $params['doctor_id'] = $user_info['client_user_id']; @@ -849,14 +860,26 @@ class InquiryService extends BaseService 'created_at', ]; - $result = OrderInquiry::getInquiryStatusWithDoctorPage($params, $inquiry_status_params, $fields, $page, $per_page); + $result = OrderInquiry::getInquiryEndPage($params, $fields, $page, $per_page); if (!empty($result['data'])) { foreach ($result['data'] as &$item) { $params = array(); - $params['message_send_result'] = 1; - $params['order_inquiry_id'] = $item['order_inquiry_id']; - $item['message_im'] = MessageIm::getOne($params); + $params['doctor_id'] = $user_info['client_user_id']; + $params['user_id'] = $item['user_id']; + + $inquiry_status_params = [5,6]; + $order_inquiry = OrderInquiry::getInquiryStatusLastOne($params,$inquiry_status_params,$fields); + + unset($item['user_id']); + if (!empty($order_inquiry)){ + $item = $order_inquiry->toArray(); + + $params = array(); + $params['message_send_result'] = 1; + $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $item['message_im'] = MessageIm::getOne($params); + } } } return success($result); @@ -1332,10 +1355,6 @@ class InquiryService extends BaseService $params[] = ['patient_id', '=', $patient_id]; } - if (!empty($family_id)) { - $params[] = ['family_id', '=', $family_id]; - } - $params = array(); $params[] = ['patient_id', '=', $patient_id]; $params[] = ['doctor_id', '=', $doctor_id]; @@ -1511,6 +1530,9 @@ class InquiryService extends BaseService $wait_assign_time = 60 * 5; $wait_inquiry_time = 60 * 10; $wait_finish_time = 60 * 30; + } elseif ($order_inquiry['inquiry_type'] == 5) { + // 问诊购药 + $wait_finish_time = 60 * 60 * 24 * 3; } switch ($order_inquiry['inquiry_status']) {