问诊结束列表+民族

This commit is contained in:
wucongxing 2023-08-30 11:32:43 +08:00
parent 3e8562641e
commit b5739783ad
3 changed files with 83 additions and 9 deletions

View File

@ -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("签名错误");
}

View File

@ -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);
}
}

View File

@ -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,16 +860,28 @@ 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['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'] = $item['order_inquiry_id'];
$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']) {