diff --git a/app/Amqp/Consumer/PrescriptionExpiredDelayDirectConsumer.php b/app/Amqp/Consumer/PrescriptionExpiredDelayDirectConsumer.php new file mode 100644 index 0000000..f5b19ed --- /dev/null +++ b/app/Amqp/Consumer/PrescriptionExpiredDelayDirectConsumer.php @@ -0,0 +1,50 @@ +error("开始执行 自动取消未使用处方 队列:" . json_encode($data, JSON_UNESCAPED_UNICODE)); + + Db::beginTransaction(); + try { + + Db::commit(); + Log::getInstance()->info("自动取消未使用处方队列执行成功"); + return Result::ACK; + } catch (\Exception $e) { + Db::rollBack(); + Log::getInstance()->error("自动完成问诊订单执行失败:" . $e->getMessage()); + return Result::ACK; // 重回队列 + } + } +} diff --git a/app/Amqp/Producer/PrescriptionExpiredDelayDirectProducer.php b/app/Amqp/Producer/PrescriptionExpiredDelayDirectProducer.php new file mode 100644 index 0000000..3fc48b5 --- /dev/null +++ b/app/Amqp/Producer/PrescriptionExpiredDelayDirectProducer.php @@ -0,0 +1,30 @@ +payload = $data; + } +} diff --git a/app/Services/DoctorAccountService.php b/app/Services/DoctorAccountService.php index dbd642c..b46dd74 100644 --- a/app/Services/DoctorAccountService.php +++ b/app/Services/DoctorAccountService.php @@ -387,8 +387,8 @@ class DoctorAccountService extends BaseService $data['doctor_id'] = $user_info['client_user_id']; $data['bank_id'] = $doctor_bank_card['bank_id']; $data['account_name'] = $basic_bank['bank_name']; - $data['bank_card_code'] = $basic_bank['bank_code']; - $data['bank_card_code_four'] = substr($basic_bank['bank_code'], -4);; + $data['bank_card_code'] = $doctor_bank_card['bank_card_code']; + $data['bank_card_code_four'] = substr($doctor_bank_card['bank_card_code'], -4);; $data['applied_withdrawal_amount'] = $withdrawal_amount + $income_tax; // 提现金额 $data['actual_withdrawal_amount'] = $withdrawal_amount; // 实际提现金额 $data['income_tax'] = $income_tax; // 提现所得税金额 @@ -421,6 +421,15 @@ class DoctorAccountService extends BaseService OrderInquiry::edit($params,$data); } + // 账户表锁定 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; + DoctorAccount::dec($params,'balance_account',$amount_total); + + DoctorAccount::inc($params,'applied_withdrawal_amount',$withdrawal_amount); + + DoctorAccount::inc($params,'income_tax',$income_tax); + Db::commit(); return success(); } catch (\Exception $e) {