获取剩余药品数量修改
This commit is contained in:
parent
5103fe875f
commit
ace286e096
@ -166,24 +166,13 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage
|
||||
return Result::ACK;
|
||||
}
|
||||
|
||||
$params = array();
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
|
||||
if (!empty($order_service_package_inquiry)){
|
||||
// 获取医生数据
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_service_package['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (!empty($user_doctor)) {
|
||||
// 医生-通知医生患者的服务包服务结束
|
||||
$MessagePush = new MessagePush($user_doctor['user_id'], $order_service_package_inquiry['inquiry_no']);
|
||||
$MessagePush->doctorServicePackageFinish();
|
||||
}
|
||||
// 医生-通知医生患者的服务包服务结束
|
||||
$MessagePush = new MessagePush($user_doctor['user_id'], $order_service_package['order_service_no']);
|
||||
$MessagePush->doctorServicePackageFinish();
|
||||
|
||||
// 患者-通知患者服务包服务已结束
|
||||
$MessagePush = new MessagePush($order_service_package['user_id'], $order_service_package_inquiry['inquiry_no']);
|
||||
$MessagePush->patientServicePackageFinish();
|
||||
}
|
||||
// 患者-通知患者服务包服务已结束
|
||||
$MessagePush = new MessagePush($order_service_package['user_id'], $order_service_package['order_service_no']);
|
||||
$MessagePush->patientServicePackageFinish();
|
||||
}catch (\Throwable $e){
|
||||
Log::getInstance("queue-AutoCompleteServicePackage")->error($e->getMessage());
|
||||
return Result::ACK;
|
||||
|
||||
@ -71,6 +71,7 @@ class SendStationMessageConsumer extends ConsumerMessage
|
||||
$cloud_custom_data['order_inquiry_id'] = "";
|
||||
$cloud_custom_data['is_system'] = 1;
|
||||
$cloud_custom_data['inquiry_type'] = $data['inquiry_type'] ?? "";
|
||||
$cloud_custom_data['inquiry_mode'] = $data['inquiry_mode'] ?? "";
|
||||
$cloud_custom_data['message_rounds'] = 0;
|
||||
$cloud_custom_data['patient_family_data'] = [];
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ use App\Model\OrderPrescription;
|
||||
use App\Model\OrderProduct;
|
||||
use App\Model\OrderProductItem;
|
||||
use App\Model\OrderServicePackage;
|
||||
use App\Model\OrderServicePackageCase;
|
||||
use App\Model\OrderServicePackageDetail;
|
||||
use App\Model\OrderServicePackageInquiry;
|
||||
use App\Model\OrderServicePackageProduct;
|
||||
@ -1139,7 +1140,7 @@ class MessagePush extends BaseService
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
$result = $producer->produce($message);
|
||||
if (!$result) {
|
||||
Log::getInstance("MessagePush")->error("错误:加入站内推送队列失败" . json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("MessagePush")->error(json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
}
|
||||
|
||||
// 订阅
|
||||
@ -3053,18 +3054,26 @@ class MessagePush extends BaseService
|
||||
public function doctorServicePackageFinish(): void
|
||||
{
|
||||
try {
|
||||
$params = array();
|
||||
$params['order_service_no'] = $this->order['order_no'];
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)) {
|
||||
Log::getInstance("MessagePush")->error("服务包订单为空");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取问诊订单关联病例
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $this->order_inquiry['order_inquiry_id'];
|
||||
$order_inquiry_case = OrderInquiryCase::getOne($params);
|
||||
if (empty($order_inquiry_case)) {
|
||||
Log::getInstance("MessagePush")->error("问诊病例为空");
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_case= OrderServicePackageCase::getOne($params);
|
||||
if (empty($order_service_package_case)) {
|
||||
Log::getInstance("MessagePush")->error("服务包病例为空");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取医生数据
|
||||
$params = array();
|
||||
$params['doctor_id'] = $this->order_inquiry['doctor_id'];
|
||||
$params['doctor_id'] = $order_service_package['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (empty($user_doctor)) {
|
||||
Log::getInstance("MessagePush")->error("医生数据为空");
|
||||
@ -3072,17 +3081,24 @@ class MessagePush extends BaseService
|
||||
}
|
||||
|
||||
// 转换问诊订单订单接诊方式-字符串
|
||||
$inquiry_mode = orderServiceTypeToString($this->order_inquiry['inquiry_mode']);
|
||||
$order_service_type = orderServiceTypeToString($order_service_package['order_service_type']);
|
||||
|
||||
if ($order_service_package['order_service_type'] == 1){
|
||||
$inquiry_mode = 8;
|
||||
}else{
|
||||
$inquiry_mode = 9;
|
||||
}
|
||||
|
||||
// 站内
|
||||
$data = array();
|
||||
$data['user_id'] = $this->user['user_id'];
|
||||
$data['notice_type'] = 1;
|
||||
$data['inquiry_type'] = $this->order_inquiry['inquiry_type']; // 问诊类型(医生端服务通知存在 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
|
||||
$data['inquiry_type'] = 1; // 问诊类型(医生端服务通知存在 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
|
||||
$data['inquiry_mode'] = $inquiry_mode; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包)
|
||||
$data['from_name'] = "肝胆小秘书";
|
||||
$data['notice_brief_title'] = "{$this->order_inquiry['patient_name']}患者的{$inquiry_mode}服务已完成,您可以提醒患者进行续费。";
|
||||
$data['notice_title'] = "{$this->order_inquiry['patient_name']}患者的{$inquiry_mode}服务已完成,您可以提醒患者进行续费。";
|
||||
$data['notice_content'] = "{$this->order_inquiry['patient_name']}患者的{$inquiry_mode}服务已完成,您可以提醒患者进行续费。";
|
||||
$data['notice_brief_title'] = "{$order_service_package['patient_name']}患者的{$order_service_type}服务已完成,您可以提醒患者进行续费。";
|
||||
$data['notice_title'] = "{$order_service_package['patient_name']}患者的{$order_service_type}服务已完成,您可以提醒患者进行续费。";
|
||||
$data['notice_content'] = "{$order_service_package['patient_name']}患者的{$order_service_type}服务已完成,您可以提醒患者进行续费。";
|
||||
|
||||
$message = new SendStationMessageProducer($data);
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
@ -3093,7 +3109,7 @@ class MessagePush extends BaseService
|
||||
|
||||
// 订阅
|
||||
// 问诊内容-病情主诉
|
||||
$disease_desc = $order_inquiry_case['disease_desc'];
|
||||
$disease_desc = $order_service_package_case['disease_desc'];
|
||||
if (!empty($disease_desc)) {
|
||||
if (strlen($disease_desc) > 15) {
|
||||
$disease_desc = mb_substr($disease_desc, 0, 15);
|
||||
@ -3109,7 +3125,7 @@ class MessagePush extends BaseService
|
||||
$sub_data['wx_template_id'] = "G1RIs0RYqsTQ2CuPQWalIMyb6_deuEEbJfajfhGvNzc"; // 咨询提醒
|
||||
$sub_data['params']['page'] = "Pages/yishi/wenzhen_v2/wenzhen";
|
||||
$sub_data['params']['data'] = [
|
||||
"thing1" => "{$inquiry_mode}服务已完成",// 提醒内容
|
||||
"thing1" => "{$order_service_type}服务已完成",// 提醒内容
|
||||
"name2" => $this->order_inquiry['patient_name'],// 患者姓名
|
||||
"thing4" => $disease_desc,// 病情描述
|
||||
"thing6" => "您可以提醒患者进行续费",// 提示说明
|
||||
@ -3181,6 +3197,7 @@ class MessagePush extends BaseService
|
||||
$data['user_id'] = $this->user['user_id'];
|
||||
$data['notice_type'] = 3;
|
||||
$data['notice_system_type'] = 1;
|
||||
$data['inquiry_mode'] = $this->order_inquiry['inquiry_mode']; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包)
|
||||
$data['from_name'] = "肝胆小秘书";
|
||||
$data['notice_brief_title'] = "您购买的{$order_type}服务,医生已接受,点击查看详情。";
|
||||
$data['notice_title'] = "您购买的{$order_type}服务,医生已接受,点击查看详情。";
|
||||
@ -3195,7 +3212,7 @@ class MessagePush extends BaseService
|
||||
$link_params['patient_user_id'] = $this->order_inquiry['user_id'];
|
||||
$data['link_params'] = json_encode($link_params, JSON_UNESCAPED_UNICODE);// 跳转参数
|
||||
|
||||
$data['button_type'] = 4; // 问诊详情
|
||||
$data['button_type'] = 4;
|
||||
|
||||
$message = new SendStationMessageProducer($data);
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
@ -3269,10 +3286,13 @@ class MessagePush extends BaseService
|
||||
// 转换服务包订单类型为汉字
|
||||
$order_type = orderServiceTypeToString($this->order_service_package['order_service_type']);
|
||||
|
||||
// 获取服务包当月已问诊次数
|
||||
if ($order_service_package_detail['monthly_frequency'] != 0 && !empty($this->order_service_package['start_time'])) {
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
|
||||
if ($order_service_package_detail['monthly_frequency'] != 0) {
|
||||
// 获取服务包当月已问诊次数
|
||||
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($this->order_service_package['pay_time'],$this->order_service_package['order_service_type'],$this->order_service_package['user_id'], $this->order_service_package['doctor_id']);
|
||||
|
||||
// 获取服务包当月剩余问诊次数
|
||||
$remaining_inquiry_count = $order_service_package_detail['monthly_frequencys'] - $month_inquiry_count;
|
||||
if ($remaining_inquiry_count < 0){
|
||||
$remaining_inquiry_count = 0;
|
||||
@ -3284,19 +3304,11 @@ class MessagePush extends BaseService
|
||||
// 获取剩余药品数量
|
||||
$remaining_quantity = 0;
|
||||
if ($this->order_service_package['order_service_type'] == 1){
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
|
||||
$params = array();
|
||||
$params['order_service_id'] = $this->order_service_package['order_service_id'];
|
||||
$order_service_package_products = OrderServicePackageProduct::getList($params);
|
||||
if (!empty($order_service_package_products)){
|
||||
foreach ($order_service_package_products as $order_service_package_product){
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_product['product_id']);
|
||||
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($this->order_service_package['order_service_id'],$order_service_package_product['product_id'],$total_quantity);
|
||||
}
|
||||
// 获取服务包内所有药品
|
||||
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
|
||||
foreach ($health_package_products as $health_package_product) {
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($this->order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3305,6 +3317,7 @@ class MessagePush extends BaseService
|
||||
$data['user_id'] = $this->user['user_id'];
|
||||
$data['notice_type'] = 3;
|
||||
$data['notice_system_type'] = 1;
|
||||
$data['inquiry_mode'] = $this->order_inquiry['inquiry_mode']; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包)
|
||||
$data['from_name'] = "肝胆小秘书";
|
||||
$data['notice_brief_title'] = "您使用{$order_type}服务中问诊,医生已接诊,点击查看详情。";
|
||||
$data['notice_title'] = "您使用{$order_type}服务中问诊,医生已接诊,点击查看详情。";
|
||||
@ -3397,14 +3410,12 @@ class MessagePush extends BaseService
|
||||
$data['link_type'] = 15;
|
||||
|
||||
$link_params = array();
|
||||
$link_params['order_inquiry_id'] = $this->order_inquiry['order_inquiry_id'];
|
||||
$link_params['order_no'] = $this->order['order_no'];
|
||||
$link_params['inquiry_type'] = $this->order_inquiry['inquiry_type'];
|
||||
$link_params['doctor_user_id'] = $user_doctor['user_id'];
|
||||
$link_params['patient_user_id'] = $this->order_inquiry['user_id'];
|
||||
$link_params['patient_user_id'] = $this->order_service_package['user_id'];
|
||||
$data['link_params'] = json_encode($link_params, JSON_UNESCAPED_UNICODE);// 跳转参数
|
||||
|
||||
$data['button_type'] = 4; // 问诊详情
|
||||
$data['button_type'] = 4;
|
||||
|
||||
$message = new SendStationMessageProducer($data);
|
||||
$producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
@ -3426,17 +3437,6 @@ class MessagePush extends BaseService
|
||||
}
|
||||
|
||||
// 订阅
|
||||
$sub_data = array();
|
||||
$sub_data['push_user_id'] = $this->user['user_id'];
|
||||
$sub_data['wx_template_id'] = "9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE";// 问诊提醒
|
||||
$sub_data['params']['page'] = "patient/pages/orderDetail/orderDetail?order_inquiry_id={$this->order_inquiry['order_inquiry_id']}";
|
||||
$sub_data['params']['data'] = [
|
||||
"thing1" => "使用{$order_type}服务中问诊",// 问诊内容
|
||||
"thing2" => "医生已接诊",// 提醒内容
|
||||
"name3" => (string)$user_doctor['user_name'],// 问诊医生
|
||||
"thing4" => "点击查看详情",// 提示说明
|
||||
];
|
||||
|
||||
$sub_data = array();
|
||||
$sub_data['push_user_id'] = $this->user['user_id'];
|
||||
$sub_data['wx_template_id'] = "9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE";// 问诊提醒
|
||||
@ -3467,9 +3467,10 @@ class MessagePush extends BaseService
|
||||
/**
|
||||
* 患者-通知患者服务包药品未使用完
|
||||
* 站内
|
||||
* @param string|int $remaining_quantity
|
||||
* @return void
|
||||
*/
|
||||
public function patientServicePackageHaveProduct(): void
|
||||
public function patientServicePackageHaveProduct(string|int $remaining_quantity = 0): void
|
||||
{
|
||||
try {
|
||||
// 获取医生数据
|
||||
@ -3481,24 +3482,37 @@ class MessagePush extends BaseService
|
||||
return;
|
||||
}
|
||||
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
if ($remaining_quantity == 0){
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
|
||||
// 获取剩余药品数量
|
||||
$remaining_quantity = 0;
|
||||
$params = array();
|
||||
$params['order_service_id'] = $this->order_service_package['order_service_id'];
|
||||
$order_service_package_products = OrderServicePackageProduct::getList($params);
|
||||
if (!empty($order_service_package_products)){
|
||||
foreach ($order_service_package_products as $order_service_package_product){
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_product['product_id']);
|
||||
// 获取服务包订单编号-通过问诊订单id
|
||||
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($this->order_inquiry['inquiry_no']);
|
||||
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($this->order_service_package['order_service_id'],$order_service_package_product['product_id'],$total_quantity);
|
||||
if ($remaining_quantity > 0){
|
||||
break;
|
||||
}
|
||||
// 获取服务包订单
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_service_no;
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)){
|
||||
Log::getInstance("MessagePush")->error("服务包订单错误");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取服务包订单详情
|
||||
$params = array();
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
|
||||
if (empty($order_service_package_detail)){
|
||||
Log::getInstance("MessagePush")->error("服务包订单详情错误");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取服务包内所有药品
|
||||
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
|
||||
foreach ($health_package_products as $health_package_product) {
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 站内
|
||||
|
||||
@ -1354,18 +1354,14 @@ class PatientOrderService extends BaseService
|
||||
case 3: // 检测订单
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
|
||||
|
||||
break;
|
||||
case 4: // 健康包订单
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
|
||||
|
||||
break;
|
||||
case 5: // 随访包订单
|
||||
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
|
||||
break;
|
||||
default:
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "支付失败");
|
||||
@ -1497,6 +1493,22 @@ class PatientOrderService extends BaseService
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 获取服务包订单
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_service_package_inquiry['order_service_no'];
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 获取服务包订单详情
|
||||
$params = array();
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
|
||||
if (empty($order_service_package_detail)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
|
||||
// 处理商品数量
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
@ -1504,7 +1516,7 @@ class PatientOrderService extends BaseService
|
||||
$amount_total = 0;
|
||||
foreach ($product_datas as &$product_data){
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
|
||||
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
|
||||
@ -2040,6 +2052,22 @@ class PatientOrderService extends BaseService
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 获取服务包订单
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_service_package_inquiry['order_service_no'];
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 获取服务包订单详情
|
||||
$params = array();
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
|
||||
if (empty($order_service_package_detail)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
|
||||
// 处理商品数量、金额
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
@ -2047,7 +2075,7 @@ class PatientOrderService extends BaseService
|
||||
$amount_total = 0;
|
||||
foreach ($product_datas as &$product_data){
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
|
||||
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
|
||||
@ -3100,13 +3128,11 @@ class PatientOrderService extends BaseService
|
||||
$result['order_service_package']['current_month_start_date'] = $current_month_date['current_month_start_date'];
|
||||
$result['order_service_package']['current_month_finish_date'] = $current_month_date['current_month_finish_date'];
|
||||
|
||||
// 获取服务包当月已问诊/剩余次数
|
||||
// 获取服务包当月已问诊次数
|
||||
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']);
|
||||
|
||||
// 获取服务包当月剩余问诊次数
|
||||
if ($order_service_package_detail['monthly_frequency'] != 0) {
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
|
||||
// 获取服务包当月已问诊次数
|
||||
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']);
|
||||
|
||||
// 获取服务包当月剩余问诊次数
|
||||
$remaining_inquiry_count = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count;
|
||||
if ($remaining_inquiry_count < 0){
|
||||
@ -3114,7 +3140,6 @@ class PatientOrderService extends BaseService
|
||||
}
|
||||
}else{
|
||||
$remaining_inquiry_count = "不限";
|
||||
$month_inquiry_count = "不限";
|
||||
}
|
||||
|
||||
$result['order_service_package_detail']['month_inquiry_count'] = $month_inquiry_count;
|
||||
@ -3150,11 +3175,9 @@ class PatientOrderService extends BaseService
|
||||
|
||||
// 获取服务包内所有药品
|
||||
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
|
||||
if (!empty($health_package_products)) {
|
||||
foreach ($health_package_products as $health_package_product) {
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
|
||||
}
|
||||
foreach ($health_package_products as $health_package_product) {
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1962,7 +1962,7 @@ class UserDoctorService extends BaseService
|
||||
$res = $producer->produce($message);
|
||||
if (!$res) {
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
||||
return fail(HttpEnumCode::SERVER_ERROR, "接诊失败");
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
@ -1977,7 +1977,8 @@ class UserDoctorService extends BaseService
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (empty($user_doctor)) {
|
||||
return success([],HttpEnumCode::HTTP_SUCCESS,"医生数据错误");
|
||||
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("医生数据错误");
|
||||
return success();
|
||||
}
|
||||
|
||||
// 获取病例数据
|
||||
@ -1985,7 +1986,8 @@ class UserDoctorService extends BaseService
|
||||
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
$order_inquiry_case = OrderInquiryCase::getOne($params);
|
||||
if (empty($order_inquiry_case)){
|
||||
return success([],HttpEnumCode::HTTP_SUCCESS,"患者病例错误");
|
||||
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("患者病例错误");
|
||||
return success();
|
||||
}
|
||||
|
||||
// 发送IM消息-医生接诊
|
||||
@ -2002,6 +2004,24 @@ class UserDoctorService extends BaseService
|
||||
// 获取服务包订单编号-通过问诊订单id
|
||||
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']);
|
||||
|
||||
// 获取服务包订单
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_service_no;
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)){
|
||||
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("服务包订单错误");
|
||||
return success();
|
||||
}
|
||||
|
||||
// 获取服务包订单详情
|
||||
$params = array();
|
||||
$params['order_service_id'] = $order_service_package['order_service_id'];
|
||||
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
|
||||
if (empty($order_service_package_detail)){
|
||||
Log::getInstance('UserDoctorService-addDoctorInquiry')->error("服务包订单详情错误");
|
||||
return success();
|
||||
}
|
||||
|
||||
// 检测问诊是否服务包首次问诊
|
||||
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
|
||||
if ($is_first){
|
||||
@ -2012,14 +2032,23 @@ class UserDoctorService extends BaseService
|
||||
// 患者-通知患者医生已接诊服务包相关问诊订单
|
||||
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
|
||||
$MessagePush->patientAcceptedServicePackageInquiry();
|
||||
}
|
||||
|
||||
// 检测患者服务包内是否还存在剩余药品
|
||||
$res = $OrderServicePackageService->checkOrderServiceRemainingProduct($order_service_no);
|
||||
if ($res){
|
||||
// 患者-通知患者服务包药品未使用完
|
||||
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
|
||||
$MessagePush->patientServicePackageHaveProduct();
|
||||
if ($order_service_package['order_service_type'] == 1){
|
||||
$remaining_quantity = 0;
|
||||
|
||||
// 获取服务包内所有药品
|
||||
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
|
||||
foreach ($health_package_products as $health_package_product) {
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
|
||||
}
|
||||
|
||||
if ($remaining_quantity > 0){
|
||||
// 患者-通知患者服务包药品未使用完
|
||||
$MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']);
|
||||
$MessagePush->patientServicePackageHaveProduct($remaining_quantity);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// 发送站内、订阅、短信消息-医生已接诊
|
||||
@ -2027,7 +2056,8 @@ class UserDoctorService extends BaseService
|
||||
$MessagePush->patientAcceptedInquiry();
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
return success([],HttpEnumCode::HTTP_SUCCESS,$e->getMessage());
|
||||
Log::getInstance('UserDoctorService-addDoctorInquiry')->error($e->getMessage());
|
||||
return success();
|
||||
}
|
||||
|
||||
return success();
|
||||
@ -2866,7 +2896,6 @@ class UserDoctorService extends BaseService
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取医生是否可处方图标展示状态
|
||||
* @param string $doctor_id 医生id
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user