文件
Henglianshutong/scripts/update_remote_db_icons_v2.php

86 行
3.5 KiB
PHP

<?php
// 更新线上数据库装修配置为 320x320 高清大字版图标,并设置 iconSize 为 120
$dsn = 'mysql:host=127.0.0.1;dbname=henglianshutong;charset=utf8mb4';
$user = 'henglianshutong';
$pass = 'henglianshutong';
try {
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $e) {
die("DB connection failed: " . $e->getMessage() . "\n");
}
$targetPages = [8, 2];
foreach ($targetPages as $pageId) {
$stmt = $pdo->prepare("SELECT id, page FROM hla_shopro_decorate_page WHERE id = ?");
$stmt->execute([$pageId]);
$row = $stmt->fetch();
if (!$row) {
echo "Page $pageId not found.\n";
continue;
}
$pageData = json_decode($row['page'], true);
if (!is_array($pageData) || !isset($pageData['data']) || !is_array($pageData['data'])) {
echo "Invalid structure in page $pageId.\n";
continue;
}
$updated = false;
foreach ($pageData['data'] as &$comp) {
if (isset($comp['type']) && $comp['type'] === 'menuButton') {
echo "Found menuButton in page $pageId.\n";
$comp['data']['layout'] = 2; // 纯图标模式
$comp['data']['iconSize'] = 120; // 放大图标至 120rpx
// 确保 list 中的每个项均指向 _v2.png 高清大图,并清空 title.text
$listConfig = [
['src' => '/uploads/decorate/menu_city_center_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%B8%82%E7%BA%A7%E8%BF%90%E8%90%A5%E4%B8%AD%E5%BF%83'],
['src' => '/uploads/decorate/menu_city_partner_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%B8%82%E7%BA%A7%E5%90%88%E4%BC%99%E4%BA%BA'],
['src' => '/uploads/decorate/menu_province_center_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E7%9C%81%E7%BA%A7%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83'],
['src' => '/uploads/decorate/menu_province_partner_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E7%9C%81%E7%BA%A7%E5%90%88%E4%BC%99%E4%BA%BA'],
['src' => '/uploads/decorate/menu_region_branch_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%A4%A7%E5%8C%BA%E5%88%86%E5%85%AC%E5%8F%B8'],
];
if (isset($comp['data']['list']) && is_array($comp['data']['list'])) {
foreach ($comp['data']['list'] as $idx => &$item) {
if (isset($listConfig[$idx])) {
$item['src'] = $listConfig[$idx]['src'];
$item['url'] = $listConfig[$idx]['url'];
$item['title']['text'] = '';
}
}
}
$updated = true;
}
}
if ($updated) {
$newJson = json_encode($pageData, JSON_UNESCAPED_UNICODE);
$updateStmt = $pdo->prepare("UPDATE hla_shopro_decorate_page SET page = ? WHERE id = ?");
$updateStmt->execute([$newJson, $pageId]);
echo "Page $pageId successfully updated to HD v2 icons & iconSize: 120!\n";
}
}
// 刷新 Redis 缓存(如果有)
try {
$redis = new Redis();
if ($redis->connect('127.0.0.1', 6379)) {
// 清理商城相关的装修缓存
$keys = $redis->keys('*shopro*decorate*');
if (!empty($keys)) {
$redis->del($keys);
echo "Cleared " . count($keys) . " decorate redis cache keys.\n";
}
}
} catch (Exception $e) {
echo "Redis notice: " . $e->getMessage() . "\n";
}
echo "All Done.\n";