Files

41 lines
1.5 KiB
PHP

<?php
/**
* 硬碎片公共逻辑:完整度计算(按非空字段直接计数)+ 内容摘要
* 被 hard_list.php 与 hard_detail.php 共用
*/
/** 硬碎片可统计字段(核心+重要:企业名/联系人/手机/邮箱;品类与描述已从表中移除) */
const HARD_FIELDS = ['company_name', 'person_name', 'contact_phone', 'contact_email'];
const HARD_LABELS = [
'company_name' => '公司名称', 'person_name' => '联系人', 'contact_phone' => '电话',
'contact_email' => '邮箱',
];
/** 计算硬碎片完整度:已填字段数 ÷ 总可填字段数 × 100% */
function hardCompleteness($row)
{
$filled = 0;
$missing = [];
foreach (HARD_FIELDS as $field) {
if ($row[$field] !== null && trim((string)$row[$field]) !== '') {
$filled++;
} else {
$missing[] = $field;
}
}
$total = count(HARD_FIELDS);
$score = $total > 0 ? (int)round($filled / $total * 100) : 0;
return ['score' => $score, 'missing' => $missing];
}
/** 内容摘要:拼接已有关键信息 */
function hardSummary($row)
{
$parts = [];
if (!empty($row['company_name'])) $parts[] = '公司:' . $row['company_name'];
if (!empty($row['person_name'])) $parts[] = '联系人:' . $row['person_name'];
if (!empty($row['contact_phone'])) $parts[] = '手机:' . $row['contact_phone'];
if (!empty($row['contact_email'])) $parts[] = '邮箱:' . $row['contact_email'];
return implode(' ', $parts);
}