Files
work_dhd_back_end/app/controller/MatchController.php

67 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare (strict_types = 1);
namespace app\controller;
use app\BaseController;
use app\service\MatchService;
use think\response\Json;
/**
* 岗位简历匹配度控制器
*/
class MatchController extends BaseController
{
/**
* 计算岗位和简历的匹配度
* @return Json
*/
public function calculate(): Json
{
try {
// 获取请求参数支持JSON和表单数据
$input = $this->request->param();
$position = $input['position'] ?? [];
$resume = $input['resume'] ?? [];
// 如果是JSON请求尝试从JSON中获取
if (empty($position) && empty($resume)) {
$jsonData = json_decode($this->request->getContent(), true);
if (is_array($jsonData)) {
$position = $jsonData['position'] ?? [];
$resume = $jsonData['resume'] ?? [];
}
}
// 参数验证
if (empty($position) || empty($resume)) {
return json([
'code' => 400,
'msg' => '参数错误:岗位信息和简历信息不能为空',
'data' => null
]);
}
// 计算匹配度
$matchService = new MatchService();
$score = $matchService->calculateMatchScore($position, $resume);
return json([
'code' => 200,
'msg' => '计算成功',
'data' => [
'match_score' => $score
]
]);
} catch (\Exception $e) {
return json([
'code' => 500,
'msg' => '计算失败:' . $e->getMessage(),
'data' => null
]);
}
}
}