修改自动完成服务包订单分成金额计算

This commit is contained in:
2024-05-08 14:17:11 +08:00
parent 6849f1c15b
commit 86cc28ea13
4 changed files with 100 additions and 30 deletions
@@ -12,6 +12,8 @@ use App\Model\OrderServicePackageDetail;
use App\Model\OrderServicePackageInquiry;
use App\Model\UserDoctor;
use App\Services\MessagePush;
use App\Services\OrderPrescriptionService;
use App\Services\OrderServicePackageService;
use App\Utils\Log;
use App\Utils\Utils;
use Hyperf\Amqp\Message\ConsumerDelayedMessageTrait;
@@ -121,16 +123,10 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage
$params['order_service_id'] = $order_service_package['order_service_id'];
OrderServicePackage::edit($params,$data);
// 计算本次问诊服务包问诊金额
if ($order_service_package['order_service_type'] == 1){
$amount_total = bcmul(
(string)$order_service_package_detail['single_inquiry_price'],
(string)$order_service_package_detail['service_count'],
8
);
}else{
$amount_total = $order_service_package_detail['service_price'];
}
// 处理统计问题
// 获取服务包订单中医生可分成的问诊金额
$OrderServicePackageService = new OrderServicePackageService();
$amount_total = $OrderServicePackageService->getServicePackageDoctorInquiryAmountTotal($order_service_package['order_service_no'],$order_service_package,$order_service_package_detail);
// 处理医生账户总表
$res = $this->handleDoctorAccount($amount_total,$order_service_package['doctor_id']);
@@ -215,17 +211,6 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage
return false;
}
if ($order_service_package['order_service_status'] == 5){
Log::getInstance("queue-AutoCompleteServicePackage")->error("订单已取消" );
return false;
}
// 订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
if (!in_array($order_service_package['refund_status'],[0,4,5])){
Log::getInstance("queue-AutoCompleteServicePackage")->error("订单退款中" );
return false;
}
// 订单支付状态
if ($order_service_package['pay_status'] != 2){
Log::getInstance("queue-AutoCompleteServicePackage")->error("订单未支付" );
@@ -297,8 +282,6 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage
*/
protected function handleDoctorAccount(string|int $amount_total,string|int $doctor_id): bool
{
$amount_total = bcmul((string)$amount_total,"0.75",8);
$params = array();
$params['doctor_id'] = $doctor_id;
$doctor_account = DoctorAccount::getOne($params);
@@ -338,8 +321,6 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage
*/
protected function handleDoctorAccountDay(string|int $amount_total,string|int $doctor_id,string $start_time): bool
{
$amount_total = bcmul((string)$amount_total,"0.75",8);
$params = array();
$params['doctor_id'] = $doctor_id;
$params['date'] = date('Y-m-d', strtotime($start_time));