You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers\API\His;
use App\Http\Controllers\Controller;
use App\Lib\Rs;
use App\Services\HisApplicationService;
use Illuminate\Http\Request;
class ApplicationController extends Controller
{
private HisApplicationService $hisApplicationService;
public function __construct(HisApplicationService $hisApplicationService)
{
$this->hisApplicationService = $hisApplicationService;
}
public function create(Request $request)
{
$params = $request->all();
$result = $this->hisApplicationService->createApplication($params);
if ($result['success']) {
return Rs::success($result['data'] ?? null, $result['message']);
} else {
return Rs::error($result['message']);
}
}
public function paymentNotify(Request $request)
{
$params = $request->all();
$hisRequestNo = $params['his_request_no'] ?? null;
$paymentStatus = $params['payment_status'] ?? null;
if (empty($hisRequestNo)) {
return Rs::error('缺少必填字段: his_request_no');
}
if (!isset($paymentStatus)) {
return Rs::error('缺少必填字段: payment_status');
}
$result = $this->hisApplicationService->paymentNotify($hisRequestNo, (int)$paymentStatus);
if ($result['success']) {
return Rs::success($result['data'] ?? null, $result['message']);
} else {
return Rs::error($result['message']);
}
}
public function cancelNotify(Request $request)
{
$params = $request->all();
$hisRequestNo = $params['his_request_no'] ?? null;
$cancelReason = $params['cancel_reason'] ?? null;
if (empty($hisRequestNo)) {
return Rs::error('缺少必填字段: his_request_no');
}
$result = $this->hisApplicationService->cancelNotify($hisRequestNo, $cancelReason);
if ($result['success']) {
return Rs::success($result['data'] ?? null, $result['message']);
} else {
return Rs::error($result['message']);
}
}
public function queryAppointment(Request $request)
{
$result = $this->hisApplicationService->queryAppointment($request->all());
return Rs::success($result['data'] ?? null, $result['message']);
}
public function checkIn(Request $request)
{
$params = $request->all();
$hisRequestNo = $params['his_request_no'] ?? null;
if (empty($hisRequestNo)) {
return Rs::error('缺少必填字段: his_request_no');
}
$result = $this->hisApplicationService->checkIn($hisRequestNo);
if ($result['success']) {
return Rs::success($result['data'] ?? null, $result['message']);
} else {
return Rs::error($result['message']);
}
}
public function cancelCheckIn(Request $request)
{
$params = $request->all();
$hisRequestNo = $params['his_request_no'] ?? null;
$reason = $params['reason'] ?? null;
if (empty($hisRequestNo)) {
return Rs::error('缺少必填字段: his_request_no');
}
$result = $this->hisApplicationService->cancelCheckIn($hisRequestNo, $reason);
if ($result['success']) {
return Rs::success($result['data'] ?? null, $result['message']);
} else {
return Rs::error($result['message']);
}
}
}