73 lines
1.9 KiB
PHP
73 lines
1.9 KiB
PHP
<?php
|
|
declare (strict_types=1);
|
|
|
|
namespace app\home\controller;
|
|
|
|
use app\service\UsvisaIntakeService;
|
|
use think\facade\Log;
|
|
use think\facade\Request;
|
|
use think\facade\View;
|
|
|
|
class Usvisa extends Base
|
|
{
|
|
public function index()
|
|
{
|
|
$intake = new UsvisaIntakeService();
|
|
|
|
View::assign($intake->pageContext(Request::instance()->param()));
|
|
|
|
return View::fetch();
|
|
}
|
|
|
|
public function submit()
|
|
{
|
|
if (!request()->isPost()) {
|
|
return json([
|
|
'code' => -1,
|
|
'msg' => '请通过页面提交信息',
|
|
]);
|
|
}
|
|
|
|
$intake = new UsvisaIntakeService();
|
|
$params = Request::instance()->param();
|
|
unset($params['s']);
|
|
|
|
$branch = $intake->branchByCode($params['branch_code'] ?? '');
|
|
if (empty($branch)) {
|
|
return json([
|
|
'code' => -1,
|
|
'msg' => '请确认扫码支行信息',
|
|
]);
|
|
}
|
|
|
|
$submission = $intake->submissionFrom($params, $branch);
|
|
$requiredMessage = $intake->requiredMessage($submission);
|
|
if ($requiredMessage !== '') {
|
|
return json([
|
|
'code' => -1,
|
|
'msg' => $requiredMessage,
|
|
]);
|
|
}
|
|
|
|
try {
|
|
$result = $intake->submitToApi($submission);
|
|
} catch (\Throwable $e) {
|
|
Log::error('Failed to submit usvisa to OA: ' . $e->getMessage());
|
|
|
|
return json([
|
|
'code' => -1,
|
|
'msg' => '提交失败,请稍后再试',
|
|
]);
|
|
}
|
|
|
|
if (!$intake->apiSuccess($result)) {
|
|
Log::warning('OA usvisa api returned failure: ' . json_encode([
|
|
'code' => $result['code'] ?? null,
|
|
'msg' => $result['msg'] ?? '',
|
|
], JSON_UNESCAPED_UNICODE));
|
|
}
|
|
|
|
return json($result);
|
|
}
|
|
}
|