dataLists(new PrescriptionOrderLists()); } /** * 指定诊单下已支付支付单(创建/编辑业务订单时多选关联) */ public function paidPayOrders() { $params = (new PrescriptionOrderValidate())->get()->goCheck('paidPayOrders'); $exceptPo = (int) $this->request->get('prescription_order_id', 0); $lists = OrderLogic::listPaidOrdersForDiagnosis( (int) $params['diagnosis_id'], $this->adminId, $this->adminInfo, $exceptPo > 0 ? $exceptPo : null ); return $this->success('', ['lists' => $lists]); } public function create() { $params = (new PrescriptionOrderValidate())->post()->goCheck('create'); $result = PrescriptionOrderLogic::create($params, $this->adminId, $this->adminInfo); if ($result === false) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('创建成功', $result); } public function detail() { $params = (new PrescriptionOrderValidate())->get()->goCheck('detail'); $detail = PrescriptionOrderLogic::detail((int) $params['id'], $this->adminId, $this->adminInfo); if ($detail === null) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->data($detail); } /** * 快递轨迹查询(对接快递100;未配置时仍可跳转顺丰/京东官网) */ public function logisticsTrace() { $params = (new PrescriptionOrderValidate())->get()->goCheck('logisticsTrace'); $expressOverride = trim((string) $this->request->get('express_company', '')); $data = PrescriptionOrderLogic::logisticsTrace( (int) $params['id'], $expressOverride, $this->adminId, $this->adminInfo ); if ($data === null) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('', $data); } public function edit() { $params = (new PrescriptionOrderValidate())->post()->goCheck('edit'); $result = PrescriptionOrderLogic::edit($params, $this->adminId, $this->adminInfo); if ($result === false) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('保存成功', $result); } public function auditPrescription() { $params = (new PrescriptionOrderValidate())->post()->goCheck('auditPrescription'); $result = PrescriptionOrderLogic::auditPrescription( (int) $params['id'], (string) $params['action'], (string) ($params['remark'] ?? ''), $this->adminId, $this->adminInfo ); if ($result === false) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('操作成功', $result); } public function auditPayment() { $params = (new PrescriptionOrderValidate())->post()->goCheck('auditPayment'); $result = PrescriptionOrderLogic::auditPaymentSlip( (int) $params['id'], (string) $params['action'], (string) ($params['remark'] ?? ''), $this->adminId, $this->adminInfo ); if ($result === false) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('操作成功', $result); } /** * 医助/创建人撤回:仅「待双审通过」可撤(未通过或双审均驳回等仍为该状态) */ public function withdraw() { $params = (new PrescriptionOrderValidate())->post()->goCheck('withdraw'); $result = PrescriptionOrderLogic::withdraw((int) $params['id'], $this->adminId, $this->adminInfo); if ($result === false) { return $this->fail(PrescriptionOrderLogic::getError()); } return $this->success('已撤回', $result); } }