- 新增上传分类归一化处理,统一白名单校验规则 - 新增COS存储记录同步逻辑 - 新增分享功能支持,配置多页面分享参数 - 新增订单案例分享按钮 - 新增订单自动校验和回收命令 - 新增测试脚本和图片同步脚本 - 优化后台上传分类配置,统一分类映射
83 行
5.1 KiB
PHP
83 行
5.1 KiB
PHP
<?php
|
|
|
|
define('APP_PATH', __DIR__ . '/../server/application/');
|
|
require __DIR__ . '/../server/thinkphp/base.php';
|
|
\think\App::initCommon();
|
|
|
|
use think\Db;
|
|
|
|
$cosMap = json_decode(file_get_contents(__DIR__ . '/goods_images_map.json'), true);
|
|
|
|
$services = Db::name('service')->select();
|
|
|
|
function matchImageKey($name, $catId) {
|
|
$n = mb_strtolower($name, 'UTF-8');
|
|
if (strpos($n, '沙发') !== false) return 'sofa_leather';
|
|
if (strpos($n, '衣柜') !== false) return 'wardrobe_sliding';
|
|
if (strpos($n, '床') !== false) return 'bed_luxury';
|
|
if (strpos($n, '餐桌') !== false) return 'dining_table';
|
|
if (strpos($n, '茶几') !== false || strpos($n, '电视柜') !== false) return 'sofa_leather';
|
|
if (strpos($n, '马桶') !== false || strpos($n, '座便器') !== false || strpos($n, '蹲便') !== false || strpos($n, '小便') !== false) return 'toilet_smart';
|
|
if (strpos($n, '花洒') !== false || strpos($n, '龙头') !== false) return 'shower_thermo';
|
|
if (strpos($n, '浴室柜') !== false || strpos($n, '洗面盆') !== false || strpos($n, '水槽') !== false || strpos($n, '镜柜') !== false || strpos($n, '化妆镜') !== false || strpos($n, '拖把池') !== false) return 'bathroom_cabinet';
|
|
if (strpos($n, '淋浴房') !== false || strpos($n, '屏风') !== false || strpos($n, '隔断') !== false || strpos($n, '浴缸') !== false) return 'shower_room';
|
|
if (strpos($n, '吸顶灯') !== false || strpos($n, '筒灯') !== false || strpos($n, '射灯') !== false || strpos($n, '轨道灯') !== false) return 'ceiling_lamp';
|
|
if (strpos($n, '吊灯') !== false || strpos($n, '风扇灯') !== false) return 'chandelier';
|
|
if (strpos($n, '指纹') !== false || strpos($n, '智能锁') !== false || strpos($n, '密码锁') !== false) return 'smart_lock';
|
|
if (strpos($n, '机械') !== false || strpos($n, '门锁') !== false) return 'mechanical_lock';
|
|
if (strpos($n, '电动窗帘') !== false) return 'curtain_motor';
|
|
if (strpos($n, '窗帘') !== false || strpos($n, '百叶') !== false || strpos($n, '卷帘') !== false) return 'curtain_fabric';
|
|
if (strpos($n, '墙布') !== false || strpos($n, '壁画') !== false || strpos($n, '装饰画') !== false || strpos($n, '墙纸') !== false) return 'wall_decor';
|
|
if (strpos($n, '净水') !== false || strpos($n, '过滤器') !== false || strpos($n, '管线机') !== false || strpos($n, '饮水机') !== false || strpos($n, '水质') !== false) return 'water_purifier';
|
|
if (strpos($n, '晾衣架') !== false) return 'clothes_hanger';
|
|
if (strpos($n, '木门') !== false || strpos($n, '室内门') !== false || strpos($n, '门套') !== false || strpos($n, '哑口') !== false || strpos($n, '推拉门') !== false || strpos($n, '折叠门') !== false) return 'wood_door';
|
|
if (strpos($n, '防盗门') !== false || strpos($n, '入户门') !== false || strpos($n, '卷闸') !== false || strpos($n, '纱窗') !== false || strpos($n, '窗') !== false) return 'security_door';
|
|
if (strpos($n, '洗衣机') !== false || strpos($n, '洗衣柜') !== false) return 'washing_machine';
|
|
if (strpos($n, '空调') !== false) return 'air_conditioner';
|
|
if (strpos($n, '冰箱') !== false || strpos($n, '冷柜') !== false) return 'refrigerator';
|
|
if (strpos($n, '商用灶') !== false || strpos($n, '电磁炉') !== false) return 'commercial_stove';
|
|
if (strpos($n, '排烟罩') !== false) return 'commercial_hood';
|
|
if (strpos($n, '蒸饭') !== false || strpos($n, '洗碗机') !== false || strpos($n, '和面') !== false || strpos($n, '开水器') !== false) return 'commercial_steamer';
|
|
if (strpos($n, '油烟机') !== false || strpos($n, '燃气灶') !== false) return 'kitchen_hood';
|
|
if (strpos($n, '热水器') !== false || strpos($n, '浴霸') !== false) return 'water_heater';
|
|
if (strpos($n, '电视') !== false) return 'tv_mounted';
|
|
if (strpos($n, '投影') !== false) return 'projector';
|
|
if (strpos($n, '跑步机') !== false) return 'treadmill';
|
|
if (strpos($n, '单车') !== false || strpos($n, '椭圆机') !== false || strpos($n, '训练器') !== false || strpos($n, '力量') !== false || strpos($n, '健身') !== false) return 'exercise_bike';
|
|
|
|
// 根据分类兜底
|
|
$catDefaults = [
|
|
1 => 'sofa_leather',
|
|
2 => 'toilet_smart',
|
|
3 => 'ceiling_lamp',
|
|
4 => 'smart_lock',
|
|
5 => 'curtain_fabric',
|
|
6 => 'wall_decor',
|
|
7 => 'water_purifier',
|
|
8 => 'clothes_hanger',
|
|
9 => 'wood_door',
|
|
10 => 'washing_machine',
|
|
11 => 'tv_mounted',
|
|
12 => 'shower_room',
|
|
13 => 'commercial_stove',
|
|
14 => 'treadmill',
|
|
15 => 'mechanical_lock',
|
|
];
|
|
return $catDefaults[$catId] ?? 'sofa_leather';
|
|
}
|
|
|
|
$updatedCount = 0;
|
|
foreach ($services as $s) {
|
|
$imgKey = matchImageKey($s['name'], $s['cat_id']);
|
|
if (isset($cosMap[$imgKey])) {
|
|
$imgUrl = $cosMap[$imgKey]['cos'];
|
|
Db::name('service')->where('id', $s['id'])->update([
|
|
'image' => $imgUrl,
|
|
'updatetime' => time()
|
|
]);
|
|
$updatedCount++;
|
|
}
|
|
}
|
|
|
|
echo "Successfully updated {$updatedCount} services with real goods image URLs!\n";
|