新增问诊订单列表、详情
This commit is contained in:
@@ -3,9 +3,11 @@
|
||||
namespace App\Services;
|
||||
|
||||
use App\Amqp\Producer\CancelUnpayOrdersDelayDirectProducer;
|
||||
use App\Constants\DoctorTitleCode;
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Exception\BusinessException;
|
||||
use App\Model\DiseaseClass;
|
||||
use App\Model\Hospital;
|
||||
use App\Model\InquiryCaseProduct;
|
||||
use App\Model\OrderEvaluation;
|
||||
use App\Model\OrderInquiry;
|
||||
@@ -405,7 +407,7 @@ class InquiryService extends BaseService
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医生评价
|
||||
* 新增问诊评价
|
||||
* @return array
|
||||
*/
|
||||
public function addInquiryEvaluation(): array
|
||||
@@ -475,6 +477,207 @@ class InquiryService extends BaseService
|
||||
return success();
|
||||
}
|
||||
|
||||
//获取患者问诊订单列表
|
||||
public function getPatientInquiryOrderList(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$inquiry_status = $this->request->input('inquiry_status',0);
|
||||
$family_id = $this->request->input('family_id');
|
||||
$page = $this->request->input('page',1);
|
||||
$per_page = $this->request->input('per_page',10);
|
||||
|
||||
$params = array();
|
||||
$params['patient_id'] = $user_info['client_user_id'];
|
||||
if (!empty($family_id)){
|
||||
$params['family_id'] = $family_id;
|
||||
}
|
||||
|
||||
$inquiry_status_params = [];
|
||||
if (!empty($inquiry_status) && $inquiry_status != 0){
|
||||
// 问诊订单状态(0:全部 1:待支付 2:待接诊 3:问诊中 4:完成/取消
|
||||
// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||
if ($inquiry_status == 1){
|
||||
$inquiry_status_params = [1];
|
||||
}
|
||||
|
||||
if ($inquiry_status == 2){
|
||||
$inquiry_status_params = [2,3];
|
||||
}
|
||||
|
||||
if ($inquiry_status == 3){
|
||||
$inquiry_status_params = [4];
|
||||
}
|
||||
|
||||
if ($inquiry_status == 4){
|
||||
$inquiry_status_params = [5,6,7];
|
||||
}
|
||||
}
|
||||
|
||||
$params['is_delete'] = 0;
|
||||
|
||||
$fields = [
|
||||
'order_inquiry_id',
|
||||
'patient_id',
|
||||
'doctor_id',
|
||||
'family_id',
|
||||
'inquiry_type',
|
||||
'inquiry_mode',
|
||||
'inquiry_status',
|
||||
'is_delete',
|
||||
'inquiry_refund_status',
|
||||
'inquiry_pay_channel',
|
||||
'inquiry_pay_status',
|
||||
'inquiry_no',
|
||||
'escrow_trade_no',
|
||||
'amount_total',
|
||||
'payment_amount_total',
|
||||
'patient_name',
|
||||
'patient_name_mask',
|
||||
'patient_sex',
|
||||
'patient_age',
|
||||
'created_at',
|
||||
];
|
||||
$order_inquiry = OrderInquiry::getPatientOrderInquiryPage($params,$inquiry_status_params,$fields);
|
||||
if (empty($order_inquiry['data'])){
|
||||
return success();
|
||||
}
|
||||
|
||||
foreach ($order_inquiry['data'] as &$item){
|
||||
$item['disease_desc'] = $item['OrderInquiryCase']['disease_desc'];
|
||||
unset($item['OrderInquiryCase']);
|
||||
|
||||
// 获取医生数据
|
||||
$item['user_doctor'] = [];
|
||||
if (!empty($item['doctor_id'])){
|
||||
$fields = [
|
||||
'doctor_id',
|
||||
'user_name',
|
||||
'doctor_title',
|
||||
'hospital_id',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
$params['doctor_id'] = $item['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params,$fields);
|
||||
if (empty($user_doctor)){
|
||||
return fail(HttpEnumCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
// 转换医生职称
|
||||
$user_doctor['doctor_title'] = empty($user_doctor['doctor_title']) ? "" : DoctorTitleCode::getMessage($user_doctor['doctor_title']);
|
||||
|
||||
// 获取医生医院名称
|
||||
$user_doctor['hospital_name'] = "";
|
||||
$user_doctor['hospital_level_name'] = "";
|
||||
|
||||
$fields = [
|
||||
'hospital_id',
|
||||
'hospital_name',
|
||||
'hospital_level_name',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
$params['hospital_id'] = $user_doctor['hospital_id'];
|
||||
$hospital = Hospital::getOne($params,$fields);
|
||||
if (!empty($hospital)){
|
||||
$user_doctor['hospital_name'] = $hospital['hospital_name'];
|
||||
$user_doctor['hospital_level_name'] = $hospital['hospital_level_name'];
|
||||
}
|
||||
|
||||
$item['user_doctor'] = $user_doctor;
|
||||
unset($hospital);
|
||||
unset($user_doctor);
|
||||
}
|
||||
}
|
||||
|
||||
return success($order_inquiry);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取患者问诊订单详情
|
||||
* @return array
|
||||
*/
|
||||
public function getPatientInquiryOrderInfo(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$order_inquiry_id = $this->request->route('order_inquiry_id');
|
||||
|
||||
// 获取订单数据
|
||||
$params = array();
|
||||
$params['patient_id'] = $user_info['client_user_id'];
|
||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||
$params['is_delete'] = 0;
|
||||
$order_inquiry = OrderInquiry::getOne($params);
|
||||
if (empty($order_inquiry)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 获取病例信息
|
||||
$fields = [
|
||||
'disease_class_name',
|
||||
'disease_desc',
|
||||
];
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
$order_inquiry_case = OrderInquiryCase::getOne($params,$fields);
|
||||
if (empty($order_inquiry_case)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
$order_inquiry['case'] = $order_inquiry_case->toArray();
|
||||
|
||||
// 获取医生数据
|
||||
$order_inquiry['user_doctor'] = [];
|
||||
if (!empty($order_inquiry['doctor_id'])){
|
||||
$fields = [
|
||||
'doctor_id',
|
||||
'user_name',
|
||||
'doctor_title',
|
||||
'hospital_id',
|
||||
'avatar',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params,$fields);
|
||||
if (empty($user_doctor)){
|
||||
return fail(HttpEnumCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
// 转换医生职称
|
||||
$user_doctor['doctor_title'] = empty($user_doctor['doctor_title']) ? "" : DoctorTitleCode::getMessage($user_doctor['doctor_title']);
|
||||
|
||||
// 头像
|
||||
$user_doctor['avatar'] = addAliyunOssWebsite($user_doctor['avatar']);
|
||||
|
||||
// 获取医生医院名称
|
||||
$user_doctor['hospital_name'] = "";
|
||||
$user_doctor['hospital_level_name'] = "";
|
||||
|
||||
$fields = [
|
||||
'hospital_id',
|
||||
'hospital_name',
|
||||
'hospital_level_name',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
$params['hospital_id'] = $user_doctor['hospital_id'];
|
||||
$hospital = Hospital::getOne($params,$fields);
|
||||
if (!empty($hospital)){
|
||||
$user_doctor['hospital_name'] = $hospital['hospital_name'];
|
||||
$user_doctor['hospital_level_name'] = $hospital['hospital_level_name'];
|
||||
}
|
||||
|
||||
$order_inquiry['user_doctor'] = $user_doctor;
|
||||
unset($hospital);
|
||||
unset($user_doctor);
|
||||
}
|
||||
|
||||
return success($order_inquiry->toArray());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取医生未接诊订单数量
|
||||
|
||||
Reference in New Issue
Block a user