diff --git a/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php b/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php index 02d2dec..7b9659f 100644 --- a/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php @@ -182,7 +182,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage Db::commit(); Log::getInstance("queue-AutoFinishInquiry")->info("成功"); - } catch (\Exception $e) { + } catch (\Throwable $e) { Db::rollBack(); Log::getInstance("queue-AutoFinishInquiry")->error("错误:" . $e->getMessage()); return Result::REQUEUE; // 重回队列 @@ -207,7 +207,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage */ protected function handleDoctorAccount(array|object $order_inquiry): bool { - $amount_total = bcmul($order_inquiry['amount_total'],0.75,8); + $amount_total = bcmul((string)$order_inquiry['amount_total'],"0.75",8); $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; @@ -228,7 +228,6 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage } else { // 非首次 // 总金额(已结束订单的总金额) - $params = array(); $params['account_id'] = $doctor_account['account_id']; DoctorAccount::inc($params, 'total_amount', (float)$amount_total); @@ -236,6 +235,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage // 账户余额 DoctorAccount::inc($params, 'balance_account', (float)$amount_total); } + return true; } @@ -246,7 +246,7 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage */ protected function handleDoctorAccountDay(array|object $order_inquiry): bool { - $amount_total = bcmul($order_inquiry['amount_total'],0.75,8); + $amount_total = bcmul((string)$order_inquiry['amount_total'],"0.75",8); $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; diff --git a/app/Services/DoctorAccountService.php b/app/Services/DoctorAccountService.php index ded0b2e..4872aee 100644 --- a/app/Services/DoctorAccountService.php +++ b/app/Services/DoctorAccountService.php @@ -86,7 +86,7 @@ class DoctorAccountService extends BaseService if (!empty($doctor_account_days)) { foreach ($doctor_account_days as $doctor_account_day) { $data = array(); - $data['total_amount'] = bcmul($doctor_account_day['total_amount'],1,2); + $data['total_amount'] = bcmul((string)$doctor_account_day['total_amount'],1,2); $data['month'] = $doctor_account_day['month']; $bill[] = $data; } @@ -94,9 +94,9 @@ class DoctorAccountService extends BaseService } $result = array(); - $result['doctor_today_inquiry_total'] = bcmul($doctor_today_inquiry_total,0.75,2); // 今日接诊收入 - $result['doctor_day_completed_amount_total'] = bcmul($doctor_day_completed_amount_total ,0.75,2); // 今日已完成收入 - $result['balance_account'] = bcmul($balance_account ,1,2); // 账户余额 + $result['doctor_today_inquiry_total'] = bcmul((string)$doctor_today_inquiry_total,"0.75",2); // 今日接诊收入 + $result['doctor_day_completed_amount_total'] = bcmul((string)$doctor_day_completed_amount_total ,"0.75",2); // 今日已完成收入 + $result['balance_account'] = bcmul((string)$balance_account ,"1",2); // 账户余额 $result['bill'] = $bill; // 账单 return success($result); @@ -162,7 +162,7 @@ class DoctorAccountService extends BaseService } if (!empty($order_inquiry['data'])) { foreach ($order_inquiry['data'] as &$item) { - $item['estimate_income'] = bcmul($item['amount_total'],0.75,2); + $item['estimate_income'] = bcmul((string)$item['amount_total'],"0.75",2); // 入账状态 if ($item['inquiry_status'] == 4 || $item['inquiry_status'] == 5){ @@ -259,7 +259,7 @@ class DoctorAccountService extends BaseService $order_inquiry = OrderInquiry::getInList($params,$in_params); if (!empty($order_inquiry)){ foreach ($order_inquiry as $value){ - $amount_total = bcadd($amount_total,$value["amount_total"],2); + $amount_total = bcadd((string)$amount_total,(string)$value["amount_total"],2); } } @@ -274,13 +274,13 @@ class DoctorAccountService extends BaseService if (!empty($order_inquiry)){ foreach ($order_inquiry as $value){ - $amount_total = bcadd($amount_total,$value["amount_total"],2); + $amount_total = bcadd((string)$amount_total,(string)$value["amount_total"],2); } $order_inquiry_id_array = array_column($order_inquiry,'order_inquiry_id'); } } - $amount_total = bcmul($amount_total,0.75,2); + $amount_total = bcmul((string)$amount_total,"0.75",2); // 计算医生个人所得税 diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index 0f0776e..f93f555 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -1126,13 +1126,14 @@ class InquiryService extends BaseService $data = array(); $data['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; - $message = new AutoFinishInquiryDelayDirectProducer($data); + $time = 60 * 60 * 24 * 3; if (\Hyperf\Config\config("app_env") == "dev"){ - $time = 60 * 1; + $time = 10; } + $message = new AutoFinishInquiryDelayDirectProducer($data); $message->setDelayMs(1000 * $time); $producer = $this->container->get(Producer::class); $res = $producer->produce($message); @@ -1147,6 +1148,7 @@ class InquiryService extends BaseService return fail(HttpEnumCode::SERVER_ERROR, $e->getMessage()); } + dump("已添加至队列"); try { // 发送IM消息-问诊已完成 $imService = new ImService();